/*
  StreamHub Theme Pack v2.5.15
  Tema inspirado na experiência de catálogo/TV ao vivo da imagem enviada.

  COMO ALTERAR QUANDO QUISER:
  1) Edite só as variáveis abaixo em [data-theme="globoplay"].
  2) Para trocar de tema, altere no PHP: <body data-theme="globoplay">.
  3) Não precisa mexer no JavaScript para trocar cores, bordas, sombras e espaçamentos.
*/

[data-theme="globoplay"] {
  --sh-page-bg: #000000;
  --sh-topbar-bg: rgba(0, 0, 0, .96);
  --sh-panel-bg: rgba(12, 12, 12, .82);
  --sh-card-bg: rgba(32, 32, 32, .76);
  --sh-card-bg-hover: rgba(48, 48, 48, .92);
  --sh-text: #ffffff;
  --sh-muted: rgba(255, 255, 255, .72);
  --sh-muted-2: rgba(255, 255, 255, .52);
  --sh-accent: #f42525;
  --sh-free: #1e9bff;
  --sh-chip-bg: rgba(255,255,255,.16);
  --sh-chip-active-bg: #ffffff;
  --sh-chip-active-text: #141414;
  --sh-border: rgba(255,255,255,.12);
  --sh-border-active: #ffffff;
  --sh-shadow: 0 24px 80px rgba(0,0,0,.72);
  --sh-radius-lg: 24px;
  --sh-radius-md: 18px;
  --sh-header-height: 76px;
  --sh-player-height: clamp(420px, calc(100svh - var(--sh-header-height) - 28px), 860px);
  --sh-player-min-height: 420px;
}

/* Tema alternativo pronto. Troque data-theme="globoplay" por data-theme="redplay". */
[data-theme="redplay"] {
  --sh-page-bg: #070707;
  --sh-topbar-bg: rgba(8, 8, 8, .96);
  --sh-panel-bg: rgba(18, 12, 12, .84);
  --sh-card-bg: rgba(40, 22, 22, .78);
  --sh-card-bg-hover: rgba(58, 24, 24, .94);
  --sh-text: #ffffff;
  --sh-muted: rgba(255, 237, 237, .72);
  --sh-muted-2: rgba(255, 237, 237, .52);
  --sh-accent: #ff3030;
  --sh-free: #ff3030;
  --sh-chip-bg: rgba(255,255,255,.13);
  --sh-chip-active-bg: #ff3030;
  --sh-chip-active-text: #ffffff;
  --sh-border: rgba(255,255,255,.12);
  --sh-border-active: #ffb0b0;
  --sh-shadow: 0 24px 80px rgba(0,0,0,.72);
  --sh-radius-lg: 24px;
  --sh-radius-md: 18px;
  --sh-header-height: 76px;
  --sh-player-height: clamp(420px, calc(100svh - var(--sh-header-height) - 28px), 860px);
  --sh-player-min-height: 420px;
}

body[data-theme] {
  color: var(--sh-text);
  background: var(--sh-page-bg) !important;
  min-height: 100vh;
  overflow-x: hidden;
}
body[data-theme]::before {
  content: "";
  position: fixed;
  inset: 0;
  background: radial-gradient(circle at 18% 22%, rgba(255,255,255,.08), transparent 18%), linear-gradient(180deg, rgba(255,255,255,.03), transparent 42%), var(--sh-page-bg);
  pointer-events: none;
  z-index: 0;
}
[data-theme] .bg-glow { display: none; }

[data-theme] .topbar {
  width: 100%;
  max-width: none;
  min-height: var(--sh-header-height);
  margin: 0;
  padding: 14px 4.6vw;
  border: 0;
  border-radius: 0;
  background: var(--sh-topbar-bg);
  box-shadow: none;
  backdrop-filter: blur(18px);
  position: sticky;
  top: 0;
  z-index: 20;
}
[data-theme] .brand-logo {
  width: 44px;
  height: 44px;
  border-radius: 13px;
  color: var(--sh-text);
  background: var(--sh-accent);
  box-shadow: none;
  font-size: 1.05rem;
}
[data-theme] .brand-wrap h1,
[data-theme] .brand-wrap h2 {
  font-size: 1.48rem;
  letter-spacing: -0.04em;
  color: var(--sh-text);
}
[data-theme] .brand-wrap p,
[data-theme] .section-head p,
[data-theme] .status-label,
[data-theme] .channel-info span,
[data-theme] .channel-info small,
[data-theme] .metric-card span,
[data-theme] .table-muted { color: var(--sh-muted); }
[data-theme] .search-box input,
[data-theme] .login-form input,
[data-theme] .admin-form input,
[data-theme] .admin-form select,
[data-theme] .admin-form textarea {
  color: var(--sh-text);
  border: 1px solid var(--sh-border);
  background: rgba(255,255,255,.1);
}
[data-theme] .search-box input::placeholder,
[data-theme] textarea::placeholder { color: var(--sh-muted-2); }
[data-theme] .btn {
  border-radius: 999px;
  border-color: var(--sh-border);
  color: var(--sh-text);
  background: var(--sh-chip-bg);
  font-weight: 800;
}
[data-theme] .btn-primary {
  background: var(--sh-chip-active-bg);
  color: var(--sh-chip-active-text);
  border: 0;
}
[data-theme] .btn-ghost:hover,
[data-theme] .btn-primary:hover,
[data-theme] .channel-card:hover { transform: translateY(-2px); }

[data-theme] .btn-report {
  width: 34px;
  height: 34px;
  min-width: 34px;
  padding: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid rgba(255,255,255,.22);
  background: transparent;
  color: rgba(255,255,255,.74);
  font-size: 0;
  line-height: 1;
  box-shadow: none;
}
[data-theme] .btn-report::before {
  content: none !important;
  display: none !important;
}
[data-theme] .btn-report:hover {
  transform: none;
  background: rgba(255,255,255,.08);
  color: #fff;
  border-color: rgba(255,255,255,.38);
}

/* Home com player grande e catálogo horizontal, parecido com a imagem */
[data-theme] .page-grid {
  --sh-page-edge: clamp(16px, 3vw, 54px);
  width: 100%;
  max-width: none;
  height: calc(100svh - var(--sh-header-height));
  min-height: 0;
  margin: 0;
  padding: 0;
  display: block;
  position: relative;
  overflow: hidden;
}
[data-theme] .card {
  background: transparent;
  border: 0;
  box-shadow: none;
  backdrop-filter: none;
}
[data-theme] .player-panel {
  position: relative;
  height: 100%;
  min-height: 0;
  padding: 0;
  overflow: hidden;
}
[data-theme] .player-stage {
  position: absolute;
  inset: 0;
  width: auto;
  height: 100%;
  min-height: 0;
  aspect-ratio: auto;
  border: 0;
  border-radius: 0;
  background: #050505;
  box-shadow: inset 0 -180px 160px rgba(0,0,0,.88), inset 0 0 0 1000px rgba(0,0,0,.12);
}
[data-theme] .player-stage::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 2;
  pointer-events: none;
  opacity: 1;
  transition: opacity .32s ease, visibility .32s ease;
  visibility: visible;
  background: linear-gradient(90deg, rgba(0,0,0,.86) 0%, rgba(0,0,0,.54) 30%, rgba(0,0,0,.18) 60%, rgba(0,0,0,.55) 100%), linear-gradient(180deg, rgba(0,0,0,.12) 0%, rgba(0,0,0,.05) 45%, rgba(0,0,0,.86) 100%);
}

[data-theme].player-ui-hidden .player-stage::after {
  opacity: 0;
  visibility: hidden;
}

[data-theme].player-ui-visible .player-stage::after {
  opacity: 1;
  visibility: visible;
}
[data-theme] .player-stage > video,
[data-theme] .player-stage > iframe {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover;
  z-index: 1;
}
[data-theme] .player-overlay {
  z-index: 3;
  background: linear-gradient(90deg, rgba(0,0,0,.78), rgba(0,0,0,.22));
}

[data-theme] .player-panel > .section-head {
  position: relative;
  z-index: 4;
  width: min(620px, 94vw);
  padding-top: 19vh;
  margin: 0 0 0 var(--sh-page-edge);
  align-items: flex-start;
}
[data-theme] .section-head h2 {
  margin: 10px 0 0;
  font-size: clamp(1.72rem, 3vw, 3.2rem);
  letter-spacing: -0.055em;
  line-height: .98;
  text-transform: capitalize;
}
[data-theme] .player-panel > .section-head p {
  max-width: 520px;
  font-size: 1.05rem;
  margin-top: 10px;
}
[data-theme] .live-pill {
  color: #fff;
  background: var(--sh-free);
  border: 0;
  border-radius: 6px;
  padding: 5px 8px;
  font-size: .78rem;
  font-weight: 900;
}
[data-theme] .viewer-badge { display: none; }
[data-theme] .player-actions-row {
  position: relative;
  z-index: 4;
  margin-top: 24px;
  margin-left: var(--sh-page-edge);
  width: min(620px, calc(100vw - (var(--sh-page-edge) * 2)));
  align-items: center;
}
[data-theme] .player-actions { gap: 12px; }
[data-theme] .sidebar {
  position: absolute;
  left: var(--sh-page-edge);
  right: var(--sh-page-edge);
  bottom: clamp(14px, 3vh, 34px);
  z-index: 6;
  margin: 0;
  padding: 0;
  overflow: hidden;
  max-width: calc(100vw - (var(--sh-page-edge) * 2));
}
[data-theme] .sidebar .section-head.compact {
  padding: 0;
  margin: 0 0 16px;
}
[data-theme] .sidebar .section-head h3 {
  font-size: 1.15rem;
  margin: 8px 0 0;
}
[data-theme] .sidebar .section-head p { display: none; }
[data-theme] .channel-list {
  width: 100%;
  max-width: 100%;
  padding: 0 0 8px;
  display: flex;
  gap: clamp(10px, 1.15vw, 16px);
  max-height: clamp(118px, 19vh, 188px);
  overflow-x: auto;
  overflow-y: hidden;
  overscroll-behavior-x: contain;
  scroll-snap-type: x proximity;
  scrollbar-width: thin;
  -webkit-overflow-scrolling: touch;
}
[data-theme] .channel-list {
  cursor: default;
  user-select: none;
  -webkit-user-select: none;
  scroll-behavior: smooth;
  touch-action: pan-x;
}
[data-theme] .channel-list *,
[data-theme] .channel-card,
[data-theme] .channel-card * {
  user-select: none;
  -webkit-user-select: none;
  -webkit-user-drag: none;
}
[data-theme] .channel-card img,
[data-theme] .channel-thumb img {
  pointer-events: none;
  user-drag: none;
  -webkit-user-drag: none;
}
[data-theme] .channel-list.is-dragging {
  cursor: grabbing;
  scroll-snap-type: none;
  scroll-behavior: auto;
}
[data-theme] .channel-card {
  position: relative;
  cursor: pointer;
  flex: 0 0 clamp(180px, 18vw, 280px);
  height: clamp(104px, 16vh, 154px);
  min-height: 0;
  display: block;
  padding: 0;
  border-radius: var(--sh-radius-md);
  border: 1px solid transparent;
  overflow: hidden;
  background: var(--sh-card-bg);
  color: var(--sh-text);
  box-shadow: 0 18px 42px rgba(0,0,0,.45);
  scroll-snap-align: start;
}
[data-theme] .channel-card.active,
[data-theme] .channel-card:hover {
  border-color: var(--sh-border-active);
  background: var(--sh-card-bg-hover);
}
[data-theme] .channel-thumb {
  width: 100%;
  aspect-ratio: 16 / 9;
  border-radius: 0;
  background: #151515;
  opacity: .78;
}
[data-theme] .channel-thumb img { filter: saturate(.92) brightness(.78); }
[data-theme] .channel-card::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, transparent 24%, rgba(0,0,0,.28) 55%, rgba(0,0,0,.94) 100%);
  pointer-events: none;
}
[data-theme] .channel-card::before {
  content: "";
  position: absolute;
  left: 18px;
  right: 18px;
  bottom: 14px;
  height: 3px;
  border-radius: 999px;
  background: linear-gradient(90deg, var(--sh-accent) 0 42%, rgba(255,255,255,.25) 42% 100%);
  z-index: 2;
}
[data-theme] .channel-info {
  position: absolute;
  left: 18px;
  right: 18px;
  bottom: 25px;
  z-index: 2;
}
[data-theme] .channel-info strong {
  margin-bottom: 5px;
  font-size: clamp(.98rem, 1.25vw, 1.22rem);
  line-height: 1.08;
  text-transform: capitalize;
}
[data-theme] .channel-info span,
[data-theme] .channel-info small {
  font-weight: 700;
  font-size: .86rem;
}
[data-theme] .thumb-fallback {
  border-radius: 0;
  background: radial-gradient(circle at 50% 40%, rgba(255,255,255,.18), rgba(255,255,255,.04)), #151515;
}
[data-theme] .stats-strip:not(.admin-stats) { display: none; }

/* Admin/login continuam profissionais, mas usam as mesmas variáveis do tema */
[data-theme].admin-body,
[data-theme].login-body { padding: 18px; }
[data-theme] .admin-sidebar,
[data-theme] .admin-topbar,
[data-theme] .form-card,
[data-theme] .table-card,
[data-theme] .metric-card,
[data-theme] .login-shell {
  background: var(--sh-panel-bg);
  border: 1px solid var(--sh-border);
  box-shadow: var(--sh-shadow);
  border-radius: var(--sh-radius-lg);
}
[data-theme] .admin-nav a {
  background: rgba(255,255,255,.06);
  color: var(--sh-muted);
}
[data-theme] .admin-nav a.active,
[data-theme] .admin-nav a:hover {
  background: var(--sh-chip-active-bg);
  color: var(--sh-chip-active-text);
  border-color: transparent;
}
[data-theme] th,
[data-theme] td { border-bottom-color: var(--sh-border); }
[data-theme] th { color: var(--sh-muted); }

@media (max-width: 920px) {
  [data-theme] .topbar { padding: 14px 18px; }
  [data-theme] .page-grid {
    --sh-page-edge: 18px;
    height: calc(100svh - var(--sh-header-height));
    padding: 0;
  }
  [data-theme] .player-panel {
    height: 100%;
    min-height: 0;
  }
  [data-theme] .player-stage {
    left: 0;
    right: 0;
    height: 100%;
    min-height: 0;
  }
  [data-theme] .player-panel > .section-head { padding-top: 14vh; }
  [data-theme] .sidebar {
    left: var(--sh-page-edge);
    right: var(--sh-page-edge);
    bottom: 14px;
    max-width: calc(100vw - 36px);
  }
  [data-theme] .channel-list { max-height: clamp(104px, 18vh, 150px); }
  [data-theme] .channel-card { flex-basis: clamp(168px, 48vw, 230px); height: clamp(96px, 16vh, 132px); }
}
@media (max-width: 620px) {
  [data-theme] .brand-wrap p { display: none; }
  [data-theme] .topbar-actions { width: 100%; }
  [data-theme] .search-box { width: 100%; }
  [data-theme] .player-panel {
    height: 100%;
    min-height: 0;
  }
  [data-theme] .player-panel > .section-head { padding-top: 10vh; }
  [data-theme] .player-actions-row { display: none; }
  [data-theme] .sidebar { bottom: 10px; }
  [data-theme] .sidebar .section-head.compact { margin-bottom: 8px; }
  [data-theme] .channel-list { max-height: 112px; }
  [data-theme] .channel-card { flex-basis: 170px; height: 96px; }
  [data-theme] .channel-info { left: 12px; right: 12px; bottom: 17px; }
  [data-theme] .channel-card::before { left: 12px; right: 12px; bottom: 8px; }
  [data-theme] .channel-info span,
  [data-theme] .channel-info small { display: none; }
}


/* v2.5.2 - Interface do player com auto-ocultação
   Os elementos abaixo e o degradê do player somem após alguns segundos e voltam quando o mouse passa
   na parte de baixo do player. Ajuste o tempo no app.js em PLAYER_UI_HIDE_DELAY. */
[data-theme] .player-panel > .section-head,
[data-theme] .player-actions-row,
[data-theme] .sidebar {
  transition: opacity .32s ease, transform .32s ease, visibility .32s ease;
  will-change: opacity, transform;
}

[data-theme] .player-hover-zone {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: min(44vh, 420px);
  z-index: 3;
  pointer-events: none;
  background: transparent;
}

[data-theme].player-ui-hidden .player-panel > .section-head,
[data-theme].player-ui-hidden .player-actions-row,
[data-theme].player-ui-hidden .sidebar {
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
}

[data-theme].player-ui-hidden .player-panel > .section-head {
  transform: translateY(-18px);
}

[data-theme].player-ui-hidden .player-actions-row,
[data-theme].player-ui-hidden .sidebar {
  transform: translateY(28px);
}

[data-theme].player-ui-visible .player-panel > .section-head,
[data-theme].player-ui-visible .player-actions-row,
[data-theme].player-ui-visible .sidebar {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transform: translateY(0);
}

@media (hover: none) {
  [data-theme].player-ui-hidden .player-panel > .section-head,
  [data-theme].player-ui-hidden .player-actions-row,
  [data-theme].player-ui-hidden .sidebar {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transform: none;
  }
}


/* v2.5.7 - Channel list travada dentro da tela
   A lista agora é uma camada absoluta sobre o player, não aumenta a página para baixo
   e não cria estouro lateral. */
[data-theme] .channel-list > * {
  flex-shrink: 0;
}

[data-theme] .channel-list::-webkit-scrollbar {
  height: 6px;
}

[data-theme] .channel-list::-webkit-scrollbar-track {
  background: rgba(255,255,255,.08);
  border-radius: 999px;
}

[data-theme] .channel-list::-webkit-scrollbar-thumb {
  background: rgba(255,255,255,.35);
  border-radius: 999px;
}

@media (max-height: 620px) {
  [data-theme] .player-panel > .section-head {
    padding-top: 7vh;
  }

  [data-theme] .player-actions-row {
    margin-top: 12px;
  }

  [data-theme] .sidebar .section-head.compact {
    display: none;
  }

  [data-theme] .channel-list {
    max-height: 98px;
  }

  [data-theme] .channel-card {
    height: 88px;
  }
}

/* v2.5.8 - Ajuste de margem, zona inferior maior e arraste horizontal da lista */


/* v2.5.9 - Correção de conflito do player-panel com a área inferior
   A zona invisível fica acima do iframe, mas abaixo dos botões e da lista de canais.
   Assim o movimento do mouse no fundo do player volta a mostrar a interface sem empurrar layout. */
[data-theme] .player-panel {
  isolation: isolate;
  touch-action: manipulation;
}
[data-theme] .player-actions-row,
[data-theme] .player-panel > .section-head,
[data-theme] .sidebar {
  z-index: 10;
}
[data-theme] .player-hover-zone {
  max-width: 100%;
  overflow: hidden;
}
[data-theme] .channel-list {
  touch-action: pan-x;
}

/* v2.5.10 - Correção da zona invisível bloqueando clique no player */
[data-theme].player-ui-hidden .player-hover-zone {
  pointer-events: auto;
}
[data-theme].player-ui-visible .player-hover-zone,
[data-theme] .player-hover-zone.is-passive {
  pointer-events: none !important;
}

/* v2.5.12 - Busca funcional no catálogo */
[data-theme] .search-box input:focus {
  outline: none;
  border-color: var(--sh-border-active);
  box-shadow: 0 0 0 3px rgba(255,255,255,.08);
}
[data-theme] .channel-list .empty-state {
  flex: 1 0 100%;
  min-height: 92px;
  display: grid;
  place-items: center;
  border: 1px dashed var(--sh-border);
  border-radius: var(--sh-radius-md);
  color: var(--sh-muted);
  background: rgba(255,255,255,.05);
  font-weight: 800;
}

/* v2.5.13 - Corrige margem do título "Agora na TV" no tema. */
[data-theme] .section-head h2,
[data-theme] .section-head h3,
[data-theme] .sidebar .section-head.compact h3 {
  margin: 8px 0 0;
}

/* v2.5.14 - diferencia login de cliente e administrador */
[data-theme] .role-badge {
  display: inline-flex;
  align-items: center;
  min-height: 38px;
  padding: 0 14px;
  border-radius: 999px;
  font-size: 12px;
  font-weight: 800;
  letter-spacing: .02em;
  white-space: nowrap;
  border: 1px solid rgba(255,255,255,.14);
  background: rgba(255,255,255,.07);
  color: var(--sh-text);
}

[data-theme] .role-badge.admin {
  color: #fff;
  border-color: rgba(244,37,37,.42);
  background: linear-gradient(135deg, rgba(244,37,37,.28), rgba(255,255,255,.06));
}

[data-theme] .role-badge.client {
  color: rgba(255,255,255,.9);
  border-color: rgba(255,255,255,.18);
  background: rgba(255,255,255,.08);
}


/* v2.5.15 - Admin mais responsivo + configurações do site */
[data-theme] .site-settings-card { padding: 0 18px 18px; }
[data-theme] .site-preview-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
[data-theme] .site-preview-box { display: flex; align-items: center; gap: 14px; margin-top: 4px; padding: 14px; border: 1px solid var(--sh-border); border-radius: var(--sh-radius-md); background: rgba(255,255,255,.06); }
[data-theme] .site-preview-box strong,
[data-theme] .site-preview-box span { display: block; }
[data-theme] .site-preview-box span { margin-top: 4px; color: var(--sh-muted); font-size: .92rem; }
[data-theme] .admin-main,
[data-theme] .admin-grid,
[data-theme] .table-wrap { min-width: 0; }
[data-theme] .table-wrap { max-width: 100%; overflow-x: auto; -webkit-overflow-scrolling: touch; }
[data-theme] .admin-sidebar { overflow: hidden; }
[data-theme] .admin-form input,
[data-theme] .admin-form select,
[data-theme] .admin-form textarea { min-width: 0; width: 100%; }
@media (max-width: 1200px) {
  [data-theme] .admin-layout { grid-template-columns: 1fr; }
  [data-theme] .admin-sidebar { position: relative; top: 0; min-height: auto; }
  [data-theme] .admin-nav { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  [data-theme] .sidebar-footer { grid-template-columns: repeat(2, minmax(0, 1fr)); margin-top: 16px; }
}
@media (max-width: 980px) {
  [data-theme] .site-preview-grid,
  [data-theme] .admin-grid { grid-template-columns: 1fr; }
  [data-theme] .admin-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 680px) {
  [data-theme].admin-body { padding: 10px; }
  [data-theme] .admin-layout,
  [data-theme] .admin-main { gap: 12px; }
  [data-theme] .admin-sidebar,
  [data-theme] .admin-topbar,
  [data-theme] .form-card,
  [data-theme] .table-card,
  [data-theme] .site-settings-card,
  [data-theme] .metric-card { border-radius: 18px; }
  [data-theme] .admin-topbar { align-items: flex-start; flex-direction: column; }
  [data-theme] .admin-nav { grid-template-columns: 1fr; }
  [data-theme] .sidebar-footer,
  [data-theme] .admin-stats { grid-template-columns: 1fr; }
  [data-theme] th, [data-theme] td { padding: 11px 8px; font-size: .92rem; }
  [data-theme] .table-thumb { width: 74px; height: 44px; }
}

/* v2.5.16 - cadastro público de clientes e promoção para admin */
[data-theme] .login-actions-inline a {
  color: var(--sh-accent);
  font-weight: 800;
  text-decoration: none;
}
[data-theme] .login-actions-inline a:hover { text-decoration: underline; }
[data-theme] .clients-card { margin-top: 18px; }
[data-theme] .role-pill,
[data-theme] .status-pill {
  display: inline-flex;
  align-items: center;
  min-height: 28px;
  padding: 0 10px;
  border-radius: 999px;
  font-size: 11px;
  font-weight: 900;
  letter-spacing: .02em;
  border: 1px solid rgba(255,255,255,.14);
  white-space: nowrap;
}
[data-theme] .role-pill.admin {
  color: #fff;
  border-color: rgba(244,37,37,.42);
  background: rgba(244,37,37,.24);
}
[data-theme] .role-pill.client {
  color: rgba(255,255,255,.88);
  background: rgba(255,255,255,.08);
}
[data-theme] .status-pill.active {
  color: #d7ffe8;
  border-color: rgba(36,210,116,.36);
  background: rgba(36,210,116,.16);
}
[data-theme] .status-pill.inactive {
  color: #ffd7d7;
  border-color: rgba(244,37,37,.34);
  background: rgba(244,37,37,.16);
}
@media (max-width: 1200px) {
  [data-theme] .admin-nav { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 680px) {
  [data-theme] .clients-card .table-actions { min-width: 190px; }
}

/* v2.5.20 - botão voltar para Home no login */
[data-theme] .login-home-action { margin-top: 12px; }
[data-theme] .login-home-action .btn { justify-content: center; text-decoration: none; }

/* v2.5.21 - Painel admin profissional, responsivo e funcional */
[data-theme].admin-body {
  padding: clamp(12px, 2vw, 24px);
  background:
    radial-gradient(circle at 12% 0%, rgba(244,37,37,.16), transparent 34%),
    radial-gradient(circle at 90% 18%, rgba(255,255,255,.08), transparent 28%),
    linear-gradient(180deg, #050505 0%, #090909 100%);
}

[data-theme] .admin-layout-pro {
  max-width: 1780px;
  grid-template-columns: 292px minmax(0, 1fr);
  gap: clamp(14px, 1.4vw, 24px);
}

[data-theme] .admin-sidebar {
  min-height: calc(100svh - clamp(24px, 4vw, 48px));
  padding: 22px;
  border-radius: 30px;
  background:
    linear-gradient(180deg, rgba(255,255,255,.10), rgba(255,255,255,.035)),
    rgba(12,12,12,.88);
  box-shadow: 0 30px 80px rgba(0,0,0,.55);
}

[data-theme] .sidebar-brand {
  align-items: flex-start;
  padding-bottom: 20px;
  border-bottom: 1px solid var(--sh-border);
}

[data-theme] .sidebar-brand .brand-logo {
  flex: 0 0 52px;
}

[data-theme] .sidebar-brand h2 {
  font-size: 1.05rem;
  line-height: 1.1;
}

[data-theme] .sidebar-brand p {
  max-width: 178px;
  font-size: .82rem;
  line-height: 1.35;
}

[data-theme] .admin-nav {
  margin-top: 20px;
  gap: 8px;
}

[data-theme] .admin-nav a {
  min-height: 46px;
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 12px 13px;
  border-radius: 16px;
  font-weight: 800;
  letter-spacing: -.01em;
  border: 1px solid rgba(255,255,255,.07);
}

[data-theme] .admin-nav a span {
  width: 24px;
  height: 24px;
  display: inline-grid;
  place-items: center;
  border-radius: 9px;
  background: rgba(255,255,255,.08);
}

[data-theme] .sidebar-footer {
  gap: 10px;
  padding-top: 18px;
  border-top: 1px solid var(--sh-border);
}

[data-theme] .admin-main {
  gap: clamp(14px, 1.2vw, 22px);
  min-width: 0;
}

[data-theme] .admin-hero {
  position: relative;
  overflow: hidden;
  min-height: 238px;
  padding: clamp(22px, 3vw, 36px);
  align-items: stretch;
  background:
    linear-gradient(120deg, rgba(244,37,37,.24), rgba(255,255,255,.065) 43%, rgba(255,255,255,.03)),
    rgba(15,15,15,.92);
}

[data-theme] .admin-hero::before {
  content: "";
  position: absolute;
  inset: -35% -10% auto auto;
  width: 420px;
  height: 420px;
  border-radius: 999px;
  background: radial-gradient(circle, rgba(255,255,255,.15), transparent 62%);
  pointer-events: none;
}

[data-theme] .admin-hero-copy,
[data-theme] .admin-hero-panel {
  position: relative;
  z-index: 1;
}

[data-theme] .admin-eyebrow,
[data-theme] .admin-section-kicker {
  display: inline-flex;
  align-items: center;
  width: max-content;
  margin-bottom: 8px;
  padding: 7px 10px;
  border-radius: 999px;
  font-size: .72rem;
  font-weight: 950;
  text-transform: uppercase;
  letter-spacing: .08em;
  color: rgba(255,255,255,.92);
  background: rgba(255,255,255,.10);
  border: 1px solid rgba(255,255,255,.12);
}

[data-theme] .admin-hero h1 {
  margin: 0;
  font-size: clamp(2rem, 3.4vw, 4rem);
  line-height: .95;
  letter-spacing: -.06em;
}

[data-theme] .admin-hero p {
  max-width: 720px;
  margin: 14px 0 0;
  color: rgba(255,255,255,.72);
  font-size: clamp(.98rem, 1.08vw, 1.12rem);
  line-height: 1.55;
}

[data-theme] .admin-quick-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 22px;
}

[data-theme] .admin-hero-panel {
  width: min(330px, 100%);
  display: grid;
  gap: 12px;
  align-content: end;
}

[data-theme] .admin-session-card,
[data-theme] .admin-health-grid {
  border: 1px solid rgba(255,255,255,.12);
  background: rgba(0,0,0,.28);
  border-radius: 22px;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.06);
}

[data-theme] .admin-session-card {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 14px;
}

[data-theme] .admin-session-card strong,
[data-theme] .admin-session-card small {
  display: block;
}

[data-theme] .admin-session-card small {
  margin-top: 3px;
  color: var(--sh-muted);
}

[data-theme] .admin-dot {
  width: 13px;
  height: 13px;
  flex: 0 0 13px;
  border-radius: 999px;
  background: #24d274;
  box-shadow: 0 0 0 7px rgba(36,210,116,.13), 0 0 22px rgba(36,210,116,.65);
}

[data-theme] .admin-health-grid {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 10px 16px;
  padding: 16px;
}

[data-theme] .admin-health-grid span {
  color: var(--sh-muted);
}

[data-theme] .admin-command-bar {
  position: sticky;
  top: 12px;
  z-index: 20;
  display: flex;
  gap: 8px;
  padding: 8px;
  border-radius: 22px;
  overflow-x: auto;
  background: rgba(12,12,12,.72);
  backdrop-filter: blur(18px);
}

[data-theme] .admin-command-bar a {
  flex: 0 0 auto;
  padding: 10px 14px;
  border-radius: 14px;
  color: var(--sh-muted);
  font-weight: 850;
}

[data-theme] .admin-command-bar a:hover {
  background: rgba(255,255,255,.08);
  color: var(--sh-text);
}

[data-theme] .admin-stats {
  max-width: none;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: clamp(10px, 1vw, 16px);
}

[data-theme] .metric-card-pro {
  position: relative;
  overflow: hidden;
  min-height: 148px;
  padding: 18px;
  background:
    linear-gradient(160deg, rgba(255,255,255,.105), rgba(255,255,255,.035)),
    rgba(18,18,18,.88);
}

[data-theme] .metric-card-pro i {
  position: absolute;
  right: 16px;
  top: 14px;
  width: 42px;
  height: 42px;
  display: grid;
  place-items: center;
  border-radius: 14px;
  font-style: normal;
  background: rgba(255,255,255,.08);
}

[data-theme] .metric-card-pro strong {
  display: block;
  margin-top: 8px;
  font-size: clamp(1.9rem, 2.5vw, 2.8rem);
  letter-spacing: -.05em;
}

[data-theme] .metric-card-pro small {
  display: block;
  margin-top: 8px;
  color: rgba(255,255,255,.55);
  line-height: 1.35;
}

[data-theme] .admin-card-pro {
  border-radius: 28px;
  background:
    linear-gradient(180deg, rgba(255,255,255,.075), rgba(255,255,255,.035)),
    rgba(12,12,12,.86);
}

[data-theme] .admin-card-head {
  padding: 22px 22px 0;
  align-items: flex-end;
}

[data-theme] .admin-card-head h3 {
  margin: 6px 0 0;
  font-size: clamp(1.2rem, 1.4vw, 1.65rem);
  letter-spacing: -.035em;
}

[data-theme] .admin-card-head p {
  max-width: 720px;
}

[data-theme] .admin-form {
  padding: 0 4px;
}

[data-theme] .admin-form label {
  font-size: .83rem;
  font-weight: 850;
  letter-spacing: .01em;
}

[data-theme] .admin-form input,
[data-theme] .admin-form select,
[data-theme] .admin-form textarea,
[data-theme] .admin-table-search input {
  min-height: 48px;
  border-radius: 16px;
  background: rgba(255,255,255,.065);
  border: 1px solid rgba(255,255,255,.105);
  transition: border-color .18s ease, box-shadow .18s ease, background .18s ease;
}

[data-theme] .admin-form textarea {
  min-height: 112px;
  resize: vertical;
}

[data-theme] .admin-form input:focus,
[data-theme] .admin-form select:focus,
[data-theme] .admin-form textarea:focus,
[data-theme] .admin-table-search input:focus {
  outline: none;
  background: rgba(255,255,255,.09);
  border-color: var(--sh-border-active);
  box-shadow: 0 0 0 4px rgba(255,255,255,.07);
}

[data-theme] .field-help {
  color: rgba(255,255,255,.5);
  line-height: 1.45;
}

[data-theme] .form-actions-sticky {
  position: sticky;
  bottom: 0;
  z-index: 2;
  padding: 12px 0 4px;
  background: linear-gradient(180deg, transparent, rgba(12,12,12,.96) 30%);
}

[data-theme] .site-preview-box-pro {
  margin-top: 12px;
  padding: 18px;
  border-radius: 22px;
  background:
    linear-gradient(135deg, rgba(244,37,37,.16), rgba(255,255,255,.055)),
    rgba(0,0,0,.18);
}

[data-theme] .admin-table-search {
  min-width: min(320px, 100%);
  display: grid;
  gap: 7px;
  color: var(--sh-muted);
  font-size: .78rem;
  font-weight: 900;
}

[data-theme] .admin-table-search input {
  width: 100%;
  padding: 0 14px;
  color: var(--sh-text);
}

[data-theme] .table-wrap {
  padding: 0 22px 22px;
}

[data-theme] table {
  border-collapse: separate;
  border-spacing: 0 10px;
}

[data-theme] th {
  padding-top: 4px;
  padding-bottom: 4px;
  font-size: .76rem;
  text-transform: uppercase;
  letter-spacing: .08em;
  border-bottom: 0;
}

[data-theme] td {
  padding: 14px 12px;
  border-top: 1px solid rgba(255,255,255,.075);
  border-bottom: 1px solid rgba(255,255,255,.075);
  background: rgba(255,255,255,.04);
}

[data-theme] td:first-child {
  border-left: 1px solid rgba(255,255,255,.075);
  border-radius: 18px 0 0 18px;
}

[data-theme] td:last-child {
  border-right: 1px solid rgba(255,255,255,.075);
  border-radius: 0 18px 18px 0;
}

[data-theme] .table-thumb {
  width: 104px;
  height: 60px;
  border-radius: 15px;
}

[data-theme] .table-actions .btn {
  min-height: 36px;
  padding: 8px 11px;
  white-space: nowrap;
}

[data-theme] .form-status {
  margin: 14px 22px 0;
  padding: 12px 14px;
  border-radius: 16px;
  background: rgba(255,255,255,.045);
  border: 1px solid rgba(255,255,255,.08);
}

[data-theme] .form-card > .form-status,
[data-theme] .site-settings-card .form-status {
  margin-left: 0;
  margin-right: 0;
}

@media (max-width: 1300px) {
  [data-theme] .admin-layout-pro {
    grid-template-columns: 1fr;
  }
  [data-theme] .admin-sidebar {
    position: relative;
    top: 0;
    min-height: auto;
  }
  [data-theme] .admin-sidebar {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 16px;
    align-items: start;
  }
  [data-theme] .admin-nav {
    grid-template-columns: repeat(5, minmax(0, 1fr));
  }
  [data-theme] .admin-nav a {
    justify-content: center;
    text-align: center;
    font-size: .88rem;
  }
  [data-theme] .sidebar-footer {
    width: 180px;
    border-top: 0;
    padding-top: 0;
  }
  [data-theme] .admin-stats {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

/* ======================================================================
v2.8.88 - camada final responsiva e SEO
   Mantém as regras legadas abaixo de uma única camada de compatibilidade.
   ====================================================================== */

/* Barra pública: largura real da janela e tipografia compacta. */
body.public-tv-layout:not(.tv-app-experience) .public-tv-topbar {
  left: 0 !important;
  right: 0 !important;
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
  box-sizing: border-box !important;
  border-radius: 0 !important;
}

body.public-tv-layout:not(.tv-app-experience) .public-tv-topbar *,
body.public-tv-layout .gp-player-chrome *,
body.admin-ux-v2867.admin-dashboard-v2885 * {
  letter-spacing: 0 !important;
}

body.public-tv-layout:not(.tv-app-experience) .tv-brand-copy h1 {
  font-size: 1.2rem !important;
  line-height: 1.05 !important;
}

body.public-tv-layout:not(.tv-app-experience) .tv-brand-copy p,
body.public-tv-layout:not(.tv-app-experience) .tv-main-nav a,
body.public-tv-layout:not(.tv-app-experience) .tv-account-link,
body.public-tv-layout:not(.tv-app-experience) .tv-login-btn {
  font-size: .82rem !important;
}

/* Player e EPG: textos curtos, legíveis e sem estourar o vídeo. */
body.public-tv-layout .gp-top-info,
body.public-tv-layout .gp-top-info > *,
body.public-tv-layout .gp-next-box,
body.public-tv-layout .gp-football-panel,
body.public-tv-layout .gp-football-card {
  min-width: 0 !important;
  box-sizing: border-box !important;
  overflow-wrap: anywhere !important;
}

body.public-tv-layout:not(.tv-app-experience) .gp-top-info #gpNowTitle,
body.public-tv-layout:not(.tv-app-experience) .gp-top-info > strong {
  font-size: 21px !important;
  line-height: 1.12 !important;
  max-width: 100% !important;
}

body.public-tv-layout:not(.tv-app-experience) .gp-top-info #gpNowMeta,
body.public-tv-layout:not(.tv-app-experience) .gp-top-info #gpNowTime,
body.public-tv-layout:not(.tv-app-experience) .gp-top-info #gpNextMeta,
body.public-tv-layout:not(.tv-app-experience) .gp-next-box em {
  font-size: .76rem !important;
  line-height: 1.25 !important;
}

body.public-tv-layout:not(.tv-app-experience) .gp-next-label,
body.public-tv-layout:not(.tv-app-experience) .gp-schedule-line,
body.public-tv-layout:not(.tv-app-experience) .gp-signal-pill {
  font-size: .64rem !important;
}

body.public-tv-layout.tv-app-experience .gp-top-info #gpNowTitle,
body.public-tv-layout.tv-app-experience .gp-top-info > strong {
  font-size: 1.45rem !important;
  line-height: 1.1 !important;
  max-width: min(52vw, 660px) !important;
}

body.public-tv-layout.tv-app-experience .gp-top-info #gpNowMeta,
body.public-tv-layout.tv-app-experience .gp-top-info #gpNowTime {
  font-size: .82rem !important;
  line-height: 1.2 !important;
}

body.public-tv-layout.tv-app-experience .gp-next-box {
  max-width: min(40vw, 480px) !important;
  padding: 5px 9px !important;
  border-radius: 8px !important;
}

body.public-tv-layout.tv-app-experience .gp-next-box #gpNextMeta,
body.public-tv-layout.tv-app-experience .gp-next-box em,
body.public-tv-layout.tv-app-experience .gp-next-label {
  font-size: .72rem !important;
  line-height: 1.15 !important;
}

body.public-tv-layout .gp-football-head strong {
  font-size: 1rem !important;
  line-height: 1.15 !important;
}

body.public-tv-layout .gp-football-card strong {
  font-size: .82rem !important;
  line-height: 1.2 !important;
}

body.public-tv-layout .gp-football-card small,
body.public-tv-layout .gp-football-status,
body.public-tv-layout .gp-football-time,
body.public-tv-layout .gp-football-channel {
  font-size: .68rem !important;
  line-height: 1.25 !important;
}

/* Admin: o backdrop é apenas legado e nunca participa da interação. */
body.admin-ux-v2867 #adminSidebarBackdrop,
body.admin-ux-v2867.admin-sidebar-open #adminSidebarBackdrop,
body.admin-ux-v2867 #adminSidebarBackdrop:not([hidden]) {
  display: none !important;
  visibility: hidden !important;
  opacity: 0 !important;
  pointer-events: none !important;
}

body.admin-ux-v2867.admin-dashboard-v2885 .admin-layout-pro,
body.admin-ux-v2867.admin-dashboard-v2885 .admin-main,
body.admin-ux-v2867.admin-dashboard-v2885 .admin-view,
body.admin-ux-v2867.admin-dashboard-v2885 .admin-view > * {
  min-width: 0 !important;
  box-sizing: border-box !important;
}

body.admin-ux-v2867.admin-dashboard-v2885 .admin-view-head h1,
body.admin-ux-v2867.admin-dashboard-v2885 .admin-hero h1 {
  font-size: 1.55rem !important;
  line-height: 1.18 !important;
  overflow-wrap: anywhere !important;
}

body.admin-ux-v2867.admin-dashboard-v2885 .admin-view-head p,
body.admin-ux-v2867.admin-dashboard-v2885 .admin-card-pro p,
body.admin-ux-v2867.admin-dashboard-v2885 .form-card p,
body.admin-ux-v2867.admin-dashboard-v2885 .table-card p {
  font-size: .84rem !important;
  line-height: 1.45 !important;
}

@media (max-width: 1024px) {
  html body.public-tv-layout.mobile-persistent-ui:not(.tv-app-experience) {
    --mobile-player-header: 56px;
    --mobile-channel-drawer-h: min(244px, 44svh);
  }

  html body.public-tv-layout.mobile-persistent-ui:not(.tv-app-experience) .public-tv-shell {
    height: calc(100svh - var(--mobile-player-header)) !important;
    min-height: calc(100svh - var(--mobile-player-header)) !important;
    max-height: calc(100svh - var(--mobile-player-header)) !important;
  }

  html body.public-tv-layout.mobile-persistent-ui:not(.tv-app-experience) .public-player-panel,
  html body.public-tv-layout.mobile-persistent-ui:not(.tv-app-experience) #playerStage {
    height: 100% !important;
    min-height: 0 !important;
    max-height: 100% !important;
  }

  body.public-tv-layout:not(.tv-app-experience) .public-tv-topbar {
    position: sticky !important;
    top: 0 !important;
    width: 100% !important;
    max-width: 100% !important;
    min-height: 52px !important;
    margin: 0 !important;
    padding: 0 10px !important;
  }

  body.public-tv-layout:not(.tv-app-experience) .gp-top-info #gpNowTitle,
  body.public-tv-layout:not(.tv-app-experience) .gp-top-info > strong {
    font-size: 1.05rem !important;
    line-height: 1.15 !important;
  }

  body.public-tv-layout:not(.tv-app-experience) .gp-top-info #gpNowMeta,
  body.public-tv-layout:not(.tv-app-experience) .gp-top-info #gpNowTime,
  body.public-tv-layout:not(.tv-app-experience) .gp-top-info #gpNextMeta,
  body.public-tv-layout:not(.tv-app-experience) .gp-next-box em {
    font-size: .68rem !important;
  }
}

@media (max-width: 980px) {
  body.admin-ux-v2867.admin-dashboard-v2885 {
    width: 100% !important;
    padding-top: 58px !important;
    overflow-x: hidden !important;
  }

  body.admin-ux-v2867.admin-dashboard-v2885 .admin-mobile-topbar {
    position: fixed !important;
    inset: 0 0 auto 0 !important;
    width: 100% !important;
    max-width: none !important;
    height: 56px !important;
    margin: 0 !important;
    padding: 0 max(10px, env(safe-area-inset-right)) 0 max(10px, env(safe-area-inset-left)) !important;
    border: 0 !important;
    border-bottom: 1px solid rgba(255,255,255,.1) !important;
    border-radius: 0 !important;
    background: #0d1015 !important;
    box-shadow: 0 8px 24px rgba(0,0,0,.28) !important;
    z-index: 1000 !important;
  }

  body.admin-ux-v2867.admin-dashboard-v2885 .admin-mobile-topbar strong {
    min-width: 0 !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    white-space: nowrap !important;
    font-size: .92rem !important;
  }

  body.admin-ux-v2867.admin-dashboard-v2885 .admin-mobile-menu-btn,
  body.admin-ux-v2867.admin-dashboard-v2885 .admin-mobile-view-link {
    width: 40px !important;
    height: 40px !important;
    min-width: 40px !important;
    border-radius: 6px !important;
  }

  body.admin-ux-v2867.admin-dashboard-v2885 .admin-layout-pro {
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 12px 12px 32px !important;
  }

  body.admin-ux-v2867.admin-dashboard-v2885 .admin-sidebar.card,
  body.admin-ux-v2867.admin-dashboard-v2885 .admin-sidebar.card.is-open {
    position: fixed !important;
    top: 56px !important;
    left: 0 !important;
    bottom: 0 !important;
    width: min(300px, 86vw) !important;
    height: auto !important;
    margin: 0 !important;
    border-radius: 0 8px 8px 0 !important;
    z-index: 990 !important;
    pointer-events: auto !important;
    overflow-y: auto !important;
  }

  body.admin-ux-v2867.admin-dashboard-v2885 .admin-sidebar.card {
    transform: translateX(-105%) !important;
  }

  body.admin-ux-v2867.admin-dashboard-v2885 .admin-sidebar.card.is-open {
    transform: translateX(0) !important;
  }

  body.admin-ux-v2867.admin-dashboard-v2885 .admin-main {
    width: 100% !important;
    gap: 12px !important;
  }

  body.admin-ux-v2867.admin-dashboard-v2885 .admin-command-bar.card {
    top: 62px !important;
    border-radius: 8px !important;
  }
}

@media (max-width: 560px) {
  body.public-tv-layout:not(.tv-app-experience) .public-tv-topbar {
    min-height: 48px !important;
    padding: 0 8px !important;
  }

  body.public-tv-layout:not(.tv-app-experience) .tv-brand-copy h1 {
    max-width: calc(100vw - 112px) !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    white-space: nowrap !important;
    font-size: 1rem !important;
  }

  body.public-tv-layout:not(.tv-app-experience) .gp-top-info #gpNowTitle,
  body.public-tv-layout:not(.tv-app-experience) .gp-top-info > strong {
    font-size: .94rem !important;
    line-height: 1.18 !important;
  }

  body.public-tv-layout:not(.tv-app-experience) .gp-top-info #gpNowMeta,
  body.public-tv-layout:not(.tv-app-experience) .gp-top-info #gpNowTime,
  body.public-tv-layout:not(.tv-app-experience) .gp-top-info #gpNextMeta,
  body.public-tv-layout:not(.tv-app-experience) .gp-next-box em {
    font-size: .62rem !important;
  }

  body.admin-ux-v2867.admin-dashboard-v2885 .admin-layout-pro {
    padding-inline: 8px !important;
  }

  body.admin-ux-v2867.admin-dashboard-v2885 .admin-view-head h1,
  body.admin-ux-v2867.admin-dashboard-v2885 .admin-hero h1 {
    font-size: 1.25rem !important;
  }

  body.admin-ux-v2867.admin-dashboard-v2885 .admin-stats {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }

  body.admin-ux-v2867.admin-dashboard-v2885 .metric-card-pro {
    min-height: 96px !important;
    padding: 12px !important;
  }
}

@media (max-width: 360px) {
  body.admin-ux-v2867.admin-dashboard-v2885 .admin-stats {
    grid-template-columns: 1fr !important;
  }
}

@media (max-width: 980px) {
  [data-theme] .admin-hero {
    flex-direction: column;
  }
  [data-theme] .admin-hero-panel {
    width: 100%;
  }
  [data-theme] .admin-card-head {
    align-items: stretch;
    flex-direction: column;
  }
  [data-theme] .admin-table-search {
    min-width: 0;
  }
}

@media (max-width: 760px) {
  [data-theme].admin-body {
    padding: 10px;
  }
  [data-theme] .admin-sidebar {
    display: grid;
    grid-template-columns: 1fr;
    border-radius: 22px;
  }
  [data-theme] .sidebar-brand p {
    display: block;
  }
  [data-theme] .admin-nav {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  [data-theme] .sidebar-footer {
    width: 100%;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    border-top: 1px solid var(--sh-border);
    padding-top: 12px;
  }
  [data-theme] .admin-command-bar {
    top: 6px;
  }
  [data-theme] .admin-stats {
    grid-template-columns: 1fr;
  }
  [data-theme] .metric-card-pro {
    min-height: 118px;
  }
  [data-theme] .site-preview-grid,
  [data-theme] .field-grid,
  [data-theme] .admin-grid {
    grid-template-columns: 1fr;
  }
  [data-theme] .table-wrap {
    padding: 0 12px 16px;
  }
  [data-theme] table,
  [data-theme] thead,
  [data-theme] tbody,
  [data-theme] tr,
  [data-theme] th,
  [data-theme] td {
    display: block;
  }
  [data-theme] thead {
    display: none;
  }
  [data-theme] tr {
    margin-bottom: 12px;
    padding: 12px;
    border: 1px solid rgba(255,255,255,.08);
    border-radius: 20px;
    background: rgba(255,255,255,.045);
  }
  [data-theme] td {
    padding: 8px 0;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent;
  }
  [data-theme] .table-thumb {
    width: 100%;
    height: auto;
    max-height: 170px;
    aspect-ratio: 16 / 9;
  }
  [data-theme] .table-actions {
    display: grid;
    grid-template-columns: 1fr;
  }
  [data-theme] .table-actions .btn {
    width: 100%;
  }
}

@media (max-width: 480px) {
  [data-theme] .admin-nav {
    grid-template-columns: 1fr;
  }
  [data-theme] .sidebar-footer {
    grid-template-columns: 1fr;
  }
  [data-theme] .admin-quick-actions {
    display: grid;
  }
  [data-theme] .admin-quick-actions .btn {
    width: 100%;
  }
}

/* ===== v2.6.0 final estável ===== */
[data-theme] .global-notice{margin:0 var(--sh-page-edge,24px) 12px;padding:12px 18px;border:1px solid rgba(255,255,255,.14);border-radius:18px;background:rgba(255,255,255,.08);color:#fff;font-weight:700;backdrop-filter:blur(12px)}
[data-theme] .maintenance-box{max-width:720px;margin:10vh auto;padding:42px;text-align:center}
[data-theme] .epg-progress{position:absolute;left:22px;right:22px;bottom:calc(var(--sh-player-controls-offset, 136px) + 8px);height:5px;border-radius:999px;background:rgba(255,255,255,.18);overflow:hidden;z-index:7;pointer-events:none}
[data-theme] .epg-progress span{display:block;height:100%;width:0;background:linear-gradient(90deg,var(--sh-accent,#f42525),#fff);border-radius:999px;transition:width .25s ease}
[data-theme] .mini-section{padding:10px 0 12px;border-bottom:1px solid rgba(255,255,255,.08);margin-bottom:8px}
[data-theme] .mini-section h4{margin:0 0 8px;font-size:13px;color:rgba(255,255,255,.72);text-transform:uppercase;letter-spacing:.08em}
[data-theme] .quick-channel-list{display:flex;gap:8px;overflow-x:auto;scrollbar-width:thin;padding-bottom:4px}
[data-theme] .quick-channel-btn{border:1px solid rgba(255,255,255,.12);background:rgba(255,255,255,.08);color:#fff;border-radius:999px;padding:8px 12px;white-space:nowrap;cursor:pointer;font-weight:700}
[data-theme] .quick-channel-btn:hover{background:rgba(255,255,255,.16)}
[data-theme] .channel-card.offline{opacity:.58;filter:grayscale(.35)}
[data-theme] .channel-card.unstable{border-color:rgba(255,193,7,.35)}
[data-theme] .player-overlay{z-index:6}
[data-theme] .report-modal{position:fixed;inset:0;background:rgba(0,0,0,.68);z-index:999999;display:grid;place-items:center;padding:20px}
[data-theme] .report-modal[hidden]{display:none!important}
[data-theme] .report-card{width:min(520px,100%);padding:24px;background:rgba(18,18,18,.96)}
[data-theme] .report-card textarea{width:100%;border-radius:14px;border:1px solid rgba(255,255,255,.12);background:rgba(255,255,255,.06);color:#fff;padding:12px;resize:vertical}
[data-theme] .public-footer{display:flex;justify-content:center;gap:10px;color:rgba(255,255,255,.55);padding:28px 14px;font-size:13px}
[data-theme] .public-footer a{color:rgba(255,255,255,.78);text-decoration:none}
[data-theme] .btn.is-favorite{border-color:rgba(255,215,0,.45);box-shadow:0 0 0 1px rgba(255,215,0,.16) inset}
[data-theme] .switch-field{display:flex;flex-direction:column;gap:8px;border:1px solid rgba(255,255,255,.1);padding:14px;border-radius:16px;background:rgba(255,255,255,.04)}
[data-theme] .switch-field input{width:22px;height:22px}
[data-theme] .field-full{grid-column:1/-1}
[data-theme] .status-pill.warning{background:rgba(255,193,7,.14);color:#ffd86b;border:1px solid rgba(255,193,7,.35)}
[data-theme] .account-shell,.legal-page{max-width:720px}.legal-page p{white-space:pre-wrap;line-height:1.7;color:rgba(255,255,255,.78)}
@media (max-width: 760px){[data-theme] .epg-progress{left:14px;right:14px;bottom:120px}[data-theme] .player-actions .btn{font-size:12px;padding:9px 10px}}

/* ===== v2.6.1 correções: fonte alternativa configurada + modo cinema funcional ===== */
html.cinema-mode,
body.cinema-mode {
  width: 100%;
  height: 100%;
  overflow: hidden !important;
  background: #000 !important;
}
[data-theme].cinema-mode {
  --sh-page-edge: 0px;
}
[data-theme].cinema-mode .bg-glow,
[data-theme].cinema-mode .global-notice,
[data-theme].cinema-mode .mini-section {
  display: none !important;
}
[data-theme].cinema-mode .player-stage,
[data-theme].cinema-mode #mainVideo,
[data-theme].cinema-mode #mainFrame {
  width: 100% !important;
  height: 100% !important;
  max-height: none !important;
}
[data-theme].cinema-mode .player-actions-row,
[data-theme].cinema-mode .player-info-row {
  z-index: 30;
}

/* ===== v2.6.5 - Ações do player visíveis e responsivas no smartphone ===== */
@media (max-width: 760px) {
  [data-theme] .player-actions-row {
    display: flex !important;
    position: absolute;
    left: 12px;
    right: 12px;
    bottom: calc(clamp(104px, 18vh, 132px) + 22px);
    z-index: 9;
    width: auto;
    max-width: none;
    margin: 0;
    align-items: center;
    justify-content: flex-start;
    pointer-events: auto;
  }

  [data-theme] .player-actions {
    width: 100%;
    max-width: 100%;
    display: flex;
    align-items: center;
    gap: 7px;
    overflow-x: auto;
    overflow-y: hidden;
    flex-wrap: nowrap;
    padding: 4px 2px 9px;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
    touch-action: pan-x;
  }

  [data-theme] .player-actions::-webkit-scrollbar {
    display: none;
  }

  [data-theme] .player-actions .btn {
    flex: 0 0 auto;
    min-height: 38px;
    padding: 9px 12px;
    border-radius: 999px;
    font-size: 12px;
    line-height: 1;
    white-space: nowrap;
    backdrop-filter: blur(16px);
    -webkit-backdrop-filter: blur(16px);
    box-shadow: 0 10px 24px rgba(0,0,0,.22);
  }

  [data-theme] .player-actions .btn-primary {
    padding-inline: 14px;
  }

  [data-theme] .player-actions .btn-report {
    width: 38px;
    min-width: 38px;
    height: 38px;
    padding: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 16px;
    font-weight: 900;
  }

  [data-theme] .player-actions-row .status-label {
    display: none !important;
  }

  [data-theme] .epg-progress {
    left: 14px;
    right: 14px;
    bottom: calc(clamp(104px, 18vh, 132px) + 76px);
  }

  [data-theme] .sidebar {
    bottom: 10px;
  }
}

@media (max-width: 380px) {
  [data-theme] .player-actions-row {
    left: 10px;
    right: 10px;
    bottom: calc(96px + 18px);
  }

  [data-theme] .player-actions .btn {
    min-height: 36px;
    padding: 8px 10px;
    font-size: 11px;
  }

  [data-theme] .player-actions .btn-report {
    width: 36px;
    min-width: 36px;
    height: 36px;
    font-size: 15px;
  }
}

/* ===== v2.6.6 - Topbar minimalista e ações mobile fixas ===== */
[data-theme] .topbar {
  min-height: 58px;
  padding: 8px clamp(10px, 2.4vw, 26px);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}

[data-theme] .brand-wrap {
  display: flex;
  align-items: center;
  gap: 9px;
  min-width: 0;
}

[data-theme] .brand-logo {
  width: 34px;
  height: 34px;
  min-width: 34px;
  border-radius: 10px;
  font-size: .86rem;
}

[data-theme] .brand-wrap h1,
[data-theme] .brand-wrap h2 {
  margin: 0;
  font-size: clamp(1rem, 1.7vw, 1.22rem);
  line-height: 1.05;
  white-space: nowrap;
}

[data-theme] .brand-wrap p {
  margin: 2px 0 0;
  font-size: .72rem;
  line-height: 1;
  white-space: nowrap;
}

[data-theme] .topbar-actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 8px;
  min-width: 0;
}

[data-theme] .topbar-actions .btn {
  min-height: 36px;
  padding: 9px 14px;
  border-radius: 999px;
  font-size: .82rem;
  white-space: nowrap;
}

[data-theme] .search-box {
  min-width: min(330px, 42vw);
  width: min(420px, 42vw);
}

[data-theme] .search-box input {
  min-height: 36px;
  height: 36px;
  padding: 0 13px;
  border-radius: 999px;
  font-size: .82rem;
}

@media (max-width: 760px) {
  body[data-theme] {
    --sh-header-height: 92px;
  }

  [data-theme] .topbar {
    min-height: var(--sh-header-height);
    padding: 8px 10px;
    flex-wrap: wrap;
    align-content: center;
    gap: 7px 8px;
  }

  [data-theme] .brand-wrap {
    flex: 1 1 auto;
    max-width: calc(100% - 74px);
  }

  [data-theme] .brand-logo {
    width: 30px;
    height: 30px;
    min-width: 30px;
    border-radius: 9px;
    font-size: .78rem;
  }

  [data-theme] .brand-wrap h1,
  [data-theme] .brand-wrap h2 {
    font-size: .98rem;
    max-width: 48vw;
    overflow: hidden;
    text-overflow: ellipsis;
  }

  [data-theme] .brand-wrap p {
    display: block !important;
    font-size: .66rem;
    max-width: 48vw;
    overflow: hidden;
    text-overflow: ellipsis;
  }

  [data-theme] .topbar-actions {
    flex: 1 0 100%;
    width: 100%;
    gap: 7px;
  }

  [data-theme] .search-box {
    flex: 1 1 auto;
    width: auto;
    min-width: 0;
  }

  [data-theme] .search-box input {
    height: 34px;
    min-height: 34px;
    padding: 0 11px;
    font-size: .76rem;
  }

  [data-theme] .topbar-actions .btn {
    min-height: 34px;
    padding: 8px 11px;
    font-size: .76rem;
  }

  /* No celular as ações do player ficam sempre disponíveis acima da lista de canais. */
  [data-theme] .player-actions-row,
  body[data-theme].player-ui-hidden .player-actions-row,
  body[data-theme].player-ui-visible .player-actions-row {
    display: flex !important;
    opacity: 1 !important;
    visibility: visible !important;
    pointer-events: auto !important;
    transform: none !important;
    position: absolute !important;
    left: 10px !important;
    right: 10px !important;
    bottom: calc(clamp(100px, 18vh, 126px) + 18px) !important;
    z-index: 60 !important;
    width: auto !important;
    max-width: none !important;
    margin: 0 !important;
  }

  [data-theme] .player-actions {
    width: 100%;
    display: flex !important;
    gap: 6px;
    overflow-x: auto;
    overflow-y: hidden;
    padding: 3px 1px 8px;
    flex-wrap: nowrap;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
  }

  [data-theme] .player-actions .btn {
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    min-height: 34px;
    padding: 8px 10px;
    font-size: 11px;
    line-height: 1;
    border-radius: 999px;
    white-space: nowrap;
  }

  [data-theme] .player-actions .btn-report {
    width: 34px;
    min-width: 34px;
    height: 34px;
    padding: 0;
    font-size: 14px;
  }

  [data-theme] .player-actions-row .status-label {
    display: none !important;
  }
}

@media (max-width: 380px) {
  body[data-theme] { --sh-header-height: 88px; }
  [data-theme] .brand-wrap h1,
  [data-theme] .brand-wrap h2,
  [data-theme] .brand-wrap p { max-width: 42vw; }
  [data-theme] .player-actions .btn { min-height: 32px; padding: 7px 9px; font-size: 10.5px; }
  [data-theme] .player-actions .btn-report { width: 32px; min-width: 32px; height: 32px; }
}

/* ===== v2.6.7 - Topbar e botões compactos por ícones no smartphone ===== */
[data-theme] .btn-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  line-height: 1;
}

[data-theme] .btn-label {
  display: inline-flex;
  align-items: center;
}

[data-theme] .topbar-btn .btn-icon,
[data-theme] .player-actions .btn-icon {
  margin-right: 6px;
}

@media (max-width: 760px) {
  body[data-theme] {
    --sh-header-height: 58px;
  }

  [data-theme] .topbar {
    min-height: var(--sh-header-height) !important;
    height: auto;
    padding: 7px 8px !important;
    flex-wrap: nowrap !important;
    gap: 6px !important;
    align-items: center;
  }

  [data-theme] .brand-wrap {
    flex: 0 1 auto;
    max-width: 38vw !important;
    gap: 6px;
  }

  [data-theme] .brand-logo {
    width: 26px !important;
    height: 26px !important;
    min-width: 26px !important;
    border-radius: 8px !important;
    font-size: .68rem !important;
  }

  [data-theme] .brand-wrap h1,
  [data-theme] .brand-wrap h2 {
    max-width: 28vw !important;
    font-size: .82rem !important;
    line-height: 1 !important;
  }

  [data-theme] .brand-wrap p {
    display: none !important;
  }

  [data-theme] .topbar-actions {
    flex: 1 1 auto !important;
    width: auto !important;
    min-width: 0;
    gap: 5px !important;
    justify-content: flex-end;
  }

  [data-theme] .role-badge {
    display: none !important;
  }

  [data-theme] .search-box {
    flex: 1 1 auto;
    min-width: 0 !important;
    width: auto !important;
    max-width: 46vw;
  }

  [data-theme] .search-box input {
    height: 30px !important;
    min-height: 30px !important;
    padding: 0 10px !important;
    font-size: .70rem !important;
  }

  [data-theme] .topbar-actions .btn {
    width: 31px !important;
    min-width: 31px !important;
    height: 31px !important;
    min-height: 31px !important;
    padding: 0 !important;
    border-radius: 50% !important;
    font-size: .82rem !important;
    gap: 0 !important;
  }

  [data-theme] .topbar-actions .btn .btn-icon,
  [data-theme] .player-actions .btn .btn-icon {
    margin: 0 !important;
  }

  [data-theme] .topbar-actions .btn .btn-label {
    display: none !important;
  }

  [data-theme] .player-actions-row,
  body[data-theme].player-ui-hidden .player-actions-row,
  body[data-theme].player-ui-visible .player-actions-row {
    bottom: calc(clamp(92px, 17vh, 116px) + 10px) !important;
    left: 8px !important;
    right: 8px !important;
  }

  [data-theme] .player-actions {
    justify-content: center;
    gap: 7px !important;
    padding: 2px 0 5px !important;
  }

  [data-theme] .player-actions .btn {
    width: 36px !important;
    min-width: 36px !important;
    height: 36px !important;
    min-height: 36px !important;
    padding: 0 !important;
    border-radius: 50% !important;
    font-size: 15px !important;
    box-shadow: 0 10px 22px rgba(0,0,0,.28);
  }

  [data-theme] .player-actions .btn .btn-label {
    display: none !important;
  }

  [data-theme] .player-actions .btn-report {
    width: 32px !important;
    min-width: 32px !important;
    height: 32px !important;
    min-height: 32px !important;
    font-size: 13px !important;
  }
}

@media (max-width: 420px) {
  [data-theme] .brand-wrap {
    max-width: 32vw !important;
  }

  [data-theme] .brand-wrap h1,
  [data-theme] .brand-wrap h2 {
    max-width: 21vw !important;
  }

  [data-theme] .search-box {
    max-width: 44vw;
  }

  [data-theme] .topbar-actions .btn {
    width: 30px !important;
    min-width: 30px !important;
    height: 30px !important;
    min-height: 30px !important;
  }

  [data-theme] .player-actions .btn {
    width: 34px !important;
    min-width: 34px !important;
    height: 34px !important;
    min-height: 34px !important;
  }
}

/* ===== v2.6.8 - Navbar mobile horizontal, pequena e minimalista ===== */
@media (max-width: 760px) and (orientation: portrait) {
  body[data-theme] {
    --sh-header-height: 46px;
  }

  [data-theme] .topbar {
    height: var(--sh-header-height) !important;
    min-height: var(--sh-header-height) !important;
    max-height: var(--sh-header-height) !important;
    padding: 5px 7px !important;
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: nowrap !important;
    align-items: center !important;
    justify-content: flex-start !important;
    gap: 6px !important;
    overflow: hidden !important;
  }

  [data-theme] .brand-wrap {
    flex: 0 0 auto !important;
    width: auto !important;
    max-width: 31vw !important;
    min-width: 0 !important;
    gap: 5px !important;
  }

  [data-theme] .brand-logo {
    width: 24px !important;
    min-width: 24px !important;
    height: 24px !important;
    border-radius: 7px !important;
    font-size: .62rem !important;
  }

  [data-theme] .brand-wrap > div:last-child {
    min-width: 0 !important;
  }

  [data-theme] .brand-wrap h1,
  [data-theme] .brand-wrap h2 {
    max-width: 22vw !important;
    font-size: .76rem !important;
    line-height: 1 !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    white-space: nowrap !important;
  }

  [data-theme] .brand-wrap p {
    display: none !important;
  }

  [data-theme] .topbar-actions {
    flex: 1 1 auto !important;
    min-width: 0 !important;
    width: auto !important;
    max-width: none !important;
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: nowrap !important;
    align-items: center !important;
    justify-content: flex-start !important;
    gap: 5px !important;
    overflow-x: auto !important;
    overflow-y: hidden !important;
    -webkit-overflow-scrolling: touch !important;
    scrollbar-width: none !important;
    padding: 0 !important;
  }

  [data-theme] .topbar-actions::-webkit-scrollbar {
    display: none !important;
  }

  [data-theme] .search-box {
    flex: 1 1 44vw !important;
    min-width: 92px !important;
    max-width: 48vw !important;
    width: auto !important;
  }

  [data-theme] .search-box input {
    width: 100% !important;
    height: 29px !important;
    min-height: 29px !important;
    padding: 0 9px !important;
    border-radius: 999px !important;
    font-size: .68rem !important;
  }

  [data-theme] .search-box input::placeholder {
    font-size: .68rem !important;
  }

  [data-theme] .topbar-actions .btn,
  [data-theme] .topbar-btn {
    flex: 0 0 29px !important;
    width: 29px !important;
    min-width: 29px !important;
    max-width: 29px !important;
    height: 29px !important;
    min-height: 29px !important;
    max-height: 29px !important;
    padding: 0 !important;
    border-radius: 50% !important;
    font-size: .78rem !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
  }

  [data-theme] .topbar-actions .btn .btn-label {
    display: none !important;
  }

  [data-theme] .topbar-actions .btn .btn-icon {
    margin: 0 !important;
    font-size: .78rem !important;
  }

  [data-theme] .role-badge {
    display: none !important;
  }
}

@media (max-width: 390px) and (orientation: portrait) {
  body[data-theme] {
    --sh-header-height: 42px;
  }

  [data-theme] .topbar {
    padding: 4px 6px !important;
    gap: 4px !important;
  }

  [data-theme] .brand-wrap {
    max-width: 28vw !important;
  }

  [data-theme] .brand-logo {
    width: 22px !important;
    min-width: 22px !important;
    height: 22px !important;
    border-radius: 6px !important;
  }

  [data-theme] .brand-wrap h1,
  [data-theme] .brand-wrap h2 {
    max-width: 18vw !important;
    font-size: .70rem !important;
  }

  [data-theme] .search-box {
    min-width: 86px !important;
    max-width: 50vw !important;
  }

  [data-theme] .search-box input {
    height: 27px !important;
    min-height: 27px !important;
    padding: 0 8px !important;
    font-size: .64rem !important;
  }

  [data-theme] .topbar-actions .btn,
  [data-theme] .topbar-btn {
    flex-basis: 27px !important;
    width: 27px !important;
    min-width: 27px !important;
    max-width: 27px !important;
    height: 27px !important;
    min-height: 27px !important;
    max-height: 27px !important;
  }
}

/* ===== v2.6.9 - Correção de cache e ícones estáveis ===== */
[data-theme] .brand-logo,
[data-theme] .btn-icon {
  font-family: Arial, Helvetica, sans-serif !important;
  font-variant-emoji: text;
  text-rendering: geometricPrecision;
}

[data-theme] .topbar-actions .btn .btn-icon,
[data-theme] .player-actions .btn .btn-icon {
  width: 1em;
  min-width: 1em;
  height: 1em;
  line-height: 1;
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
}

@media (max-width: 760px) {
  [data-theme] .topbar-actions .btn .btn-icon,
  [data-theme] .player-actions .btn .btn-icon {
    font-weight: 800;
    color: currentColor;
  }

  [data-theme] .topbar-actions .btn,
  [data-theme] .player-actions .btn {
    overflow: hidden;
  }
}

/* ===== v2.7.0 - Layout vertical inspirado em app mobile =====
   Em smartphones na vertical, o site deixa de tentar ocupar 100vh com overlay grande.
   Fica como app: navbar pequena, player 16:9 no topo e carrossel horizontal abaixo. */
@media (max-width: 760px) and (orientation: portrait) {
  html,
  body[data-theme] {
    width: 100%;
    max-width: 100%;
    overflow-x: hidden !important;
    background: #000 !important;
  }

  body[data-theme] {
    --sh-header-height: calc(54px + env(safe-area-inset-top, 0px));
  }

  [data-theme] .bg-glow,
  [data-theme] .global-notice {
    display: none !important;
  }

  [data-theme] .topbar {
    position: sticky !important;
    top: 0 !important;
    z-index: 80 !important;
    height: var(--sh-header-height) !important;
    min-height: var(--sh-header-height) !important;
    max-height: var(--sh-header-height) !important;
    padding: env(safe-area-inset-top, 0px) 10px 0 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    background: #000 !important;
    border: 0 !important;
    border-radius: 0 !important;
    overflow: visible !important;
  }

  [data-theme] .brand-wrap {
    position: absolute !important;
    left: 50% !important;
    top: env(safe-area-inset-top, 0px) !important;
    bottom: 0 !important;
    transform: translateX(-50%) !important;
    width: min(58vw, 270px) !important;
    max-width: min(58vw, 270px) !important;
    display: flex !important;
    justify-content: center !important;
    align-items: center !important;
    pointer-events: none !important;
    z-index: 1 !important;
  }

  [data-theme] .brand-logo {
    display: none !important;
  }

  [data-theme] .brand-wrap h1,
  [data-theme] .brand-wrap h2 {
    max-width: 58vw !important;
    font-size: clamp(1.18rem, 7vw, 1.78rem) !important;
    line-height: 1 !important;
    letter-spacing: -.055em !important;
    text-align: center !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    white-space: nowrap !important;
  }

  [data-theme] .brand-wrap p,
  [data-theme] .role-badge {
    display: none !important;
  }

  [data-theme] .topbar-actions {
    position: relative !important;
    z-index: 2 !important;
    width: 100% !important;
    max-width: 100% !important;
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    gap: 8px !important;
    overflow: visible !important;
    padding: 0 !important;
  }

  [data-theme] .topbar-actions .btn,
  [data-theme] .topbar-btn {
    order: 1 !important;
    flex: 0 0 38px !important;
    width: 38px !important;
    min-width: 38px !important;
    max-width: 38px !important;
    height: 38px !important;
    min-height: 38px !important;
    max-height: 38px !important;
    border-radius: 50% !important;
    padding: 0 !important;
    font-size: 0 !important;
    background: rgba(255,255,255,.14) !important;
    border: 0 !important;
    color: #fff !important;
    backdrop-filter: blur(8px);
  }

  [data-theme] .topbar-actions .btn .btn-icon {
    font-size: 1rem !important;
    margin: 0 !important;
  }

  [data-theme] .topbar-actions .btn .btn-label {
    display: none !important;
  }

  [data-theme] .search-box {
    order: 3 !important;
    flex: 0 0 38px !important;
    width: 38px !important;
    min-width: 38px !important;
    max-width: 38px !important;
    height: 38px !important;
    position: relative !important;
    z-index: 5 !important;
  }

  [data-theme] .search-box::before {
    content: "⌕";
    position: absolute;
    inset: 0;
    display: grid;
    place-items: center;
    color: #fff;
    font-size: 1.2rem;
    font-weight: 900;
    pointer-events: none;
    z-index: 2;
  }

  [data-theme] .search-box input {
    width: 38px !important;
    height: 38px !important;
    min-height: 38px !important;
    border-radius: 50% !important;
    padding: 0 !important;
    color: transparent !important;
    caret-color: transparent !important;
    background: rgba(255,255,255,.14) !important;
    border: 0 !important;
    box-shadow: none !important;
  }

  [data-theme] .search-box input::placeholder {
    color: transparent !important;
  }

  [data-theme] .search-box:focus-within {
    position: absolute !important;
    left: 52px !important;
    right: 52px !important;
    top: calc(env(safe-area-inset-top, 0px) + 8px) !important;
    width: auto !important;
    max-width: none !important;
    height: 38px !important;
  }

  [data-theme] .search-box:focus-within::before {
    left: 12px;
    right: auto;
    width: 18px;
    font-size: 1rem;
  }

  [data-theme] .search-box:focus-within input {
    width: 100% !important;
    border-radius: 999px !important;
    padding: 0 14px 0 36px !important;
    color: #fff !important;
    caret-color: #fff !important;
    background: rgba(24,24,24,.96) !important;
    border: 1px solid rgba(255,255,255,.14) !important;
  }

  [data-theme] .search-box:focus-within input::placeholder {
    color: rgba(255,255,255,.58) !important;
  }

  [data-theme] .page-grid {
    height: auto !important;
    min-height: 0 !important;
    display: block !important;
    overflow: visible !important;
    padding: 0 !important;
    margin: 0 !important;
    background: #1c1c1c !important;
  }

  [data-theme] .player-panel {
    height: auto !important;
    min-height: 0 !important;
    padding: 0 !important;
    overflow: visible !important;
    background: #000 !important;
  }

  [data-theme] .player-stage {
    position: relative !important;
    inset: auto !important;
    width: 100% !important;
    height: auto !important;
    min-height: 0 !important;
    aspect-ratio: 16 / 9 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    background: #050505 !important;
  }

  [data-theme] .player-stage::after {
    background: linear-gradient(180deg, rgba(0,0,0,.14) 0%, rgba(0,0,0,0) 48%, rgba(0,0,0,.38) 100%) !important;
  }

  [data-theme] .player-stage > video,
  [data-theme] .player-stage > iframe {
    width: 100% !important;
    height: 100% !important;
    object-fit: contain !important;
    background: #000 !important;
  }

  [data-theme] .player-panel > .section-head,
  body[data-theme].player-ui-hidden .player-panel > .section-head,
  body[data-theme].player-ui-visible .player-panel > .section-head {
    position: absolute !important;
    top: 10px !important;
    left: 10px !important;
    right: auto !important;
    width: auto !important;
    margin: 0 !important;
    padding: 0 !important;
    opacity: 1 !important;
    visibility: visible !important;
    pointer-events: none !important;
    transform: none !important;
    z-index: 12 !important;
  }

  [data-theme] .player-panel > .section-head h2,
  [data-theme] .player-panel > .section-head p,
  [data-theme] .viewer-badge {
    display: none !important;
  }

  [data-theme] .live-pill {
    display: inline-flex !important;
    align-items: center !important;
    min-height: 24px !important;
    padding: 4px 8px !important;
    border-radius: 7px !important;
    font-size: .70rem !important;
    box-shadow: 0 8px 18px rgba(0,0,0,.35);
  }

  [data-theme] .player-actions-row,
  body[data-theme].player-ui-hidden .player-actions-row,
  body[data-theme].player-ui-visible .player-actions-row {
    position: absolute !important;
    left: 10px !important;
    right: 10px !important;
    bottom: 8px !important;
    width: auto !important;
    margin: 0 !important;
    padding: 0 !important;
    opacity: 1 !important;
    visibility: visible !important;
    pointer-events: auto !important;
    transform: none !important;
    z-index: 13 !important;
  }

  [data-theme] .player-actions {
    justify-content: flex-end !important;
    gap: 6px !important;
    padding: 0 !important;
    overflow-x: auto !important;
    scrollbar-width: none !important;
  }

  [data-theme] .player-actions::-webkit-scrollbar {
    display: none !important;
  }

  [data-theme] .player-actions .btn {
    width: 32px !important;
    min-width: 32px !important;
    height: 32px !important;
    min-height: 32px !important;
    border-radius: 50% !important;
    padding: 0 !important;
    background: rgba(0,0,0,.52) !important;
    border: 1px solid rgba(255,255,255,.16) !important;
    color: #fff !important;
    box-shadow: 0 8px 18px rgba(0,0,0,.28) !important;
  }

  [data-theme] .player-actions .btn .btn-label {
    display: none !important;
  }

  [data-theme] .player-actions .btn .btn-icon {
    font-size: .94rem !important;
  }

  [data-theme] .player-actions .btn-report {
    width: 30px !important;
    min-width: 30px !important;
    height: 30px !important;
    min-height: 30px !important;
  }

  [data-theme] .player-actions-row .status-label,
  [data-theme] .player-hover-zone,
  [data-theme] .epg-progress {
    display: none !important;
  }

  [data-theme] .sidebar,
  body[data-theme].player-ui-hidden .sidebar,
  body[data-theme].player-ui-visible .sidebar {
    position: relative !important;
    left: auto !important;
    right: auto !important;
    bottom: auto !important;
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
    padding: 10px 0 12px 12px !important;
    overflow: hidden !important;
    opacity: 1 !important;
    visibility: visible !important;
    pointer-events: auto !important;
    transform: none !important;
    z-index: 1 !important;
    background: #1c1c1c !important;
  }

  [data-theme] .sidebar .section-head.compact,
  [data-theme] .mini-section {
    display: none !important;
  }

  [data-theme] .channel-list {
    width: 100% !important;
    max-width: 100% !important;
    max-height: none !important;
    padding: 0 12px 4px 0 !important;
    gap: 10px !important;
    overflow-x: auto !important;
    overflow-y: hidden !important;
    scroll-snap-type: x mandatory !important;
    scrollbar-width: none !important;
    -webkit-overflow-scrolling: touch !important;
    touch-action: pan-x !important;
  }

  [data-theme] .channel-list::-webkit-scrollbar {
    display: none !important;
  }

  [data-theme] .channel-card {
    flex: 0 0 min(78vw, 330px) !important;
    width: min(78vw, 330px) !important;
    height: clamp(142px, 42vw, 188px) !important;
    border-radius: 14px !important;
    scroll-snap-align: start !important;
    box-shadow: 0 10px 22px rgba(0,0,0,.38) !important;
  }

  [data-theme] .channel-card.active {
    border-color: rgba(255,255,255,.22) !important;
  }

  [data-theme] .channel-info {
    left: 16px !important;
    right: 16px !important;
    bottom: 22px !important;
  }

  [data-theme] .channel-info strong {
    font-size: clamp(1.05rem, 5vw, 1.35rem) !important;
    line-height: 1.05 !important;
  }

  [data-theme] .channel-info span {
    display: block !important;
    font-size: .74rem !important;
    margin-top: 3px !important;
    color: rgba(255,255,255,.72) !important;
  }

  [data-theme] .channel-info small {
    display: none !important;
  }

  [data-theme] .channel-card::before {
    left: 16px !important;
    right: 16px !important;
    bottom: 12px !important;
    height: 3px !important;
  }
}

@media (max-width: 390px) and (orientation: portrait) {
  body[data-theme] {
    --sh-header-height: calc(50px + env(safe-area-inset-top, 0px));
  }

  [data-theme] .topbar-actions .btn,
  [data-theme] .topbar-btn,
  [data-theme] .search-box,
  [data-theme] .search-box input {
    width: 35px !important;
    min-width: 35px !important;
    max-width: 35px !important;
    height: 35px !important;
    min-height: 35px !important;
    max-height: 35px !important;
  }

  [data-theme] .brand-wrap h1,
  [data-theme] .brand-wrap h2 {
    font-size: clamp(1.05rem, 6.7vw, 1.52rem) !important;
  }

  [data-theme] .channel-card {
    flex-basis: 80vw !important;
    width: 80vw !important;
    height: clamp(132px, 42vw, 170px) !important;
  }
}

/* ===== v2.7.1 - Navbar vertical mobile como padrão visual do site =====
   Mantém o layout mobile aprovado, mas usa cores/raios do tema e preserva a identidade cadastrada no painel. */
@media (max-width: 760px) and (orientation: portrait) {
  body[data-theme] {
    --sh-header-height: calc(54px + env(safe-area-inset-top, 0px));
  }

  [data-theme] .topbar {
    position: sticky !important;
    top: 0 !important;
    z-index: 100 !important;
    height: var(--sh-header-height) !important;
    min-height: var(--sh-header-height) !important;
    max-height: var(--sh-header-height) !important;
    padding: env(safe-area-inset-top, 0px) 10px 0 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    background: var(--sh-topbar-bg, rgba(0, 0, 0, .96)) !important;
    border: 0 !important;
    border-radius: 0 !important;
    box-shadow: 0 8px 20px rgba(0,0,0,.28) !important;
    overflow: visible !important;
    backdrop-filter: blur(14px) !important;
  }

  [data-theme] .brand-wrap {
    position: absolute !important;
    left: 50% !important;
    top: env(safe-area-inset-top, 0px) !important;
    bottom: 0 !important;
    transform: translateX(-50%) !important;
    width: min(48vw, 260px) !important;
    max-width: min(48vw, 260px) !important;
    min-width: 0 !important;
    display: flex !important;
    justify-content: center !important;
    align-items: center !important;
    gap: 7px !important;
    pointer-events: none !important;
    z-index: 1 !important;
  }

  [data-theme] .brand-logo {
    display: inline-flex !important;
    width: 26px !important;
    min-width: 26px !important;
    height: 26px !important;
    border-radius: 9px !important;
    font-size: .74rem !important;
    background: linear-gradient(135deg, var(--sh-accent), var(--sh-accent-2)) !important;
    color: #fff !important;
    box-shadow: 0 8px 18px rgba(0,0,0,.26) !important;
  }

  [data-theme] .brand-wrap > div:last-child {
    min-width: 0 !important;
  }

  [data-theme] .brand-wrap h1,
  [data-theme] .brand-wrap h2 {
    max-width: 34vw !important;
    font-size: clamp(1rem, 5.3vw, 1.42rem) !important;
    line-height: 1 !important;
    letter-spacing: -.045em !important;
    text-align: left !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    white-space: nowrap !important;
  }

  [data-theme] .brand-wrap p,
  [data-theme] .role-badge {
    display: none !important;
  }

  [data-theme] .topbar-actions {
    position: relative !important;
    z-index: 2 !important;
    width: 100% !important;
    max-width: 100% !important;
    height: 100% !important;
    display: flex !important;
    align-items: center !important;
    justify-content: flex-start !important;
    gap: 7px !important;
    overflow: visible !important;
    padding: 0 !important;
  }

  [data-theme] .topbar-actions .btn,
  [data-theme] .topbar-btn {
    order: 1 !important;
    flex: 0 0 38px !important;
    width: 38px !important;
    min-width: 38px !important;
    max-width: 38px !important;
    height: 38px !important;
    min-height: 38px !important;
    max-height: 38px !important;
    border-radius: 50% !important;
    padding: 0 !important;
    font-size: 0 !important;
    background: rgba(255,255,255,.12) !important;
    border: 1px solid rgba(255,255,255,.08) !important;
    color: #fff !important;
    box-shadow: none !important;
    backdrop-filter: blur(8px) !important;
  }

  [data-theme] .topbar-actions .btn .btn-icon {
    font-size: 1rem !important;
    margin: 0 !important;
  }

  [data-theme] .topbar-actions .btn .btn-label {
    display: none !important;
  }

  [data-theme] .search-box {
    order: 9 !important;
    flex: 0 0 38px !important;
    width: 38px !important;
    min-width: 38px !important;
    max-width: 38px !important;
    height: 38px !important;
    position: relative !important;
    margin-left: auto !important;
    z-index: 5 !important;
  }

  [data-theme] .search-box::before {
    content: "⌕";
    position: absolute;
    inset: 0;
    display: grid;
    place-items: center;
    color: #fff;
    font-size: 1.18rem;
    font-weight: 900;
    pointer-events: none;
    z-index: 2;
  }

  [data-theme] .search-box input {
    width: 38px !important;
    min-width: 38px !important;
    height: 38px !important;
    min-height: 38px !important;
    border-radius: 50% !important;
    padding: 0 !important;
    color: transparent !important;
    caret-color: transparent !important;
    background: rgba(255,255,255,.12) !important;
    border: 1px solid rgba(255,255,255,.08) !important;
    box-shadow: none !important;
  }

  [data-theme] .search-box input::placeholder {
    color: transparent !important;
  }

  [data-theme] .search-box:focus-within {
    position: absolute !important;
    left: 54px !important;
    right: 54px !important;
    top: calc(env(safe-area-inset-top, 0px) + 8px) !important;
    width: auto !important;
    max-width: none !important;
    height: 38px !important;
    margin-left: 0 !important;
  }

  [data-theme] .search-box:focus-within::before {
    left: 12px;
    right: auto;
    width: 18px;
    font-size: 1rem;
  }

  [data-theme] .search-box:focus-within input {
    width: 100% !important;
    max-width: 100% !important;
    border-radius: 999px !important;
    padding: 0 14px 0 36px !important;
    color: #fff !important;
    caret-color: #fff !important;
    background: rgba(16,16,16,.98) !important;
    border: 1px solid rgba(255,255,255,.14) !important;
  }

  [data-theme] .search-box:focus-within input::placeholder {
    color: rgba(255,255,255,.58) !important;
  }
}

@media (max-width: 390px) and (orientation: portrait) {
  body[data-theme] {
    --sh-header-height: calc(50px + env(safe-area-inset-top, 0px));
  }

  [data-theme] .topbar {
    padding-left: 8px !important;
    padding-right: 8px !important;
  }

  [data-theme] .brand-wrap {
    width: min(46vw, 210px) !important;
    max-width: min(46vw, 210px) !important;
    gap: 5px !important;
  }

  [data-theme] .brand-logo {
    width: 23px !important;
    min-width: 23px !important;
    height: 23px !important;
    border-radius: 8px !important;
    font-size: .66rem !important;
  }

  [data-theme] .brand-wrap h1,
  [data-theme] .brand-wrap h2 {
    max-width: 31vw !important;
    font-size: clamp(.92rem, 5vw, 1.20rem) !important;
  }

  [data-theme] .topbar-actions {
    gap: 5px !important;
  }

  [data-theme] .topbar-actions .btn,
  [data-theme] .topbar-btn,
  [data-theme] .search-box,
  [data-theme] .search-box input {
    width: 35px !important;
    min-width: 35px !important;
    max-width: 35px !important;
    height: 35px !important;
    min-height: 35px !important;
    max-height: 35px !important;
  }
}

/* ===== v2.7.2 - Layout mobile final baseado nas referências enviadas =====
   Mantém o padrão do site, mas em celulares verticais usa experiência de app:
   navbar compacta, player 16:9 no topo, informações abaixo e trilho de canais horizontal. */
[data-theme] .category-tabs {
  display: flex;
  align-items: center;
  gap: 12px;
  width: 100%;
  overflow-x: auto;
  overflow-y: hidden;
  padding: 0 var(--sh-page-edge, 24px) 12px;
  scrollbar-width: none;
  -webkit-overflow-scrolling: touch;
  scroll-snap-type: x proximity;
}
[data-theme] .category-tabs::-webkit-scrollbar { display: none; }
[data-theme] .category-tab {
  flex: 0 0 auto;
  min-height: 44px;
  padding: 0 18px;
  border: 0;
  border-radius: 14px;
  background: rgba(255,255,255,.12);
  color: rgba(255,255,255,.88);
  font: inherit;
  font-weight: 900;
  cursor: pointer;
  scroll-snap-align: start;
  transition: transform .18s ease, background .18s ease, color .18s ease;
}
[data-theme] .category-tab:hover { transform: translateY(-1px); background: rgba(255,255,255,.18); }
[data-theme] .category-tab.active { background: #fff; color: #161616; }

@media (max-width: 760px) and (orientation: portrait) {
  html,
  body[data-theme] {
    min-height: 100%;
    background: #1f1f1f !important;
    overflow-x: hidden !important;
  }

  body[data-theme] {
    --sh-header-height: calc(54px + env(safe-area-inset-top, 0px));
  }

  [data-theme] .topbar {
    height: var(--sh-header-height) !important;
    min-height: var(--sh-header-height) !important;
    padding: env(safe-area-inset-top, 0px) 14px 0 !important;
    background: #050505 !important;
    border-bottom: 1px solid rgba(255,255,255,.04) !important;
    box-shadow: none !important;
  }

  [data-theme] .brand-wrap {
    width: min(54vw, 260px) !important;
    max-width: min(54vw, 260px) !important;
    gap: 0 !important;
    justify-content: center !important;
  }

  [data-theme] .brand-logo { display: none !important; }

  [data-theme] .brand-wrap h1,
  [data-theme] .brand-wrap h2 {
    max-width: 54vw !important;
    font-size: clamp(1.08rem, 6vw, 1.62rem) !important;
    line-height: 1 !important;
    letter-spacing: -.055em !important;
    text-align: center !important;
    font-weight: 950 !important;
  }

  [data-theme] .topbar-actions .btn,
  [data-theme] .topbar-btn,
  [data-theme] .search-box,
  [data-theme] .search-box input {
    width: 34px !important;
    min-width: 34px !important;
    max-width: 34px !important;
    height: 34px !important;
    min-height: 34px !important;
    max-height: 34px !important;
  }

  [data-theme] .topbar-actions .btn,
  [data-theme] .topbar-btn,
  [data-theme] .search-box input {
    background: rgba(255,255,255,.13) !important;
    border: 0 !important;
  }

  [data-theme] .topbar-actions .btn:first-of-type .btn-icon {
    font-size: 0 !important;
  }
  [data-theme] .topbar-actions .btn:first-of-type .btn-icon::before {
    content: "☰";
    font-size: 1.18rem;
    line-height: 1;
  }

  [data-theme] .search-box::before {
    content: "⌕" !important;
    font-size: 1.04rem !important;
  }

  [data-theme] .page-grid {
    display: flex !important;
    flex-direction: column !important;
    min-height: 0 !important;
    height: auto !important;
    overflow: visible !important;
    background: #1f1f1f !important;
  }

  [data-theme] .player-panel {
    display: flex !important;
    flex-direction: column !important;
    height: auto !important;
    min-height: 0 !important;
    overflow: visible !important;
    background: #000 !important;
    border-radius: 0 !important;
  }

  [data-theme] .player-stage {
    order: 1 !important;
    position: relative !important;
    inset: auto !important;
    width: 100% !important;
    height: auto !important;
    min-height: 0 !important;
    aspect-ratio: 16 / 9 !important;
    overflow: hidden !important;
    background: #000 !important;
    border: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
  }

  [data-theme] .player-stage::after {
    opacity: .42 !important;
    visibility: visible !important;
    background: linear-gradient(180deg, rgba(0,0,0,.12) 0%, rgba(0,0,0,0) 48%, rgba(0,0,0,.38) 100%) !important;
  }

  [data-theme] .player-panel > .section-head,
  body[data-theme].player-ui-hidden .player-panel > .section-head,
  body[data-theme].player-ui-visible .player-panel > .section-head {
    order: 2 !important;
    position: relative !important;
    inset: auto !important;
    width: 100% !important;
    min-height: 112px !important;
    margin: 0 !important;
    padding: 16px 20px 10px !important;
    display: grid !important;
    grid-template-columns: 1fr auto !important;
    align-items: start !important;
    gap: 10px !important;
    background: #050505 !important;
    opacity: 1 !important;
    visibility: visible !important;
    pointer-events: auto !important;
    transform: none !important;
    z-index: 4 !important;
  }

  [data-theme] .player-panel > .section-head h2 {
    display: -webkit-box !important;
    -webkit-line-clamp: 1;
    -webkit-box-orient: vertical;
    overflow: hidden !important;
    margin: 8px 0 2px !important;
    max-width: calc(100vw - 118px) !important;
    color: #fff !important;
    font-size: clamp(.98rem, 4.2vw, 1.24rem) !important;
    line-height: 1.08 !important;
    font-weight: 950 !important;
  }

  [data-theme] .player-panel > .section-head p {
    display: -webkit-box !important;
    -webkit-line-clamp: 1;
    -webkit-box-orient: vertical;
    overflow: hidden !important;
    margin: 0 !important;
    max-width: calc(100vw - 118px) !important;
    color: rgba(255,255,255,.7) !important;
    font-size: .74rem !important;
    line-height: 1.2 !important;
    white-space: pre-line !important;
  }

  [data-theme] .live-pill {
    min-height: 18px !important;
    padding: 3px 6px !important;
    border-radius: 4px !important;
    font-size: .58rem !important;
    line-height: 1 !important;
    box-shadow: none !important;
  }

  [data-theme] .viewer-badge { display: none !important; }

  [data-theme] .player-actions-row,
  body[data-theme].player-ui-hidden .player-actions-row,
  body[data-theme].player-ui-visible .player-actions-row {
    order: 3 !important;
    position: absolute !important;
    right: 14px !important;
    left: auto !important;
    bottom: auto !important;
    top: calc((100vw * 9 / 16) + 14px) !important;
    width: auto !important;
    max-width: 44vw !important;
    margin: 0 !important;
    padding: 0 !important;
    opacity: 1 !important;
    visibility: visible !important;
    pointer-events: auto !important;
    transform: none !important;
    z-index: 12 !important;
  }

  [data-theme] .player-actions {
    justify-content: flex-end !important;
    gap: 6px !important;
    padding: 0 !important;
    overflow: visible !important;
  }

  [data-theme] .player-actions .btn {
    width: 30px !important;
    min-width: 30px !important;
    height: 30px !important;
    min-height: 30px !important;
    border-radius: 999px !important;
    padding: 0 !important;
    background: rgba(255,255,255,.13) !important;
    border: 1px solid rgba(255,255,255,.08) !important;
    color: #fff !important;
    font-size: 0 !important;
    box-shadow: none !important;
  }

  [data-theme] .player-actions .btn .btn-label { display: none !important; }
  [data-theme] .player-actions .btn .btn-icon { font-size: .86rem !important; margin: 0 !important; }
  [data-theme] .player-actions .btn-report { width: 28px !important; min-width: 28px !important; height: 28px !important; min-height: 28px !important; }
  [data-theme] .player-actions-row .status-label,
  [data-theme] .player-hover-zone,
  [data-theme] .epg-progress { display: none !important; }

  [data-theme] .sidebar,
  body[data-theme].player-ui-hidden .sidebar,
  body[data-theme].player-ui-visible .sidebar {
    position: relative !important;
    order: 2 !important;
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
    padding: 10px 0 18px !important;
    overflow: hidden !important;
    background: #1f1f1f !important;
    opacity: 1 !important;
    visibility: visible !important;
    pointer-events: auto !important;
    transform: none !important;
  }

  [data-theme] .sidebar .section-head.compact,
  [data-theme] .mini-section {
    display: none !important;
  }

  [data-theme] .category-tabs {
    display: flex !important;
    padding: 0 20px 10px !important;
    gap: 10px !important;
    max-width: 100% !important;
    overflow-x: auto !important;
    scrollbar-width: none !important;
    -webkit-overflow-scrolling: touch !important;
    scroll-snap-type: x proximity !important;
  }

  [data-theme] .category-tabs::-webkit-scrollbar { display: none !important; }

  [data-theme] .category-tab {
    min-height: 42px !important;
    padding: 0 14px !important;
    border-radius: 11px !important;
    font-size: .82rem !important;
    background: rgba(255,255,255,.10) !important;
    color: rgba(255,255,255,.86) !important;
  }

  [data-theme] .category-tab.active {
    background: #fff !important;
    color: #171717 !important;
  }

  [data-theme] .channel-list {
    width: 100% !important;
    max-width: 100% !important;
    max-height: none !important;
    display: flex !important;
    gap: 10px !important;
    padding: 0 20px 4px !important;
    overflow-x: auto !important;
    overflow-y: hidden !important;
    scrollbar-width: none !important;
    -webkit-overflow-scrolling: touch !important;
    scroll-snap-type: x mandatory !important;
    touch-action: pan-x !important;
  }

  [data-theme] .channel-list::-webkit-scrollbar { display: none !important; }

  [data-theme] .channel-card {
    flex: 0 0 min(76vw, 310px) !important;
    width: min(76vw, 310px) !important;
    height: clamp(132px, 38vw, 170px) !important;
    min-height: 0 !important;
    border-radius: 12px !important;
    border: 1px solid rgba(255,255,255,.12) !important;
    box-shadow: 0 10px 22px rgba(0,0,0,.36) !important;
    scroll-snap-align: start !important;
  }

  [data-theme] .channel-info {
    left: 14px !important;
    right: 14px !important;
    bottom: 18px !important;
  }

  [data-theme] .channel-info strong {
    font-size: clamp(.86rem, 3.4vw, 1.02rem) !important;
    line-height: 1.05 !important;
    -webkit-line-clamp: 1;
  }

  [data-theme] .channel-info span {
    display: block !important;
    font-size: .68rem !important;
    margin-top: 3px !important;
  }

  [data-theme] .channel-info small { display: none !important; }

  [data-theme] .channel-card::before {
    left: 14px !important;
    right: 14px !important;
    bottom: 10px !important;
    height: 3px !important;
  }

  [data-theme] .stats-strip { display: none !important; }
}

@media (max-width: 760px) and (orientation: landscape) {
  body[data-theme] { --sh-header-height: 46px; background: #000 !important; }
  [data-theme] .topbar {
    height: var(--sh-header-height) !important;
    min-height: var(--sh-header-height) !important;
    padding: 0 12px !important;
    background: #050505 !important;
  }
  [data-theme] .brand-logo { display: none !important; }
  [data-theme] .brand-wrap {
    position: absolute !important;
    left: 50% !important;
    transform: translateX(-50%) !important;
    pointer-events: none !important;
  }
  [data-theme] .brand-wrap h1 { font-size: 1rem !important; text-align: center !important; }
  [data-theme] .brand-wrap p, [data-theme] .role-badge { display: none !important; }
  [data-theme] .page-grid { height: calc(100dvh - var(--sh-header-height)) !important; overflow: hidden !important; background: #000 !important; }
  [data-theme] .player-panel { height: 100% !important; background: #000 !important; }
  [data-theme] .player-stage { position: absolute !important; inset: 0 0 58px 0 !important; height: auto !important; aspect-ratio: auto !important; background: #000 !important; }
  [data-theme] .player-panel > .section-head { display: none !important; }
  [data-theme] .player-actions-row { display: none !important; }
  [data-theme] .sidebar { position: absolute !important; left: 0 !important; right: 0 !important; bottom: 0 !important; padding: 6px 8px !important; background: rgba(0,0,0,.72) !important; overflow: hidden !important; }
  [data-theme] .sidebar .section-head, [data-theme] .category-tabs { display: none !important; }
  [data-theme] .channel-list { display: flex !important; gap: 8px !important; overflow-x: auto !important; overflow-y: hidden !important; padding: 0 !important; scrollbar-width: none !important; }
  [data-theme] .channel-list::-webkit-scrollbar { display: none !important; }
  [data-theme] .channel-card { flex: 0 0 190px !important; width: 190px !important; height: 52px !important; border-radius: 9px !important; }
  [data-theme] .channel-info strong { font-size: .74rem !important; }
  [data-theme] .channel-info span, [data-theme] .channel-info small { display: none !important; }
  [data-theme] .stats-strip { display: none !important; }
}

/* v2.7.3 - thumbnail automática/link */
[data-theme] #thumbnail_mode,
[data-theme] #thumbnail_url {
  width: 100%;
}

/* ===== v2.7.11 - Espaço seguro para barra nativa do player dentro do iframe =====
   Controles dentro de iframe externo não podem ser movidos pelo site pai por segurança do navegador.
   Este slot recebe a .vjs-control-bar somente quando o iframe for do mesmo domínio. */
[data-theme] .iframe-controlbar-slot {
  display: none;
  position: relative;
  z-index: 11;
  width: min(760px, calc(100vw - (var(--sh-page-edge, 24px) * 2)));
  min-height: 44px;
  margin: 10px 0 0 var(--sh-page-edge, 24px);
  border-radius: 999px;
  background: rgba(0,0,0,.58);
  border: 1px solid rgba(255,255,255,.10);
  box-shadow: 0 14px 34px rgba(0,0,0,.26);
  overflow: hidden;
  backdrop-filter: blur(14px);
}

[data-theme].has-extracted-vjs .iframe-controlbar-slot {
  display: flex;
  align-items: center;
}

[data-theme] .iframe-controlbar-slot .vjs-control-bar {
  position: relative !important;
  left: auto !important;
  right: auto !important;
  bottom: auto !important;
  top: auto !important;
  width: 100% !important;
  height: 44px !important;
  display: flex !important;
  align-items: center !important;
  background: transparent !important;
  color: #fff !important;
  opacity: 1 !important;
  visibility: visible !important;
  pointer-events: auto !important;
  font-size: 12px !important;
}

[data-theme] .iframe-controlbar-slot .vjs-control,
[data-theme] .iframe-controlbar-slot .vjs-button { color: #fff !important; }
[data-theme] .iframe-controlbar-slot .vjs-progress-control { flex: 1 1 auto !important; min-width: 80px !important; }
[data-theme] .iframe-controlbar-slot .vjs-custom-control-spacer,
[data-theme] .iframe-controlbar-slot .logoLinkPlayer,
[data-theme] .iframe-controlbar-slot .vjs-chapters-button,
[data-theme] .iframe-controlbar-slot .vjs-descriptions-button,
[data-theme] .iframe-controlbar-slot .vjs-subs-caps-button,
[data-theme] .iframe-controlbar-slot .vjs-audio-button,
[data-theme] .iframe-controlbar-slot .vjs-playback-rate { display: none !important; }

[data-theme].iframe-vjs-external .player-stage > iframe { pointer-events: auto; }

@media (max-width: 760px) and (orientation: portrait) {
  [data-theme] .iframe-controlbar-slot,
  body[data-theme].has-extracted-vjs .iframe-controlbar-slot { display: none !important; }
  [data-theme] .player-actions-row,
  body[data-theme].player-ui-hidden .player-actions-row,
  body[data-theme].player-ui-visible .player-actions-row {
    top: calc((100vw * 9 / 16) + 8px) !important;
    right: 12px !important;
    max-width: 48vw !important;
  }
}

@media (max-width: 760px) and (orientation: landscape) {
  [data-theme] .iframe-controlbar-slot,
  body[data-theme].has-extracted-vjs .iframe-controlbar-slot { display: none !important; }
}

/* v2.7.12 - Correção: lista de canais não cobre controles nativos do iframe externo
   Quando o embed é de outro domínio, a barra .vjs-control-bar fica presa dentro do iframe.
   Por segurança do navegador não é possível movê-la para fora; então reservamos uma faixa
   inferior para os canais e encurtamos o iframe, deixando volume/tela cheia/progresso clicáveis. */
body[data-theme].iframe-vjs-external {
  --sh-external-channel-dock: clamp(126px, 20vh, 188px);
}

/* v2.7.26 - Correção tablet: o modo dock absoluto só deve entrar em telas desktop.
   Em tablets (761px até 1024px), o player mantém o fluxo normal/aspect-ratio,
   evitando cortes e bugs causados por position:absolute. */
@media (min-width: 1025px) {
  body[data-theme].iframe-vjs-external .player-stage {
    position: absolute;
    inset: 0 0 var(--sh-external-channel-dock) 0;
    height: auto;
    min-height: 0;
  }

  body[data-theme].iframe-vjs-external .sidebar,
  body[data-theme].iframe-vjs-external.player-ui-visible .sidebar,
  body[data-theme].iframe-vjs-external.player-ui-hidden .sidebar {
    position: absolute !important;
    left: 0 !important;
    right: 0 !important;
    bottom: 0 !important;
    width: 100% !important;
    max-width: 100% !important;
    height: var(--sh-external-channel-dock) !important;
    max-height: var(--sh-external-channel-dock) !important;
    margin: 0 !important;
    padding: 10px var(--sh-page-edge, 24px) 12px !important;
    overflow: hidden !important;
    z-index: 8 !important;
    background: linear-gradient(180deg, rgba(0,0,0,.88), rgba(0,0,0,.96)) !important;
    border-top: 1px solid rgba(255,255,255,.08) !important;
  }

  body[data-theme].iframe-vjs-external .sidebar .section-head.compact {
    margin-bottom: 8px !important;
  }

  body[data-theme].iframe-vjs-external .channel-list {
    max-height: calc(var(--sh-external-channel-dock) - 44px) !important;
    padding-bottom: 4px !important;
  }

  body[data-theme].iframe-vjs-external .channel-card {
    height: clamp(82px, 11vh, 118px) !important;
    flex-basis: clamp(154px, 16vw, 230px) !important;
  }

  body[data-theme].iframe-vjs-external .player-actions-row,
  body[data-theme].iframe-vjs-external.player-ui-visible .player-actions-row,
  body[data-theme].iframe-vjs-external.player-ui-hidden .player-actions-row {
    position: absolute !important;
    left: var(--sh-page-edge, 24px) !important;
    bottom: calc(var(--sh-external-channel-dock) + 12px) !important;
    z-index: 9 !important;
    margin: 0 !important;
  }

  body[data-theme].iframe-vjs-external .epg-progress {
    position: absolute !important;
    left: var(--sh-page-edge, 24px) !important;
    right: var(--sh-page-edge, 24px) !important;
    bottom: calc(var(--sh-external-channel-dock) + 4px) !important;
    z-index: 9 !important;
  }
}

/* ======================================================================
   v2.8.85 - uma unica lista de canais no modo TV
   ====================================================================== */
body.public-tv-layout.tv-app-experience #gpChannelDrawer,
body.public-tv-layout.tv-app-experience .gp-channel-drawer,
body.public-tv-layout.tv-app-experience #gpChannelRail,
body.public-tv-layout.tv-app-experience .gp-channel-rail {
  display: none !important;
  visibility: hidden !important;
  opacity: 0 !important;
  pointer-events: none !important;
}

body.public-tv-layout.tv-app-experience #gpTvChannelLayer {
  z-index: 2147482000 !important;
}

/* ======================================================================
   v2.8.85 - dashboard administrativo dividido por areas
   ====================================================================== */
body.admin-dashboard-v2885 {
  background: #090b0f !important;
}

body.admin-dashboard-v2885 .bg-glow {
  display: none !important;
}

body.admin-dashboard-v2885,
body.admin-dashboard-v2885 * {
  letter-spacing: 0 !important;
}

body.admin-dashboard-v2885 .admin-layout-pro {
  width: min(1500px, calc(100% - 32px)) !important;
  grid-template-columns: 252px minmax(0, 1fr) !important;
  gap: 20px !important;
}

body.admin-dashboard-v2885 .admin-sidebar.card,
body.admin-dashboard-v2885 .admin-hero.card,
body.admin-dashboard-v2885 .admin-cache-panel,
body.admin-dashboard-v2885 .metric-card-pro,
body.admin-dashboard-v2885 .form-card,
body.admin-dashboard-v2885 .table-card,
body.admin-dashboard-v2885 .clients-card,
body.admin-dashboard-v2885 #issuesCard,
body.admin-dashboard-v2885 #siteSettingsCard,
body.admin-dashboard-v2885 .admin-modal-card {
  border-radius: 8px !important;
}

body.admin-dashboard-v2885 .admin-sidebar.card {
  background: #101319 !important;
  box-shadow: 0 18px 48px rgba(0, 0, 0, .3) !important;
}

body.admin-dashboard-v2885 .sidebar-brand .brand-logo,
body.admin-dashboard-v2885 .admin-nav a,
body.admin-dashboard-v2885 .admin-nav a span,
body.admin-dashboard-v2885 .btn,
body.admin-dashboard-v2885 button,
body.admin-dashboard-v2885 input,
body.admin-dashboard-v2885 select,
body.admin-dashboard-v2885 textarea,
body.admin-dashboard-v2885 .admin-global-search,
body.admin-dashboard-v2885 .admin-settings-tab,
body.admin-dashboard-v2885 .admin-field-card,
body.admin-dashboard-v2885 .site-preview-box-pro {
  border-radius: 6px !important;
}

body.admin-dashboard-v2885 .admin-nav a {
  min-height: 44px !important;
  border-left: 3px solid transparent !important;
  transform: none !important;
}

body.admin-dashboard-v2885 .admin-nav a:hover {
  background: rgba(255, 255, 255, .055) !important;
}

body.admin-dashboard-v2885 .admin-nav a.active {
  color: #fff !important;
  background: rgba(53, 183, 255, .1) !important;
  border-color: rgba(53, 183, 255, .32) !important;
  border-left-color: #35b7ff !important;
}

body.admin-dashboard-v2885 .admin-main {
  display: block !important;
  min-width: 0 !important;
}

body.admin-dashboard-v2885 .admin-view[hidden],
body.admin-dashboard-v2885 [data-channel-panel][hidden] {
  display: none !important;
}

body.admin-dashboard-v2885 .admin-view {
  display: none !important;
  min-width: 0 !important;
}

body.admin-dashboard-v2885 .admin-view.is-active {
  display: grid !important;
  gap: 18px !important;
  animation: adminViewIn .18s ease-out both;
}

@keyframes adminViewIn {
  from { opacity: 0; transform: translateY(4px); }
  to { opacity: 1; transform: translateY(0); }
}

body.admin-dashboard-v2885 .admin-view-head {
  min-height: 64px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 18px !important;
  padding: 2px 2px 10px !important;
  border-bottom: 1px solid rgba(255, 255, 255, .08) !important;
}

body.admin-dashboard-v2885 .admin-view-head h1 {
  margin: 3px 0 4px !important;
  font-size: clamp(1.45rem, 2vw, 1.9rem) !important;
  line-height: 1.15 !important;
}

body.admin-dashboard-v2885 .admin-view-head p {
  margin: 0 !important;
  color: var(--admin-muted) !important;
  font-size: .92rem !important;
}

body.admin-dashboard-v2885 .admin-hero.card {
  grid-template-columns: minmax(0, 1fr) 260px !important;
  gap: 20px !important;
  padding: 22px !important;
  background: #12161d !important;
}

body.admin-dashboard-v2885 .admin-hero h1 {
  font-size: clamp(1.55rem, 2vw, 2.1rem) !important;
  line-height: 1.12 !important;
  margin-bottom: 8px !important;
}

body.admin-dashboard-v2885 .admin-global-search {
  min-height: 46px !important;
  margin-top: 14px !important;
}

body.admin-dashboard-v2885 .admin-cache-panel {
  padding: 18px !important;
  background: #101820 !important;
}

body.admin-dashboard-v2885 .admin-stats {
  gap: 10px !important;
}

body.admin-dashboard-v2885 .metric-card-pro {
  min-height: 118px !important;
  padding: 14px !important;
  background: #12161d !important;
  box-shadow: 0 12px 30px rgba(0, 0, 0, .2) !important;
}

body.admin-dashboard-v2885 .metric-card-pro > .bi {
  width: 34px !important;
  height: 34px !important;
  border-radius: 6px !important;
}

body.admin-dashboard-v2885 .admin-grid {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) !important;
  gap: 0 !important;
}

body.admin-dashboard-v2885 .admin-channel-tabs {
  display: inline-flex !important;
  align-items: center !important;
  gap: 4px !important;
  padding: 4px !important;
  border: 1px solid rgba(255, 255, 255, .09) !important;
  border-radius: 8px !important;
  background: rgba(255, 255, 255, .035) !important;
}

body.admin-dashboard-v2885 .admin-channel-tabs button {
  min-height: 38px !important;
  padding: 0 13px !important;
  display: inline-flex !important;
  align-items: center !important;
  gap: 7px !important;
  color: var(--admin-muted) !important;
  background: transparent !important;
  border: 1px solid transparent !important;
  box-shadow: none !important;
}

body.admin-dashboard-v2885 .admin-channel-tabs button:hover {
  color: #fff !important;
  background: rgba(255, 255, 255, .055) !important;
}

body.admin-dashboard-v2885 .admin-channel-tabs button.active {
  color: #fff !important;
  background: #216d99 !important;
  border-color: #35b7ff !important;
}

body.admin-dashboard-v2885 [data-channel-panel].is-active {
  display: block !important;
}

body.admin-dashboard-v2885 .admin-settings-tabs {
  border-radius: 6px !important;
}

body.admin-dashboard-v2885 .admin-form .form-actions-sticky {
  border-radius: 6px !important;
}

@media (max-width: 1180px) {
  body.admin-dashboard-v2885 .admin-layout-pro {
    grid-template-columns: 224px minmax(0, 1fr) !important;
  }

  body.admin-dashboard-v2885 .admin-stats {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  }
}

@media (max-width: 980px) {
  body.admin-dashboard-v2885 .admin-layout-pro {
    width: min(100% - 24px, 900px) !important;
    grid-template-columns: 1fr !important;
    padding-top: 84px !important;
  }

  body.admin-dashboard-v2885 .admin-sidebar.card {
    border-radius: 0 8px 8px 0 !important;
  }
}

@media (max-width: 720px) {
  body.admin-dashboard-v2885 .admin-layout-pro {
    width: min(100% - 18px, 680px) !important;
  }

  body.admin-dashboard-v2885 .admin-view.is-active {
    gap: 12px !important;
  }

  body.admin-dashboard-v2885 .admin-view-head {
    align-items: stretch !important;
    flex-direction: column !important;
    gap: 12px !important;
  }

  body.admin-dashboard-v2885 .admin-channel-tabs {
    width: 100% !important;
  }

  body.admin-dashboard-v2885 .admin-channel-tabs button {
    flex: 1 1 0 !important;
    justify-content: center !important;
  }

  body.admin-dashboard-v2885 .admin-hero.card {
    grid-template-columns: 1fr !important;
    padding: 16px !important;
  }

  body.admin-dashboard-v2885 .admin-stats {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }

  body.admin-dashboard-v2885 .admin-cache-panel {
    grid-template-columns: 1fr !important;
  }

  body.admin-dashboard-v2885 .admin-cache-panel-actions {
    justify-content: flex-start !important;
  }

  body.admin-dashboard-v2885 #cacheRefreshStatusTop {
    text-align: left !important;
  }
}


@media (max-width: 460px) {
  body.admin-dashboard-v2885 .admin-stats {
    grid-template-columns: 1fr !important;
  }

  body.admin-dashboard-v2885 .admin-quick-actions .btn,
  body.admin-dashboard-v2885 .admin-cache-panel-actions .btn {
    width: 100% !important;
    justify-content: center !important;
  }
}

/* A zona invisível não pode ficar por cima do iframe externo, senão impede clique nos controles nativos. */
body[data-theme].iframe-vjs-external .player-hover-zone,
body[data-theme].iframe-vjs-external.player-ui-hidden .player-hover-zone,
body[data-theme].iframe-vjs-external.player-ui-visible .player-hover-zone {
  pointer-events: none !important;
  display: none !important;
}

@media (max-width: 760px) and (orientation: landscape) {
  body[data-theme].iframe-vjs-external .player-stage {
    inset: 0 0 58px 0 !important;
  }
  body[data-theme].iframe-vjs-external .sidebar {
    z-index: 8 !important;
  }
}

/* ===== v2.7.13 SEO painel ===== */
[data-theme] .admin-subsection-label {
  display: block;
  padding: 14px 16px;
  border: 1px solid rgba(255,255,255,.09);
  border-radius: 18px;
  background: rgba(255,255,255,.045);
}
[data-theme] .admin-subsection-label strong {
  display: block;
  margin-bottom: 4px;
  font-size: .95rem;
  color: var(--sh-text, #fff);
}
[data-theme] .admin-subsection-label small {
  display: block;
  color: var(--sh-muted, rgba(255,255,255,.66));
}

/* ===== v2.7.14 - Ícones Bootstrap Icons compatíveis ===== */
[data-theme] .bi,
.admin-body .bi {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  line-height: 1;
  font-size: inherit;
  vertical-align: -0.08em;
}

[data-theme] .btn-icon .bi,
.admin-body .btn-icon .bi,
[data-theme] .overlay-icon .bi,
.admin-body .admin-nav .bi,
.admin-body .metric-card-pro > .bi {
  pointer-events: none;
}

[data-theme] .search-box {
  position: relative;
}

[data-theme] .search-box::before {
  content: none !important;
}

[data-theme] .search-box .search-icon {
  position: absolute;
  left: 14px;
  top: 50%;
  transform: translateY(-50%);
  color: rgba(255,255,255,.68);
  z-index: 1;
  font-size: .96rem;
}

[data-theme] .search-box input {
  padding-left: 40px;
}

[data-theme] .btn-report .bi {
  font-size: 1rem;
  font-weight: 700;
}

.admin-body .admin-nav a span {
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.admin-body .metric-card-pro > .bi {
  width: 34px;
  height: 34px;
  border-radius: 12px;
  background: rgba(255,255,255,.08);
}

@media (max-width: 760px) {
  [data-theme] .topbar-actions .btn:first-of-type .btn-icon {
    font-size: inherit !important;
  }
  [data-theme] .topbar-actions .btn:first-of-type .btn-icon::before {
    content: none !important;
  }
  [data-theme] .search-box .search-icon {
    left: 50%;
    transform: translate(-50%, -50%);
    font-size: 1rem;
  }
  [data-theme] .search-box input:focus + .search-icon,
  [data-theme] .search-box:focus-within .search-icon {
    left: 14px;
    transform: translateY(-50%);
  }
}

/* ===== v2.7.15 - Buscador de ID do canal no EPG ===== */
.admin-body .epg-finder-box {
  grid-column: 1 / -1;
  border: 1px solid rgba(255,255,255,.10);
  border-radius: 18px;
  padding: 14px;
  background: rgba(255,255,255,.045);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.05);
}

.admin-body .epg-finder-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 12px;
}

.admin-body .epg-finder-head strong {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  color: var(--sh-text, #fff);
}

.admin-body .epg-finder-head small,
.admin-body .epg-finder-status,
.admin-body .epg-result-copy span {
  display: block;
  margin-top: 4px;
  color: var(--sh-muted, rgba(255,255,255,.64));
  font-size: .84rem;
}

.admin-body .epg-finder-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 10px;
  align-items: center;
}

.admin-body .epg-results {
  display: grid;
  gap: 8px;
  margin-top: 12px;
  max-height: 340px;
  overflow: auto;
  padding-right: 4px;
}

.admin-body .epg-result-item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  border: 1px solid rgba(255,255,255,.09);
  border-radius: 14px;
  padding: 10px;
  background: rgba(0,0,0,.18);
}

.admin-body .epg-result-copy {
  min-width: 0;
}

.admin-body .epg-result-copy strong {
  display: block;
  color: var(--sh-text, #fff);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.admin-body .epg-result-copy code {
  color: var(--sh-accent, #f42525);
  font-weight: 800;
}

.admin-body .epg-result-actions {
  display: flex;
  flex-wrap: nowrap;
  gap: 6px;
  flex-shrink: 0;
}

.admin-body .epg-empty {
  border: 1px dashed rgba(255,255,255,.16);
  border-radius: 14px;
  padding: 12px;
  color: var(--sh-muted, rgba(255,255,255,.64));
  text-align: center;
}

.admin-body .epg-finder-status.error { color: #ff9d9d; }
.admin-body .epg-finder-status.success { color: #9dffbd; }

@media (max-width: 760px) {
  .admin-body .epg-finder-head,
  .admin-body .epg-result-item {
    flex-direction: column;
    align-items: stretch;
  }
  .admin-body .epg-finder-row {
    grid-template-columns: 1fr;
  }
  .admin-body .epg-result-actions {
    width: 100%;
  }
  .admin-body .epg-result-actions .btn {
    flex: 1;
  }
}

/* v2.7.17 - Mobile minimalista: corrige layout poluído em smartphones verticais/paisagem */
@media (pointer: coarse), (max-width: 900px), (max-height: 540px) {
  html,
  body[data-theme] {
    min-height: 100dvh !important;
    overflow-x: hidden !important;
    background: #050505 !important;
  }

  [data-theme] .bg-glow,
  [data-theme] .global-notice {
    display: none !important;
  }

  [data-theme] .topbar {
    position: sticky !important;
    top: 0 !important;
    z-index: 80 !important;
    display: grid !important;
    grid-template-columns: 40px 1fr 40px !important;
    align-items: center !important;
    gap: 6px !important;
    width: 100% !important;
    min-height: 46px !important;
    padding: max(6px, env(safe-area-inset-top)) 10px 6px !important;
    border-radius: 0 !important;
    border: 0 !important;
    background: rgba(0,0,0,.98) !important;
    box-shadow: none !important;
  }

  [data-theme] .brand-wrap {
    grid-column: 2 !important;
    justify-self: center !important;
    min-width: 0 !important;
    display: flex !important;
    justify-content: center !important;
    align-items: center !important;
    gap: 6px !important;
  }

  [data-theme] .brand-logo {
    width: 24px !important;
    height: 24px !important;
    min-width: 24px !important;
    border-radius: 8px !important;
    font-size: 12px !important;
    box-shadow: none !important;
  }

  [data-theme] .brand-wrap h1 {
    max-width: 46vw !important;
    margin: 0 !important;
    font-size: 1rem !important;
    line-height: 1 !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    text-align: center !important;
  }

  [data-theme] .brand-wrap p,
  [data-theme] .role-badge {
    display: none !important;
  }

  [data-theme] .topbar-actions {
    grid-column: 1 / -1 !important;
    grid-row: 1 !important;
    width: 100% !important;
    min-width: 0 !important;
    display: contents !important;
  }

  [data-theme] .search-box {
    grid-column: 3 !important;
    justify-self: end !important;
    width: 34px !important;
    min-width: 34px !important;
    height: 34px !important;
    padding: 0 !important;
    border-radius: 999px !important;
    background: rgba(255,255,255,.13) !important;
    border: 0 !important;
    overflow: hidden !important;
  }

  [data-theme] .search-box:focus-within {
    position: fixed !important;
    top: max(6px, env(safe-area-inset-top)) !important;
    left: 10px !important;
    right: 10px !important;
    z-index: 120 !important;
    width: auto !important;
    height: 38px !important;
    padding: 0 12px !important;
    display: flex !important;
    align-items: center !important;
    background: rgba(24,24,24,.98) !important;
    border: 1px solid rgba(255,255,255,.18) !important;
  }

  [data-theme] .search-box .search-icon {
    position: static !important;
    width: 34px !important;
    min-width: 34px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    transform: none !important;
    font-size: 1rem !important;
  }

  [data-theme] .search-box input {
    width: 0 !important;
    min-width: 0 !important;
    opacity: 0 !important;
    padding: 0 !important;
    font-size: 16px !important;
  }

  [data-theme] .search-box:focus-within input {
    width: 100% !important;
    opacity: 1 !important;
    padding: 0 0 0 6px !important;
  }

  [data-theme] .topbar-actions .btn,
  [data-theme] .topbar-btn {
    grid-column: 1 !important;
    justify-self: start !important;
    width: 34px !important;
    min-width: 34px !important;
    height: 34px !important;
    min-height: 34px !important;
    padding: 0 !important;
    border-radius: 999px !important;
    background: transparent !important;
    border: 0 !important;
    color: #fff !important;
    box-shadow: none !important;
  }

  [data-theme] .topbar-actions .btn .btn-label,
  [data-theme] .topbar-btn .btn-label {
    display: none !important;
  }

  [data-theme] .topbar-actions .btn .btn-icon,
  [data-theme] .topbar-btn .btn-icon {
    font-size: 1.15rem !important;
  }

  [data-theme] .page-grid {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    min-height: calc(100dvh - 46px) !important;
    padding: 0 !important;
    margin: 0 !important;
    overflow: hidden !important;
    background: #121212 !important;
  }

  [data-theme] .player-panel.card,
  [data-theme] .player-panel {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    min-height: 0 !important;
    height: auto !important;
    margin: 0 !important;
    padding: 0 !important;
    border-radius: 0 !important;
    border: 0 !important;
    background: #000 !important;
    overflow: hidden !important;
    box-shadow: none !important;
  }

  [data-theme] .player-stage {
    position: relative !important;
    width: 100% !important;
    height: auto !important;
    min-height: 0 !important;
    aspect-ratio: 16 / 9 !important;
    border-radius: 0 !important;
    overflow: hidden !important;
    background: #000 !important;
  }

  [data-theme] .player-stage > iframe,
  [data-theme] .player-stage > video {
    width: 100% !important;
    height: 100% !important;
    object-fit: contain !important;
    background: #000 !important;
  }

  [data-theme] .player-stage::after {
    opacity: .35 !important;
    background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.40) 100%) !important;
  }

  [data-theme] .player-overlay {
    padding: 0 !important;
    background: transparent !important;
  }

  [data-theme] .player-overlay h3,
  [data-theme] .player-overlay p {
    display: none !important;
  }

  [data-theme] .player-overlay .overlay-icon {
    width: 58px !important;
    height: 58px !important;
    font-size: 2.2rem !important;
    background: rgba(255,255,255,.22) !important;
    backdrop-filter: blur(8px) !important;
  }

  [data-theme] .player-panel > .section-head,
  body[data-theme].player-ui-hidden .player-panel > .section-head,
  body[data-theme].player-ui-visible .player-panel > .section-head {
    position: relative !important;
    top: auto !important;
    left: auto !important;
    right: auto !important;
    z-index: 4 !important;
    display: block !important;
    width: 100% !important;
    padding: 8px 12px 4px !important;
    margin: 0 !important;
    background: #000 !important;
    pointer-events: none !important;
  }

  [data-theme] .player-panel > .section-head h2 {
    display: block !important;
    max-width: 74vw !important;
    margin: 3px 0 0 !important;
    font-size: .92rem !important;
    line-height: 1.15 !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
  }

  [data-theme] .player-panel > .section-head p {
    display: block !important;
    max-width: 82vw !important;
    margin: 2px 0 0 !important;
    font-size: .72rem !important;
    line-height: 1.15 !important;
    color: rgba(255,255,255,.68) !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
  }

  [data-theme] .live-pill {
    min-height: 18px !important;
    padding: 2px 6px !important;
    border-radius: 5px !important;
    font-size: .58rem !important;
    line-height: 1 !important;
  }

  [data-theme] .viewer-badge,
  [data-theme] .status-label,
  [data-theme] .epg-progress,
  [data-theme] .iframe-controlbar-slot,
  [data-theme] .player-hover-zone {
    display: none !important;
  }

  [data-theme] .player-actions-row,
  body[data-theme].player-ui-hidden .player-actions-row,
  body[data-theme].player-ui-visible .player-actions-row {
    position: absolute !important;
    top: calc(46px + 8px) !important;
    right: 8px !important;
    left: auto !important;
    bottom: auto !important;
    width: auto !important;
    max-width: none !important;
    padding: 0 !important;
    margin: 0 !important;
    opacity: 1 !important;
    visibility: visible !important;
    transform: none !important;
    pointer-events: auto !important;
    z-index: 30 !important;
  }

  [data-theme] .player-actions {
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: flex-start !important;
    gap: 6px !important;
    padding: 0 !important;
    margin: 0 !important;
    overflow: visible !important;
  }

  [data-theme] .player-actions .btn,
  [data-theme] .player-actions .btn-primary,
  [data-theme] .player-actions .btn-ghost,
  [data-theme] .player-actions .btn-report {
    width: 32px !important;
    min-width: 32px !important;
    height: 32px !important;
    min-height: 32px !important;
    padding: 0 !important;
    border-radius: 999px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    background: rgba(0,0,0,.48) !important;
    color: #fff !important;
    border: 1px solid rgba(255,255,255,.18) !important;
    box-shadow: none !important;
    backdrop-filter: blur(8px) !important;
  }

  [data-theme] .player-actions .btn .btn-label {
    display: none !important;
  }

  [data-theme] .player-actions .btn .btn-icon,
  [data-theme] .player-actions .btn i {
    display: inline-flex !important;
    font-size: .96rem !important;
    line-height: 1 !important;
    margin: 0 !important;
  }

  [data-theme] .category-tabs {
    position: relative !important;
    z-index: 5 !important;
    width: 100% !important;
    margin: 0 !important;
    padding: 10px 10px 8px !important;
    display: flex !important;
    gap: 8px !important;
    overflow-x: auto !important;
    overflow-y: hidden !important;
    background: #1b1b1b !important;
    border-top: 1px solid rgba(255,255,255,.06) !important;
    scrollbar-width: none !important;
    -webkit-overflow-scrolling: touch !important;
  }

  [data-theme] .category-tabs::-webkit-scrollbar { display: none !important; }

  [data-theme] .category-tab {
    flex: 0 0 auto !important;
    min-height: 34px !important;
    padding: 0 14px !important;
    border-radius: 12px !important;
    font-size: .78rem !important;
    white-space: nowrap !important;
  }

  [data-theme] .sidebar,
  body[data-theme].player-ui-hidden .sidebar,
  body[data-theme].player-ui-visible .sidebar {
    position: relative !important;
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
    padding: 0 0 12px 10px !important;
    border-radius: 0 !important;
    border: 0 !important;
    background: #1b1b1b !important;
    overflow: hidden !important;
    opacity: 1 !important;
    visibility: visible !important;
    transform: none !important;
    pointer-events: auto !important;
  }

  [data-theme] .sidebar .section-head,
  [data-theme] .sidebar .section-head.compact {
    display: none !important;
  }

  [data-theme] .channel-list {
    width: 100% !important;
    max-width: 100% !important;
    display: flex !important;
    flex-wrap: nowrap !important;
    gap: 10px !important;
    padding: 0 10px 12px 0 !important;
    overflow-x: auto !important;
    overflow-y: hidden !important;
    -webkit-overflow-scrolling: touch !important;
    scroll-snap-type: x proximity !important;
    scrollbar-width: none !important;
  }

  [data-theme] .channel-list::-webkit-scrollbar { display: none !important; }

  [data-theme] .channel-card {
    flex: 0 0 clamp(138px, 42vw, 190px) !important;
    width: clamp(138px, 42vw, 190px) !important;
    min-width: clamp(138px, 42vw, 190px) !important;
    height: auto !important;
    min-height: 86px !important;
    border-radius: 12px !important;
    padding: 8px !important;
    scroll-snap-align: start !important;
  }

  [data-theme] .channel-thumb {
    height: 58px !important;
    border-radius: 9px !important;
  }

  [data-theme] .channel-info strong {
    font-size: .78rem !important;
    line-height: 1.05 !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
  }

  [data-theme] .channel-info span,
  [data-theme] .channel-info small {
    font-size: .62rem !important;
    line-height: 1.05 !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
  }
}

@media (pointer: coarse) and (orientation: landscape) {
  [data-theme] .topbar {
    min-height: 38px !important;
    padding: 4px 10px !important;
  }

  [data-theme] .brand-logo { display: none !important; }
  [data-theme] .brand-wrap h1 { font-size: .86rem !important; }

  [data-theme] .search-box,
  [data-theme] .topbar-actions .btn,
  [data-theme] .topbar-btn {
    width: 30px !important;
    min-width: 30px !important;
    height: 30px !important;
    min-height: 30px !important;
  }

  [data-theme] .page-grid {
    min-height: calc(100dvh - 38px) !important;
  }

  [data-theme] .player-panel.card,
  [data-theme] .player-panel {
    display: grid !important;
    grid-template-rows: minmax(0, 1fr) auto auto !important;
    height: calc(100dvh - 38px) !important;
    background: #000 !important;
  }

  [data-theme] .player-stage {
    height: 100% !important;
    max-height: calc(100dvh - 38px - 142px) !important;
    aspect-ratio: auto !important;
  }

  [data-theme] .player-panel > .section-head,
  body[data-theme].player-ui-hidden .player-panel > .section-head,
  body[data-theme].player-ui-visible .player-panel > .section-head {
    position: absolute !important;
    left: 10px !important;
    bottom: 108px !important;
    width: min(48vw, 430px) !important;
    padding: 0 !important;
    background: transparent !important;
    z-index: 20 !important;
  }

  [data-theme] .player-panel > .section-head h2 {
    font-size: .84rem !important;
    max-width: 44vw !important;
  }

  [data-theme] .player-panel > .section-head p {
    font-size: .64rem !important;
    max-width: 44vw !important;
  }

  [data-theme] .player-actions-row,
  body[data-theme].player-ui-hidden .player-actions-row,
  body[data-theme].player-ui-visible .player-actions-row {
    top: 48px !important;
    right: 8px !important;
  }

  [data-theme] .player-actions .btn,
  [data-theme] .player-actions .btn-primary,
  [data-theme] .player-actions .btn-ghost,
  [data-theme] .player-actions .btn-report {
    width: 30px !important;
    min-width: 30px !important;
    height: 30px !important;
    min-height: 30px !important;
  }

  [data-theme] .category-tabs {
    padding: 8px 10px 6px !important;
  }

  [data-theme] .category-tab {
    min-height: 30px !important;
    padding: 0 11px !important;
    font-size: .68rem !important;
  }

  [data-theme] .sidebar,
  body[data-theme].player-ui-hidden .sidebar,
  body[data-theme].player-ui-visible .sidebar {
    padding-left: 10px !important;
  }

  [data-theme] .channel-card {
    flex-basis: 168px !important;
    width: 168px !important;
    min-width: 168px !important;
    min-height: 74px !important;
    padding: 7px !important;
  }

  [data-theme] .channel-thumb {
    height: 46px !important;
  }
}


/* v2.7.19 - Botões do player icon-only e report sem ícone duplicado */
[data-theme] .player-actions .btn-label {
  display: none !important;
}
[data-theme] .player-actions .btn {
  width: 44px;
  min-width: 44px;
  height: 44px;
  min-height: 44px;
  padding: 0 !important;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0;
}
[data-theme] .player-actions .btn .btn-icon,
[data-theme] .player-actions .btn .bi {
  margin: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
[data-theme] .player-actions .btn-report::before {
  content: none !important;
  display: none !important;
}
[data-theme] .player-actions .btn-report .bi {
  display: inline-flex !important;
  font-size: 1rem;
}
@media (max-width: 860px) {
  [data-theme] .player-actions .btn {
    width: 34px !important;
    min-width: 34px !important;
    height: 34px !important;
    min-height: 34px !important;
  }
}

/* ===== v2.7.27 - Correção VAST desktop: anúncio acima da lista de canais =====
   Durante o pré-roll, o player de anúncio precisa ocupar a mesma área responsiva
   do player principal e ficar acima do dock/lista de canais. Isso evita que o
   botão "Continuar para o canal" fique atrás da .channel-list em desktop. */
@media (min-width: 1025px) {
  

  

  

  

  

  
}

@media (min-width: 761px) and (max-width: 1024px) {
  

  
}

/* v2.7.29 - Mantém o contador do VAST visível no desktop também */
@media (min-width: 1025px) {
  
}

/* ======================================================================
   v2.8.11 - Layout público estilo Globoplay/NobreTV
   - mantém somente o player novo
   - remove visual antigo da home pública
   - canais em rail horizontal com arrastar pelo mouse/toque
   ====================================================================== */
body.public-tv-layout {
  --sh-header-height: 64px;
  --sh-page-edge: clamp(16px, 4.4vw, 76px);
  --sh-accent: #ff003d;
  --sh-accent-dark: #b70025;
  --sh-free: #1597ff;
  --sh-card-bg: rgba(24, 24, 24, 0.84);
  --sh-text-muted: rgba(255, 255, 255, 0.68);
  margin: 0 !important;
  min-height: 100svh !important;
  background: #000 !important;
  color: #fff !important;
  overflow: hidden !important;
}

body.public-tv-layout::before,
body.public-tv-layout .bg-glow {
  display: none !important;
}

body.public-tv-layout a {
  color: inherit;
  text-decoration: none;
}

body.public-tv-layout .public-tv-topbar {
  position: sticky !important;
  top: 0 !important;
  left: 0 !important;
  right: 0 !important;
  z-index: 1000 !important;
  width: 100% !important;
  height: var(--sh-header-height) !important;
  min-height: var(--sh-header-height) !important;
  margin: 0 !important;
  padding: 0 clamp(16px, 2.1vw, 34px) !important;
  display: flex !important;
  align-items: center !important;
  gap: clamp(16px, 1.8vw, 32px) !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: #030303 !important;
  box-shadow: none !important;
  backdrop-filter: none !important;
}

body.public-tv-layout .tv-brand {
  display: inline-flex !important;
  align-items: center !important;
  gap: 10px !important;
  min-width: max-content !important;
  flex: 0 0 auto !important;
}

body.public-tv-layout .tv-brand-icon {
  width: 38px !important;
  height: 38px !important;
  min-width: 38px !important;
  border-radius: 10px !important;
  display: inline-grid !important;
  place-items: center !important;
  background: #fb2035 !important;
  color: #fff !important;
  box-shadow: none !important;
  font-size: 1.1rem !important;
  line-height: 1 !important;
}

body.public-tv-layout .tv-brand-copy h1 {
  margin: 0 !important;
  color: #fff !important;
  font-size: clamp(1.18rem, 1.6vw, 1.65rem) !important;
  font-weight: 950 !important;
  letter-spacing: -0.065em !important;
  line-height: 0.9 !important;
}

body.public-tv-layout .tv-brand-copy p {
  margin: 3px 0 0 !important;
  color: rgba(255, 255, 255, 0.75) !important;
  font-size: 0.72rem !important;
  font-weight: 750 !important;
  letter-spacing: -0.01em !important;
  line-height: 1 !important;
}

body.public-tv-layout .tv-main-nav {
  display: flex !important;
  align-items: center !important;
  gap: clamp(13px, 1.25vw, 23px) !important;
  flex: 1 1 auto !important;
  min-width: 0 !important;
  overflow: hidden !important;
  white-space: nowrap !important;
}

body.public-tv-layout .tv-main-nav a {
  display: inline-flex !important;
  align-items: center !important;
  gap: 7px !important;
  flex: 0 0 auto !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  color: #fff !important;
  opacity: 0.95 !important;
  font-size: 0.92rem !important;
  font-weight: 900 !important;
  line-height: 1 !important;
  letter-spacing: -0.02em !important;
}

body.public-tv-layout .tv-main-nav a:hover,
body.public-tv-layout .tv-main-nav a.active,
body.public-tv-layout .tv-main-nav a:focus-visible {
  color: #fff !important;
  opacity: 1 !important;
  transform: none !important;
}

body.public-tv-layout .tv-nav-strong {
  color: #fff !important;
}

body.public-tv-layout .tv-actions {
  display: flex !important;
  align-items: center !important;
  gap: 12px !important;
  margin-left: auto !important;
  flex: 0 0 auto !important;
  flex-wrap: nowrap !important;
}

body.public-tv-layout .tv-search {
  position: relative !important;
  width: clamp(170px, 20vw, 340px) !important;
  flex: 0 1 auto !important;
}

body.public-tv-layout .tv-search .search-icon {
  position: absolute !important;
  top: 50% !important;
  left: 15px !important;
  transform: translateY(-50%) !important;
  z-index: 2 !important;
  color: rgba(255, 255, 255, 0.64) !important;
  pointer-events: none !important;
}

body.public-tv-layout .tv-search input {
  width: 100% !important;
  height: 40px !important;
  min-width: 0 !important;
  padding: 0 16px 0 43px !important;
  border-radius: 999px !important;
  border: 1px solid rgba(255, 255, 255, 0.16) !important;
  background: rgba(255, 255, 255, 0.08) !important;
  color: #fff !important;
  outline: none !important;
  font-size: 0.86rem !important;
  box-shadow: none !important;
}

body.public-tv-layout .tv-search input::placeholder {
  color: rgba(255, 255, 255, 0.58) !important;
}

body.public-tv-layout .tv-login-btn,
body.public-tv-layout .tv-account-link {
  height: 42px !important;
  min-width: max-content !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 8px !important;
  padding: 0 22px !important;
  border-radius: 999px !important;
  border: 0 !important;
  background: #fff !important;
  color: #080808 !important;
  font-weight: 950 !important;
  font-size: 0.92rem !important;
  letter-spacing: -0.02em !important;
  box-shadow: none !important;
}

body.public-tv-layout .tv-account-link {
  background: transparent !important;
  color: #fff !important;
  padding: 0 4px !important;
}

body.public-tv-layout .tv-avatar,
body.public-tv-layout .tv-round-action {
  width: 38px !important;
  height: 38px !important;
  border-radius: 50% !important;
  display: inline-grid !important;
  place-items: center !important;
  border: 0 !important;
  background: rgba(255, 255, 255, 0.16) !important;
  color: #fff !important;
  font-weight: 950 !important;
  font-size: 0.85rem !important;
  box-shadow: none !important;
}

body.public-tv-layout .global-notice {
  position: fixed !important;
  top: var(--sh-header-height) !important;
  left: 50% !important;
  transform: translateX(-50%) !important;
  z-index: 950 !important;
  width: min(760px, calc(100% - 28px)) !important;
  margin: 10px 0 0 !important;
  border-radius: 999px !important;
  background: rgba(0, 0, 0, 0.82) !important;
  border: 1px solid rgba(255, 255, 255, 0.12) !important;
  color: #fff !important;
  box-shadow: 0 18px 60px rgba(0, 0, 0, 0.45) !important;
}

body.public-tv-layout .page-grid.public-tv-shell {
  position: relative !important;
  display: block !important;
  width: 100% !important;
  height: calc(100svh - var(--sh-header-height)) !important;
  min-height: 0 !important;
  max-width: none !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow: hidden !important;
  background: #000 !important;
}

body.public-tv-layout .public-player-panel,
body.public-tv-layout .player-panel.card.public-player-panel {
  position: absolute !important;
  inset: 0 !important;
  display: block !important;
  width: 100% !important;
  height: 100% !important;
  min-height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: #000 !important;
  box-shadow: none !important;
  overflow: hidden !important;
}

body.public-tv-layout .public-player-stage,
body.public-tv-layout .player-stage.public-player-stage {
  position: absolute !important;
  top: 0 !important;
  bottom: 0 !important;
  left: var(--sh-page-edge) !important;
  right: var(--sh-page-edge) !important;
  width: auto !important;
  height: auto !important;
  min-height: 0 !important;
  aspect-ratio: auto !important;
  margin: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: #000 !important;
  box-shadow: none !important;
  overflow: hidden !important;
  isolation: isolate !important;
}

body.public-tv-layout .player-stage.public-player-stage:fullscreen,
body.public-tv-layout .player-stage.public-player-stage:-webkit-full-screen {
  inset: 0 !important;
  left: 0 !important;
  right: 0 !important;
  width: 100vw !important;
  height: 100vh !important;
  background: #000 !important;
}

body.public-tv-layout #mainVideo,
body.public-tv-layout #mainFrame {
  position: absolute !important;
  inset: 0 !important;
  width: 100% !important;
  height: 100% !important;
  z-index: 1 !important;
  border: 0 !important;
  background: #000 !important;
  object-fit: cover !important;
}

body.public-tv-layout #mainFrame {
  pointer-events: auto !important;
}

body.public-tv-layout #mainVideo[hidden],
body.public-tv-layout #mainFrame[hidden] {
  display: none !important;
}

body.public-tv-layout .gp-iframe-shield {
  display: none !important;
  opacity: 0 !important;
  visibility: hidden !important;
  pointer-events: none !important;
}

body.public-tv-layout .public-runtime-hidden,
body.public-tv-layout .sidebar,
body.public-tv-layout #channelSidebar,
body.public-tv-layout .hero-section,
body.public-tv-layout .featured-section,
body.public-tv-layout .player-actions-row,
body.public-tv-layout #favoriteChannels,
body.public-tv-layout #recentChannels,
body.public-tv-layout #channelList,
body.public-tv-layout .channel-list:not(.gp-channel-rail),
body.public-tv-layout .channel-grid,
body.public-tv-layout .epg-progress:not(.gp-info-progress),
body.public-tv-layout #monetizationBanner,
body.public-tv-layout #iframeControlbarSlot,
body.public-tv-layout #playerHoverZone,
body.public-tv-layout .custom-player-controls {
  display: none !important;
  visibility: hidden !important;
  pointer-events: none !important;
}

body.public-tv-layout .gp-player-chrome {
  position: absolute !important;
  inset: 0 !important;
  z-index: 30 !important;
  display: block !important;
  opacity: 0 !important;
  visibility: hidden !important;
  pointer-events: none !important;
  background:
    linear-gradient(90deg, rgba(0, 0, 0, 0.68) 0%, rgba(0, 0, 0, 0.38) 28%, rgba(0, 0, 0, 0.08) 58%, rgba(0, 0, 0, 0.34) 100%),
    linear-gradient(180deg, rgba(0, 0, 0, 0.62) 0%, rgba(0, 0, 0, 0.04) 34%, rgba(0, 0, 0, 0.28) 58%, rgba(0, 0, 0, 0.9) 100%) !important;
  transition: opacity 0.24s ease, visibility 0.24s ease !important;
}

body.public-tv-layout.player-ui-visible .gp-player-chrome,
body.public-tv-layout .gp-player-chrome.drawer-open {
  opacity: 1 !important;
  visibility: visible !important;
}

body.public-tv-layout.player-ui-hidden .gp-player-chrome:not(.drawer-open) {
  opacity: 0 !important;
  visibility: hidden !important;
}

body.public-tv-layout .gp-top-info {
  position: absolute !important;
  top: clamp(72px, 16vh, 180px) !important;
  left: clamp(22px, 4.7vw, 86px) !important;
  z-index: 6 !important;
  width: min(560px, 45vw) !important;
  display: grid !important;
  gap: 8px !important;
  color: #fff !important;
  text-shadow: 0 2px 18px rgba(0, 0, 0, 0.68) !important;
  pointer-events: none !important;
}

body.public-tv-layout .gp-live-logo {
  width: 54px !important;
  height: 54px !important;
  border-radius: 50% !important;
  display: grid !important;
  place-items: center !important;
  margin-bottom: 12px !important;
  background: #fff !important;
  color: #111 !important;
  font-size: 1.45rem !important;
  font-weight: 950 !important;
  box-shadow: 0 16px 42px rgba(0, 0, 0, 0.34) !important;
}

body.public-tv-layout .gp-schedule-line {
  display: flex !important;
  align-items: center !important;
  gap: 10px !important;
  color: rgba(255, 255, 255, 0.78) !important;
  font-size: clamp(0.78rem, 1.2vw, 1rem) !important;
  font-weight: 800 !important;
}

body.public-tv-layout .gp-signal-pill,
body.public-tv-layout .gp-channel-card .gp-signal-pill {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-height: 24px !important;
  padding: 0 10px !important;
  border-radius: 5px !important;
  background: var(--sh-free) !important;
  color: #fff !important;
  font-size: 0.72rem !important;
  font-weight: 950 !important;
  text-shadow: none !important;
}

body.public-tv-layout .gp-top-info strong {
  color: #fff !important;
  font-size: clamp(2.2rem, 5vw, 5.5rem) !important;
  font-weight: 950 !important;
  letter-spacing: -0.075em !important;
  line-height: 0.93 !important;
  max-width: 100% !important;
}

body.public-tv-layout .gp-top-info > span:not(.gp-signal-pill),
body.public-tv-layout .gp-top-info em {
  color: rgba(255, 255, 255, 0.72) !important;
  font-style: normal !important;
  font-size: clamp(0.92rem, 1.2vw, 1.14rem) !important;
  font-weight: 700 !important;
  line-height: 1.25 !important;
}

body.public-tv-layout .gp-info-progress {
  display: block !important;
  width: min(360px, 72%) !important;
  height: 3px !important;
  margin: 8px 0 2px !important;
  border-radius: 999px !important;
  background: rgba(255, 255, 255, 0.24) !important;
  overflow: hidden !important;
}

body.public-tv-layout .gp-info-progress span {
  display: block !important;
  width: 36% !important;
  height: 100% !important;
  border-radius: inherit !important;
  background: var(--sh-accent) !important;
}

body.public-tv-layout .gp-program-btn {
  width: max-content !important;
  margin-top: 8px !important;
  padding: 12px 20px !important;
  border: 0 !important;
  border-radius: 999px !important;
  background: rgba(255, 255, 255, 0.14) !important;
  color: #fff !important;
  font-weight: 950 !important;
  pointer-events: auto !important;
  cursor: pointer !important;
}

body.public-tv-layout .gp-extras-btn {
  position: absolute !important;
  right: clamp(18px, 3.2vw, 48px) !important;
  top: 50% !important;
  transform: translateY(-50%) !important;
  z-index: 7 !important;
  min-width: 132px !important;
  height: 58px !important;
  padding: 0 24px !important;
  border: 0 !important;
  border-radius: 999px !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 12px !important;
  background: rgba(30, 30, 30, 0.92) !important;
  color: #fff !important;
  font-size: 0.98rem !important;
  font-weight: 950 !important;
  box-shadow: 0 22px 60px rgba(0, 0, 0, 0.36) !important;
  pointer-events: auto !important;
  cursor: pointer !important;
}

body.public-tv-layout .gp-player-chrome.drawer-open .gp-extras-btn i {
  transform: rotate(90deg) !important;
}

body.public-tv-layout .gp-bottom-ui {
  position: absolute !important;
  left: 0 !important;
  right: 0 !important;
  bottom: 0 !important;
  z-index: 8 !important;
  pointer-events: none !important;
}

body.public-tv-layout .gp-live-controls {
  position: relative !important;
  z-index: 12 !important;
  padding: 0 clamp(14px, 1.8vw, 24px) clamp(14px, 1.8vw, 22px) !important;
  pointer-events: none !important;
}

body.public-tv-layout .gp-live-line {
  position: relative !important;
  height: 4px !important;
  width: 100% !important;
  margin: 0 0 16px !important;
  background: rgba(255, 255, 255, 0.18) !important;
  border-radius: 999px !important;
  overflow: visible !important;
}

body.public-tv-layout .gp-live-line span {
  position: absolute !important;
  left: 0 !important;
  top: 0 !important;
  width: 100% !important;
  height: 100% !important;
  border-radius: inherit !important;
  background: var(--sh-accent) !important;
}

body.public-tv-layout .gp-live-line::after {
  content: '' !important;
  position: absolute !important;
  right: -4px !important;
  top: 50% !important;
  width: 10px !important;
  height: 10px !important;
  transform: translateY(-50%) !important;
  border-radius: 50% !important;
  background: var(--sh-accent) !important;
}

body.public-tv-layout .gp-control-row {
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 14px !important;
}

body.public-tv-layout .gp-now-pill {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  height: 25px !important;
  padding: 0 10px !important;
  border-radius: 2px !important;
  background: var(--sh-accent) !important;
  color: #fff !important;
  font-size: 0.72rem !important;
  font-weight: 950 !important;
  letter-spacing: -0.01em !important;
}

body.public-tv-layout .gp-control-actions {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: flex-end !important;
  gap: 16px !important;
  pointer-events: auto !important;
}

body.public-tv-layout .gp-icon-btn {
  width: 42px !important;
  height: 42px !important;
  display: inline-grid !important;
  place-items: center !important;
  border: 0 !important;
  border-radius: 50% !important;
  background: rgba(0, 0, 0, 0.18) !important;
  color: #fff !important;
  font-size: 1.32rem !important;
  line-height: 1 !important;
  box-shadow: none !important;
  cursor: pointer !important;
}

body.public-tv-layout .gp-icon-btn:hover,
body.public-tv-layout .gp-icon-btn:focus-visible {
  background: rgba(255, 255, 255, 0.16) !important;
  transform: none !important;
}

body.public-tv-layout .gp-volume-wrap {
  display: inline-flex !important;
  align-items: center !important;
  gap: 8px !important;
}

body.public-tv-layout .gp-volume-range {
  width: 0 !important;
  height: 4px !important;
  opacity: 0 !important;
  pointer-events: none !important;
  accent-color: #fff !important;
  transition: width 0.22s ease, opacity 0.22s ease !important;
}

body.public-tv-layout .gp-volume-wrap:hover .gp-volume-range,
body.public-tv-layout .gp-volume-range:focus {
  width: 96px !important;
  opacity: 1 !important;
  pointer-events: auto !important;
}

body.public-tv-layout .gp-channel-drawer {
  position: relative !important;
  z-index: 10 !important;
  display: grid !important;
  grid-template-rows: auto 1fr !important;
  gap: 14px !important;
  max-height: 0 !important;
  opacity: 0 !important;
  visibility: hidden !important;
  pointer-events: none !important;
  overflow: hidden !important;
  padding: 0 clamp(18px, 2.6vw, 34px) !important;
  background:
    linear-gradient(180deg, rgba(0, 0, 0, 0.02) 0%, rgba(0, 0, 0, 0.88) 34%, rgba(0, 0, 0, 0.97) 100%) !important;
  transition: max-height 0.32s ease, opacity 0.22s ease, visibility 0.22s ease, padding 0.32s ease !important;
}

body.public-tv-layout .gp-player-chrome.drawer-open .gp-channel-drawer {
  max-height: min(44svh, 450px) !important;
  opacity: 1 !important;
  visibility: visible !important;
  pointer-events: auto !important;
  padding-top: 12px !important;
  padding-bottom: 76px !important;
}

body.public-tv-layout .gp-category-strip {
  display: flex !important;
  align-items: center !important;
  gap: 12px !important;
  width: 100% !important;
  padding: 0 0 2px !important;
  overflow-x: auto !important;
  overscroll-behavior-x: contain !important;
  scrollbar-width: none !important;
  -webkit-overflow-scrolling: touch !important;
  pointer-events: auto !important;
}

body.public-tv-layout .gp-category-strip::-webkit-scrollbar,
body.public-tv-layout .gp-channel-rail::-webkit-scrollbar {
  display: none !important;
}

body.public-tv-layout .category-tab,
body.public-tv-layout .gp-category-strip .category-tab {
  flex: 0 0 auto !important;
  height: 42px !important;
  padding: 0 22px !important;
  border: 0 !important;
  border-radius: 13px !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  background: rgba(255, 255, 255, 0.12) !important;
  color: rgba(255, 255, 255, 0.82) !important;
  font-weight: 950 !important;
  font-size: 0.96rem !important;
  letter-spacing: -0.02em !important;
  box-shadow: none !important;
  white-space: nowrap !important;
  cursor: pointer !important;
}

body.public-tv-layout .category-tab.active,
body.public-tv-layout .gp-category-strip .category-tab.active {
  background: #fff !important;
  color: #121212 !important;
}

body.public-tv-layout .gp-rail-wrap {
  position: relative !important;
  min-width: 0 !important;
  pointer-events: auto !important;
}

body.public-tv-layout .gp-channel-rail {
  display: flex !important;
  align-items: stretch !important;
  gap: 14px !important;
  width: 100% !important;
  min-height: clamp(130px, 19svh, 230px) !important;
  padding: 0 4px 8px !important;
  overflow-x: auto !important;
  overflow-y: hidden !important;
  overscroll-behavior-x: contain !important;
  scroll-snap-type: x proximity !important;
  scrollbar-width: none !important;
  -webkit-overflow-scrolling: touch !important;
  cursor: grab !important;
  touch-action: pan-x !important;
  user-select: none !important;
}

body.public-tv-layout .gp-channel-rail.dragging {
  cursor: grabbing !important;
  scroll-snap-type: none !important;
}

body.public-tv-layout .gp-channel-card {
  position: relative !important;
  flex: 0 0 clamp(292px, 25.8vw, 426px) !important;
  height: clamp(138px, 19.2svh, 226px) !important;
  min-width: 0 !important;
  border: 1px solid rgba(255, 255, 255, 0.14) !important;
  border-radius: 9px !important;
  overflow: hidden !important;
  background: radial-gradient(circle at 50% 22%, rgba(255,255,255,0.18), rgba(22,22,22,0.98) 64%) !important;
  color: #fff !important;
  text-align: left !important;
  box-shadow: 0 24px 64px rgba(0, 0, 0, 0.34) !important;
  cursor: pointer !important;
  scroll-snap-align: start !important;
  transform: translateZ(0) !important;
}

body.public-tv-layout .gp-channel-card.active {
  border: 2px solid #fff !important;
  box-shadow: 0 0 0 1px rgba(255,255,255,0.14), 0 28px 72px rgba(0, 0, 0, 0.48) !important;
}

body.public-tv-layout .gp-channel-card::after {
  content: '' !important;
  position: absolute !important;
  inset: 0 !important;
  z-index: 2 !important;
  background:
    linear-gradient(180deg, rgba(0,0,0,0.12) 0%, rgba(0,0,0,0.08) 48%, rgba(0,0,0,0.84) 100%),
    linear-gradient(90deg, rgba(0,0,0,0.16), rgba(0,0,0,0.02)) !important;
  pointer-events: none !important;
}

body.public-tv-layout .gp-channel-card::before {
  content: '' !important;
  position: absolute !important;
  left: 16px !important;
  right: 56px !important;
  bottom: 13px !important;
  height: 3px !important;
  z-index: 5 !important;
  border-radius: 999px !important;
  background: linear-gradient(90deg, var(--sh-accent) 0 42%, rgba(255,255,255,.25) 42% 100%) !important;
}

body.public-tv-layout .gp-channel-card img,
body.public-tv-layout .gp-channel-card .thumb-fallback {
  position: absolute !important;
  inset: 0 !important;
  z-index: 1 !important;
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  border: 0 !important;
  border-radius: 0 !important;
  filter: saturate(0.95) contrast(1.04) brightness(0.72) !important;
  pointer-events: none !important;
}

body.public-tv-layout .gp-channel-card .thumb-fallback {
  display: grid !important;
  place-items: center !important;
  background: radial-gradient(circle at 50% 42%, rgba(255,255,255,0.18), rgba(0,0,0,0.94) 58%) !important;
  color: rgba(255,255,255,0.72) !important;
  font-size: clamp(1.2rem, 2.3vw, 2.1rem) !important;
  font-weight: 950 !important;
  letter-spacing: 0.08em !important;
}

body.public-tv-layout .gp-channel-badge,
body.public-tv-layout .gp-card-badge {
  position: absolute !important;
  top: 12px !important;
  right: 12px !important;
  z-index: 6 !important;
  min-height: 24px !important;
  padding: 0 9px !important;
  border-radius: 4px !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  background: var(--sh-accent) !important;
  color: #fff !important;
  font-size: 0.72rem !important;
  font-weight: 950 !important;
  letter-spacing: -0.02em !important;
}

body.public-tv-layout .gp-card-badge.free {
  left: 12px !important;
  right: auto !important;
  background: var(--sh-free) !important;
}

body.public-tv-layout .gp-lock-badge {
  position: absolute !important;
  left: 50% !important;
  top: 50% !important;
  z-index: 7 !important;
  width: 42px !important;
  height: 42px !important;
  transform: translate(-50%, -50%) !important;
  display: grid !important;
  place-items: center !important;
  border-radius: 50% !important;
  background: rgba(255, 225, 0, 0.94) !important;
  color: #171717 !important;
  font-size: 1.25rem !important;
  box-shadow: 0 12px 40px rgba(0,0,0,.42) !important;
}

body.public-tv-layout .gp-channel-card-copy {
  position: absolute !important;
  left: 16px !important;
  right: 16px !important;
  bottom: 30px !important;
  z-index: 6 !important;
  display: grid !important;
  gap: 2px !important;
  color: #fff !important;
  text-shadow: 0 2px 16px rgba(0, 0, 0, 0.7) !important;
}

body.public-tv-layout .gp-channel-card-copy b {
  display: block !important;
  color: #fff !important;
  font-size: clamp(0.92rem, 1.16vw, 1.18rem) !important;
  font-weight: 950 !important;
  letter-spacing: -0.04em !important;
  line-height: 1.05 !important;
  white-space: normal !important;
}

body.public-tv-layout .gp-channel-card-copy .watching-label {
  color: #fff !important;
  font-size: clamp(0.74rem, 0.92vw, 0.86rem) !important;
  font-weight: 950 !important;
  letter-spacing: -0.03em !important;
  line-height: 1.05 !important;
}

body.public-tv-layout .gp-channel-card-copy span {
  color: rgba(255, 255, 255, 0.74) !important;
  font-size: clamp(0.74rem, 0.9vw, 0.92rem) !important;
  font-weight: 750 !important;
  line-height: 1.05 !important;
}

body.public-tv-layout .gp-empty-state {
  flex: 1 0 100% !important;
  display: grid !important;
  place-items: center !important;
  min-height: 130px !important;
  border-radius: 12px !important;
  background: rgba(255, 255, 255, 0.06) !important;
  color: rgba(255, 255, 255, 0.72) !important;
  font-weight: 850 !important;
}

body.public-tv-layout .gp-rail-arrow {
  position: absolute !important;
  top: 50% !important;
  z-index: 12 !important;
  width: 58px !important;
  height: 76px !important;
  transform: translateY(-50%) !important;
  border: 0 !important;
  border-radius: 0 !important;
  display: grid !important;
  place-items: center !important;
  background: rgba(0, 0, 0, 0.48) !important;
  color: #fff !important;
  font-size: 1.9rem !important;
  pointer-events: auto !important;
  cursor: pointer !important;
}

body.public-tv-layout .gp-rail-prev {
  left: -10px !important;
  border-radius: 0 999px 999px 0 !important;
}

body.public-tv-layout .gp-rail-next {
  right: -10px !important;
  border-radius: 999px 0 0 999px !important;
}

body.public-tv-layout .gp-rail-arrow:hover {
  background: rgba(0, 0, 0, 0.72) !important;
}

body.public-tv-layout .player-overlay {
  z-index: 18 !important;
  pointer-events: auto !important;
  background: rgba(0, 0, 0, 0.62) !important;
}

body.public-tv-layout .player-overlay.hidden,
body.public-tv-layout .player-stage.has-active-source .player-overlay {
  opacity: 0 !important;
  visibility: hidden !important;
  pointer-events: none !important;
}



body.public-tv-layout .custom-player-loader {
  z-index: 48 !important;
}





@media (max-width: 1260px) {
  body.public-tv-layout .tv-main-nav a:nth-child(n+4):not(.tv-nav-strong) {
    display: none !important;
  }

  body.public-tv-layout .tv-search {
    width: clamp(150px, 24vw, 270px) !important;
  }

  body.public-tv-layout .gp-top-info {
    width: min(500px, 56vw) !important;
  }
}

@media (max-width: 920px) {
  body.public-tv-layout {
    --sh-header-height: 58px;
    --sh-page-edge: 0px;
  }

  body.public-tv-layout .public-tv-topbar {
    padding: 0 12px !important;
    gap: 10px !important;
  }

  body.public-tv-layout .tv-brand-copy p,
  body.public-tv-layout .tv-main-nav a:nth-child(n+3),
  body.public-tv-layout .tv-account-link span,
  body.public-tv-layout .tv-login-btn span {
    display: none !important;
  }

  body.public-tv-layout .tv-main-nav {
    flex: 0 0 auto !important;
    gap: 12px !important;
  }

  body.public-tv-layout .tv-search {
    width: min(38vw, 210px) !important;
  }

  body.public-tv-layout .tv-login-btn {
    width: 42px !important;
    min-width: 42px !important;
    padding: 0 !important;
  }

  body.public-tv-layout .gp-top-info {
    top: 16px !important;
    left: 16px !important;
    width: calc(100% - 104px) !important;
    gap: 5px !important;
  }

  body.public-tv-layout .gp-live-logo {
    width: 42px !important;
    height: 42px !important;
    margin-bottom: 5px !important;
    font-size: 1.05rem !important;
  }

  body.public-tv-layout .gp-top-info strong {
    font-size: clamp(1.4rem, 8vw, 2.4rem) !important;
  }

  body.public-tv-layout .gp-top-info em,
  body.public-tv-layout .gp-info-progress,
  body.public-tv-layout .gp-program-btn {
    display: none !important;
  }

  body.public-tv-layout .gp-extras-btn {
    top: auto !important;
    right: 12px !important;
    bottom: 114px !important;
    min-width: 104px !important;
    height: 48px !important;
    padding: 0 18px !important;
    font-size: 0.86rem !important;
  }

  body.public-tv-layout .gp-control-actions {
    gap: 8px !important;
  }

  body.public-tv-layout .gp-icon-btn {
    width: 38px !important;
    height: 38px !important;
    font-size: 1.14rem !important;
  }

  body.public-tv-layout .gp-volume-range {
    display: none !important;
  }

  body.public-tv-layout .gp-player-chrome.drawer-open .gp-channel-drawer {
    max-height: min(52svh, 430px) !important;
    padding-left: 12px !important;
    padding-right: 12px !important;
    padding-bottom: 74px !important;
  }

  body.public-tv-layout .gp-channel-card {
    flex-basis: min(78vw, 330px) !important;
    height: clamp(138px, 24svh, 188px) !important;
  }

  body.public-tv-layout .gp-rail-arrow {
    display: none !important;
  }
}

@media (max-width: 560px) {
  body.public-tv-layout .tv-main-nav,
  body.public-tv-layout .tv-search {
    display: none !important;
  }

  body.public-tv-layout .tv-brand-copy h1 {
    font-size: 1.16rem !important;
  }

  body.public-tv-layout .gp-top-info {
    width: calc(100% - 32px) !important;
  }

  body.public-tv-layout .gp-top-info > span:not(.gp-signal-pill) {
    max-width: 90% !important;
    font-size: 0.8rem !important;
  }

  body.public-tv-layout .category-tab,
  body.public-tv-layout .gp-category-strip .category-tab {
    height: 38px !important;
    padding: 0 17px !important;
    border-radius: 12px !important;
    font-size: 0.88rem !important;
  }

  body.public-tv-layout .gp-channel-card {
    flex-basis: 82vw !important;
  }

  body.public-tv-layout .gp-channel-card-copy {
    left: 13px !important;
    right: 13px !important;
  }
}

/* v2.8.11 ajuste final: o mouse sobre o iframe também revela a UI, sem bloquear clique/play. */
body.public-tv-layout .player-stage.public-player-stage:hover .gp-player-chrome,
body.public-tv-layout.player-ui-hidden .player-stage.public-player-stage:hover .gp-player-chrome:not(.drawer-open) {
  opacity: 1 !important;
  visibility: visible !important;
}

body.public-tv-layout .gp-channel-rail.is-dragging {
  cursor: grabbing !important;
  scroll-snap-type: none !important;
}


/* ======================================================================
   v2.8.12 - Correção solicitada
   - diminui o texto/guia do player para não cobrir o vídeo
   - mantém iframe no modo original, sem sandbox
   ====================================================================== */
body.public-tv-layout #mainFrame {
  pointer-events: auto !important;
}

body.public-tv-layout .player-stage.has-sandboxed-iframe .gp-volume-wrap::after,
body.public-tv-layout .gp-volume-wrap::after {
  content: none !important;
  display: none !important;
}

body.public-tv-layout .gp-top-info {
  top: clamp(46px, 9vh, 96px) !important;
  left: clamp(22px, 4.5vw, 74px) !important;
  width: min(440px, 38vw) !important;
  gap: 6px !important;
}

body.public-tv-layout .gp-live-logo {
  width: 44px !important;
  height: 44px !important;
  margin-bottom: 6px !important;
  font-size: 1.16rem !important;
}

body.public-tv-layout .gp-schedule-line {
  gap: 8px !important;
  font-size: clamp(0.72rem, 0.92vw, 0.9rem) !important;
}

body.public-tv-layout .gp-signal-pill,
body.public-tv-layout .gp-channel-card .gp-signal-pill {
  min-height: 21px !important;
  padding: 0 8px !important;
  border-radius: 4px !important;
  font-size: 0.64rem !important;
}

body.public-tv-layout .gp-top-info strong {
  font-size: clamp(1.45rem, 3vw, 3.05rem) !important;
  line-height: 0.98 !important;
  letter-spacing: -0.055em !important;
  max-width: 100% !important;
}

body.public-tv-layout .gp-top-info > span:not(.gp-signal-pill),
body.public-tv-layout .gp-top-info em {
  font-size: clamp(0.78rem, 0.94vw, 0.96rem) !important;
  line-height: 1.18 !important;
  font-weight: 700 !important;
  max-width: 96% !important;
}

body.public-tv-layout .gp-info-progress {
  width: min(260px, 64%) !important;
  margin: 5px 0 1px !important;
}

body.public-tv-layout .gp-program-btn {
  margin-top: 5px !important;
  padding: 9px 15px !important;
  font-size: 0.84rem !important;
}

@media (max-width: 1260px) {
  body.public-tv-layout .gp-top-info {
    width: min(390px, 46vw) !important;
  }
  body.public-tv-layout .gp-top-info strong {
    font-size: clamp(1.32rem, 3.2vw, 2.35rem) !important;
  }
}

@media (max-width: 920px) {
  body.public-tv-layout .gp-top-info {
    top: 14px !important;
    left: 14px !important;
    width: calc(100% - 116px) !important;
    gap: 4px !important;
  }
  body.public-tv-layout .gp-live-logo {
    width: 36px !important;
    height: 36px !important;
    margin-bottom: 3px !important;
    font-size: 0.94rem !important;
  }
  body.public-tv-layout .gp-top-info strong {
    font-size: clamp(1.06rem, 5.4vw, 1.72rem) !important;
    line-height: 1.02 !important;
    letter-spacing: -0.045em !important;
  }
  body.public-tv-layout .gp-top-info > span:not(.gp-signal-pill) {
    font-size: 0.76rem !important;
  }
}

@media (max-width: 560px) {
  body.public-tv-layout .gp-top-info {
    width: calc(100% - 28px) !important;
  }
  body.public-tv-layout .gp-top-info strong {
    font-size: clamp(1rem, 6vw, 1.55rem) !important;
  }
}


/* ======================================================================
   v2.8.14 - Programação visível, textos menores e sem botão inútil
   ====================================================================== */
body.public-tv-layout .gp-program-btn {
  display: none !important;
  visibility: hidden !important;
  pointer-events: none !important;
}

body.public-tv-layout .gp-top-info {
  top: clamp(54px, 10vh, 112px) !important;
  width: min(360px, 32vw) !important;
  gap: 5px !important;
}

body.public-tv-layout .gp-live-logo {
  width: 38px !important;
  height: 38px !important;
  margin-bottom: 4px !important;
  font-size: 1rem !important;
}

body.public-tv-layout .gp-schedule-line {
  font-size: clamp(0.66rem, 0.78vw, 0.82rem) !important;
  gap: 7px !important;
}

body.public-tv-layout .gp-signal-pill {
  min-height: 19px !important;
  padding: 0 7px !important;
  font-size: 0.59rem !important;
}

body.public-tv-layout .gp-top-info strong,
body.public-tv-layout .gp-top-info #gpNowTitle {
  font-size: clamp(1.08rem, 2.1vw, 2.05rem) !important;
  line-height: 1.02 !important;
  letter-spacing: -0.04em !important;
  max-width: min(360px, 100%) !important;
  display: -webkit-box !important;
  -webkit-line-clamp: 3 !important;
  -webkit-box-orient: vertical !important;
  overflow: hidden !important;
}

body.public-tv-layout .gp-top-info #gpNowMeta,
body.public-tv-layout .gp-top-info #gpNextMeta {
  display: block !important;
  visibility: visible !important;
  opacity: 1 !important;
  max-width: min(360px, 100%) !important;
  font-size: clamp(0.68rem, 0.78vw, 0.82rem) !important;
  line-height: 1.18 !important;
  font-weight: 700 !important;
  white-space: normal !important;
  overflow-wrap: anywhere !important;
}

body.public-tv-layout .gp-top-info #gpNowMeta {
  color: rgba(255, 255, 255, 0.82) !important;
  display: -webkit-box !important;
  -webkit-line-clamp: 2 !important;
  -webkit-box-orient: vertical !important;
  overflow: hidden !important;
}

body.public-tv-layout .gp-top-info #gpNextMeta {
  color: rgba(255, 255, 255, 0.68) !important;
  display: -webkit-box !important;
  -webkit-line-clamp: 1 !important;
  -webkit-box-orient: vertical !important;
  overflow: hidden !important;
}

body.public-tv-layout .gp-info-progress {
  display: block !important;
  width: min(230px, 62%) !important;
  height: 2px !important;
  margin: 4px 0 0 !important;
}

body.public-tv-layout .gp-volume-wrap {
  position: relative !important;
}

body.public-tv-layout .player-stage.gp-iframe-volume-limited .gp-volume-range {
  display: none !important;
}

body.public-tv-layout .player-stage.gp-iframe-volume-limited .gp-volume-wrap::after {
  content: 'use o volume do player interno' !important;
  position: absolute !important;
  right: 0 !important;
  bottom: calc(100% + 8px) !important;
  padding: 7px 9px !important;
  border-radius: 10px !important;
  background: rgba(15, 15, 15, 0.94) !important;
  color: rgba(255,255,255,0.82) !important;
  font-size: 0.64rem !important;
  font-weight: 800 !important;
  white-space: nowrap !important;
  opacity: 0 !important;
  pointer-events: none !important;
  transform: translateY(4px) !important;
  transition: opacity .16s ease, transform .16s ease !important;
}

body.public-tv-layout .player-stage.gp-iframe-volume-limited .gp-volume-wrap:hover::after,
body.public-tv-layout .player-stage.gp-iframe-volume-limited .gp-volume-wrap:focus-within::after {
  opacity: 1 !important;
  transform: translateY(0) !important;
}

@media (max-width: 1260px) {
  body.public-tv-layout .gp-top-info {
    width: min(330px, 44vw) !important;
  }
  body.public-tv-layout .gp-top-info strong,
  body.public-tv-layout .gp-top-info #gpNowTitle {
    font-size: clamp(1rem, 2.3vw, 1.82rem) !important;
  }
}

@media (max-width: 920px) {
  body.public-tv-layout .gp-top-info {
    top: 14px !important;
    left: 14px !important;
    width: calc(100% - 120px) !important;
  }
  body.public-tv-layout .gp-top-info strong,
  body.public-tv-layout .gp-top-info #gpNowTitle {
    font-size: clamp(1rem, 5.2vw, 1.6rem) !important;
    -webkit-line-clamp: 2 !important;
  }
}


/* ======================================================================
   v2.8.15 - Iframe sem conflito com controles/anúncios do player interno
   - Sem sandbox: iframe permanece no modo original.
   - Em canais embed/iframe, os controles inferiores do site são ocultados.
   - O rodapé do iframe fica livre para Play, volume, qualidade e pular anúncio.
   - O botão Canais continua disponível no lado direito.
   ====================================================================== */
body.public-tv-layout .player-stage.has-embed-player #mainFrame {
  pointer-events: auto !important;
}

/* No modo iframe, não escurece nem cobre a barra nativa inferior do player externo. */
body.public-tv-layout .player-stage.has-embed-player .gp-player-chrome:not(.drawer-open) {
  background:
    linear-gradient(180deg, rgba(0,0,0,.52) 0%, rgba(0,0,0,.22) 24%, rgba(0,0,0,0) 48%, rgba(0,0,0,0) 100%),
    linear-gradient(90deg, rgba(0,0,0,.38) 0%, rgba(0,0,0,.12) 30%, rgba(0,0,0,0) 64%, rgba(0,0,0,0) 100%) !important;
  pointer-events: none !important;
}

/* Libera totalmente a parte de baixo para os controles do iframe e para o botão de pular anúncio. */
body.public-tv-layout .player-stage.has-embed-player .gp-player-chrome:not(.drawer-open) .gp-bottom-ui,
body.public-tv-layout .player-stage.has-embed-player .gp-player-chrome:not(.drawer-open) .gp-live-controls,
body.public-tv-layout .player-stage.has-embed-player .gp-player-chrome:not(.drawer-open) .gp-control-row,
body.public-tv-layout .player-stage.has-embed-player .gp-player-chrome:not(.drawer-open) .gp-live-line,
body.public-tv-layout .player-stage.has-embed-player .gp-player-chrome:not(.drawer-open) .gp-control-actions,
body.public-tv-layout .player-stage.has-embed-player .gp-player-chrome:not(.drawer-open) .gp-volume-wrap {
  display: none !important;
  visibility: hidden !important;
  opacity: 0 !important;
  pointer-events: none !important;
}

/* O botão Canais fica ativo, mas longe da barra inferior do iframe. */
body.public-tv-layout .player-stage.has-embed-player .gp-extras-btn {
  top: 50% !important;
  bottom: auto !important;
  right: clamp(18px, 3.2vw, 48px) !important;
  transform: translateY(-50%) !important;
  pointer-events: auto !important;
}

/* Ao abrir Canais, só a gaveta fica clicável; os controles inferiores do site continuam ocultos. */
body.public-tv-layout .player-stage.has-embed-player .gp-player-chrome.drawer-open {
  pointer-events: none !important;
}
body.public-tv-layout .player-stage.has-embed-player .gp-player-chrome.drawer-open .gp-extras-btn,
body.public-tv-layout .player-stage.has-embed-player .gp-player-chrome.drawer-open .gp-channel-drawer,
body.public-tv-layout .player-stage.has-embed-player .gp-player-chrome.drawer-open .gp-category-strip,
body.public-tv-layout .player-stage.has-embed-player .gp-player-chrome.drawer-open .gp-rail-wrap,
body.public-tv-layout .player-stage.has-embed-player .gp-player-chrome.drawer-open .gp-channel-rail,
body.public-tv-layout .player-stage.has-embed-player .gp-player-chrome.drawer-open .gp-channel-card,
body.public-tv-layout .player-stage.has-embed-player .gp-player-chrome.drawer-open .gp-rail-arrow {
  pointer-events: auto !important;
}
body.public-tv-layout .player-stage.has-embed-player .gp-player-chrome.drawer-open .gp-live-controls {
  display: none !important;
  visibility: hidden !important;
  opacity: 0 !important;
  pointer-events: none !important;
}

/* Texto do canal no iframe: menor e ocupando menos vídeo. */
body.public-tv-layout .player-stage.has-embed-player .gp-top-info {
  top: clamp(38px, 7.5vh, 82px) !important;
  width: min(330px, 30vw) !important;
  gap: 4px !important;
}
body.public-tv-layout .player-stage.has-embed-player .gp-live-logo {
  width: 34px !important;
  height: 34px !important;
  margin-bottom: 3px !important;
  font-size: .92rem !important;
}
body.public-tv-layout .player-stage.has-embed-player .gp-top-info #gpNowTitle {
  font-size: clamp(1rem, 1.78vw, 1.72rem) !important;
  line-height: 1.03 !important;
  -webkit-line-clamp: 2 !important;
}
body.public-tv-layout .player-stage.has-embed-player .gp-top-info #gpNowMeta,
body.public-tv-layout .player-stage.has-embed-player .gp-top-info #gpNextMeta,
body.public-tv-layout .player-stage.has-embed-player .gp-schedule-line {
  font-size: clamp(.62rem, .72vw, .76rem) !important;
  line-height: 1.15 !important;
}
body.public-tv-layout .player-stage.has-embed-player .gp-info-progress {
  width: min(190px, 58%) !important;
  height: 2px !important;
  margin-top: 3px !important;
}

@media (max-width: 920px) {
  body.public-tv-layout .player-stage.has-embed-player .gp-top-info {
    top: 12px !important;
    left: 12px !important;
    width: calc(100% - 130px) !important;
  }
  body.public-tv-layout .player-stage.has-embed-player .gp-extras-btn {
    top: 50% !important;
    right: 12px !important;
    bottom: auto !important;
    min-width: 102px !important;
    height: 46px !important;
  }
}

@media (max-width: 560px) {
  body.public-tv-layout .player-stage.has-embed-player .gp-top-info {
    width: calc(100% - 24px) !important;
  }
  body.public-tv-layout .player-stage.has-embed-player .gp-extras-btn {
    top: auto !important;
    right: 10px !important;
    bottom: 92px !important;
  }
}


/* ======================================================================
   v2.8.16 - Ações superiores no modo iframe
   - Evita conflito entre a barra inferior do iframe e a barra do site.
   - Tela cheia e recarregar ficam no canto superior direito do player.
   - Sem sandbox no iframe.
   ====================================================================== */
body.public-tv-layout .gp-embed-top-actions {
  position: absolute !important;
  top: clamp(14px, 2.2vw, 28px) !important;
  right: clamp(16px, 2.8vw, 42px) !important;
  z-index: 18 !important;
  display: none !important;
  align-items: center !important;
  gap: 10px !important;
  pointer-events: auto !important;
}

body.public-tv-layout .gp-embed-top-actions .gp-embed-action {
  width: 44px !important;
  height: 44px !important;
  border-radius: 50% !important;
  background: rgba(22,22,22,.78) !important;
  backdrop-filter: blur(10px) !important;
  -webkit-backdrop-filter: blur(10px) !important;
  box-shadow: 0 10px 28px rgba(0,0,0,.35) !important;
}

body.public-tv-layout .player-stage.has-embed-player .gp-embed-top-actions {
  display: inline-flex !important;
  visibility: visible !important;
  opacity: 1 !important;
}

body.public-tv-layout .player-stage.has-embed-player .gp-player-chrome:not(.drawer-open) {
  background:
    linear-gradient(180deg, rgba(0,0,0,.46) 0%, rgba(0,0,0,.16) 22%, rgba(0,0,0,0) 48%, rgba(0,0,0,0) 100%),
    linear-gradient(90deg, rgba(0,0,0,.36) 0%, rgba(0,0,0,.11) 30%, rgba(0,0,0,0) 62%, rgba(0,0,0,0) 100%) !important;
}

body.public-tv-layout .player-stage.has-embed-player .gp-player-chrome:not(.drawer-open) .gp-bottom-ui,
body.public-tv-layout .player-stage.has-embed-player .gp-player-chrome:not(.drawer-open) .gp-live-controls,
body.public-tv-layout .player-stage.has-embed-player .gp-player-chrome:not(.drawer-open) .gp-control-row,
body.public-tv-layout .player-stage.has-embed-player .gp-player-chrome:not(.drawer-open) .gp-live-line,
body.public-tv-layout .player-stage.has-embed-player .gp-player-chrome:not(.drawer-open) .gp-control-actions,
body.public-tv-layout .player-stage.has-embed-player .gp-player-chrome:not(.drawer-open) .gp-volume-wrap {
  display: none !important;
  visibility: hidden !important;
  opacity: 0 !important;
  pointer-events: none !important;
}

body.public-tv-layout .player-stage.has-embed-player .gp-player-chrome.drawer-open .gp-embed-top-actions {
  display: inline-flex !important;
  pointer-events: auto !important;
}

body.public-tv-layout .player-stage.has-embed-player .gp-player-chrome.drawer-open .gp-live-controls {
  display: none !important;
  visibility: hidden !important;
  opacity: 0 !important;
  pointer-events: none !important;
}

body.public-tv-layout .player-stage.has-embed-player .gp-extras-btn {
  top: 50% !important;
  right: clamp(18px, 3.2vw, 48px) !important;
  bottom: auto !important;
  transform: translateY(-50%) !important;
}

@media (max-width: 920px) {
  body.public-tv-layout .gp-embed-top-actions {
    top: 10px !important;
    right: 10px !important;
    gap: 8px !important;
  }
  body.public-tv-layout .gp-embed-top-actions .gp-embed-action {
    width: 40px !important;
    height: 40px !important;
    font-size: 1.15rem !important;
  }
}


/* ======================================================================
   v2.8.16.1 - Correção pontual VAST clicável
   Base mantida na v2.8.16. Apenas libera o clique do anúncio para o botão
   nativo Skip Ad/Pular Anúncio não ficar bloqueado pelo layout do site.
   ====================================================================== */














@media (max-width: 700px) {
  
}

/* ======================================================================
   v2.8.93 - Auto-hide definitivo para smartphone e tablet
   O chrome sai do layout visual para vencer regras legadas com !important.
   O modo TV, o painel de jogos e o VAST continuam com estados independentes.
   ====================================================================== */
@media (max-width: 1024px) {
  html body.public-tv-layout:not(.tv-app-experience).player-ui-hidden:not(.football-panel-open):not(.is-playing-ad):not(.is-vast-click-mode) #playerStage #gpPlayerChrome {
    display: none !important;
    opacity: 0 !important;
    visibility: hidden !important;
    pointer-events: none !important;
  }

  html body.public-tv-layout:not(.tv-app-experience).player-ui-hidden:not(.football-panel-open):not(.is-playing-ad):not(.is-vast-click-mode) #playerStage #gpPlayerChrome .gp-top-info,
  html body.public-tv-layout:not(.tv-app-experience).player-ui-hidden:not(.football-panel-open):not(.is-playing-ad):not(.is-vast-click-mode) #playerStage #gpPlayerChrome .gp-embed-top-actions,
  html body.public-tv-layout:not(.tv-app-experience).player-ui-hidden:not(.football-panel-open):not(.is-playing-ad):not(.is-vast-click-mode) #playerStage #gpPlayerChrome .gp-bottom-ui,
  html body.public-tv-layout:not(.tv-app-experience).player-ui-hidden:not(.football-panel-open):not(.is-playing-ad):not(.is-vast-click-mode) #playerStage #gpPlayerChrome .gp-live-controls,
  html body.public-tv-layout:not(.tv-app-experience).player-ui-hidden:not(.football-panel-open):not(.is-playing-ad):not(.is-vast-click-mode) #playerStage #gpPlayerChrome #gpChannelDrawer,
  html body.public-tv-layout:not(.tv-app-experience).player-ui-hidden:not(.football-panel-open):not(.is-playing-ad):not(.is-vast-click-mode) .player-actions-row,
  html body.public-tv-layout:not(.tv-app-experience).player-ui-hidden:not(.football-panel-open):not(.is-playing-ad):not(.is-vast-click-mode) .sidebar {
    display: none !important;
    opacity: 0 !important;
    visibility: hidden !important;
    pointer-events: none !important;
  }

  html body.public-tv-layout:not(.tv-app-experience).player-ui-hidden:not(.football-panel-open):not(.is-playing-ad):not(.is-vast-click-mode) #playerStage::after {
    opacity: 0 !important;
    visibility: hidden !important;
  }
}


/* ======================================================================
   v2.8.22 - Responsivo smartphone/tablet inspirado nas referências
   - Header mobile com menu, logo central e busca redonda.
   - Player deixa de ser tela cheia em celulares/tablets e vira card vertical.
   - Vídeo/iframe fica no topo; informações, filtros e canais ficam abaixo.
   - Drawer lateral mobile no estilo Globoplay.
   - Mantém iframe sem sandbox e preserva correção do VAST clicável.
   ====================================================================== */
body.public-tv-layout .tv-mobile-menu-toggle,
body.public-tv-layout .tv-mobile-menu,
body.public-tv-layout .tv-mobile-menu-backdrop {
  display: none;
}

@media (max-width: 1024px) {
  html,
  body.public-tv-layout {
    width: 100% !important;
    min-height: 100svh !important;
    overflow-x: hidden !important;
    overflow-y: auto !important;
    background: #3a3a3a !important;
  }

  body.public-tv-layout {
    --sh-header-height: 50px !important;
    --sh-mobile-shell-w: min(100vw, 690px);
    --ntv-video-height: calc(var(--sh-mobile-shell-w) * .5625);
    --ntv-shell-height: min(920px, calc(100svh - 46px));
  }

  body.public-tv-layout .public-tv-topbar {
    position: relative !important;
    top: auto !important;
    width: var(--sh-mobile-shell-w) !important;
    max-width: var(--sh-mobile-shell-w) !important;
    height: var(--sh-header-height) !important;
    min-height: var(--sh-header-height) !important;
    margin: 28px auto 0 !important;
    padding: 0 14px !important;
    display: grid !important;
    grid-template-columns: 42px minmax(0, 1fr) 42px !important;
    align-items: center !important;
    gap: 0 !important;
    border-radius: 8px 8px 0 0 !important;
    background: #050505 !important;
    z-index: 1002 !important;
  }

  body.public-tv-layout .tv-mobile-menu-toggle {
    display: inline-grid !important;
    place-items: center !important;
    width: 38px !important;
    height: 38px !important;
    border: 0 !important;
    border-radius: 50% !important;
    background: transparent !important;
    color: #fff !important;
    font-size: 1.55rem !important;
    cursor: pointer !important;
    justify-self: start !important;
    z-index: 3 !important;
  }

  body.public-tv-layout .tv-brand {
    justify-self: center !important;
    min-width: 0 !important;
    gap: 0 !important;
  }

  body.public-tv-layout .tv-brand-icon,
  body.public-tv-layout .tv-brand-copy p {
    display: none !important;
  }

  body.public-tv-layout .tv-brand-copy h1 {
    display: block !important;
    font-size: 1.13rem !important;
    letter-spacing: -0.045em !important;
    line-height: 1 !important;
    text-align: center !important;
  }


  body.public-tv-layout .tv-main-nav,
  body.public-tv-layout .tv-login-btn,
  body.public-tv-layout .tv-account-link,
  body.public-tv-layout .tv-avatar,
  body.public-tv-layout .tv-round-action {
    display: none !important;
  }

  body.public-tv-layout .tv-actions {
    justify-self: end !important;
    margin-left: 0 !important;
    width: 38px !important;
    height: 38px !important;
    display: block !important;
    position: relative !important;
  }

  body.public-tv-layout .tv-search {
    position: absolute !important;
    right: 0 !important;
    top: 0 !important;
    width: 38px !important;
    height: 38px !important;
    border-radius: 50% !important;
    overflow: hidden !important;
    background: rgba(255,255,255,.13) !important;
    border: 0 !important;
    transition: width .2s ease, border-radius .2s ease, background .2s ease !important;
  }

  body.public-tv-layout .tv-search .search-icon {
    left: 50% !important;
    transform: translate(-50%, -50%) !important;
    color: rgba(255,255,255,.88) !important;
    font-size: 1rem !important;
  }

  body.public-tv-layout .tv-search input {
    width: 100% !important;
    height: 38px !important;
    padding: 0 12px 0 40px !important;
    opacity: 0 !important;
    color: #fff !important;
    border: 0 !important;
    background: transparent !important;
    pointer-events: auto !important;
  }

  body.public-tv-layout.mobile-search-open .tv-search,
  body.public-tv-layout .tv-search:focus-within {
    width: min(260px, calc(var(--sh-mobile-shell-w) - 78px)) !important;
    border-radius: 999px !important;
    background: rgba(24,24,24,.98) !important;
    border: 1px solid rgba(255,255,255,.18) !important;
    z-index: 10 !important;
  }

  body.public-tv-layout.mobile-search-open .tv-search .search-icon,
  body.public-tv-layout .tv-search:focus-within .search-icon {
    left: 18px !important;
    transform: translateY(-50%) !important;
  }

  body.public-tv-layout.mobile-search-open .tv-search input,
  body.public-tv-layout .tv-search:focus-within input {
    opacity: 1 !important;
  }

  body.public-tv-layout .page-grid.public-tv-shell {
    width: var(--sh-mobile-shell-w) !important;
    max-width: var(--sh-mobile-shell-w) !important;
    height: var(--ntv-shell-height) !important;
    min-height: 640px !important;
    margin: 0 auto 32px !important;
    padding: 0 !important;
    overflow: hidden !important;
    border-radius: 0 0 8px 8px !important;
    background: #1f1f1f !important;
    box-shadow: 0 10px 36px rgba(0,0,0,.28) !important;
  }

  body.public-tv-layout .public-player-panel,
  body.public-tv-layout .player-panel.card.public-player-panel {
    position: relative !important;
    inset: auto !important;
    height: 100% !important;
    min-height: 0 !important;
    overflow: hidden !important;
    background: #1f1f1f !important;
  }

  body.public-tv-layout .public-player-stage,
  body.public-tv-layout .player-stage.public-player-stage {
    position: relative !important;
    inset: auto !important;
    left: auto !important;
    right: auto !important;
    width: 100% !important;
    height: 100% !important;
    min-height: 0 !important;
    aspect-ratio: auto !important;
    border-radius: 0 !important;
    background: #000 !important;
    overflow: hidden !important;
  }

  body.public-tv-layout .player-stage.public-player-stage::before {
    content: '' !important;
    position: absolute !important;
    left: 0 !important;
    right: 0 !important;
    top: var(--ntv-video-height) !important;
    bottom: 0 !important;
    z-index: 0 !important;
    background: #1f1f1f !important;
    pointer-events: none !important;
  }

  body.public-tv-layout:not(.is-playing-ad) .player-stage.public-player-stage > video,
  body.public-tv-layout:not(.is-playing-ad) .player-stage.public-player-stage > iframe,
  body.public-tv-layout:not(.is-playing-ad) .player-stage.public-player-stage #mainVideo,
  body.public-tv-layout:not(.is-playing-ad) .player-stage.public-player-stage #mainFrame {
    position: absolute !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    bottom: auto !important;
    width: 100% !important;
    height: var(--ntv-video-height) !important;
    object-fit: cover !important;
    z-index: 1 !important;
  }

  

  body.public-tv-layout .gp-player-chrome,
  body.public-tv-layout.player-ui-hidden .gp-player-chrome:not(.drawer-open),
  body.public-tv-layout.player-ui-visible .gp-player-chrome,
  body.public-tv-layout .player-stage.has-embed-player .gp-player-chrome:not(.drawer-open) {
    display: block !important;
    opacity: 1 !important;
    visibility: visible !important;
    pointer-events: none !important;
    background: linear-gradient(180deg, rgba(0,0,0,.50) 0%, rgba(0,0,0,.10) 24%, rgba(0,0,0,0) 42%, rgba(0,0,0,0) 100%) !important;
  }

  body.public-tv-layout .player-stage.has-embed-player #mainFrame {
    pointer-events: auto !important;
  }

  body.public-tv-layout .gp-top-info,
  body.public-tv-layout .player-stage.has-embed-player .gp-top-info {
    top: calc(var(--ntv-video-height) + 48px) !important;
    left: 22px !important;
    width: calc(100% - 44px) !important;
    max-width: none !important;
    gap: 5px !important;
    z-index: 8 !important;
    text-shadow: none !important;
  }

  body.public-tv-layout .gp-live-logo,
  body.public-tv-layout .player-stage.has-embed-player .gp-live-logo {
    width: 24px !important;
    height: 24px !important;
    margin: 0 0 8px !important;
    border-radius: 50% !important;
    font-size: .72rem !important;
    background: #fff !important;
    color: #111 !important;
  }

  body.public-tv-layout .gp-schedule-line,
  body.public-tv-layout .player-stage.has-embed-player .gp-schedule-line {
    display: flex !important;
    align-items: center !important;
    gap: 8px !important;
    width: 56% !important;
    min-width: 0 !important;
    font-size: .64rem !important;
    line-height: 1 !important;
  }

  body.public-tv-layout .gp-signal-pill {
    min-height: 15px !important;
    padding: 0 5px !important;
    border-radius: 3px !important;
    font-size: .50rem !important;
    white-space: nowrap !important;
  }

  body.public-tv-layout .gp-top-info #gpNowTime {
    font-size: .60rem !important;
    font-weight: 800 !important;
    color: rgba(255,255,255,.84) !important;
    white-space: nowrap !important;
  }

  body.public-tv-layout .gp-top-info #gpNowTitle,
  body.public-tv-layout .player-stage.has-embed-player .gp-top-info #gpNowTitle {
    width: 58% !important;
    max-width: 58% !important;
    font-size: clamp(.92rem, 2.8vw, 1.16rem) !important;
    line-height: 1.05 !important;
    letter-spacing: -0.045em !important;
    -webkit-line-clamp: 2 !important;
    color: #fff !important;
  }

  body.public-tv-layout .gp-top-info #gpNowMeta {
    width: 58% !important;
    max-width: 58% !important;
    font-size: .60rem !important;
    line-height: 1.15 !important;
    color: rgba(255,255,255,.72) !important;
    -webkit-line-clamp: 1 !important;
  }

  body.public-tv-layout .gp-top-info #gpNextMeta {
    position: absolute !important;
    top: 50px !important;
    right: 0 !important;
    width: 32% !important;
    max-width: 32% !important;
    font-size: .60rem !important;
    line-height: 1.15 !important;
    color: rgba(255,255,255,.78) !important;
    -webkit-line-clamp: 2 !important;
  }

  body.public-tv-layout .gp-top-info #gpNextMeta::before {
    content: 'A seguir' !important;
    display: block !important;
    margin-bottom: 4px !important;
    color: rgba(255,255,255,.58) !important;
    font-size: .55rem !important;
    font-style: normal !important;
    font-weight: 800 !important;
  }

  body.public-tv-layout .gp-info-progress {
    width: 58% !important;
    max-width: 58% !important;
    height: 2px !important;
    margin-top: 3px !important;
    background: rgba(255,255,255,.20) !important;
  }

  body.public-tv-layout .gp-info-progress span,
  body.public-tv-layout #gpInfoProgressBar {
    display: block !important;
    height: 100% !important;
    background: var(--sh-accent) !important;
  }

  body.public-tv-layout .gp-bottom-ui,
  body.public-tv-layout .player-stage.has-embed-player .gp-player-chrome:not(.drawer-open) .gp-bottom-ui {
    display: flex !important;
    flex-direction: column !important;
    position: absolute !important;
    left: 0 !important;
    right: 0 !important;
    top: calc(var(--ntv-video-height) - 32px) !important;
    bottom: auto !important;
    z-index: 9 !important;
    visibility: visible !important;
    opacity: 1 !important;
    pointer-events: none !important;
  }

  body.public-tv-layout .gp-live-controls {
    order: 1 !important;
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
    pointer-events: none !important;
  }

  body.public-tv-layout .player-stage.has-embed-player .gp-live-controls,
  body.public-tv-layout .player-stage.has-embed-player .gp-player-chrome.drawer-open .gp-live-controls {
    display: none !important;
  }

  body.public-tv-layout .gp-live-line {
    height: 2px !important;
    margin: 0 16px !important;
    background: rgba(255,255,255,.30) !important;
  }

  body.public-tv-layout .gp-control-row {
    min-height: 50px !important;
    height: 50px !important;
    padding: 0 14px !important;
  }

  body.public-tv-layout .gp-now-pill {
    min-height: 18px !important;
    padding: 0 6px !important;
    font-size: .50rem !important;
    border-radius: 2px !important;
  }

  body.public-tv-layout .gp-control-actions {
    gap: 6px !important;
    pointer-events: auto !important;
  }

  body.public-tv-layout .gp-icon-btn {
    width: 30px !important;
    height: 30px !important;
    min-width: 30px !important;
    font-size: .95rem !important;
    background: transparent !important;
  }

  body.public-tv-layout .gp-volume-range {
    display: none !important;
  }

  body.public-tv-layout .gp-extras-btn,
  body.public-tv-layout .player-stage.has-embed-player .gp-extras-btn {
    top: calc(var(--ntv-video-height) + 60px) !important;
    right: 18px !important;
    bottom: auto !important;
    min-width: 76px !important;
    height: 30px !important;
    padding: 0 10px !important;
    gap: 5px !important;
    border-radius: 999px !important;
    background: rgba(45,45,45,.95) !important;
    font-size: .64rem !important;
    transform: none !important;
    pointer-events: auto !important;
    z-index: 12 !important;
  }

  body.public-tv-layout .gp-extras-btn span {
    font-size: .64rem !important;
    line-height: 1 !important;
  }

  body.public-tv-layout .gp-extras-btn i {
    font-size: .75rem !important;
  }

  body.public-tv-layout .gp-embed-top-actions {
    top: 10px !important;
    right: 10px !important;
    gap: 8px !important;
    z-index: 20 !important;
  }

  body.public-tv-layout .gp-embed-top-actions .gp-embed-action {
    width: 34px !important;
    height: 34px !important;
    min-width: 34px !important;
    font-size: .92rem !important;
    background: rgba(0,0,0,.62) !important;
    box-shadow: none !important;
  }

  body.public-tv-layout .gp-channel-drawer,
  body.public-tv-layout .gp-player-chrome.drawer-open .gp-channel-drawer,
  body.public-tv-layout .player-stage.has-embed-player .gp-player-chrome:not(.drawer-open) .gp-channel-drawer,
  body.public-tv-layout .player-stage.has-embed-player .gp-player-chrome.drawer-open .gp-channel-drawer {
    order: 2 !important;
    display: grid !important;
    position: relative !important;
    z-index: 10 !important;
    grid-template-rows: auto auto !important;
    gap: 16px !important;
    max-height: none !important;
    opacity: 1 !important;
    visibility: visible !important;
    overflow: visible !important;
    pointer-events: auto !important;
    margin-top: 136px !important;
    padding: 18px 16px 24px !important;
    background: #242424 !important;
    transition: none !important;
  }

  body.public-tv-layout .player-stage.has-embed-player .gp-channel-drawer,
  body.public-tv-layout .player-stage.has-embed-player .gp-player-chrome:not(.drawer-open) .gp-channel-drawer {
    margin-top: 150px !important;
  }

  body.public-tv-layout .gp-category-strip {
    gap: 10px !important;
    padding: 0 0 2px !important;
    overflow-x: auto !important;
    pointer-events: auto !important;
  }

  body.public-tv-layout .gp-category-strip .category-tab,
  body.public-tv-layout .category-tab {
    height: 38px !important;
    padding: 0 15px !important;
    border-radius: 9px !important;
    font-size: .72rem !important;
    letter-spacing: -0.02em !important;
  }

  body.public-tv-layout .gp-rail-wrap {
    width: 100% !important;
    pointer-events: auto !important;
  }

  body.public-tv-layout .gp-channel-rail {
    gap: 12px !important;
    width: 100% !important;
    min-height: 120px !important;
    padding: 0 2px 8px !important;
    overflow-x: auto !important;
    overflow-y: hidden !important;
    scroll-snap-type: x proximity !important;
    pointer-events: auto !important;
    cursor: grab !important;
    touch-action: pan-x !important;
  }

  body.public-tv-layout .gp-channel-card {
    flex: 0 0 192px !important;
    height: 108px !important;
    border-radius: 7px !important;
  }

  body.public-tv-layout .gp-channel-card-copy {
    left: 10px !important;
    right: 10px !important;
    bottom: 18px !important;
    gap: 1px !important;
  }

  body.public-tv-layout .gp-channel-card-copy b,
  body.public-tv-layout .gp-channel-card-copy strong {
    font-size: .68rem !important;
    line-height: 1.02 !important;
  }

  body.public-tv-layout .gp-channel-card-copy small,
  body.public-tv-layout .gp-channel-card-copy span {
    font-size: .58rem !important;
  }

  body.public-tv-layout .gp-channel-card::before {
    left: 0 !important;
    right: 0 !important;
    bottom: 0 !important;
    height: 3px !important;
  }

  body.public-tv-layout .gp-channel-badge,
  body.public-tv-layout .gp-card-badge {
    top: 8px !important;
    right: 8px !important;
    min-height: 18px !important;
    padding: 0 6px !important;
    font-size: .54rem !important;
    border-radius: 3px !important;
  }

  body.public-tv-layout .gp-live-logo + .gp-schedule-line {
    margin-top: 0 !important;
  }

  body.public-tv-layout .gp-rail-arrow {
    display: none !important;
  }

  body.public-tv-layout .tv-mobile-menu-backdrop {
    position: fixed !important;
    inset: 0 !important;
    z-index: 2000 !important;
    display: block !important;
    background: rgba(0,0,0,.58) !important;
    opacity: 0 !important;
    pointer-events: none !important;
    transition: opacity .2s ease !important;
  }

  body.public-tv-layout .tv-mobile-menu {
    position: fixed !important;
    top: 0 !important;
    bottom: 0 !important;
    left: 0 !important;
    z-index: 2001 !important;
    display: block !important;
    width: min(330px, 74vw) !important;
    background: #242424 !important;
    color: #fff !important;
    overflow-y: auto !important;
    box-shadow: 22px 0 60px rgba(0,0,0,.44) !important;
    transform: translateX(-102%) !important;
    transition: transform .22s ease !important;
  }

  body.public-tv-layout.tv-mobile-menu-open .tv-mobile-menu-backdrop {
    opacity: 1 !important;
    pointer-events: auto !important;
  }

  body.public-tv-layout.tv-mobile-menu-open .tv-mobile-menu {
    transform: translateX(0) !important;
  }

  body.public-tv-layout .tv-mobile-profile {
    display: grid !important;
    justify-items: center !important;
    gap: 5px !important;
    padding: 28px 18px 20px !important;
    background: #333 !important;
    border-bottom: 1px solid rgba(255,255,255,.12) !important;
  }

  body.public-tv-layout .tv-mobile-avatar {
    width: 28px !important;
    height: 28px !important;
    border-radius: 50% !important;
    display: grid !important;
    place-items: center !important;
    background: #fff !important;
    color: #111 !important;
    font-weight: 950 !important;
    font-size: .72rem !important;
  }

  body.public-tv-layout .tv-mobile-profile strong {
    font-size: .92rem !important;
    line-height: 1 !important;
  }

  body.public-tv-layout .tv-mobile-profile small {
    color: rgba(255,255,255,.72) !important;
    font-size: .66rem !important;
    line-height: 1 !important;
  }

  body.public-tv-layout .tv-mobile-subscribe {
    width: 100% !important;
    height: 34px !important;
    margin-top: 10px !important;
    border-radius: 6px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    background: #ffd500 !important;
    color: #111 !important;
    font-weight: 950 !important;
    font-size: .72rem !important;
  }

  body.public-tv-layout .tv-mobile-nav {
    display: grid !important;
    gap: 0 !important;
    padding: 13px 0 24px !important;
  }

  body.public-tv-layout .tv-mobile-nav a {
    min-height: 44px !important;
    padding: 0 22px !important;
    display: flex !important;
    align-items: center !important;
    gap: 13px !important;
    color: rgba(255,255,255,.76) !important;
    font-size: .82rem !important;
    font-weight: 750 !important;
  }

  body.public-tv-layout .tv-mobile-nav i {
    width: 18px !important;
    text-align: center !important;
    font-size: 1rem !important;
    color: rgba(255,255,255,.86) !important;
  }

  body.public-tv-layout .tv-mobile-nav b {
    margin-left: auto !important;
    padding: 2px 6px !important;
    border-radius: 999px !important;
    background: #00e66b !important;
    color: #081108 !important;
    font-size: .58rem !important;
    text-transform: lowercase !important;
  }

  body.public-tv-layout .tv-mobile-nav hr {
    width: 100% !important;
    height: 1px !important;
    margin: 12px 0 !important;
    border: 0 !important;
    background: rgba(255,255,255,.12) !important;
  }
}

@media (max-width: 560px) {
  body.public-tv-layout {
    --sh-mobile-shell-w: min(100vw, 440px);
    --sh-header-height: 46px !important;
    --ntv-shell-height: min(760px, calc(100svh - 46px));
  }

  body.public-tv-layout .public-tv-topbar {
    margin-top: 20px !important;
    height: var(--sh-header-height) !important;
    min-height: var(--sh-header-height) !important;
    padding: 0 12px !important;
    grid-template-columns: 36px minmax(0, 1fr) 36px !important;
  }

  body.public-tv-layout .tv-mobile-menu-toggle,
  body.public-tv-layout .tv-actions,
  body.public-tv-layout .tv-search {
    width: 34px !important;
    height: 34px !important;
  }

  body.public-tv-layout .tv-search input {
    height: 34px !important;
  }

  body.public-tv-layout .tv-brand-copy h1 {
    font-size: 1.10rem !important;
  }

  body.public-tv-layout .page-grid.public-tv-shell {
    min-height: 650px !important;
    height: var(--ntv-shell-height) !important;
  }

  body.public-tv-layout .gp-top-info,
  body.public-tv-layout .player-stage.has-embed-player .gp-top-info {
    top: calc(var(--ntv-video-height) + 42px) !important;
    left: 16px !important;
    width: calc(100% - 32px) !important;
  }

  body.public-tv-layout .gp-top-info #gpNowTitle,
  body.public-tv-layout .player-stage.has-embed-player .gp-top-info #gpNowTitle,
  body.public-tv-layout .gp-top-info #gpNowMeta,
  body.public-tv-layout .gp-schedule-line {
    width: 57% !important;
    max-width: 57% !important;
  }

  body.public-tv-layout .gp-top-info #gpNextMeta {
    top: 46px !important;
    width: 34% !important;
    max-width: 34% !important;
  }

  body.public-tv-layout .gp-info-progress {
    width: 57% !important;
    max-width: 57% !important;
  }

  body.public-tv-layout .gp-extras-btn,
  body.public-tv-layout .player-stage.has-embed-player .gp-extras-btn {
    top: calc(var(--ntv-video-height) + 54px) !important;
    right: 16px !important;
    min-width: 64px !important;
    height: 28px !important;
    padding: 0 9px !important;
  }

  body.public-tv-layout .gp-channel-drawer,
  body.public-tv-layout .gp-player-chrome.drawer-open .gp-channel-drawer,
  body.public-tv-layout .player-stage.has-embed-player .gp-player-chrome:not(.drawer-open) .gp-channel-drawer,
  body.public-tv-layout .player-stage.has-embed-player .gp-player-chrome.drawer-open .gp-channel-drawer {
    margin-top: 126px !important;
    padding: 14px 16px 22px !important;
    gap: 14px !important;
  }

  body.public-tv-layout .player-stage.has-embed-player .gp-channel-drawer,
  body.public-tv-layout .player-stage.has-embed-player .gp-player-chrome:not(.drawer-open) .gp-channel-drawer {
    margin-top: 138px !important;
  }

  body.public-tv-layout .gp-category-strip .category-tab,
  body.public-tv-layout .category-tab {
    height: 36px !important;
    padding: 0 15px !important;
    font-size: .72rem !important;
  }

  body.public-tv-layout .gp-channel-card {
    flex-basis: min(72vw, 258px) !important;
    height: 132px !important;
  }

  body.public-tv-layout .tv-mobile-menu {
    width: min(308px, 74vw) !important;
  }

  body.public-tv-layout .tv-mobile-nav a {
    min-height: 46px !important;
    font-size: .86rem !important;
  }
}

@media (max-width: 380px) {
  body.public-tv-layout .gp-channel-card {
    flex-basis: 240px !important;
    height: 122px !important;
  }
  body.public-tv-layout .gp-top-info #gpNowTitle,
  body.public-tv-layout .player-stage.has-embed-player .gp-top-info #gpNowTitle {
    font-size: .90rem !important;
  }
}

@media (max-width: 1024px) and (orientation: landscape) {
  body.public-tv-layout {
    --sh-mobile-shell-w: min(100vw, 820px);
    --ntv-shell-height: min(720px, calc(100svh - 36px));
  }
  body.public-tv-layout .public-tv-topbar {
    margin-top: 10px !important;
  }
  body.public-tv-layout .page-grid.public-tv-shell {
    margin-bottom: 16px !important;
  }
}


/* v2.8.22.1 - preserva clique do VAST mesmo com layout responsivo */
@media (max-width: 1024px) {
  

  

  
}


/* ======================================================================
   v2.8.23 - Correção responsiva smartphone/tablet
   - Sem bordas/margens externas no mobile/tablet.
   - Remove o botão Canais nas telas compactas; os canais ficam sempre abertos.
   - Reorganiza guia Agora/A seguir para não quebrar nem sobrepor.
   - Mantém iframe sem sandbox e VAST clicável.
   ====================================================================== */
@media (max-width: 1024px) {
  html,
  body,
  body.public-tv-layout {
    width: 100% !important;
    max-width: 100% !important;
    min-height: 100svh !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow-x: hidden !important;
    overflow-y: auto !important;
    background: #000 !important;
  }

  body.public-tv-layout {
    --sh-header-height: 52px !important;
    --sh-mobile-shell-w: 100vw !important;
    --ntv-video-height: min(56.25vw, 520px);
    --ntv-info-top: calc(var(--ntv-video-height) + 38px);
    --ntv-info-height: 108px;
    --ntv-drawer-top: calc(var(--ntv-info-top) + var(--ntv-info-height) + 12px);
    --ntv-rail-height: 154px;
    --ntv-stage-height: calc(var(--ntv-drawer-top) + 54px + var(--ntv-rail-height) + 24px);
  }

  body.public-tv-layout .public-tv-topbar {
    position: sticky !important;
    top: 0 !important;
    left: 0 !important;
    width: 100vw !important;
    max-width: 100vw !important;
    height: var(--sh-header-height) !important;
    min-height: var(--sh-header-height) !important;
    margin: 0 !important;
    padding: 0 14px !important;
    border: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
  }

  body.public-tv-layout .page-grid.public-tv-shell {
    width: 100vw !important;
    max-width: 100vw !important;
    height: auto !important;
    min-height: calc(100svh - var(--sh-header-height)) !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    overflow: visible !important;
    background: #1f1f1f !important;
  }

  body.public-tv-layout .public-player-panel,
  body.public-tv-layout .player-panel.card.public-player-panel {
    position: relative !important;
    inset: auto !important;
    width: 100% !important;
    height: auto !important;
    min-height: calc(100svh - var(--sh-header-height)) !important;
    border: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    overflow: visible !important;
    background: #1f1f1f !important;
  }

  body.public-tv-layout .public-player-stage,
  body.public-tv-layout .player-stage.public-player-stage {
    position: relative !important;
    inset: auto !important;
    left: auto !important;
    right: auto !important;
    width: 100% !important;
    height: auto !important;
    min-height: max(calc(100svh - var(--sh-header-height)), var(--ntv-stage-height)) !important;
    aspect-ratio: auto !important;
    margin: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    overflow: hidden !important;
    background: #1f1f1f !important;
  }

  body.public-tv-layout .player-stage.public-player-stage::before {
    top: var(--ntv-video-height) !important;
    background: #1f1f1f !important;
  }

  body.public-tv-layout:not(.is-playing-ad) .player-stage.public-player-stage > video,
  body.public-tv-layout:not(.is-playing-ad) .player-stage.public-player-stage > iframe,
  body.public-tv-layout:not(.is-playing-ad) .player-stage.public-player-stage #mainVideo,
  body.public-tv-layout:not(.is-playing-ad) .player-stage.public-player-stage #mainFrame {
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    width: 100% !important;
    height: var(--ntv-video-height) !important;
    object-fit: cover !important;
    border: 0 !important;
    border-radius: 0 !important;
    pointer-events: auto !important;
  }

  body.public-tv-layout .player-stage.public-player-stage:fullscreen,
  body.public-tv-layout .player-stage.public-player-stage:-webkit-full-screen {
    width: 100vw !important;
    height: 100vh !important;
    min-height: 100vh !important;
    margin: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: #000 !important;
  }

  body.public-tv-layout .player-stage.public-player-stage:fullscreen > video,
  body.public-tv-layout .player-stage.public-player-stage:fullscreen > iframe,
  body.public-tv-layout .player-stage.public-player-stage:-webkit-full-screen > video,
  body.public-tv-layout .player-stage.public-player-stage:-webkit-full-screen > iframe {
    height: 100vh !important;
    object-fit: contain !important;
  }

  /* O botão Canais atrapalhava no mobile/tablet; a lista já fica aberta abaixo do guia. */
  body.public-tv-layout .gp-extras-btn,
  body.public-tv-layout .player-stage.has-embed-player .gp-extras-btn {
    display: none !important;
    visibility: hidden !important;
    opacity: 0 !important;
    pointer-events: none !important;
  }

  body.public-tv-layout .gp-player-chrome,
  body.public-tv-layout.player-ui-hidden .gp-player-chrome:not(.drawer-open),
  body.public-tv-layout.player-ui-visible .gp-player-chrome,
  body.public-tv-layout .player-stage.has-embed-player .gp-player-chrome:not(.drawer-open) {
    display: block !important;
    opacity: 1 !important;
    visibility: visible !important;
    pointer-events: none !important;
    background: linear-gradient(180deg, rgba(0,0,0,.50) 0%, rgba(0,0,0,.08) 23%, rgba(0,0,0,0) 40%, rgba(0,0,0,0) 100%) !important;
  }

  /* Guia Agora/A seguir separado em duas colunas para não buggar. */
  body.public-tv-layout .gp-top-info,
  body.public-tv-layout .player-stage.has-embed-player .gp-top-info {
    position: absolute !important;
    top: var(--ntv-info-top) !important;
    left: 16px !important;
    right: 16px !important;
    width: auto !important;
    max-width: none !important;
    min-height: var(--ntv-info-height) !important;
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) minmax(96px, 34%) !important;
    grid-template-areas:
      "logo next"
      "line next"
      "title next"
      "meta next"
      "bar next" !important;
    column-gap: 16px !important;
    row-gap: 4px !important;
    z-index: 12 !important;
    color: #fff !important;
    text-shadow: none !important;
    pointer-events: none !important;
  }

  body.public-tv-layout .gp-live-logo,
  body.public-tv-layout .player-stage.has-embed-player .gp-live-logo {
    grid-area: logo !important;
    width: 26px !important;
    height: 26px !important;
    margin: 0 0 5px 0 !important;
    border-radius: 50% !important;
    display: grid !important;
    place-items: center !important;
    background: #fff !important;
    color: #111 !important;
    font-size: .70rem !important;
    line-height: 1 !important;
  }

  body.public-tv-layout .gp-schedule-line,
  body.public-tv-layout .player-stage.has-embed-player .gp-schedule-line {
    grid-area: line !important;
    display: flex !important;
    align-items: center !important;
    gap: 7px !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    overflow: hidden !important;
    white-space: nowrap !important;
    font-size: .62rem !important;
    line-height: 1 !important;
  }

  body.public-tv-layout .gp-signal-pill,
  body.public-tv-layout .gp-channel-card .gp-signal-pill {
    min-height: 16px !important;
    height: 16px !important;
    padding: 0 6px !important;
    border-radius: 3px !important;
    background: #1597ff !important;
    color: #fff !important;
    font-size: .50rem !important;
    line-height: 16px !important;
    font-weight: 950 !important;
    white-space: nowrap !important;
    flex: 0 0 auto !important;
  }

  body.public-tv-layout .gp-top-info #gpNowTime {
    min-width: 0 !important;
    font-size: .62rem !important;
    font-weight: 850 !important;
    color: rgba(255,255,255,.86) !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
  }

  body.public-tv-layout .gp-top-info #gpNowTitle,
  body.public-tv-layout .player-stage.has-embed-player .gp-top-info #gpNowTitle {
    grid-area: title !important;
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
    font-size: clamp(.94rem, 3.35vw, 1.18rem) !important;
    line-height: 1.04 !important;
    letter-spacing: -0.045em !important;
    color: #fff !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
  }

  body.public-tv-layout .gp-top-info #gpNowMeta {
    grid-area: meta !important;
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
    font-size: .62rem !important;
    line-height: 1.18 !important;
    font-weight: 700 !important;
    color: rgba(255,255,255,.74) !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
  }

  body.public-tv-layout .gp-top-info #gpNextMeta {
    grid-area: next !important;
    position: static !important;
    align-self: end !important;
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 0 6px 0 !important;
    padding: 0 !important;
    font-style: normal !important;
    font-size: .64rem !important;
    line-height: 1.16 !important;
    font-weight: 850 !important;
    color: rgba(255,255,255,.86) !important;
    white-space: normal !important;
    overflow: hidden !important;
    display: -webkit-box !important;
    -webkit-line-clamp: 2 !important;
    -webkit-box-orient: vertical !important;
  }

  body.public-tv-layout .gp-top-info #gpNextMeta::before {
    content: 'A seguir' !important;
    display: block !important;
    margin-bottom: 5px !important;
    color: rgba(255,255,255,.54) !important;
    font-size: .54rem !important;
    line-height: 1 !important;
    font-style: normal !important;
    font-weight: 850 !important;
  }

  body.public-tv-layout .gp-info-progress {
    grid-area: bar !important;
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    height: 2px !important;
    margin: 2px 0 0 !important;
    background: rgba(255,255,255,.22) !important;
    overflow: hidden !important;
  }

  body.public-tv-layout .gp-info-progress span,
  body.public-tv-layout #gpInfoProgressBar {
    display: block !important;
    height: 100% !important;
    background: var(--sh-accent) !important;
  }

  body.public-tv-layout .gp-bottom-ui,
  body.public-tv-layout .player-stage.has-embed-player .gp-player-chrome:not(.drawer-open) .gp-bottom-ui {
    position: absolute !important;
    top: calc(var(--ntv-video-height) - 32px) !important;
    bottom: auto !important;
    left: 0 !important;
    right: 0 !important;
    z-index: 11 !important;
    display: flex !important;
    flex-direction: column !important;
    pointer-events: none !important;
    visibility: visible !important;
    opacity: 1 !important;
  }

  body.public-tv-layout .gp-live-controls {
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
    pointer-events: none !important;
  }

  body.public-tv-layout .player-stage.has-embed-player .gp-live-controls,
  body.public-tv-layout .player-stage.has-embed-player .gp-player-chrome.drawer-open .gp-live-controls {
    display: none !important;
  }

  body.public-tv-layout .gp-control-row {
    height: 50px !important;
    min-height: 50px !important;
    padding: 0 16px !important;
  }

  body.public-tv-layout .gp-channel-drawer,
  body.public-tv-layout .gp-player-chrome.drawer-open .gp-channel-drawer,
  body.public-tv-layout .player-stage.has-embed-player .gp-player-chrome:not(.drawer-open) .gp-channel-drawer,
  body.public-tv-layout .player-stage.has-embed-player .gp-player-chrome.drawer-open .gp-channel-drawer {
    order: 2 !important;
    display: grid !important;
    position: relative !important;
    z-index: 10 !important;
    grid-template-rows: auto auto !important;
    gap: 14px !important;
    max-height: none !important;
    opacity: 1 !important;
    visibility: visible !important;
    overflow: visible !important;
    pointer-events: auto !important;
    margin-top: var(--ntv-drawer-top) !important;
    padding: 14px 16px 22px !important;
    background: #242424 !important;
    transition: none !important;
  }

  body.public-tv-layout .gp-category-strip {
    display: flex !important;
    gap: 10px !important;
    width: 100% !important;
    padding: 0 0 2px !important;
    overflow-x: auto !important;
    overflow-y: hidden !important;
    scrollbar-width: none !important;
    -webkit-overflow-scrolling: touch !important;
    pointer-events: auto !important;
  }

  body.public-tv-layout .gp-category-strip::-webkit-scrollbar,
  body.public-tv-layout .gp-channel-rail::-webkit-scrollbar {
    display: none !important;
  }

  body.public-tv-layout .gp-category-strip .category-tab,
  body.public-tv-layout .category-tab {
    flex: 0 0 auto !important;
    height: 38px !important;
    padding: 0 16px !important;
    border-radius: 9px !important;
    font-size: .72rem !important;
    white-space: nowrap !important;
  }

  body.public-tv-layout .gp-channel-rail {
    gap: 12px !important;
    min-height: var(--ntv-rail-height) !important;
    padding: 0 1px 8px !important;
    overflow-x: auto !important;
    overflow-y: hidden !important;
    scroll-snap-type: x proximity !important;
    pointer-events: auto !important;
    cursor: grab !important;
    touch-action: pan-x !important;
    scrollbar-width: none !important;
  }

  body.public-tv-layout .gp-channel-card {
    flex: 0 0 clamp(190px, 42vw, 250px) !important;
    height: clamp(108px, 23vw, 140px) !important;
    border-radius: 8px !important;
    scroll-snap-align: start !important;
  }

  body.public-tv-layout .gp-rail-arrow {
    display: none !important;
  }

  body.public-tv-layout .gp-embed-top-actions {
    top: 10px !important;
    right: 10px !important;
    z-index: 20 !important;
  }

  body.public-tv-layout .gp-embed-top-actions .gp-embed-action {
    width: 34px !important;
    height: 34px !important;
    min-width: 34px !important;
    font-size: .92rem !important;
    background: rgba(0,0,0,.62) !important;
    box-shadow: none !important;
  }
}

@media (max-width: 560px) {
  body.public-tv-layout {
    --sh-header-height: 48px !important;
    --ntv-info-top: calc(var(--ntv-video-height) + 40px);
    --ntv-info-height: 106px;
    --ntv-drawer-top: calc(var(--ntv-info-top) + var(--ntv-info-height) + 10px);
    --ntv-rail-height: 158px;
  }

  body.public-tv-layout .public-tv-topbar {
    height: var(--sh-header-height) !important;
    min-height: var(--sh-header-height) !important;
    grid-template-columns: 38px minmax(0, 1fr) 38px !important;
    padding: 0 12px !important;
  }

  body.public-tv-layout .gp-top-info,
  body.public-tv-layout .player-stage.has-embed-player .gp-top-info {
    left: 16px !important;
    right: 16px !important;
    grid-template-columns: minmax(0, 1fr) minmax(100px, 35%) !important;
    column-gap: 14px !important;
  }

  body.public-tv-layout .gp-top-info #gpNowTitle,
  body.public-tv-layout .player-stage.has-embed-player .gp-top-info #gpNowTitle {
    font-size: clamp(.98rem, 4.2vw, 1.16rem) !important;
  }

  body.public-tv-layout .gp-top-info #gpNowMeta,
  body.public-tv-layout .gp-top-info #gpNextMeta,
  body.public-tv-layout .gp-top-info #gpNowTime {
    font-size: .60rem !important;
  }

  body.public-tv-layout .gp-channel-card {
    flex-basis: min(67vw, 252px) !important;
    height: 132px !important;
  }

  body.public-tv-layout .gp-channel-card-copy {
    left: 10px !important;
    right: 10px !important;
    bottom: 16px !important;
  }
}

/* Mantém o VAST clicável após a reorganização mobile/tablet. */
@media (max-width: 1024px) {
  

  

  

  
}


/* ======================================================================
   v2.8.24 - Correção final mobile/tablet
   - Topbar fixa sem bug: menu à esquerda, logo central e busca à direita.
   - Remove bordas/margens no modo compacto.
   - Guia Ao vivo/A seguir em bloco compacto, sem sobreposição.
   - Canais aparecem logo abaixo do guia, sem espaço vazio gigante.
   - Botão Canais fica oculto em telas compactas, pois a lista já fica aberta.
   - Mantém iframe sem sandbox e preserva clique do VAST/Skip Ad.
   ====================================================================== */
@media (max-width: 1024px) {
  html,
  body,
  body.public-tv-layout {
    width: 100% !important;
    max-width: 100% !important;
    min-height: 100svh !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow-x: hidden !important;
    overflow-y: auto !important;
    background: #000 !important;
  }

  body.public-tv-layout {
    --sh-header-height: 52px !important;
    --sh-page-edge: 0px !important;
    --sh-mobile-shell-w: 100vw !important;
    --ntv-video-height: min(56.25vw, 520px) !important;
    --ntv-info-top: calc(var(--ntv-video-height) + 42px) !important;
    --ntv-info-height: 88px !important;
    --ntv-drawer-top: calc(var(--ntv-info-top) + var(--ntv-info-height) + 12px) !important;
    --ntv-rail-height: clamp(126px, 22vw, 166px) !important;
    --ntv-stage-height: calc(var(--ntv-drawer-top) + 54px + var(--ntv-rail-height) + 26px) !important;
  }

  body.public-tv-layout .bg-glow,
  body.public-tv-layout .glow-1,
  body.public-tv-layout .glow-2 {
    display: none !important;
  }

  body.public-tv-layout .public-tv-topbar {
    position: sticky !important;
    top: 0 !important;
    left: 0 !important;
    width: 100vw !important;
    max-width: 100vw !important;
    height: var(--sh-header-height) !important;
    min-height: var(--sh-header-height) !important;
    margin: 0 !important;
    padding: 0 14px !important;
    display: grid !important;
    grid-template-columns: 42px minmax(0, 1fr) 42px !important;
    align-items: center !important;
    gap: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: #050505 !important;
    box-shadow: none !important;
    z-index: 1200 !important;
  }

  body.public-tv-layout .tv-mobile-menu-toggle {
    display: inline-grid !important;
    visibility: visible !important;
    opacity: 1 !important;
    place-items: center !important;
    width: 38px !important;
    height: 38px !important;
    justify-self: start !important;
    border: 0 !important;
    border-radius: 50% !important;
    background: transparent !important;
    color: #fff !important;
    font-size: 1.55rem !important;
    line-height: 1 !important;
    cursor: pointer !important;
  }

  body.public-tv-layout .tv-brand {
    justify-self: center !important;
    display: inline-flex !important;
    min-width: 0 !important;
    gap: 0 !important;
    color: #fff !important;
    text-align: center !important;
  }

  body.public-tv-layout .tv-brand-icon,
  body.public-tv-layout .tv-brand-copy p,
  body.public-tv-layout .tv-main-nav,
  body.public-tv-layout .tv-login-btn,
  body.public-tv-layout .tv-account-link,
  body.public-tv-layout .tv-avatar,
  body.public-tv-layout .tv-round-action {
    display: none !important;
    visibility: hidden !important;
  }

  body.public-tv-layout .tv-brand-copy,
  body.public-tv-layout .tv-brand-copy h1 {
    display: block !important;
    margin: 0 !important;
    padding: 0 !important;
    font-size: 1.12rem !important;
    line-height: 1 !important;
    letter-spacing: -0.045em !important;
    color: #fff !important;
    text-align: center !important;
    white-space: nowrap !important;
  }

  body.public-tv-layout .tv-actions {
    justify-self: end !important;
    align-self: center !important;
    display: grid !important;
    visibility: visible !important;
    opacity: 1 !important;
    place-items: center !important;
    position: relative !important;
    width: 38px !important;
    height: 38px !important;
    min-width: 38px !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: visible !important;
    z-index: 1202 !important;
  }

  body.public-tv-layout .tv-search {
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
    position: absolute !important;
    top: 0 !important;
    right: 0 !important;
    width: 38px !important;
    height: 38px !important;
    min-width: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 50% !important;
    background: rgba(255, 255, 255, 0.13) !important;
    overflow: hidden !important;
    pointer-events: auto !important;
    transition: width .18s ease, border-radius .18s ease, background .18s ease !important;
  }

  body.public-tv-layout .tv-search .search-icon {
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
    position: absolute !important;
    top: 50% !important;
    left: 50% !important;
    z-index: 2 !important;
    transform: translate(-50%, -50%) !important;
    color: rgba(255,255,255,.9) !important;
    font-size: 1rem !important;
    line-height: 1 !important;
    pointer-events: none !important;
  }

  body.public-tv-layout .tv-search input {
    display: block !important;
    width: 100% !important;
    height: 38px !important;
    min-width: 0 !important;
    margin: 0 !important;
    padding: 0 12px 0 40px !important;
    border: 0 !important;
    border-radius: inherit !important;
    background: transparent !important;
    color: #fff !important;
    font-size: .84rem !important;
    outline: none !important;
    opacity: 0 !important;
    pointer-events: auto !important;
  }

  body.public-tv-layout.mobile-search-open .tv-search,
  body.public-tv-layout .tv-search:focus-within {
    width: min(286px, calc(100vw - 78px)) !important;
    border-radius: 999px !important;
    background: rgba(28,28,28,.98) !important;
    border: 1px solid rgba(255,255,255,.16) !important;
  }

  body.public-tv-layout.mobile-search-open .tv-search .search-icon,
  body.public-tv-layout .tv-search:focus-within .search-icon {
    left: 18px !important;
    transform: translateY(-50%) !important;
  }

  body.public-tv-layout.mobile-search-open .tv-search input,
  body.public-tv-layout .tv-search:focus-within input {
    opacity: 1 !important;
  }

  body.public-tv-layout .page-grid.public-tv-shell,
  body.public-tv-layout .public-player-panel,
  body.public-tv-layout .player-panel.card.public-player-panel,
  body.public-tv-layout .public-player-stage,
  body.public-tv-layout .player-stage.public-player-stage {
    width: 100vw !important;
    max-width: 100vw !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    background: #1f1f1f !important;
  }

  body.public-tv-layout .page-grid.public-tv-shell,
  body.public-tv-layout .public-player-panel,
  body.public-tv-layout .player-panel.card.public-player-panel {
    position: relative !important;
    inset: auto !important;
    height: auto !important;
    min-height: calc(100svh - var(--sh-header-height)) !important;
    overflow: visible !important;
  }

  body.public-tv-layout .public-player-stage,
  body.public-tv-layout .player-stage.public-player-stage {
    position: relative !important;
    inset: auto !important;
    left: auto !important;
    right: auto !important;
    height: auto !important;
    min-height: max(calc(100svh - var(--sh-header-height)), var(--ntv-stage-height)) !important;
    aspect-ratio: auto !important;
    overflow: hidden !important;
    isolation: isolate !important;
  }

  body.public-tv-layout .player-stage.public-player-stage::before {
    content: '' !important;
    position: absolute !important;
    left: 0 !important;
    right: 0 !important;
    top: var(--ntv-video-height) !important;
    bottom: 0 !important;
    z-index: 0 !important;
    background: #1f1f1f !important;
    pointer-events: none !important;
  }

  body.public-tv-layout:not(.is-playing-ad) .player-stage.public-player-stage > video,
  body.public-tv-layout:not(.is-playing-ad) .player-stage.public-player-stage > iframe,
  body.public-tv-layout:not(.is-playing-ad) .player-stage.public-player-stage #mainVideo,
  body.public-tv-layout:not(.is-playing-ad) .player-stage.public-player-stage #mainFrame {
    position: absolute !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    bottom: auto !important;
    width: 100% !important;
    height: var(--ntv-video-height) !important;
    min-height: 0 !important;
    object-fit: cover !important;
    border: 0 !important;
    border-radius: 0 !important;
    z-index: 1 !important;
    pointer-events: auto !important;
  }

  body.public-tv-layout .player-stage.public-player-stage:fullscreen,
  body.public-tv-layout .player-stage.public-player-stage:-webkit-full-screen {
    position: fixed !important;
    inset: 0 !important;
    width: 100vw !important;
    height: 100vh !important;
    min-height: 100vh !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: #000 !important;
  }

  body.public-tv-layout .player-stage.public-player-stage:fullscreen > video,
  body.public-tv-layout .player-stage.public-player-stage:fullscreen > iframe,
  body.public-tv-layout .player-stage.public-player-stage:-webkit-full-screen > video,
  body.public-tv-layout .player-stage.public-player-stage:-webkit-full-screen > iframe {
    inset: 0 !important;
    width: 100vw !important;
    height: 100vh !important;
    object-fit: contain !important;
  }

  body.public-tv-layout .gp-player-chrome,
  body.public-tv-layout.player-ui-hidden .gp-player-chrome:not(.drawer-open),
  body.public-tv-layout.player-ui-visible .gp-player-chrome,
  body.public-tv-layout .player-stage.has-embed-player .gp-player-chrome:not(.drawer-open) {
    display: block !important;
    position: absolute !important;
    inset: 0 !important;
    opacity: 1 !important;
    visibility: visible !important;
    pointer-events: none !important;
    background: linear-gradient(180deg, rgba(0,0,0,.44) 0%, rgba(0,0,0,.08) 20%, rgba(0,0,0,0) 38%) !important;
    transition: none !important;
  }

  body.public-tv-layout .gp-extras-btn,
  body.public-tv-layout .player-stage.has-embed-player .gp-extras-btn {
    display: none !important;
    visibility: hidden !important;
    opacity: 0 !important;
    pointer-events: none !important;
  }

  body.public-tv-layout .gp-embed-top-actions {
    display: inline-flex !important;
    visibility: visible !important;
    opacity: 1 !important;
    top: 10px !important;
    right: 10px !important;
    z-index: 24 !important;
    gap: 8px !important;
    pointer-events: auto !important;
  }

  body.public-tv-layout .gp-embed-top-actions .gp-embed-action {
    width: 34px !important;
    height: 34px !important;
    min-width: 34px !important;
    padding: 0 !important;
    border-radius: 50% !important;
    background: rgba(0,0,0,.62) !important;
    color: #fff !important;
    font-size: .92rem !important;
    box-shadow: none !important;
  }

  body.public-tv-layout .gp-top-info,
  body.public-tv-layout .player-stage.has-embed-player .gp-top-info {
    position: absolute !important;
    top: var(--ntv-info-top) !important;
    left: 16px !important;
    right: 16px !important;
    width: auto !important;
    max-width: none !important;
    min-height: 0 !important;
    height: var(--ntv-info-height) !important;
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) minmax(106px, 34%) !important;
    grid-template-areas:
      "line next"
      "title next"
      "meta next"
      "bar next" !important;
    column-gap: 16px !important;
    row-gap: 4px !important;
    z-index: 14 !important;
    color: #fff !important;
    text-shadow: none !important;
    pointer-events: none !important;
  }

  body.public-tv-layout .gp-live-logo,
  body.public-tv-layout .player-stage.has-embed-player .gp-live-logo {
    display: none !important;
    visibility: hidden !important;
  }

  body.public-tv-layout .gp-schedule-line,
  body.public-tv-layout .player-stage.has-embed-player .gp-schedule-line {
    grid-area: line !important;
    display: flex !important;
    align-items: center !important;
    gap: 7px !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    height: 17px !important;
    margin: 0 !important;
    overflow: hidden !important;
    white-space: nowrap !important;
    font-size: .62rem !important;
    line-height: 1 !important;
  }

  body.public-tv-layout .gp-signal-pill,
  body.public-tv-layout .gp-channel-card .gp-signal-pill {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    flex: 0 0 auto !important;
    height: 16px !important;
    min-height: 16px !important;
    padding: 0 6px !important;
    border-radius: 3px !important;
    background: #1597ff !important;
    color: #fff !important;
    font-size: .50rem !important;
    line-height: 16px !important;
    font-weight: 950 !important;
    white-space: nowrap !important;
  }

  body.public-tv-layout .gp-top-info #gpNowTime {
    min-width: 0 !important;
    color: rgba(255,255,255,.86) !important;
    font-size: .62rem !important;
    font-weight: 850 !important;
    line-height: 1 !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
  }

  body.public-tv-layout .gp-top-info #gpNowTitle,
  body.public-tv-layout .player-stage.has-embed-player .gp-top-info #gpNowTitle {
    grid-area: title !important;
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
    color: #fff !important;
    font-size: clamp(.98rem, 3.45vw, 1.22rem) !important;
    font-weight: 950 !important;
    line-height: 1.05 !important;
    letter-spacing: -0.045em !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
  }

  body.public-tv-layout .gp-top-info #gpNowMeta {
    grid-area: meta !important;
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
    color: rgba(255,255,255,.74) !important;
    font-size: .62rem !important;
    font-weight: 700 !important;
    line-height: 1.18 !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
  }

  body.public-tv-layout .gp-info-progress {
    grid-area: bar !important;
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    height: 2px !important;
    margin: 3px 0 0 !important;
    border-radius: 999px !important;
    background: rgba(255,255,255,.22) !important;
    overflow: hidden !important;
  }

  body.public-tv-layout .gp-info-progress span,
  body.public-tv-layout #gpInfoProgressBar {
    display: block !important;
    height: 100% !important;
    border-radius: inherit !important;
    background: var(--sh-accent) !important;
  }

  body.public-tv-layout .gp-top-info #gpNextMeta {
    grid-area: next !important;
    position: static !important;
    align-self: center !important;
    display: -webkit-box !important;
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    color: rgba(255,255,255,.86) !important;
    font-style: normal !important;
    font-size: .62rem !important;
    font-weight: 850 !important;
    line-height: 1.17 !important;
    white-space: normal !important;
    overflow: hidden !important;
    -webkit-line-clamp: 2 !important;
    -webkit-box-orient: vertical !important;
  }

  body.public-tv-layout .gp-top-info #gpNextMeta::before {
    content: 'A seguir' !important;
    display: block !important;
    margin-bottom: 5px !important;
    color: rgba(255,255,255,.54) !important;
    font-size: .54rem !important;
    line-height: 1 !important;
    font-style: normal !important;
    font-weight: 850 !important;
  }

  body.public-tv-layout .gp-bottom-ui,
  body.public-tv-layout .player-stage.has-embed-player .gp-player-chrome:not(.drawer-open) .gp-bottom-ui {
    position: absolute !important;
    inset: 0 !important;
    z-index: 13 !important;
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
    pointer-events: none !important;
  }

  body.public-tv-layout .gp-live-controls {
    position: absolute !important;
    top: calc(var(--ntv-video-height) - 32px) !important;
    left: 0 !important;
    right: 0 !important;
    z-index: 15 !important;
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
    pointer-events: none !important;
  }

  body.public-tv-layout .player-stage.has-embed-player .gp-live-controls,
  body.public-tv-layout .player-stage.has-embed-player .gp-player-chrome.drawer-open .gp-live-controls {
    display: none !important;
    visibility: hidden !important;
    opacity: 0 !important;
    pointer-events: none !important;
  }

  body.public-tv-layout .gp-live-line {
    height: 2px !important;
    margin: 0 16px !important;
    background: rgba(255,255,255,.30) !important;
  }

  body.public-tv-layout .gp-control-row {
    height: 50px !important;
    min-height: 50px !important;
    padding: 0 16px !important;
  }

  body.public-tv-layout .gp-now-pill {
    min-height: 18px !important;
    height: 18px !important;
    padding: 0 6px !important;
    border-radius: 2px !important;
    font-size: .50rem !important;
    line-height: 18px !important;
  }

  body.public-tv-layout .gp-control-actions {
    gap: 6px !important;
    pointer-events: auto !important;
  }

  body.public-tv-layout .gp-icon-btn {
    width: 30px !important;
    height: 30px !important;
    min-width: 30px !important;
    padding: 0 !important;
    border-radius: 50% !important;
    font-size: .95rem !important;
  }

  body.public-tv-layout .gp-volume-range {
    display: none !important;
  }

  body.public-tv-layout .gp-channel-drawer,
  body.public-tv-layout .gp-player-chrome.drawer-open .gp-channel-drawer,
  body.public-tv-layout .player-stage.has-embed-player .gp-player-chrome:not(.drawer-open) .gp-channel-drawer,
  body.public-tv-layout .player-stage.has-embed-player .gp-player-chrome.drawer-open .gp-channel-drawer {
    position: absolute !important;
    top: var(--ntv-drawer-top) !important;
    left: 0 !important;
    right: 0 !important;
    bottom: auto !important;
    z-index: 16 !important;
    display: grid !important;
    grid-template-rows: auto auto !important;
    gap: 14px !important;
    max-height: none !important;
    min-height: 0 !important;
    margin: 0 !important;
    padding: 14px 16px 22px !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: #242424 !important;
    box-shadow: none !important;
    opacity: 1 !important;
    visibility: visible !important;
    overflow: visible !important;
    pointer-events: auto !important;
    transform: none !important;
    transition: none !important;
  }

  body.public-tv-layout .gp-category-strip {
    display: flex !important;
    align-items: center !important;
    gap: 10px !important;
    width: 100% !important;
    padding: 0 0 2px !important;
    overflow-x: auto !important;
    overflow-y: hidden !important;
    scrollbar-width: none !important;
    -webkit-overflow-scrolling: touch !important;
    pointer-events: auto !important;
  }

  body.public-tv-layout .gp-category-strip::-webkit-scrollbar,
  body.public-tv-layout .gp-channel-rail::-webkit-scrollbar {
    display: none !important;
  }

  body.public-tv-layout .gp-category-strip .category-tab,
  body.public-tv-layout .category-tab {
    flex: 0 0 auto !important;
    height: 38px !important;
    padding: 0 16px !important;
    border-radius: 9px !important;
    font-size: .72rem !important;
    line-height: 1 !important;
    white-space: nowrap !important;
  }

  body.public-tv-layout .gp-channel-rail {
    display: flex !important;
    align-items: stretch !important;
    gap: 12px !important;
    width: 100% !important;
    min-height: var(--ntv-rail-height) !important;
    padding: 0 1px 8px !important;
    overflow-x: auto !important;
    overflow-y: hidden !important;
    overscroll-behavior-x: contain !important;
    scroll-snap-type: x proximity !important;
    scrollbar-width: none !important;
    -webkit-overflow-scrolling: touch !important;
    cursor: grab !important;
    touch-action: pan-x !important;
    pointer-events: auto !important;
  }

  body.public-tv-layout .gp-channel-card {
    flex: 0 0 clamp(188px, 42vw, 252px) !important;
    height: clamp(108px, 23vw, 138px) !important;
    border-radius: 8px !important;
    scroll-snap-align: start !important;
  }

  body.public-tv-layout .gp-channel-card-copy {
    left: 10px !important;
    right: 10px !important;
    bottom: 17px !important;
    gap: 1px !important;
  }

  body.public-tv-layout .gp-channel-card-copy b,
  body.public-tv-layout .gp-channel-card-copy strong {
    font-size: .68rem !important;
    line-height: 1.04 !important;
  }

  body.public-tv-layout .gp-channel-card-copy small,
  body.public-tv-layout .gp-channel-card-copy span {
    font-size: .58rem !important;
    line-height: 1.05 !important;
  }

  body.public-tv-layout .gp-channel-card::before {
    left: 0 !important;
    right: 0 !important;
    bottom: 0 !important;
    height: 3px !important;
  }

  body.public-tv-layout .gp-channel-badge,
  body.public-tv-layout .gp-card-badge {
    top: 8px !important;
    right: 8px !important;
    min-height: 18px !important;
    height: 18px !important;
    padding: 0 6px !important;
    border-radius: 3px !important;
    font-size: .54rem !important;
    line-height: 18px !important;
  }

  body.public-tv-layout .gp-rail-arrow {
    display: none !important;
  }
}

@media (max-width: 560px) {
  body.public-tv-layout {
    --sh-header-height: 48px !important;
    --ntv-video-height: min(56.25vw, 330px) !important;
    --ntv-info-top: calc(var(--ntv-video-height) + 42px) !important;
    --ntv-info-height: 82px !important;
    --ntv-drawer-top: calc(var(--ntv-info-top) + var(--ntv-info-height) + 12px) !important;
    --ntv-rail-height: 146px !important;
    --ntv-stage-height: calc(var(--ntv-drawer-top) + 52px + var(--ntv-rail-height) + 22px) !important;
  }

  body.public-tv-layout .public-tv-topbar {
    height: var(--sh-header-height) !important;
    min-height: var(--sh-header-height) !important;
    grid-template-columns: 38px minmax(0, 1fr) 38px !important;
    padding: 0 12px !important;
  }

  body.public-tv-layout .tv-mobile-menu-toggle,
  body.public-tv-layout .tv-actions,
  body.public-tv-layout .tv-search {
    width: 34px !important;
    height: 34px !important;
    min-width: 34px !important;
  }

  body.public-tv-layout .tv-search input {
    height: 34px !important;
  }

  body.public-tv-layout.mobile-search-open .tv-search,
  body.public-tv-layout .tv-search:focus-within {
    width: min(250px, calc(100vw - 70px)) !important;
  }

  body.public-tv-layout .tv-brand-copy h1 {
    font-size: 1.08rem !important;
  }

  body.public-tv-layout .gp-top-info,
  body.public-tv-layout .player-stage.has-embed-player .gp-top-info {
    left: 16px !important;
    right: 16px !important;
    height: var(--ntv-info-height) !important;
    grid-template-columns: minmax(0, 1fr) minmax(104px, 35%) !important;
    column-gap: 14px !important;
    row-gap: 3px !important;
  }

  body.public-tv-layout .gp-top-info #gpNowTitle,
  body.public-tv-layout .player-stage.has-embed-player .gp-top-info #gpNowTitle {
    font-size: clamp(.98rem, 4.2vw, 1.16rem) !important;
  }

  body.public-tv-layout .gp-top-info #gpNowMeta,
  body.public-tv-layout .gp-top-info #gpNextMeta,
  body.public-tv-layout .gp-top-info #gpNowTime,
  body.public-tv-layout .gp-schedule-line {
    font-size: .60rem !important;
  }

  body.public-tv-layout .gp-top-info #gpNextMeta::before {
    font-size: .53rem !important;
    margin-bottom: 4px !important;
  }

  body.public-tv-layout .gp-channel-drawer,
  body.public-tv-layout .gp-player-chrome.drawer-open .gp-channel-drawer,
  body.public-tv-layout .player-stage.has-embed-player .gp-player-chrome:not(.drawer-open) .gp-channel-drawer,
  body.public-tv-layout .player-stage.has-embed-player .gp-player-chrome.drawer-open .gp-channel-drawer {
    top: var(--ntv-drawer-top) !important;
    margin: 0 !important;
    padding: 14px 16px 22px !important;
    gap: 14px !important;
  }

  body.public-tv-layout .gp-category-strip .category-tab,
  body.public-tv-layout .category-tab {
    height: 36px !important;
    padding: 0 15px !important;
    font-size: .72rem !important;
  }

  body.public-tv-layout .gp-channel-card {
    flex-basis: min(67vw, 252px) !important;
    height: 132px !important;
  }
}

@media (max-width: 380px) {
  body.public-tv-layout .gp-channel-card {
    flex-basis: 226px !important;
    height: 120px !important;
  }

  body.public-tv-layout .gp-top-info,
  body.public-tv-layout .player-stage.has-embed-player .gp-top-info {
    grid-template-columns: minmax(0, 1fr) minmax(92px, 34%) !important;
    column-gap: 10px !important;
  }

  body.public-tv-layout .gp-top-info #gpNowTitle,
  body.public-tv-layout .player-stage.has-embed-player .gp-top-info #gpNowTitle {
    font-size: .92rem !important;
  }
}

/* VAST continua clicável mesmo após o reset responsivo. */
@media (max-width: 1024px) {
  

  

  
}


/* ======================================================================
   v2.8.25 - VAST responsivo no smartphone/tablet
   O player responsivo usa o mesmo palco para vídeo, guia e carrossel. Durante
   o VAST o anúncio precisa ocupar só a área do vídeo; caso contrário o IMA
   calcula a altura total do palco e o criativo fica esticado/deslocado.
   ====================================================================== */
@media (max-width: 1024px) {
  

  

  

  

  

  

  

  

  

  

  
}

@media (max-width: 560px) {
  
}

/* v2.8.25.1 - reforço: o VAST mobile/tablet fica preso ao retângulo do vídeo */
@media (max-width: 1024px) {
  

  

  

  

  
}


/* ======================================================================
   v2.8.26 - VAST no lugar do player, sem desmontar o layout mobile/tablet
   Mantém guia Ao vivo/A seguir e canais visíveis; só o retângulo do vídeo é
   ocupado pelo anúncio. O adContainer continua clicável para o Skip Ad nativo.
   ====================================================================== */
@media (max-width: 1024px) {
  

  

  

  /* O anúncio ocupa apenas o mesmo espaço do vídeo/iframe. */
  

  

  

  

  /* Não desmonta o layout: guia, categorias e canais continuam abaixo do player. */
  

  

  

  

  

  /* Evita conflito com o botão nativo Skip Ad do anúncio dentro da área do vídeo. */
  

  

  

  
}

/* ======================================================================
   v2.8.27 - Alinhamento responsivo: topo, busca, guia e canais
   - Busca fica sempre alinhada no canto direito da navbar mobile/tablet.
   - Guia Ao vivo/A seguir ganha estrutura fixa sem sobreposição.
   - Canais ficam logo abaixo do guia, preservando rolagem horizontal.
   - O VAST continua entrando só no lugar do vídeo/player.
   ====================================================================== */
body.public-tv-layout .gp-next-box {
  color: #fff;
  min-width: 0;
}

body.public-tv-layout .gp-next-label {
  display: block;
  margin: 0 0 5px;
  color: rgba(255,255,255,.56);
  font-size: .64rem;
  font-weight: 850;
  line-height: 1;
  font-style: normal;
}

body.public-tv-layout .gp-next-box #gpNextMeta {
  display: block !important;
  position: static !important;
  width: 100% !important;
  max-width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
  font-style: normal !important;
}

body.public-tv-layout .gp-next-box #gpNextMeta::before {
  content: none !important;
  display: none !important;
}

@media (max-width: 1024px) {
  body.public-tv-layout {
    --sh-header-height: 52px !important;
    --ntv-video-height: min(56.25vw, 520px) !important;
    --ntv-info-top: calc(var(--ntv-video-height) + 36px) !important;
    --ntv-info-height: 92px !important;
    --ntv-drawer-top: calc(var(--ntv-info-top) + var(--ntv-info-height) + 10px) !important;
    --ntv-rail-height: clamp(136px, 22vw, 168px) !important;
    --ntv-stage-height: calc(var(--ntv-drawer-top) + 52px + var(--ntv-rail-height) + 24px) !important;
  }

  /* Navbar mobile/tablet: três áreas fixas e busca sempre centralizada verticalmente. */
  body.public-tv-layout .public-tv-topbar {
    position: sticky !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    width: 100vw !important;
    max-width: 100vw !important;
    height: var(--sh-header-height) !important;
    min-height: var(--sh-header-height) !important;
    display: grid !important;
    grid-template-columns: 44px minmax(0, 1fr) 44px !important;
    align-items: center !important;
    gap: 0 !important;
    padding: 0 12px !important;
    margin: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    overflow: visible !important;
    background: #050505 !important;
    z-index: 1200 !important;
  }

  body.public-tv-layout .tv-mobile-menu-toggle {
    grid-column: 1 !important;
    justify-self: start !important;
    align-self: center !important;
    width: 38px !important;
    height: 38px !important;
    margin: 0 !important;
    padding: 0 !important;
    display: inline-grid !important;
    place-items: center !important;
    position: relative !important;
    top: auto !important;
    left: auto !important;
    right: auto !important;
    transform: none !important;
  }

  body.public-tv-layout .tv-brand {
    grid-column: 2 !important;
    justify-self: center !important;
    align-self: center !important;
    min-width: 0 !important;
    max-width: calc(100vw - 120px) !important;
    margin: 0 !important;
    padding: 0 !important;
    transform: none !important;
  }

  body.public-tv-layout .tv-actions {
    grid-column: 3 !important;
    justify-self: end !important;
    align-self: center !important;
    position: relative !important;
    top: auto !important;
    right: auto !important;
    bottom: auto !important;
    left: auto !important;
    width: 38px !important;
    height: 38px !important;
    min-width: 38px !important;
    margin: 0 !important;
    padding: 0 !important;
    display: grid !important;
    place-items: center !important;
    transform: none !important;
    overflow: visible !important;
    z-index: 1202 !important;
  }

  body.public-tv-layout .tv-search {
    position: relative !important;
    top: auto !important;
    right: auto !important;
    bottom: auto !important;
    left: auto !important;
    transform: none !important;
    width: 38px !important;
    height: 38px !important;
    min-width: 38px !important;
    max-width: 38px !important;
    margin: 0 !important;
    padding: 0 !important;
    display: grid !important;
    place-items: center !important;
    border: 0 !important;
    border-radius: 50% !important;
    background: rgba(255,255,255,.13) !important;
    overflow: hidden !important;
    pointer-events: auto !important;
  }

  body.public-tv-layout .tv-search .search-icon {
    position: absolute !important;
    top: 50% !important;
    left: 50% !important;
    width: 38px !important;
    height: 38px !important;
    display: inline-grid !important;
    place-items: center !important;
    transform: translate(-50%, -50%) !important;
    color: rgba(255,255,255,.92) !important;
    font-size: 1rem !important;
    line-height: 1 !important;
    z-index: 2 !important;
    pointer-events: none !important;
  }

  body.public-tv-layout .tv-search input {
    position: absolute !important;
    inset: 0 !important;
    width: 100% !important;
    height: 38px !important;
    min-width: 0 !important;
    margin: 0 !important;
    padding: 0 12px 0 42px !important;
    border: 0 !important;
    border-radius: inherit !important;
    background: transparent !important;
    color: #fff !important;
    font-size: 16px !important;
    opacity: 0 !important;
    outline: 0 !important;
  }

  body.public-tv-layout.mobile-search-open .tv-search,
  body.public-tv-layout .tv-search:focus-within {
    position: absolute !important;
    top: 50% !important;
    right: 0 !important;
    left: auto !important;
    bottom: auto !important;
    transform: translateY(-50%) !important;
    width: min(286px, calc(100vw - 72px)) !important;
    max-width: min(286px, calc(100vw - 72px)) !important;
    height: 38px !important;
    min-width: 38px !important;
    border-radius: 999px !important;
    background: rgba(28,28,28,.98) !important;
    border: 1px solid rgba(255,255,255,.16) !important;
    z-index: 1300 !important;
  }

  body.public-tv-layout.mobile-search-open .tv-search .search-icon,
  body.public-tv-layout .tv-search:focus-within .search-icon {
    left: 19px !important;
    width: 20px !important;
    height: 20px !important;
    transform: translateY(-50%) !important;
  }

  body.public-tv-layout.mobile-search-open .tv-search input,
  body.public-tv-layout .tv-search:focus-within input {
    opacity: 1 !important;
  }

  /* Guia: corrente à esquerda e próximo programa à direita, sem textos duplicados. */
  body.public-tv-layout .gp-top-info,
body.public-tv-layout .player-stage.has-embed-player .gp-top-info{
    position: absolute !important;
    top: var(--ntv-info-top) !important;
    left: 16px !important;
    right: 16px !important;
    width: auto !important;
    max-width: none !important;
    height: var(--ntv-info-height) !important;
    min-height: 0 !important;
    display: grid !important;
    grid-template-columns: minmax(0, 62%) minmax(96px, 34%) !important;
    grid-template-areas:
      "line next"
      "title next"
      "meta next"
      "bar next" !important;
    column-gap: 14px !important;
    row-gap: 3px !important;
    color: #fff !important;
    text-shadow: none !important;
    pointer-events: none !important;
    overflow: hidden !important;
    z-index: 335 !important;
  }

  body.public-tv-layout .gp-top-info #gpNowTime {
    display: inline-block !important;
    min-width: 0 !important;
    max-width: 100% !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
  }

  body.public-tv-layout .gp-top-info #gpNowTitle,
  body.public-tv-layout .player-stage.has-embed-player .gp-top-info #gpNowTitle {
    grid-area: title !important;
    width: 100% !important;
    max-width: 100% !important;
    font-size: clamp(1rem, 3.3vw, 1.26rem) !important;
    line-height: 1.02 !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
  }

  body.public-tv-layout .gp-top-info #gpNowMeta {
    grid-area: meta !important;
    width: 100% !important;
    max-width: 100% !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
  }

  body.public-tv-layout .gp-next-box{
    grid-area: next !important;
    align-self: center !important;
    display: block !important;
    min-width: 0 !important;
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: hidden !important;
    visibility: visible !important;
    opacity: 1 !important;
  }

  body.public-tv-layout .gp-next-label {
    font-size: .54rem !important;
    color: rgba(255,255,255,.56) !important;
    margin-bottom: 5px !important;
  }

  body.public-tv-layout .gp-next-box #gpNextMeta {
    display: -webkit-box !important;
    color: rgba(255,255,255,.88) !important;
    font-size: .62rem !important;
    font-weight: 850 !important;
    line-height: 1.18 !important;
    white-space: normal !important;
    overflow: hidden !important;
    text-overflow: clip !important;
    -webkit-line-clamp: 2 !important;
    -webkit-box-orient: vertical !important;
  }

  body.public-tv-layout .gp-top-info > #gpNextMeta {
    grid-area: next !important;
  }

  body.public-tv-layout .gp-top-info #gpNextMeta::before {
    content: none !important;
    display: none !important;
  }

  /* Canais: sempre logo abaixo do guia, sem buracos e com arrasto horizontal. */
  body.public-tv-layout .gp-channel-drawer,
body.public-tv-layout .gp-player-chrome.drawer-open .gp-channel-drawer,
body.public-tv-layout .player-stage.has-embed-player .gp-player-chrome:not(.drawer-open) .gp-channel-drawer,
body.public-tv-layout .player-stage.has-embed-player .gp-player-chrome.drawer-open .gp-channel-drawer{
    position: absolute !important;
    top: var(--ntv-drawer-top) !important;
    left: 0 !important;
    right: 0 !important;
    margin: 0 !important;
    padding: 14px 16px 22px !important;
    display: grid !important;
    grid-template-rows: auto auto !important;
    gap: 14px !important;
    background: #242424 !important;
    pointer-events: auto !important;
    overflow: visible !important;
    z-index: 336 !important;
  }

  body.public-tv-layout .gp-category-strip,
  body.public-tv-layout .gp-channel-rail {
    -webkit-overflow-scrolling: touch !important;
    overscroll-behavior-x: contain !important;
    scrollbar-width: none !important;
  }

  body.public-tv-layout .gp-channel-rail {
    min-height: var(--ntv-rail-height) !important;
    padding-bottom: 8px !important;
  }
}

@media (max-width: 560px) {
  body.public-tv-layout {
    --sh-header-height: 48px !important;
    --ntv-info-top: calc(var(--ntv-video-height) + 38px) !important;
    --ntv-info-height: 88px !important;
    --ntv-drawer-top: calc(var(--ntv-info-top) + var(--ntv-info-height) + 10px) !important;
    --ntv-rail-height: 150px !important;
  }

  body.public-tv-layout .public-tv-topbar {
    grid-template-columns: 40px minmax(0, 1fr) 40px !important;
    height: var(--sh-header-height) !important;
    min-height: var(--sh-header-height) !important;
    padding: 0 12px !important;
  }

  body.public-tv-layout .tv-mobile-menu-toggle,
  body.public-tv-layout .tv-actions,
  body.public-tv-layout .tv-search {
    width: 34px !important;
    height: 34px !important;
    min-width: 34px !important;
    max-width: 34px !important;
  }

  body.public-tv-layout .tv-search .search-icon {
    width: 34px !important;
    height: 34px !important;
  }

  body.public-tv-layout.mobile-search-open .tv-search,
  body.public-tv-layout .tv-search:focus-within {
    width: min(250px, calc(100vw - 70px)) !important;
    max-width: min(250px, calc(100vw - 70px)) !important;
  }

  body.public-tv-layout .gp-top-info,
body.public-tv-layout .player-stage.has-embed-player .gp-top-info{
    left: 16px !important;
    right: 16px !important;
    grid-template-columns: minmax(0, 60%) minmax(94px, 36%) !important;
    column-gap: 12px !important;
    row-gap: 3px !important;
  }

  body.public-tv-layout .gp-schedule-line,
  body.public-tv-layout .player-stage.has-embed-player .gp-schedule-line {
    gap: 6px !important;
    font-size: .58rem !important;
  }

  body.public-tv-layout .gp-signal-pill {
    height: 16px !important;
    min-height: 16px !important;
    padding: 0 5px !important;
    font-size: .48rem !important;
  }

  body.public-tv-layout .gp-top-info #gpNowTitle,
  body.public-tv-layout .player-stage.has-embed-player .gp-top-info #gpNowTitle {
    font-size: clamp(.98rem, 4vw, 1.16rem) !important;
  }

  body.public-tv-layout .gp-top-info #gpNowMeta,
  body.public-tv-layout .gp-top-info #gpNowTime,
  body.public-tv-layout .gp-next-box #gpNextMeta {
    font-size: .59rem !important;
  }

  body.public-tv-layout .gp-next-label {
    font-size: .52rem !important;
  }

  body.public-tv-layout .gp-channel-drawer,
body.public-tv-layout .gp-player-chrome.drawer-open .gp-channel-drawer,
body.public-tv-layout .player-stage.has-embed-player .gp-player-chrome:not(.drawer-open) .gp-channel-drawer,
body.public-tv-layout .player-stage.has-embed-player .gp-player-chrome.drawer-open .gp-channel-drawer{
    padding: 13px 16px 20px !important;
    gap: 13px !important;
  }
}

@media (max-width: 380px) {
  body.public-tv-layout .gp-top-info,
  body.public-tv-layout .player-stage.has-embed-player .gp-top-info {
    grid-template-columns: minmax(0, 58%) minmax(88px, 38%) !important;
    column-gap: 10px !important;
  }

  body.public-tv-layout .gp-top-info #gpNowTitle,
  body.public-tv-layout .player-stage.has-embed-player .gp-top-info #gpNowTitle {
    font-size: .92rem !important;
  }

  body.public-tv-layout .gp-top-info #gpNowMeta,
  body.public-tv-layout .gp-top-info #gpNowTime,
  body.public-tv-layout .gp-next-box #gpNextMeta {
    font-size: .56rem !important;
  }
}

/* v2.8.27.1 - correção extra: a busca não pode herdar grid-column antigo dentro do botão direito. */
@media (max-width: 1024px) {
  body.public-tv-layout .tv-actions {
    grid-template-columns: 1fr !important;
    grid-template-rows: 1fr !important;
    justify-items: center !important;
    align-items: center !important;
    overflow: visible !important;
  }
  body.public-tv-layout .tv-search {
    grid-column: 1 !important;
    grid-row: 1 !important;
    justify-self: center !important;
    align-self: center !important;
  }
}

/* ======================================================================
   v2.8.27.2 - Ajuste pontual: fundo do VAST sem faixa/bloco preto no layout
   Base mantida na v2.8.27. O anúncio continua entrando somente no retângulo
   do player; guia, categorias e canais permanecem no layout normal.
   ====================================================================== */
@media (max-width: 1024px) {
  

  

  

  

  

  

  

  

  
}


/* ======================================================================
   v2.8.31 - Canais sincronizados + painel lateral de jogos do dia
   - A rail de canais some/aparece junto com textos e botões do player.
   - O antigo botão Canais agora abre Jogos de hoje em painel lateral.
   ====================================================================== */
body.public-tv-layout .gp-football-open-btn {
  pointer-events: auto !important;
}

body.public-tv-layout .gp-football-open-btn span {
  white-space: nowrap !important;
}

body.public-tv-layout .gp-football-panel {
  position: absolute !important;
  top: clamp(76px, 10vh, 112px) !important;
  right: clamp(18px, 3.4vw, 54px) !important;
  bottom: clamp(86px, 12vh, 138px) !important;
  width: min(390px, calc(100vw - 32px)) !important;
  z-index: 80 !important;
  display: flex !important;
  flex-direction: column !important;
  gap: 12px !important;
  padding: 16px !important;
  border: 1px solid rgba(255,255,255,.12) !important;
  border-radius: 22px !important;
  background: linear-gradient(180deg, rgba(28,28,28,.97), rgba(14,14,14,.98)) !important;
  box-shadow: 0 30px 90px rgba(0,0,0,.55) !important;
  backdrop-filter: blur(18px) !important;
  -webkit-backdrop-filter: blur(18px) !important;
  color: #fff !important;
  pointer-events: auto !important;
  opacity: 1 !important;
  visibility: visible !important;
  transform: translateX(0) !important;
}

body.public-tv-layout .gp-football-panel[hidden] {
  display: none !important;
}

body.public-tv-layout .gp-football-head {
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 12px !important;
}

body.public-tv-layout .gp-football-head small {
  display: block !important;
  color: rgba(255,255,255,.58) !important;
  font-size: .72rem !important;
  font-weight: 850 !important;
  margin-bottom: 2px !important;
}

body.public-tv-layout .gp-football-head strong {
  display: block !important;
  font-size: 1.15rem !important;
  line-height: 1 !important;
  letter-spacing: -.04em !important;
  font-weight: 950 !important;
}

body.public-tv-layout .gp-football-close {
  width: 36px !important;
  height: 36px !important;
  border: 0 !important;
  border-radius: 50% !important;
  display: grid !important;
  place-items: center !important;
  background: rgba(255,255,255,.11) !important;
  color: #fff !important;
  cursor: pointer !important;
}

body.public-tv-layout .gp-football-close:hover,
body.public-tv-layout .gp-football-close:focus-visible {
  background: rgba(255,255,255,.18) !important;
}

body.public-tv-layout .gp-football-status {
  min-height: 54px !important;
  display: grid !important;
  place-items: center !important;
  padding: 12px !important;
  border-radius: 14px !important;
  background: rgba(255,255,255,.06) !important;
  color: rgba(255,255,255,.72) !important;
  text-align: center !important;
  font-size: .84rem !important;
  font-weight: 750 !important;
}

body.public-tv-layout .gp-football-status[hidden] {
  display: none !important;
}

body.public-tv-layout .gp-football-list {
  display: grid !important;
  gap: 10px !important;
  overflow-y: auto !important;
  padding-right: 2px !important;
  scrollbar-width: thin !important;
}

body.public-tv-layout .gp-football-card {
  display: grid !important;
  gap: 8px !important;
  padding: 13px !important;
  border-radius: 16px !important;
  border: 1px solid rgba(255,255,255,.10) !important;
  background: rgba(255,255,255,.06) !important;
}

body.public-tv-layout .gp-football-card strong {
  font-size: .98rem !important;
  line-height: 1.12 !important;
  letter-spacing: -.03em !important;
  font-weight: 950 !important;
}

body.public-tv-layout .gp-football-card small {
  color: rgba(255,255,255,.64) !important;
  font-size: .74rem !important;
  line-height: 1.18 !important;
}

body.public-tv-layout .gp-football-time,
body.public-tv-layout .gp-football-channel {
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 8px !important;
  min-width: 0 !important;
}

body.public-tv-layout .gp-football-time span {
  color: rgba(255,255,255,.82) !important;
  font-size: .76rem !important;
  font-weight: 900 !important;
}

body.public-tv-layout .gp-football-time b {
  flex: 0 0 auto !important;
  padding: 4px 7px !important;
  border-radius: 999px !important;
  background: #ff003d !important;
  color: #fff !important;
  font-size: .62rem !important;
  line-height: 1 !important;
  font-weight: 950 !important;
}

body.public-tv-layout .gp-football-channel {
  justify-content: flex-start !important;
  color: rgba(255,255,255,.78) !important;
  font-size: .78rem !important;
  font-weight: 800 !important;
}

body.public-tv-layout .gp-football-channel span {
  min-width: 0 !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  white-space: nowrap !important;
}

body.public-tv-layout .gp-football-watch {
  height: 34px !important;
  border: 0 !important;
  border-radius: 999px !important;
  background: #fff !important;
  color: #080808 !important;
  font-size: .78rem !important;
  font-weight: 950 !important;
  cursor: pointer !important;
}

body.public-tv-layout .gp-football-watch:disabled {
  opacity: .45 !important;
  cursor: not-allowed !important;
}

/* A UI inteira do player, incluindo a lista de canais, some sincronizada. */
body.public-tv-layout.player-ui-hidden:not(.football-panel-open):not(.is-playing-ad):not(.is-vast-click-mode) .player-stage.public-player-stage .gp-player-chrome,
body.public-tv-layout.player-ui-hidden:not(.football-panel-open):not(.is-playing-ad):not(.is-vast-click-mode) .player-stage.public-player-stage .gp-top-info,
body.public-tv-layout.player-ui-hidden:not(.football-panel-open):not(.is-playing-ad):not(.is-vast-click-mode) .player-stage.public-player-stage .gp-bottom-ui,
body.public-tv-layout.player-ui-hidden:not(.football-panel-open):not(.is-playing-ad):not(.is-vast-click-mode) .player-stage.public-player-stage .gp-channel-drawer,
body.public-tv-layout.player-ui-hidden:not(.football-panel-open):not(.is-playing-ad):not(.is-vast-click-mode) .player-stage.public-player-stage .gp-extras-btn,
body.public-tv-layout.player-ui-hidden:not(.football-panel-open):not(.is-playing-ad):not(.is-vast-click-mode) .player-stage.public-player-stage .gp-embed-top-actions {
  opacity: 0 !important;
  visibility: hidden !important;
  pointer-events: none !important;
}

body.public-tv-layout.player-ui-visible .player-stage.public-player-stage .gp-player-chrome,
body.public-tv-layout.football-panel-open .player-stage.public-player-stage .gp-player-chrome,
body.public-tv-layout .player-stage.public-player-stage:hover .gp-player-chrome {
  opacity: 1 !important;
  visibility: visible !important;
}

/* Como a lista fica sincronizada, ela permanece tecnicamente aberta; o auto-hide controla a visibilidade. */
body.public-tv-layout .gp-player-chrome.drawer-open .gp-channel-drawer {
  opacity: 1 !important;
  visibility: visible !important;
}

body.public-tv-layout.football-panel-open .gp-player-chrome {
  opacity: 1 !important;
  visibility: visible !important;
  pointer-events: none !important;
}

body.public-tv-layout.football-panel-open .gp-football-panel,
body.public-tv-layout.football-panel-open .gp-football-panel * {
  pointer-events: auto !important;
}

@media (max-width: 1024px) {
  body.public-tv-layout .gp-football-open-btn,
  body.public-tv-layout .player-stage.has-embed-player .gp-football-open-btn,
  body.public-tv-layout .gp-extras-btn.gp-football-open-btn,
  body.public-tv-layout .player-stage.has-embed-player .gp-extras-btn.gp-football-open-btn {
    display: inline-flex !important;
    visibility: visible !important;
    opacity: 1 !important;
    pointer-events: auto !important;
    top: calc(var(--ntv-video-height) + 54px) !important;
    right: 16px !important;
    bottom: auto !important;
    min-width: 92px !important;
    height: 30px !important;
    padding: 0 10px !important;
    gap: 6px !important;
    border-radius: 999px !important;
    background: rgba(45,45,45,.95) !important;
    color: #fff !important;
    font-size: .64rem !important;
    transform: none !important;
    z-index: 40 !important;
  }

  body.public-tv-layout .gp-football-open-btn span {
    font-size: .64rem !important;
    line-height: 1 !important;
  }

  body.public-tv-layout .gp-football-panel {
    position: fixed !important;
    top: var(--sh-header-height) !important;
    right: 0 !important;
    bottom: 0 !important;
    width: min(360px, 86vw) !important;
    max-width: 86vw !important;
    border-radius: 18px 0 0 18px !important;
    padding: 14px !important;
    z-index: 2100 !important;
  }

  body.public-tv-layout.player-ui-hidden:not(.football-panel-open):not(.is-playing-ad):not(.is-vast-click-mode) .player-stage.public-player-stage .gp-football-open-btn {
    opacity: 0 !important;
    visibility: hidden !important;
    pointer-events: none !important;
  }
}

@media (max-width: 560px) {
  body.public-tv-layout .gp-football-open-btn,
  body.public-tv-layout .player-stage.has-embed-player .gp-football-open-btn,
  body.public-tv-layout .gp-extras-btn.gp-football-open-btn,
  body.public-tv-layout .player-stage.has-embed-player .gp-extras-btn.gp-football-open-btn {
    right: 14px !important;
    min-width: 74px !important;
    padding: 0 9px !important;
  }

  body.public-tv-layout .gp-football-open-btn span {
    max-width: 48px !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
  }

  body.public-tv-layout .gp-football-panel {
    width: 88vw !important;
    max-width: 88vw !important;
  }

  body.public-tv-layout .gp-football-card {
    padding: 12px !important;
  }
}

/* ======================================================================
   v2.8.32 - Jogos classificados por liga + canais filtrados
   ====================================================================== */
body.public-tv-layout .gp-football-league {
  display: inline-flex !important;
  align-items: center !important;
  gap: 6px !important;
  width: fit-content !important;
  max-width: 100% !important;
  padding: 5px 8px !important;
  border-radius: 999px !important;
  background: rgba(255, 0, 61, .18) !important;
  color: #fff !important;
  border: 1px solid rgba(255, 255, 255, .10) !important;
  font-size: .68rem !important;
  line-height: 1 !important;
  font-weight: 950 !important;
  text-transform: none !important;
}

body.public-tv-layout .gp-football-league i {
  color: #ffce00 !important;
  font-size: .78rem !important;
}

body.public-tv-layout .gp-football-league span {
  min-width: 0 !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  white-space: nowrap !important;
}

body.public-tv-layout .gp-empty-card {
  flex: 0 0 min(420px, calc(100vw - 40px)) !important;
  min-height: 112px !important;
  display: grid !important;
  place-items: center !important;
  padding: 18px !important;
  border-radius: 16px !important;
  background: rgba(255,255,255,.06) !important;
  border: 1px solid rgba(255,255,255,.10) !important;
  color: rgba(255,255,255,.76) !important;
  font-weight: 850 !important;
  text-align: center !important;
}

@media (max-width: 560px) {
  body.public-tv-layout .gp-football-league {
    font-size: .62rem !important;
    padding: 5px 7px !important;
  }
}


/* v2.8.33 - VT é jogo gravado: fica visualmente menos destacado no painel de jogos */
body.public-tv-layout .gp-football-card.is-vt {
  opacity: .72 !important;
  border-color: rgba(255,255,255,.08) !important;
  background: rgba(255,255,255,.045) !important;
}

body.public-tv-layout .gp-football-card.is-vt .gp-football-time b {
  background: rgba(255,255,255,.18) !important;
  color: rgba(255,255,255,.86) !important;
}


/* ======================================================================
   v2.8.38 - Redesign cinematografico seguro
   Base preservada: v2.8.36. Mantem filtros e classificacao de Jogos de hoje.
   ====================================================================== */
body.public-tv-layout .player-stage.public-player-stage {
  background:
    radial-gradient(circle at 68% 24%, rgba(255,255,255,.10), transparent 22%),
    radial-gradient(circle at 22% 18%, rgba(33, 80, 200, .18), transparent 24%),
    linear-gradient(180deg, #0b0c10 0%, #050505 100%) !important;
}
body.public-tv-layout .player-stage.public-player-stage::before {
  content: '' !important;
  position: absolute !important;
  inset: 0 !important;
  z-index: 1 !important;
  pointer-events: none !important;
  background:
    linear-gradient(90deg, rgba(0,0,0,.56) 0%, rgba(0,0,0,.22) 28%, rgba(0,0,0,.08) 54%, rgba(0,0,0,.54) 100%),
    linear-gradient(180deg, rgba(0,0,0,.30) 0%, rgba(0,0,0,.02) 34%, rgba(0,0,0,.74) 100%) !important;
}
body.public-tv-layout .gp-player-chrome { background: none !important; }
body.public-tv-layout .gp-top-info {
  top: clamp(74px, 9.6vh, 118px) !important;
  left: auto !important;
  right: clamp(22px, 3vw, 42px) !important;
  width: min(430px, 31vw) !important;
  max-width: calc(100vw - 44px) !important;
  gap: 10px !important;
  padding: 22px 22px 18px !important;
  border: 1px solid rgba(255,255,255,.10) !important;
  border-radius: 28px !important;
  background: linear-gradient(180deg, rgba(19,23,34,.76), rgba(10,12,18,.88)) !important;
  box-shadow: 0 24px 80px rgba(0,0,0,.44) !important;
  backdrop-filter: blur(18px) saturate(120%) !important;
  -webkit-backdrop-filter: blur(18px) saturate(120%) !important;
  pointer-events: auto !important;
  text-shadow: none !important;
}
body.public-tv-layout .gp-live-logo {
  width: 42px !important;
  height: 42px !important;
  margin-bottom: 4px !important;
  border-radius: 14px !important;
  font-size: 1rem !important;
  background: linear-gradient(135deg, rgba(255,255,255,.96), rgba(223,228,255,.88)) !important;
  box-shadow: 0 10px 24px rgba(0,0,0,.26) !important;
}
body.public-tv-layout .gp-schedule-line {
  gap: 8px !important;
  font-size: .76rem !important;
  text-transform: uppercase !important;
  letter-spacing: .04em !important;
}
body.public-tv-layout .gp-signal-pill,
body.public-tv-layout .gp-channel-card .gp-signal-pill {
  min-height: 22px !important;
  padding: 0 9px !important;
  border-radius: 999px !important;
  background: rgba(255,255,255,.12) !important;
  border: 1px solid rgba(255,255,255,.10) !important;
  color: #fff !important;
}
body.public-tv-layout .gp-top-info #gpNowTitle,
body.public-tv-layout .gp-top-info strong {
  font-size: clamp(2rem, 3.6vw, 4rem) !important;
  line-height: .92 !important;
  letter-spacing: -.055em !important;
}
body.public-tv-layout .gp-top-info #gpNowMeta {
  color: rgba(255,255,255,.80) !important;
  font-size: .97rem !important;
  line-height: 1.38 !important;
  display: -webkit-box !important;
  -webkit-line-clamp: 4 !important;
  -webkit-box-orient: vertical !important;
  overflow: hidden !important;
}
body.public-tv-layout .gp-next-box {
  display: grid !important;
  gap: 6px !important;
  margin-top: 2px !important;
  padding: 14px 14px 12px !important;
  border-radius: 18px !important;
  background: rgba(255,255,255,.07) !important;
  border: 1px solid rgba(255,255,255,.08) !important;
}
body.public-tv-layout .gp-next-label {
  color: rgba(255,255,255,.58) !important;
  font-size: .72rem !important;
  font-weight: 900 !important;
  letter-spacing: .08em !important;
  text-transform: uppercase !important;
}
body.public-tv-layout .gp-top-info #gpNextMeta {
  color: rgba(255,255,255,.90) !important;
  font-size: .90rem !important;
  line-height: 1.35 !important;
  display: -webkit-box !important;
  -webkit-line-clamp: 4 !important;
  -webkit-box-orient: vertical !important;
  overflow: hidden !important;
}
body.public-tv-layout .gp-info-progress {
  width: 100% !important;
  height: 5px !important;
  margin: 2px 0 0 !important;
  background: rgba(255,255,255,.14) !important;
}
body.public-tv-layout .gp-info-progress span,
body.public-tv-layout #gpInfoProgressBar {
  background: linear-gradient(90deg, #ff4f5e 0%, #ff824f 100%) !important;
}
body.public-tv-layout .gp-extras-btn.gp-football-open-btn {
  top: auto !important;
  right: clamp(22px, 3vw, 42px) !important;
  bottom: clamp(190px, 22vh, 250px) !important;
  transform: none !important;
  min-width: 178px !important;
  height: 50px !important;
  padding: 0 18px !important;
  border-radius: 999px !important;
  background: rgba(255,255,255,.96) !important;
  color: #111722 !important;
  border: 0 !important;
  box-shadow: 0 20px 48px rgba(0,0,0,.32) !important;
}
body.public-tv-layout .gp-extras-btn.gp-football-open-btn i { color: #111722 !important; }
body.public-tv-layout .gp-embed-top-actions {
  top: 24px !important;
  right: 22px !important;
  gap: 10px !important;
  z-index: 36 !important;
}
body.public-tv-layout .gp-embed-top-actions .gp-embed-action {
  width: 42px !important;
  height: 42px !important;
  min-width: 40px !important;
  border-radius: 16px !important;
  background: rgba(14, 16, 24, .74) !important;
  border: 1px solid rgba(255,255,255,.10) !important;
  backdrop-filter: blur(10px) !important;
}
body.public-tv-layout .gp-channel-drawer,
body.public-tv-layout .gp-player-chrome.drawer-open .gp-channel-drawer {
  padding: 16px clamp(18px, 2.6vw, 30px) 86px !important;
  background: linear-gradient(180deg, rgba(0,0,0,0) 0%, rgba(0,0,0,.26) 10%, rgba(6,8,12,.92) 28%, rgba(5,6,9,.98) 100%) !important;
}
body.public-tv-layout .gp-category-strip { gap: 10px !important; }
body.public-tv-layout .gp-category-strip .category-tab,
body.public-tv-layout .category-tab {
  height: 40px !important;
  padding: 0 18px !important;
  border-radius: 999px !important;
  background: rgba(255,255,255,.08) !important;
  border: 1px solid rgba(255,255,255,.07) !important;
  color: rgba(255,255,255,.78) !important;
}
body.public-tv-layout .gp-category-strip .category-tab.active,
body.public-tv-layout .category-tab.active {
  background: rgba(255,255,255,.96) !important;
  color: #131720 !important;
}
body.public-tv-layout .gp-channel-rail {
  gap: 14px !important;
  padding: 4px 4px 10px !important;
}
body.public-tv-layout .gp-channel-card {
  flex-basis: 224px !important;
  height: 126px !important;
  border-radius: 22px !important;
  border: 1px solid rgba(255,255,255,.08) !important;
  overflow: hidden !important;
  box-shadow: 0 14px 30px rgba(0,0,0,.22) !important;
}
body.public-tv-layout .gp-channel-card::after {
  background: linear-gradient(180deg, rgba(0,0,0,.02) 0%, rgba(0,0,0,.22) 40%, rgba(0,0,0,.84) 100%) !important;
}
body.public-tv-layout .gp-channel-card.active {
  border-color: rgba(255,255,255,.24) !important;
  transform: translateY(-2px) !important;
}
body.public-tv-layout .gp-channel-card-copy {
  left: 14px !important;
  right: 14px !important;
  bottom: 14px !important;
}
body.public-tv-layout .gp-channel-card-copy b,
body.public-tv-layout .gp-channel-card-copy strong {
  font-size: .88rem !important;
  line-height: 1.06 !important;
}
body.public-tv-layout .gp-channel-card-copy span,
body.public-tv-layout .gp-channel-card-copy small { font-size: .72rem !important; }

/* VAST acima da interface para liberar clique no Skip nativo */

body.public-tv-layout .player-stage.public-player-stage .player-overlay.ad-native-skip-mode{
  z-index: 920 !important;
  pointer-events: none !important;
  background: linear-gradient(180deg, rgba(0,0,0,.24) 0%, rgba(0,0,0,.08) 30%, rgba(0,0,0,.18) 100%) !important;
}




@media (max-width: 1024px) {
  body.public-tv-layout .gp-top-info {
    left: 16px !important;
    right: 16px !important;
    top: calc(var(--ntv-video-height) + 12px) !important;
    width: auto !important;
    max-width: none !important;
    padding: 14px 14px 12px !important;
    border-radius: 18px !important;
  }
  body.public-tv-layout .gp-top-info #gpNowTitle,
  body.public-tv-layout .gp-top-info strong {
    font-size: clamp(1.06rem, 3vw, 1.46rem) !important;
    line-height: 1.02 !important;
  }
  body.public-tv-layout .gp-top-info #gpNowMeta,
  body.public-tv-layout .gp-top-info #gpNextMeta {
    font-size: .76rem !important;
    -webkit-line-clamp: 2 !important;
  }
  body.public-tv-layout .gp-next-box {
    padding: 10px 10px 9px !important;
    border-radius: 14px !important;
  }
  body.public-tv-layout .gp-extras-btn.gp-football-open-btn,
  body.public-tv-layout .player-stage.has-embed-player .gp-extras-btn.gp-football-open-btn {
    top: calc(var(--ntv-video-height) + 122px) !important;
    bottom: auto !important;
    right: 16px !important;
    min-width: 112px !important;
    height: 34px !important;
    padding: 0 12px !important;
    font-size: .70rem !important;
  }
  body.public-tv-layout .gp-channel-drawer,
  body.public-tv-layout .gp-player-chrome.drawer-open .gp-channel-drawer {
    margin-top: 176px !important;
    padding: 14px 14px 24px !important;
    background: #17181d !important;
  }
}
@media (max-width: 560px) {
  body.public-tv-layout .gp-live-logo {
    width: 30px !important;
    height: 30px !important;
    border-radius: 10px !important;
    font-size: .76rem !important;
  }
  body.public-tv-layout .gp-schedule-line { font-size: .62rem !important; }
  body.public-tv-layout .gp-top-info #gpNowMeta,
  body.public-tv-layout .gp-top-info #gpNextMeta { font-size: .70rem !important; }
  body.public-tv-layout .gp-channel-card {
    flex-basis: 186px !important;
    height: 108px !important;
    border-radius: 16px !important;
  }
}


/* ======================================================================
   v2.8.39 - Evita conflito visual ao abrir "Jogos de hoje"
   - Quando o painel lateral de jogos abre, some a lista de canais
     e o card/informações de "Ao vivo" para não sobrepor layouts.
   ====================================================================== */
body.public-tv-layout.football-panel-open .player-stage.public-player-stage .gp-top-info,
body.public-tv-layout.football-panel-open .player-stage.public-player-stage .gp-bottom-ui,
body.public-tv-layout.football-panel-open .player-stage.public-player-stage .gp-channel-drawer,
body.public-tv-layout.football-panel-open .player-stage.public-player-stage .gp-live-controls {
  opacity: 0 !important;
  visibility: hidden !important;
  pointer-events: none !important;
}

body.public-tv-layout.football-panel-open .player-stage.public-player-stage .gp-top-info {
  transform: translateY(-10px) !important;
}

body.public-tv-layout.football-panel-open .player-stage.public-player-stage .gp-bottom-ui,
body.public-tv-layout.football-panel-open .player-stage.public-player-stage .gp-live-controls {
  transform: translateY(10px) !important;
}

body.public-tv-layout.football-panel-open .player-stage.public-player-stage .gp-extras-btn.gp-football-open-btn {
  opacity: 0 !important;
  visibility: hidden !important;
  pointer-events: none !important;
}

body.public-tv-layout.football-panel-open .player-stage.public-player-stage .gp-football-panel,
body.public-tv-layout.football-panel-open .player-stage.public-player-stage .gp-football-panel * {
  opacity: 1 !important;
  visibility: visible !important;
  pointer-events: auto !important;
  transform: none !important;
}

/* ======================================================================
   v2.8.40 - Destaque para times principais configurados no admin
   ====================================================================== */
body.public-tv-layout .gp-football-card.is-featured {
  border-color: rgba(255, 218, 73, .52) !important;
  background:
    linear-gradient(180deg, rgba(255, 218, 73, .11), rgba(255,255,255,.06)),
    rgba(255,255,255,.06) !important;
  box-shadow: 0 18px 48px rgba(0,0,0,.38), inset 0 0 0 1px rgba(255,255,255,.06) !important;
}

body.public-tv-layout .gp-football-card.is-featured .gp-football-league {
  background: linear-gradient(135deg, rgba(255, 218, 73, .95), rgba(255, 88, 40, .92)) !important;
  color: #111 !important;
  border-color: transparent !important;
}

body.public-tv-layout .gp-football-card.is-featured .gp-football-league i,
body.public-tv-layout .gp-football-card.is-featured .gp-football-league span {
  color: #111 !important;
}


/* ======================================================================
   v2.8.41 - Painel Admin UX Pro
   Design mais profissional, com menos texto visível e abas interativas.
   ====================================================================== */
body.admin-ux-pro[data-theme],
body.admin-ux-pro {
  color: #eef3ff !important;
  background:
    radial-gradient(circle at 18% 0%, rgba(255,47,82,.15), transparent 34%),
    radial-gradient(circle at 82% 8%, rgba(59,130,246,.12), transparent 28%),
    linear-gradient(180deg, #080b10 0%, #050607 100%) !important;
}

body.admin-ux-pro .bg-glow { display: none !important; }

body.admin-ux-pro .admin-layout-pro {
  width: min(1880px, calc(100vw - 28px)) !important;
  max-width: 1880px !important;
  margin: 14px auto !important;
  display: grid !important;
  grid-template-columns: 256px minmax(0, 1fr) !important;
  gap: 18px !important;
}

body.admin-ux-pro .admin-sidebar.card {
  position: sticky !important;
  top: 14px !important;
  min-height: calc(100svh - 28px) !important;
  padding: 16px !important;
  border-radius: 26px !important;
  border: 1px solid rgba(255,255,255,.08) !important;
  background: linear-gradient(180deg, rgba(18,22,31,.95), rgba(10,12,18,.96)) !important;
  box-shadow: 0 26px 70px rgba(0,0,0,.48) !important;
}

body.admin-ux-pro .sidebar-brand {
  align-items: center !important;
  padding: 8px 8px 18px !important;
  border-bottom: 1px solid rgba(255,255,255,.08) !important;
}

body.admin-ux-pro .sidebar-brand .brand-logo {
  width: 44px !important;
  height: 44px !important;
  border-radius: 14px !important;
  background: linear-gradient(135deg, #ff3657, #d91f3e) !important;
  box-shadow: 0 14px 34px rgba(255,35,67,.26) !important;
}

body.admin-ux-pro .sidebar-brand h2 {
  font-size: 1.08rem !important;
  line-height: 1 !important;
  margin: 0 !important;
}

body.admin-ux-pro .sidebar-brand p {
  margin-top: 4px !important;
  font-size: .72rem !important;
  text-transform: uppercase !important;
  letter-spacing: .10em !important;
  color: rgba(255,255,255,.48) !important;
}

body.admin-ux-pro .admin-nav {
  gap: 8px !important;
  margin-top: 18px !important;
}

body.admin-ux-pro .admin-nav a {
  min-height: 44px !important;
  padding: 0 12px !important;
  border: 0 !important;
  border-radius: 14px !important;
  color: rgba(255,255,255,.72) !important;
  background: transparent !important;
  font-size: .90rem !important;
  transition: background .18s ease, color .18s ease, transform .18s ease !important;
}

body.admin-ux-pro .admin-nav a:hover,
body.admin-ux-pro .admin-nav a.active {
  color: #fff !important;
  background: linear-gradient(90deg, rgba(255,54,87,.22), rgba(255,255,255,.06)) !important;
  transform: translateX(2px) !important;
}

body.admin-ux-pro .admin-nav a span {
  width: 28px !important;
  height: 28px !important;
  border-radius: 10px !important;
  background: rgba(255,255,255,.08) !important;
}

body.admin-ux-pro .sidebar-footer {
  border-top: 1px solid rgba(255,255,255,.08) !important;
  padding-top: 14px !important;
}

body.admin-ux-pro .admin-main {
  display: flex !important;
  flex-direction: column !important;
  gap: 16px !important;
  min-width: 0 !important;
}

body.admin-ux-pro .admin-hero { order: 0; }
body.admin-ux-pro .admin-command-bar { order: 1; }
body.admin-ux-pro .admin-stats { order: 2; }
body.admin-ux-pro .admin-grid { order: 3; }
body.admin-ux-pro #clientsCard { order: 4; }
body.admin-ux-pro #siteSettingsCard { order: 5; }
body.admin-ux-pro #issuesCard { order: 6; }

body.admin-ux-pro .admin-hero.card {
  min-height: 0 !important;
  padding: 24px !important;
  border-radius: 30px !important;
  border: 1px solid rgba(255,255,255,.08) !important;
  background:
    linear-gradient(135deg, rgba(255,54,87,.19), rgba(57,80,130,.10) 38%, rgba(255,255,255,.045)),
    rgba(12,15,22,.92) !important;
  box-shadow: 0 22px 60px rgba(0,0,0,.36) !important;
}

body.admin-ux-pro .admin-hero h1 {
  font-size: clamp(2rem, 3.2vw, 3.8rem) !important;
  letter-spacing: -.06em !important;
}

body.admin-ux-pro .admin-hero p,
body.admin-ux-pro .admin-card-head p,
body.admin-ux-pro .section-head p {
  color: rgba(255,255,255,.58) !important;
  line-height: 1.38 !important;
}

body.admin-ux-pro .admin-global-search {
  width: min(560px, 100%) !important;
  height: 48px !important;
  margin: 18px 0 0 !important;
  padding: 0 14px !important;
  display: flex !important;
  align-items: center !important;
  gap: 10px !important;
  border-radius: 16px !important;
  border: 1px solid rgba(255,255,255,.10) !important;
  background: rgba(255,255,255,.06) !important;
  color: rgba(255,255,255,.74) !important;
}

body.admin-ux-pro .admin-global-search input {
  width: 100% !important;
  min-height: 0 !important;
  border: 0 !important;
  background: transparent !important;
  color: #fff !important;
  outline: none !important;
  padding: 0 !important;
}

body.admin-ux-pro .admin-quick-actions .btn,
body.admin-ux-pro .btn {
  min-height: 40px !important;
  border-radius: 13px !important;
  font-weight: 850 !important;
}

body.admin-ux-pro .btn-primary {
  background: linear-gradient(135deg, #ff3657, #ff5f6f) !important;
  color: #fff !important;
  border: 0 !important;
}

body.admin-ux-pro .btn-ghost {
  background: rgba(255,255,255,.07) !important;
  border-color: rgba(255,255,255,.09) !important;
}

body.admin-ux-pro .admin-command-bar.card {
  top: 14px !important;
  padding: 8px !important;
  border-radius: 18px !important;
  border: 1px solid rgba(255,255,255,.08) !important;
  background: rgba(11,14,20,.78) !important;
  backdrop-filter: blur(18px) !important;
}

body.admin-ux-pro .admin-command-bar a {
  padding: 10px 14px !important;
  border-radius: 13px !important;
  color: rgba(255,255,255,.66) !important;
}

body.admin-ux-pro .admin-command-bar a:hover {
  color: #fff !important;
  background: rgba(255,255,255,.08) !important;
}

body.admin-ux-pro .admin-stats {
  display: grid !important;
  grid-template-columns: repeat(5, minmax(150px, 1fr)) !important;
  gap: 12px !important;
  width: 100% !important;
  margin: 0 !important;
}

body.admin-ux-pro .metric-card-pro {
  min-height: 112px !important;
  padding: 16px !important;
  border-radius: 22px !important;
  border: 1px solid rgba(255,255,255,.08) !important;
  background: linear-gradient(180deg, rgba(255,255,255,.07), rgba(255,255,255,.032)), rgba(13,16,23,.92) !important;
}

body.admin-ux-pro .metric-card-pro strong {
  font-size: 2rem !important;
  margin-top: 4px !important;
}

body.admin-ux-pro .metric-card-pro small {
  display: none !important;
}

body.admin-ux-pro .admin-grid {
  display: grid !important;
  grid-template-columns: minmax(340px, .74fr) minmax(560px, 1.26fr) !important;
  gap: 16px !important;
}

body.admin-ux-pro .admin-card-pro {
  border-radius: 26px !important;
  border: 1px solid rgba(255,255,255,.08) !important;
  background: linear-gradient(180deg, rgba(255,255,255,.065), rgba(255,255,255,.028)), rgba(12,15,22,.93) !important;
  box-shadow: 0 22px 60px rgba(0,0,0,.28) !important;
  overflow: hidden !important;
}

body.admin-ux-pro .admin-card-head {
  padding: 18px 18px 10px !important;
  gap: 14px !important;
  align-items: flex-start !important;
}

body.admin-ux-pro .admin-section-kicker,
body.admin-ux-pro .admin-eyebrow {
  padding: 5px 8px !important;
  font-size: .64rem !important;
  background: rgba(255,54,87,.14) !important;
  border-color: rgba(255,54,87,.22) !important;
}

body.admin-ux-pro .admin-card-head h3 {
  font-size: clamp(1.18rem, 1.35vw, 1.58rem) !important;
  margin: 4px 0 0 !important;
}

body.admin-ux-pro .admin-card-head p,
body.admin-ux-pro label > small,
body.admin-ux-pro .field-help {
  font-size: .76rem !important;
}

body.admin-ux-pro .admin-card-head p {
  margin-top: 5px !important;
}

body.admin-ux-pro .form-card,
body.admin-ux-pro .table-card {
  padding-bottom: 16px !important;
}

body.admin-ux-pro .admin-form {
  padding: 0 18px 18px !important;
}

body.admin-ux-pro .field-grid {
  gap: 12px !important;
}

body.admin-ux-pro .admin-form label {
  gap: 7px !important;
  color: rgba(255,255,255,.72) !important;
  font-size: .78rem !important;
  font-weight: 850 !important;
}

body.admin-ux-pro .admin-form input,
body.admin-ux-pro .admin-form select,
body.admin-ux-pro .admin-form textarea,
body.admin-ux-pro .admin-table-search input {
  min-height: 42px !important;
  border-radius: 13px !important;
  background: rgba(255,255,255,.055) !important;
  border: 1px solid rgba(255,255,255,.09) !important;
  color: #fff !important;
}

body.admin-ux-pro .admin-form textarea {
  min-height: 92px !important;
  line-height: 1.42 !important;
}

body.admin-ux-pro label > small,
body.admin-ux-pro .field-help {
  display: none !important;
  color: rgba(255,255,255,.48) !important;
}

body.admin-ux-pro label:hover > small,
body.admin-ux-pro label:focus-within > small,
body.admin-ux-pro label:hover .field-help,
body.admin-ux-pro label:focus-within .field-help {
  display: block !important;
}

body.admin-ux-pro .switch-field {
  min-height: 76px !important;
  display: grid !important;
  grid-template-columns: 1fr auto !important;
  align-items: center !important;
  gap: 6px 12px !important;
  padding: 14px !important;
  border-radius: 17px !important;
  background: rgba(255,255,255,.045) !important;
  border: 1px solid rgba(255,255,255,.075) !important;
}

body.admin-ux-pro .switch-field input[type="checkbox"] {
  width: 42px !important;
  height: 24px !important;
  appearance: none !important;
  border: 0 !important;
  border-radius: 999px !important;
  background: rgba(255,255,255,.18) !important;
  position: relative !important;
  cursor: pointer !important;
}

body.admin-ux-pro .switch-field input[type="checkbox"]::after {
  content: '' !important;
  position: absolute !important;
  width: 18px !important;
  height: 18px !important;
  top: 3px !important;
  left: 3px !important;
  border-radius: 50% !important;
  background: #fff !important;
  transition: transform .18s ease !important;
}

body.admin-ux-pro .switch-field input[type="checkbox"]:checked {
  background: #27d979 !important;
}

body.admin-ux-pro .switch-field input[type="checkbox"]:checked::after {
  transform: translateX(18px) !important;
}

body.admin-ux-pro .switch-field small { grid-column: 1 / -1 !important; }

body.admin-ux-pro .admin-settings-tabs-shell {
  padding: 0 18px 18px !important;
}

body.admin-ux-pro .admin-settings-tabs {
  display: flex !important;
  gap: 8px !important;
  overflow-x: auto !important;
  padding: 4px 0 14px !important;
  scrollbar-width: none !important;
}
body.admin-ux-pro .admin-settings-tabs::-webkit-scrollbar { display: none !important; }

body.admin-ux-pro .admin-settings-tab {
  flex: 0 0 auto !important;
  min-height: 42px !important;
  padding: 0 14px !important;
  border: 1px solid rgba(255,255,255,.08) !important;
  border-radius: 999px !important;
  display: inline-flex !important;
  align-items: center !important;
  gap: 8px !important;
  background: rgba(255,255,255,.06) !important;
  color: rgba(255,255,255,.68) !important;
  cursor: pointer !important;
  font-weight: 900 !important;
}

body.admin-ux-pro .admin-settings-tab.active {
  background: linear-gradient(135deg, #ff3657, #ff5f6f) !important;
  border-color: transparent !important;
  color: #fff !important;
  box-shadow: 0 12px 28px rgba(255,54,87,.22) !important;
}

body.admin-ux-pro .admin-settings-panel {
  display: none !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: 12px !important;
}

body.admin-ux-pro .admin-settings-panel.active {
  display: grid !important;
}

body.admin-ux-pro .admin-settings-panel .field-full,
body.admin-ux-pro .admin-settings-panel textarea[name="football_featured_teams"],
body.admin-ux-pro .admin-settings-panel textarea[name="football_league_rank_rules"],
body.admin-ux-pro .admin-settings-panel textarea[name="football_program_keywords"],
body.admin-ux-pro .admin-settings-panel textarea[name="football_blocked_sports"],
body.admin-ux-pro .admin-settings-panel textarea[name="terms_text"],
body.admin-ux-pro .admin-settings-panel textarea[name="privacy_text"] {
  grid-column: 1 / -1 !important;
}

body.admin-ux-pro .admin-field-card {
  min-width: 0 !important;
  padding: 12px !important;
  border-radius: 16px !important;
  background: rgba(255,255,255,.035) !important;
  border: 1px solid rgba(255,255,255,.065) !important;
}

body.admin-ux-pro .site-preview-box-pro {
  margin: 0 18px 12px !important;
  border-radius: 20px !important;
  background: linear-gradient(135deg, rgba(255,54,87,.16), rgba(255,255,255,.05)) !important;
}

body.admin-ux-pro #siteSettingsForm > .form-actions,
body.admin-ux-pro #siteSettingsForm > .form-status {
  margin-left: 18px !important;
  margin-right: 18px !important;
}

body.admin-ux-pro .form-actions-sticky {
  border-top: 1px solid rgba(255,255,255,.08) !important;
  padding-top: 14px !important;
}

body.admin-ux-pro .table-wrap {
  padding: 0 18px 18px !important;
  overflow: auto !important;
}

body.admin-ux-pro table {
  width: 100% !important;
  min-width: 760px !important;
  border-spacing: 0 8px !important;
}

body.admin-ux-pro th {
  font-size: .68rem !important;
  color: rgba(255,255,255,.44) !important;
}

body.admin-ux-pro td {
  padding: 12px 10px !important;
  background: rgba(255,255,255,.035) !important;
}

body.admin-ux-pro td strong { font-size: .88rem !important; }
body.admin-ux-pro td small { color: rgba(255,255,255,.50) !important; }

body.admin-ux-pro .table-actions {
  gap: 6px !important;
}

body.admin-ux-pro .table-actions .btn {
  min-height: 32px !important;
  padding: 6px 9px !important;
  font-size: .74rem !important;
}

body.admin-ux-pro .status-pill,
body.admin-ux-pro .role-pill {
  border-radius: 999px !important;
  padding: 5px 9px !important;
  font-size: .70rem !important;
  font-weight: 900 !important;
}

body.admin-ux-pro .form-status {
  font-size: .80rem !important;
  color: rgba(255,255,255,.66) !important;
}

body.admin-ux-pro .admin-modal {
  backdrop-filter: blur(18px) !important;
}

body.admin-ux-pro .admin-modal-card {
  border-radius: 26px !important;
  border: 1px solid rgba(255,255,255,.10) !important;
  background: rgba(12,15,22,.96) !important;
}

@media (max-width: 1280px) {
  body.admin-ux-pro .admin-layout-pro {
    grid-template-columns: 1fr !important;
  }
  body.admin-ux-pro .admin-sidebar.card {
    position: relative !important;
    min-height: auto !important;
  }
  body.admin-ux-pro .admin-sidebar {
    display: block !important;
  }
  body.admin-ux-pro .admin-nav {
    display: flex !important;
    overflow-x: auto !important;
    padding-bottom: 6px !important;
  }
  body.admin-ux-pro .admin-nav a {
    flex: 0 0 auto !important;
  }
  body.admin-ux-pro .admin-stats {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
  body.admin-ux-pro .admin-grid {
    grid-template-columns: 1fr !important;
  }
}

@media (max-width: 720px) {
  body.admin-ux-pro.admin-body {
    padding: 8px !important;
  }
  body.admin-ux-pro .admin-layout-pro {
    width: 100% !important;
    margin: 0 !important;
  }
  body.admin-ux-pro .admin-hero.card,
  body.admin-ux-pro .admin-card-pro,
  body.admin-ux-pro .admin-sidebar.card {
    border-radius: 20px !important;
  }
  body.admin-ux-pro .admin-stats,
  body.admin-ux-pro .admin-settings-panel {
    grid-template-columns: 1fr !important;
  }
  body.admin-ux-pro .admin-quick-actions {
    display: grid !important;
    grid-template-columns: 1fr !important;
  }
  body.admin-ux-pro .admin-card-head {
    flex-direction: column !important;
  }
}


/* ======================================================================
   v2.8.46 - Overlay Jogos de hoje com visual transparente premium
   Inspirado em cards flutuantes com vidro fosco, mais próximo da referência.
   ====================================================================== */
body.public-tv-layout .gp-extras-btn.gp-football-open-btn {
  min-width: 164px !important;
  height: 46px !important;
  padding: 0 16px !important;
  border-radius: 18px !important;
  background: rgba(15, 18, 27, .74) !important;
  color: #fff !important;
  border: 1px solid rgba(255,255,255,.12) !important;
  box-shadow: 0 22px 48px rgba(0,0,0,.36) !important;
  backdrop-filter: blur(14px) !important;
}
body.public-tv-layout .gp-extras-btn.gp-football-open-btn i,
body.public-tv-layout .gp-extras-btn.gp-football-open-btn span {
  color: #fff !important;
}
body.public-tv-layout .gp-football-panel {
  top: clamp(24px, 4vh, 34px) !important;
  right: clamp(18px, 2.8vw, 30px) !important;
  bottom: auto !important;
  width: min(420px, calc(100vw - 32px)) !important;
  max-height: min(78vh, 720px) !important;
  padding: 14px !important;
  border-radius: 26px !important;
  background:
    linear-gradient(180deg, rgba(22, 24, 34, .72), rgba(12, 14, 22, .78)) !important;
  border: 1px solid rgba(255,255,255,.10) !important;
  box-shadow: 0 28px 90px rgba(0,0,0,.46) !important;
  backdrop-filter: blur(20px) saturate(120%) !important;
  -webkit-backdrop-filter: blur(20px) saturate(120%) !important;
}
body.public-tv-layout .gp-football-head {
  align-items: flex-start !important;
  margin-bottom: 2px !important;
}
body.public-tv-layout .gp-football-head-copy {
  min-width: 0 !important;
}
body.public-tv-layout .gp-football-head small {
  text-transform: uppercase !important;
  letter-spacing: .08em !important;
  color: rgba(255,255,255,.60) !important;
  margin-bottom: 8px !important;
}
body.public-tv-layout .gp-football-head strong {
  font-size: 1.55rem !important;
  line-height: 1.06 !important;
  margin-bottom: 8px !important;
}
body.public-tv-layout .gp-football-subtitle {
  display: block !important;
  max-width: 280px !important;
  color: rgba(255,255,255,.74) !important;
  font-size: .84rem !important;
  line-height: 1.34 !important;
}
body.public-tv-layout .gp-football-close {
  width: 40px !important;
  height: 40px !important;
  background: rgba(255,255,255,.08) !important;
  border: 1px solid rgba(255,255,255,.10) !important;
  backdrop-filter: blur(12px) !important;
}
body.public-tv-layout .gp-football-status {
  min-height: 64px !important;
  border-radius: 20px !important;
  background: rgba(255,255,255,.06) !important;
  border: 1px solid rgba(255,255,255,.08) !important;
  color: rgba(255,255,255,.80) !important;
}
body.public-tv-layout .gp-football-list {
  gap: 12px !important;
  padding-right: 4px !important;
}
body.public-tv-layout .gp-football-card {
  gap: 10px !important;
  padding: 14px !important;
  border-radius: 22px !important;
  border: 1px solid rgba(255,255,255,.10) !important;
  background: linear-gradient(180deg, rgba(255,255,255,.08), rgba(255,255,255,.04)) !important;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.04) !important;
}
body.public-tv-layout .gp-football-card-top,
body.public-tv-layout .gp-football-card-actions {
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 10px !important;
}
body.public-tv-layout .gp-football-card strong {
  font-size: 1.08rem !important;
  line-height: 1.16 !important;
}
body.public-tv-layout .gp-football-card small {
  font-size: .78rem !important;
  color: rgba(255,255,255,.66) !important;
}
body.public-tv-layout .gp-football-league {
  background: rgba(255,255,255,.06) !important;
  border-color: rgba(255,255,255,.08) !important;
}
body.public-tv-layout .gp-football-chip {
  flex: 0 0 auto !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-height: 30px !important;
  padding: 0 10px !important;
  border-radius: 999px !important;
  background: rgba(255,255,255,.12) !important;
  color: #fff !important;
  font-size: .68rem !important;
  font-weight: 950 !important;
  letter-spacing: .03em !important;
  text-transform: uppercase !important;
}
body.public-tv-layout .gp-football-chip.live,
body.public-tv-layout .gp-football-chip.now {
  background: linear-gradient(135deg, #ff1b59, #ff4d37) !important;
}
body.public-tv-layout .gp-football-chip.upcoming {
  background: rgba(255,255,255,.14) !important;
}
body.public-tv-layout .gp-football-chip.program,
body.public-tv-layout .gp-football-chip.ended {
  background: rgba(255, 208, 85, .18) !important;
  color: #ffd86d !important;
}
body.public-tv-layout .gp-football-time {
  justify-content: flex-start !important;
  color: rgba(255,255,255,.86) !important;
}
body.public-tv-layout .gp-football-time i,
body.public-tv-layout .gp-football-channel i {
  opacity: .88 !important;
}
body.public-tv-layout .gp-football-time span {
  font-size: .80rem !important;
  font-weight: 800 !important;
}
body.public-tv-layout .gp-football-time b {
  display: none !important;
}
body.public-tv-layout .gp-football-channel {
  flex: 1 1 auto !important;
  min-width: 0 !important;
  padding: 0 10px 0 0 !important;
  color: rgba(255,255,255,.80) !important;
}
body.public-tv-layout .gp-football-watch {
  min-width: 148px !important;
  height: 38px !important;
  padding: 0 16px !important;
  border-radius: 999px !important;
  background: linear-gradient(135deg, #ff1a54, #d90d46) !important;
  color: #fff !important;
  border: 1px solid rgba(255,255,255,.12) !important;
  box-shadow: 0 14px 26px rgba(255, 11, 75, .18) !important;
}
body.public-tv-layout .gp-football-watch:hover,
body.public-tv-layout .gp-football-watch:focus-visible {
  filter: brightness(1.08) !important;
  transform: translateY(-1px) !important;
}
body.public-tv-layout .gp-football-card.is-featured {
  background:
    linear-gradient(180deg, rgba(255, 215, 77, .12), rgba(255,255,255,.05)),
    rgba(255,255,255,.05) !important;
}
@media (max-width: 1024px) {
  body.public-tv-layout .gp-football-panel {
    top: var(--sh-header-height) !important;
    bottom: 0 !important;
    max-height: none !important;
    width: min(390px, 88vw) !important;
    border-radius: 24px 0 0 24px !important;
  }
  body.public-tv-layout .gp-football-subtitle {
    max-width: none !important;
  }
}
@media (max-width: 560px) {
  body.public-tv-layout .gp-football-panel {
    width: 90vw !important;
    padding: 12px !important;
  }
  body.public-tv-layout .gp-football-head strong {
    font-size: 1.32rem !important;
  }
  body.public-tv-layout .gp-football-subtitle {
    font-size: .78rem !important;
  }
  body.public-tv-layout .gp-football-card-actions {
    flex-direction: column !important;
    align-items: stretch !important;
  }
  body.public-tv-layout .gp-football-watch {
    width: 100% !important;
    min-width: 0 !important;
  }
}


/* ======================================================================
   v2.8.48 - Mobile sempre visível + experiência de TV/app
   ====================================================================== */
@media (max-width: 900px), (hover: none) and (pointer: coarse) {
  body.public-tv-layout.mobile-persistent-ui .player-stage.public-player-stage .gp-player-chrome,
  body.public-tv-layout.mobile-persistent-ui .player-stage.public-player-stage .gp-top-info,
  body.public-tv-layout.mobile-persistent-ui .player-stage.public-player-stage .gp-bottom-ui,
  body.public-tv-layout.mobile-persistent-ui .player-stage.public-player-stage .gp-channel-drawer,
  body.public-tv-layout.mobile-persistent-ui .player-stage.public-player-stage .gp-live-controls,
  body.public-tv-layout.mobile-persistent-ui .player-stage.public-player-stage .gp-extras-btn,
  body.public-tv-layout.mobile-persistent-ui .player-stage.public-player-stage .gp-embed-top-actions,
  body.public-tv-layout.mobile-persistent-ui.player-ui-hidden:not(.is-playing-ad):not(.is-vast-click-mode) .player-stage.public-player-stage .gp-player-chrome,
  body.public-tv-layout.mobile-persistent-ui.player-ui-hidden:not(.is-playing-ad):not(.is-vast-click-mode) .player-stage.public-player-stage .gp-top-info,
  body.public-tv-layout.mobile-persistent-ui.player-ui-hidden:not(.is-playing-ad):not(.is-vast-click-mode) .player-stage.public-player-stage .gp-bottom-ui,
  body.public-tv-layout.mobile-persistent-ui.player-ui-hidden:not(.is-playing-ad):not(.is-vast-click-mode) .player-stage.public-player-stage .gp-channel-drawer,
  body.public-tv-layout.mobile-persistent-ui.player-ui-hidden:not(.is-playing-ad):not(.is-vast-click-mode) .player-stage.public-player-stage .gp-live-controls,
  body.public-tv-layout.mobile-persistent-ui.player-ui-hidden:not(.is-playing-ad):not(.is-vast-click-mode) .player-stage.public-player-stage .gp-extras-btn,
  body.public-tv-layout.mobile-persistent-ui.player-ui-hidden:not(.is-playing-ad):not(.is-vast-click-mode) .player-stage.public-player-stage .gp-embed-top-actions {
    opacity: 1 !important;
    visibility: visible !important;
    transform: none !important;
  }

  body.public-tv-layout.mobile-persistent-ui:not(.is-playing-ad):not(.is-vast-click-mode) .gp-player-chrome {
    opacity: 1 !important;
    visibility: visible !important;
  }

  body.public-tv-layout.mobile-persistent-ui .gp-player-chrome.drawer-open .gp-channel-drawer,
  body.public-tv-layout.mobile-persistent-ui .gp-channel-drawer,
  body.public-tv-layout.mobile-persistent-ui .player-stage.has-embed-player .gp-player-chrome:not(.drawer-open) .gp-channel-drawer,
  body.public-tv-layout.mobile-persistent-ui .player-stage.has-embed-player .gp-player-chrome.drawer-open .gp-channel-drawer {
    display: grid !important;
    opacity: 1 !important;
    visibility: visible !important;
    pointer-events: auto !important;
    max-height: none !important;
    overflow: visible !important;
  }

  body.public-tv-layout.mobile-persistent-ui .gp-live-controls,
  body.public-tv-layout.mobile-persistent-ui .gp-control-actions,
  body.public-tv-layout.mobile-persistent-ui .gp-category-strip,
  body.public-tv-layout.mobile-persistent-ui .gp-channel-rail,
  body.public-tv-layout.mobile-persistent-ui .gp-rail-wrap,
  body.public-tv-layout.mobile-persistent-ui .gp-extras-btn,
  body.public-tv-layout.mobile-persistent-ui .gp-embed-top-actions {
    pointer-events: auto !important;
  }

  body.public-tv-layout.mobile-persistent-ui .player-stage.has-embed-player .gp-live-controls,
  body.public-tv-layout.mobile-persistent-ui .player-stage.has-embed-player .gp-player-chrome.drawer-open .gp-live-controls {
    display: block !important;
  }

  body.public-tv-layout.mobile-persistent-ui .gp-volume-wrap,
  body.public-tv-layout.mobile-persistent-ui .gp-volume-range {
    display: none !important;
  }

  body.public-tv-layout.mobile-persistent-ui .gp-channel-rail {
    padding-bottom: 16px !important;
  }

  body.public-tv-layout.mobile-persistent-ui .gp-channel-card {
    min-width: 186px !important;
  }
}

/* Modo TV/app: para Smart TV, Android TV, webOS, Tizen, Roku e modo forçado ?tv=1 */
body.public-tv-layout.tv-app-experience {
  overflow: hidden !important;
  background: #000 !important;
}

body.public-tv-layout.tv-app-experience .bg-glow,
body.public-tv-layout.tv-app-experience .global-notice {
  display: none !important;
}

body.public-tv-layout.tv-app-experience .public-tv-topbar {
  height: 56px !important;
  min-height: 56px !important;
  padding: 0 28px !important;
  border-radius: 0 !important;
  background: rgba(0,0,0,.92) !important;
  backdrop-filter: blur(14px) !important;
}

body.public-tv-layout.tv-app-experience .tv-main-nav,
body.public-tv-layout.tv-app-experience .tv-actions {
  display: none !important;
}

body.public-tv-layout.tv-app-experience .public-tv-shell,
body.public-tv-layout.tv-app-experience .page-grid.public-tv-shell {
  width: 100vw !important;
  height: calc(100svh - 56px) !important;
  max-width: none !important;
  margin: 0 !important;
  padding: 0 !important;
  display: block !important;
  overflow: hidden !important;
}

body.public-tv-layout.tv-app-experience .public-player-panel,
body.public-tv-layout.tv-app-experience .player-panel.public-player-panel {
  width: 100% !important;
  height: 100% !important;
  min-height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: #000 !important;
  overflow: hidden !important;
}

body.public-tv-layout.tv-app-experience .player-stage.public-player-stage {
  width: 100% !important;
  height: 100% !important;
  min-height: 0 !important;
  border-radius: 0 !important;
  overflow: hidden !important;
}

body.public-tv-layout.tv-app-experience .gp-player-chrome,
body.public-tv-layout.tv-app-experience.player-ui-hidden .player-stage.public-player-stage .gp-player-chrome,
body.public-tv-layout.tv-app-experience .gp-player-chrome.drawer-open,
body.public-tv-layout.tv-app-experience .gp-top-info,
body.public-tv-layout.tv-app-experience .gp-bottom-ui,
body.public-tv-layout.tv-app-experience .gp-channel-drawer,
body.public-tv-layout.tv-app-experience .gp-live-controls,
body.public-tv-layout.tv-app-experience .gp-extras-btn,
body.public-tv-layout.tv-app-experience .gp-embed-top-actions {
  opacity: 1 !important;
  visibility: visible !important;
  transform: none !important;
}

body.public-tv-layout.tv-app-experience .gp-top-info {
  top: 36px !important;
  left: 44px !important;
  right: auto !important;
  width: min(520px, 42vw) !important;
  max-width: 42vw !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  backdrop-filter: none !important;
  text-shadow: 0 2px 18px rgba(0,0,0,.80) !important;
}

body.public-tv-layout.tv-app-experience .gp-top-info #gpNowTitle,
body.public-tv-layout.tv-app-experience .gp-top-info strong {
  font-size: clamp(2.2rem, 4.4vw, 5.2rem) !important;
  line-height: .94 !important;
}

body.public-tv-layout.tv-app-experience .gp-top-info #gpNowMeta,
body.public-tv-layout.tv-app-experience .gp-top-info #gpNextMeta {
  font-size: clamp(.92rem, 1.15vw, 1.15rem) !important;
  line-height: 1.32 !important;
  -webkit-line-clamp: 2 !important;
}

body.public-tv-layout.tv-app-experience .gp-live-logo {
  width: 52px !important;
  height: 52px !important;
}

body.public-tv-layout.tv-app-experience .gp-embed-top-actions {
  top: 26px !important;
  right: 34px !important;
}

body.public-tv-layout.tv-app-experience .gp-embed-top-actions .gp-embed-action,
body.public-tv-layout.tv-app-experience .gp-icon-btn {
  width: 50px !important;
  height: 50px !important;
  min-width: 50px !important;
  font-size: 1.35rem !important;
  background: rgba(0,0,0,.46) !important;
  border: 1px solid rgba(255,255,255,.12) !important;
}

body.public-tv-layout.tv-app-experience .gp-bottom-ui {
  display: flex !important;
  flex-direction: column !important;
  position: absolute !important;
  left: 0 !important;
  right: 0 !important;
  top: auto !important;
  bottom: 0 !important;
  z-index: 30 !important;
  min-height: 292px !important;
  background: linear-gradient(180deg, rgba(0,0,0,0) 0%, rgba(0,0,0,.68) 18%, rgba(0,0,0,.95) 100%) !important;
  pointer-events: none !important;
}

body.public-tv-layout.tv-app-experience .gp-live-controls {
  order: 1 !important;
  display: block !important;
  padding: 0 44px 8px !important;
  pointer-events: none !important;
}

body.public-tv-layout.tv-app-experience .gp-control-row {
  min-height: 62px !important;
  height: 62px !important;
  padding: 0 !important;
}

body.public-tv-layout.tv-app-experience .gp-control-actions {
  gap: 14px !important;
  pointer-events: auto !important;
}

body.public-tv-layout.tv-app-experience .gp-now-pill {
  height: 28px !important;
  padding: 0 12px !important;
  font-size: .72rem !important;
}

body.public-tv-layout.tv-app-experience .gp-channel-drawer,
body.public-tv-layout.tv-app-experience .gp-player-chrome.drawer-open .gp-channel-drawer,
body.public-tv-layout.tv-app-experience .player-stage.has-embed-player .gp-player-chrome:not(.drawer-open) .gp-channel-drawer,
body.public-tv-layout.tv-app-experience .player-stage.has-embed-player .gp-player-chrome.drawer-open .gp-channel-drawer {
  order: 2 !important;
  display: grid !important;
  grid-template-rows: auto auto !important;
  gap: 14px !important;
  position: relative !important;
  margin: 0 !important;
  padding: 0 44px 30px !important;
  max-height: none !important;
  opacity: 1 !important;
  visibility: visible !important;
  overflow: visible !important;
  pointer-events: auto !important;
  background: transparent !important;
}

body.public-tv-layout.tv-app-experience .gp-category-strip {
  gap: 12px !important;
  padding: 0 !important;
  overflow-x: auto !important;
  pointer-events: auto !important;
}

body.public-tv-layout.tv-app-experience .category-tab {
  height: 42px !important;
  padding: 0 20px !important;
  border-radius: 13px !important;
  font-size: .92rem !important;
}

body.public-tv-layout.tv-app-experience .gp-rail-wrap,
body.public-tv-layout.tv-app-experience .gp-channel-rail {
  pointer-events: auto !important;
}

body.public-tv-layout.tv-app-experience .gp-channel-rail {
  gap: 18px !important;
  padding: 2px 0 10px !important;
  overflow-x: auto !important;
  overflow-y: hidden !important;
  scroll-snap-type: x mandatory !important;
}

body.public-tv-layout.tv-app-experience .gp-channel-card {
  flex: 0 0 clamp(238px, 18vw, 320px) !important;
  height: clamp(126px, 10.3vw, 164px) !important;
  border-radius: 18px !important;
  scroll-snap-align: start !important;
}

body.public-tv-layout.tv-app-experience .gp-channel-card-copy strong {
  font-size: 1rem !important;
}

body.public-tv-layout.tv-app-experience .gp-extras-btn.gp-football-open-btn {
  top: 50% !important;
  right: 42px !important;
  bottom: auto !important;
  min-width: 170px !important;
  height: 48px !important;
  z-index: 42 !important;
  font-size: .92rem !important;
}

body.public-tv-layout.tv-app-experience .gp-football-panel {
  top: 30px !important;
  right: 38px !important;
  bottom: auto !important;
  max-height: calc(100svh - 118px) !important;
}

body.public-tv-layout.tv-app-experience button:focus-visible,
body.public-tv-layout.tv-app-experience a:focus-visible,
body.public-tv-layout.tv-app-experience .gp-channel-card:focus-visible,
body.public-tv-layout.tv-app-experience .category-tab:focus-visible {
  outline: 3px solid #fff !important;
  outline-offset: 3px !important;
  box-shadow: 0 0 0 6px rgba(255, 255, 255, .18) !important;
}


/* ======================================================================
   v2.8.49 - Correção definitiva do layout TV/app
   - Canais, guia e botões ficam visíveis na TV.
   - O rodapé preto vira área de navegação, sem precisar rolar.
   - Reverte regras antigas de iframe que escondiam controles/lista.
   ====================================================================== */
body.public-tv-layout.tv-app-experience .player-stage.public-player-stage {
  isolation: isolate !important;
}

body.public-tv-layout.tv-app-experience .player-stage.public-player-stage #mainFrame,
body.public-tv-layout.tv-app-experience .player-stage.public-player-stage #mainVideo {
  z-index: 1 !important;
}

body.public-tv-layout.tv-app-experience .player-stage.public-player-stage .gp-player-chrome,
body.public-tv-layout.tv-app-experience.player-ui-hidden .player-stage.public-player-stage .gp-player-chrome,
body.public-tv-layout.tv-app-experience.player-ui-visible .player-stage.public-player-stage .gp-player-chrome,
body.public-tv-layout.tv-app-experience .player-stage.has-embed-player .gp-player-chrome,
body.public-tv-layout.tv-app-experience .player-stage.has-embed-player .gp-player-chrome:not(.drawer-open),
body.public-tv-layout.tv-app-experience .player-stage.has-embed-player .gp-player-chrome.drawer-open {
  display: block !important;
  opacity: 1 !important;
  visibility: visible !important;
  transform: none !important;
  pointer-events: none !important;
  z-index: 80 !important;
  background:
    linear-gradient(180deg, rgba(0,0,0,.34) 0%, rgba(0,0,0,.05) 24%, rgba(0,0,0,.14) 52%, rgba(0,0,0,.92) 100%),
    linear-gradient(90deg, rgba(0,0,0,.56) 0%, rgba(0,0,0,.06) 38%, rgba(0,0,0,.34) 100%) !important;
}

body.public-tv-layout.tv-app-experience .player-stage.public-player-stage .gp-top-info,
body.public-tv-layout.tv-app-experience.player-ui-hidden .player-stage.public-player-stage .gp-top-info,
body.public-tv-layout.tv-app-experience .player-stage.has-embed-player .gp-player-chrome .gp-top-info {
  display: grid !important;
  opacity: 1 !important;
  visibility: visible !important;
  pointer-events: none !important;
  transform: none !important;
}

body.public-tv-layout.tv-app-experience .player-stage.public-player-stage .gp-embed-top-actions,
body.public-tv-layout.tv-app-experience .player-stage.has-embed-player .gp-player-chrome .gp-embed-top-actions,
body.public-tv-layout.tv-app-experience.player-ui-hidden .player-stage.public-player-stage .gp-embed-top-actions {
  display: inline-flex !important;
  opacity: 1 !important;
  visibility: visible !important;
  pointer-events: auto !important;
  transform: none !important;
  z-index: 120 !important;
}

body.public-tv-layout.tv-app-experience .player-stage.public-player-stage .gp-bottom-ui,
body.public-tv-layout.tv-app-experience.player-ui-hidden .player-stage.public-player-stage .gp-bottom-ui,
body.public-tv-layout.tv-app-experience .player-stage.has-embed-player .gp-player-chrome:not(.drawer-open) .gp-bottom-ui,
body.public-tv-layout.tv-app-experience .player-stage.has-embed-player .gp-player-chrome.drawer-open .gp-bottom-ui {
  display: flex !important;
  flex-direction: column !important;
  opacity: 1 !important;
  visibility: visible !important;
  transform: none !important;
  position: absolute !important;
  left: 0 !important;
  right: 0 !important;
  top: auto !important;
  bottom: 0 !important;
  z-index: 100 !important;
  min-height: clamp(255px, 34vh, 390px) !important;
  height: clamp(255px, 34vh, 390px) !important;
  padding: 0 !important;
  margin: 0 !important;
  pointer-events: none !important;
  background: linear-gradient(180deg, rgba(0,0,0,0) 0%, rgba(0,0,0,.72) 14%, rgba(0,0,0,.98) 100%) !important;
}

body.public-tv-layout.tv-app-experience .player-stage.public-player-stage .gp-live-controls,
body.public-tv-layout.tv-app-experience.player-ui-hidden .player-stage.public-player-stage .gp-live-controls,
body.public-tv-layout.tv-app-experience .player-stage.has-embed-player .gp-player-chrome:not(.drawer-open) .gp-live-controls,
body.public-tv-layout.tv-app-experience .player-stage.has-embed-player .gp-player-chrome.drawer-open .gp-live-controls {
  order: 1 !important;
  display: block !important;
  opacity: 1 !important;
  visibility: visible !important;
  transform: none !important;
  position: relative !important;
  z-index: 112 !important;
  padding: 0 clamp(24px, 3.5vw, 54px) 6px !important;
  margin: 0 !important;
  pointer-events: none !important;
}

body.public-tv-layout.tv-app-experience .player-stage.public-player-stage .gp-live-line,
body.public-tv-layout.tv-app-experience .player-stage.has-embed-player .gp-player-chrome.drawer-open .gp-live-line,
body.public-tv-layout.tv-app-experience .player-stage.has-embed-player .gp-player-chrome:not(.drawer-open) .gp-live-line {
  display: block !important;
  opacity: 1 !important;
  visibility: visible !important;
}

body.public-tv-layout.tv-app-experience .player-stage.public-player-stage .gp-control-row,
body.public-tv-layout.tv-app-experience .player-stage.has-embed-player .gp-player-chrome.drawer-open .gp-control-row,
body.public-tv-layout.tv-app-experience .player-stage.has-embed-player .gp-player-chrome:not(.drawer-open) .gp-control-row {
  display: flex !important;
  opacity: 1 !important;
  visibility: visible !important;
}

body.public-tv-layout.tv-app-experience .player-stage.public-player-stage .gp-control-actions,
body.public-tv-layout.tv-app-experience .player-stage.has-embed-player .gp-player-chrome.drawer-open .gp-control-actions,
body.public-tv-layout.tv-app-experience .player-stage.has-embed-player .gp-player-chrome:not(.drawer-open) .gp-control-actions {
  display: inline-flex !important;
  opacity: 1 !important;
  visibility: visible !important;
  pointer-events: auto !important;
}

body.public-tv-layout.tv-app-experience .player-stage.public-player-stage .gp-channel-drawer,
body.public-tv-layout.tv-app-experience.player-ui-hidden .player-stage.public-player-stage .gp-channel-drawer,
body.public-tv-layout.tv-app-experience .player-stage.public-player-stage .gp-player-chrome.drawer-open .gp-channel-drawer,
body.public-tv-layout.tv-app-experience .player-stage.has-embed-player .gp-player-chrome:not(.drawer-open) .gp-channel-drawer,
body.public-tv-layout.tv-app-experience .player-stage.has-embed-player .gp-player-chrome.drawer-open .gp-channel-drawer {
  order: 2 !important;
  display: grid !important;
  grid-template-rows: auto minmax(0, 1fr) !important;
  gap: 12px !important;
  opacity: 1 !important;
  visibility: visible !important;
  transform: none !important;
  position: relative !important;
  z-index: 110 !important;
  width: 100% !important;
  max-height: none !important;
  height: auto !important;
  min-height: 0 !important;
  flex: 1 1 auto !important;
  margin: 0 !important;
  padding: 4px clamp(24px, 3.5vw, 54px) clamp(16px, 2vh, 28px) !important;
  overflow: hidden !important;
  pointer-events: auto !important;
  background: transparent !important;
  transition: none !important;
}

body.public-tv-layout.tv-app-experience .player-stage.public-player-stage .gp-category-strip,
body.public-tv-layout.tv-app-experience .player-stage.has-embed-player .gp-player-chrome.drawer-open .gp-category-strip,
body.public-tv-layout.tv-app-experience .player-stage.has-embed-player .gp-player-chrome:not(.drawer-open) .gp-category-strip {
  display: flex !important;
  opacity: 1 !important;
  visibility: visible !important;
  pointer-events: auto !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow-x: auto !important;
  overflow-y: hidden !important;
}

body.public-tv-layout.tv-app-experience .player-stage.public-player-stage .gp-rail-wrap,
body.public-tv-layout.tv-app-experience .player-stage.public-player-stage .gp-channel-rail,
body.public-tv-layout.tv-app-experience .player-stage.has-embed-player .gp-player-chrome.drawer-open .gp-rail-wrap,
body.public-tv-layout.tv-app-experience .player-stage.has-embed-player .gp-player-chrome.drawer-open .gp-channel-rail,
body.public-tv-layout.tv-app-experience .player-stage.has-embed-player .gp-player-chrome:not(.drawer-open) .gp-rail-wrap,
body.public-tv-layout.tv-app-experience .player-stage.has-embed-player .gp-player-chrome:not(.drawer-open) .gp-channel-rail {
  display: flex !important;
  opacity: 1 !important;
  visibility: visible !important;
  pointer-events: auto !important;
  min-height: 0 !important;
  margin: 0 !important;
}

body.public-tv-layout.tv-app-experience .player-stage.public-player-stage .gp-rail-wrap {
  position: relative !important;
  min-width: 0 !important;
}

body.public-tv-layout.tv-app-experience .player-stage.public-player-stage .gp-channel-rail {
  height: clamp(118px, 16vh, 178px) !important;
  min-height: clamp(118px, 16vh, 178px) !important;
  gap: clamp(12px, 1.5vw, 20px) !important;
  padding: 0 4px 8px !important;
  overflow-x: auto !important;
  overflow-y: hidden !important;
  scroll-snap-type: x proximity !important;
}

body.public-tv-layout.tv-app-experience .player-stage.public-player-stage .gp-channel-card {
  flex: 0 0 clamp(210px, 17vw, 304px) !important;
  height: clamp(112px, 14vh, 166px) !important;
  min-height: 0 !important;
  opacity: 1 !important;
  visibility: visible !important;
  pointer-events: auto !important;
  scroll-snap-align: start !important;
}

body.public-tv-layout.tv-app-experience .player-stage.public-player-stage .gp-rail-arrow {
  display: inline-grid !important;
  opacity: .86 !important;
  visibility: visible !important;
  pointer-events: auto !important;
  z-index: 3 !important;
}

body.public-tv-layout.tv-app-experience .gp-football-open-btn,
body.public-tv-layout.tv-app-experience .player-stage.has-embed-player .gp-football-open-btn,
body.public-tv-layout.tv-app-experience .gp-extras-btn.gp-football-open-btn {
  top: auto !important;
  bottom: clamp(170px, 23vh, 280px) !important;
  right: clamp(24px, 3.5vw, 54px) !important;
  z-index: 130 !important;
  opacity: 1 !important;
  visibility: visible !important;
  pointer-events: auto !important;
}

/* TVs 720p precisam de uma faixa inferior mais compacta para caber tudo na mesma tela. */
@media (max-height: 760px) {
  body.public-tv-layout.tv-app-experience .player-stage.public-player-stage .gp-top-info {
    top: 22px !important;
    width: min(420px, 38vw) !important;
    max-width: 38vw !important;
  }
  body.public-tv-layout.tv-app-experience .gp-top-info #gpNowTitle,
  body.public-tv-layout.tv-app-experience .gp-top-info strong {
    font-size: clamp(1.55rem, 3.3vw, 3.3rem) !important;
  }
  body.public-tv-layout.tv-app-experience .player-stage.public-player-stage .gp-bottom-ui {
    height: clamp(224px, 32vh, 286px) !important;
    min-height: clamp(224px, 32vh, 286px) !important;
  }
  body.public-tv-layout.tv-app-experience .player-stage.public-player-stage .gp-live-controls {
    padding-bottom: 2px !important;
  }
  body.public-tv-layout.tv-app-experience .player-stage.public-player-stage .gp-channel-rail {
    height: clamp(104px, 15vh, 132px) !important;
    min-height: clamp(104px, 15vh, 132px) !important;
  }
  body.public-tv-layout.tv-app-experience .player-stage.public-player-stage .gp-channel-card {
    flex-basis: clamp(190px, 16vw, 250px) !important;
    height: clamp(96px, 13.5vh, 126px) !important;
  }
  body.public-tv-layout.tv-app-experience .category-tab {
    height: 34px !important;
    padding: 0 16px !important;
    font-size: .82rem !important;
  }
}


/* ======================================================================
   v2.8.50 - TV: modo PC + navegação por controle remoto
   - Jogos fica junto de Recarregar/Tela cheia.
   - Em TV a UI pode sumir como no PC, mas abre com setas do controle.
   - Guia/lista não cria faixa preta permanente.
   ====================================================================== */
body.public-tv-layout .gp-embed-top-actions {
  display: inline-flex !important;
  visibility: visible !important;
  opacity: 1 !important;
  pointer-events: auto !important;
}

body.public-tv-layout .gp-embed-top-actions .gp-football-open-btn,
body.public-tv-layout .gp-embed-top-actions .gp-extras-btn.gp-football-open-btn,
body.public-tv-layout.tv-app-experience .gp-embed-top-actions .gp-football-open-btn,
body.public-tv-layout.tv-app-experience .player-stage.has-embed-player .gp-embed-top-actions .gp-football-open-btn {
  position: static !important;
  inset: auto !important;
  transform: none !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 8px !important;
  width: auto !important;
  min-width: 104px !important;
  height: 44px !important;
  padding: 0 14px !important;
  border-radius: 16px !important;
  background: rgba(22,22,22,.78) !important;
  color: #fff !important;
  border: 1px solid rgba(255,255,255,.14) !important;
  box-shadow: 0 10px 28px rgba(0,0,0,.35) !important;
  backdrop-filter: blur(10px) !important;
  -webkit-backdrop-filter: blur(10px) !important;
  opacity: 1 !important;
  visibility: visible !important;
  pointer-events: auto !important;
}

body.public-tv-layout .gp-embed-top-actions .gp-football-open-btn span,
body.public-tv-layout .gp-embed-top-actions .gp-football-open-btn i {
  color: #fff !important;
  max-width: none !important;
}

body.public-tv-layout.tv-app-experience .player-stage.public-player-stage .gp-player-chrome,
body.public-tv-layout.tv-app-experience.player-ui-hidden .player-stage.public-player-stage .gp-player-chrome,
body.public-tv-layout.tv-app-experience.player-ui-visible .player-stage.public-player-stage .gp-player-chrome,
body.public-tv-layout.tv-app-experience .player-stage.has-embed-player .gp-player-chrome,
body.public-tv-layout.tv-app-experience .player-stage.has-embed-player .gp-player-chrome:not(.drawer-open),
body.public-tv-layout.tv-app-experience .player-stage.has-embed-player .gp-player-chrome.drawer-open {
  display: block !important;
  opacity: 1 !important;
  visibility: visible !important;
  pointer-events: none !important;
  background:
    linear-gradient(180deg, rgba(0,0,0,.42) 0%, rgba(0,0,0,.10) 22%, rgba(0,0,0,0) 48%, rgba(0,0,0,.68) 100%) !important;
}

body.public-tv-layout.tv-app-experience.player-ui-hidden .player-stage.public-player-stage .gp-player-chrome,
body.public-tv-layout.tv-app-experience.player-ui-hidden .player-stage.has-embed-player .gp-player-chrome {
  background:
    linear-gradient(180deg, rgba(0,0,0,.34) 0%, rgba(0,0,0,.06) 24%, rgba(0,0,0,0) 48%, rgba(0,0,0,0) 100%) !important;
}

body.public-tv-layout.tv-app-experience.player-ui-hidden .player-stage.public-player-stage .gp-top-info,
body.public-tv-layout.tv-app-experience.player-ui-hidden .player-stage.public-player-stage .gp-bottom-ui,
body.public-tv-layout.tv-app-experience.player-ui-hidden .player-stage.public-player-stage .gp-live-controls,
body.public-tv-layout.tv-app-experience.player-ui-hidden .player-stage.public-player-stage .gp-channel-drawer {
  opacity: 0 !important;
  visibility: hidden !important;
  pointer-events: none !important;
  transform: translateY(10px) !important;
}

body.public-tv-layout.tv-app-experience.player-ui-hidden .player-stage.public-player-stage .gp-embed-top-actions,
body.public-tv-layout.tv-app-experience.player-ui-hidden .player-stage.public-player-stage .gp-embed-top-actions * {
  opacity: 1 !important;
  visibility: visible !important;
  pointer-events: auto !important;
  transform: none !important;
}

body.public-tv-layout.tv-app-experience .player-stage.public-player-stage .gp-top-info,
body.public-tv-layout.tv-app-experience.player-ui-visible .player-stage.public-player-stage .gp-top-info,
body.public-tv-layout.tv-app-experience .player-stage.has-embed-player .gp-player-chrome .gp-top-info {
  display: grid !important;
  opacity: 1 !important;
  visibility: visible !important;
  pointer-events: none !important;
  transform: none !important;
}

body.public-tv-layout.tv-app-experience .player-stage.public-player-stage .gp-bottom-ui,
body.public-tv-layout.tv-app-experience.player-ui-visible .player-stage.public-player-stage .gp-bottom-ui,
body.public-tv-layout.tv-app-experience .player-stage.has-embed-player .gp-player-chrome:not(.drawer-open) .gp-bottom-ui,
body.public-tv-layout.tv-app-experience .player-stage.has-embed-player .gp-player-chrome.drawer-open .gp-bottom-ui {
  display: block !important;
  position: absolute !important;
  left: 0 !important;
  right: 0 !important;
  top: auto !important;
  bottom: 0 !important;
  z-index: 100 !important;
  min-height: 0 !important;
  height: auto !important;
  padding: 0 !important;
  margin: 0 !important;
  pointer-events: none !important;
  background: transparent !important;
}

body.public-tv-layout.tv-app-experience .player-stage.public-player-stage .gp-live-controls,
body.public-tv-layout.tv-app-experience.player-ui-visible .player-stage.public-player-stage .gp-live-controls,
body.public-tv-layout.tv-app-experience .player-stage.has-embed-player .gp-player-chrome .gp-live-controls {
  display: block !important;
  opacity: 1 !important;
  visibility: visible !important;
  position: relative !important;
  z-index: 112 !important;
  padding: 0 clamp(24px, 3.5vw, 54px) clamp(16px, 2.2vh, 26px) !important;
  margin: 0 !important;
  pointer-events: none !important;
  transform: none !important;
}

body.public-tv-layout.tv-app-experience .player-stage.public-player-stage .gp-control-actions,
body.public-tv-layout.tv-app-experience .player-stage.public-player-stage .gp-control-actions button,
body.public-tv-layout.tv-app-experience .player-stage.public-player-stage .gp-embed-top-actions,
body.public-tv-layout.tv-app-experience .player-stage.public-player-stage .gp-embed-top-actions button {
  pointer-events: auto !important;
}

body.public-tv-layout.tv-app-experience .player-stage.public-player-stage .gp-channel-drawer,
body.public-tv-layout.tv-app-experience .player-stage.public-player-stage .gp-player-chrome:not(.drawer-open) .gp-channel-drawer,
body.public-tv-layout.tv-app-experience .player-stage.has-embed-player .gp-player-chrome:not(.drawer-open) .gp-channel-drawer {
  display: grid !important;
  position: relative !important;
  z-index: 110 !important;
  grid-template-rows: auto minmax(0, 1fr) !important;
  gap: 12px !important;
  width: 100% !important;
  height: auto !important;
  min-height: 0 !important;
  max-height: 0 !important;
  margin: 0 !important;
  padding: 0 clamp(24px, 3.5vw, 54px) !important;
  overflow: hidden !important;
  opacity: 0 !important;
  visibility: hidden !important;
  pointer-events: none !important;
  background:
    linear-gradient(180deg, rgba(0,0,0,0) 0%, rgba(0,0,0,.78) 28%, rgba(0,0,0,.94) 100%) !important;
  transition: max-height .26s ease, opacity .18s ease, padding .26s ease !important;
  transform: none !important;
}

body.public-tv-layout.tv-app-experience .player-stage.public-player-stage .gp-player-chrome.drawer-open .gp-channel-drawer,
body.public-tv-layout.tv-app-experience .player-stage.has-embed-player .gp-player-chrome.drawer-open .gp-channel-drawer,
body.public-tv-layout.tv-app-experience.player-ui-visible .player-stage.public-player-stage .gp-player-chrome.drawer-open .gp-channel-drawer {
  max-height: min(38vh, 330px) !important;
  padding-top: 12px !important;
  padding-bottom: clamp(72px, 9vh, 110px) !important;
  opacity: 1 !important;
  visibility: visible !important;
  pointer-events: auto !important;
}

body.public-tv-layout.tv-app-experience .player-stage.public-player-stage .gp-category-strip,
body.public-tv-layout.tv-app-experience .player-stage.public-player-stage .gp-channel-rail,
body.public-tv-layout.tv-app-experience .player-stage.public-player-stage .gp-rail-wrap {
  opacity: 1 !important;
  visibility: visible !important;
  pointer-events: auto !important;
}

body.public-tv-layout.tv-app-experience .player-stage.public-player-stage .gp-channel-rail {
  height: clamp(118px, 17vh, 160px) !important;
  min-height: clamp(118px, 17vh, 160px) !important;
  gap: clamp(12px, 1.5vw, 20px) !important;
  padding: 0 4px 8px !important;
  overflow-x: auto !important;
  overflow-y: hidden !important;
  scroll-snap-type: x proximity !important;
  scrollbar-width: none !important;
}

body.public-tv-layout.tv-app-experience .player-stage.public-player-stage .gp-channel-card {
  flex: 0 0 clamp(220px, 18vw, 310px) !important;
  height: clamp(112px, 15vh, 150px) !important;
  min-height: 0 !important;
  opacity: 1 !important;
  visibility: visible !important;
  pointer-events: auto !important;
  scroll-snap-align: start !important;
}

body.public-tv-layout.tv-app-experience .player-stage.public-player-stage .gp-channel-card:focus-visible,
body.public-tv-layout.tv-app-experience .player-stage.public-player-stage .category-tab:focus-visible,
body.public-tv-layout.tv-app-experience .player-stage.public-player-stage .gp-icon-btn:focus-visible,
body.public-tv-layout.tv-app-experience .player-stage.public-player-stage .gp-football-watch:focus-visible,
body.public-tv-layout.tv-app-experience .player-stage.public-player-stage .gp-football-close:focus-visible {
  outline: 4px solid rgba(0, 214, 255, .95) !important;
  outline-offset: 4px !important;
  box-shadow: 0 0 0 8px rgba(0, 214, 255, .20), 0 18px 42px rgba(0,0,0,.42) !important;
  transform: translateY(-2px) scale(1.03) !important;
}

body.public-tv-layout.tv-app-experience .gp-football-panel {
  z-index: 240 !important;
}

body.public-tv-layout.tv-app-experience.football-panel-open .player-stage.public-player-stage .gp-top-info,
body.public-tv-layout.tv-app-experience.football-panel-open .player-stage.public-player-stage .gp-bottom-ui,
body.public-tv-layout.tv-app-experience.football-panel-open .player-stage.public-player-stage .gp-live-controls,
body.public-tv-layout.tv-app-experience.football-panel-open .player-stage.public-player-stage .gp-channel-drawer {
  opacity: 0 !important;
  visibility: hidden !important;
  pointer-events: none !important;
}

@media (max-height: 760px) {
  body.public-tv-layout.tv-app-experience .player-stage.public-player-stage .gp-top-info {
    top: 18px !important;
    width: min(390px, 36vw) !important;
    max-width: 36vw !important;
  }
  body.public-tv-layout.tv-app-experience .gp-top-info #gpNowTitle,
  body.public-tv-layout.tv-app-experience .gp-top-info strong {
    font-size: clamp(1.35rem, 3vw, 2.8rem) !important;
  }
  body.public-tv-layout.tv-app-experience .player-stage.public-player-stage .gp-player-chrome.drawer-open .gp-channel-drawer {
    max-height: min(36vh, 280px) !important;
    padding-bottom: clamp(62px, 8vh, 96px) !important;
  }
  body.public-tv-layout.tv-app-experience .player-stage.public-player-stage .gp-channel-rail {
    height: clamp(96px, 14vh, 126px) !important;
    min-height: clamp(96px, 14vh, 126px) !important;
  }
  body.public-tv-layout.tv-app-experience .player-stage.public-player-stage .gp-channel-card {
    flex-basis: clamp(190px, 16vw, 250px) !important;
    height: clamp(92px, 13vh, 120px) !important;
  }
  body.public-tv-layout.tv-app-experience .category-tab {
    height: 34px !important;
    padding: 0 16px !important;
    font-size: .82rem !important;
  }
}


/* ======================================================================
   v2.8.51 - TV: correção definitiva da lista de canais + cursor remoto
   - A lista abre de verdade quando a UI da TV aparece.
   - Movimento do cursor/air mouse da TV acorda a interface.
   - Mantém comportamento tipo PC: some por inatividade, reaparece com movimento/controle.
   ====================================================================== */
body.public-tv-layout.tv-app-experience .player-stage.public-player-stage #playerHoverZone {
  display: block !important;
  visibility: visible !important;
  position: absolute !important;
  left: 0 !important;
  right: 0 !important;
  bottom: 0 !important;
  height: min(56vh, 520px) !important;
  z-index: 28 !important;
  background: transparent !important;
  pointer-events: auto !important;
}
body.public-tv-layout.tv-app-experience.player-ui-visible .player-stage.public-player-stage #playerHoverZone,
body.public-tv-layout.tv-app-experience.football-panel-open .player-stage.public-player-stage #playerHoverZone{
  pointer-events: none !important;
}
body.public-tv-layout.tv-app-experience .player-stage.public-player-stage .gp-player-chrome.drawer-open,
body.public-tv-layout.tv-app-experience.player-ui-visible .player-stage.public-player-stage .gp-player-chrome.drawer-open,
body.public-tv-layout.tv-app-experience.player-ui-hidden .player-stage.public-player-stage .gp-player-chrome.drawer-open {
  opacity: 1 !important;
  visibility: visible !important;
  pointer-events: none !important;
}
body.public-tv-layout.tv-app-experience .player-stage.public-player-stage .gp-player-chrome.drawer-open .gp-bottom-ui,
body.public-tv-layout.tv-app-experience.player-ui-visible .player-stage.public-player-stage .gp-player-chrome.drawer-open .gp-bottom-ui,
body.public-tv-layout.tv-app-experience.player-ui-hidden .player-stage.public-player-stage .gp-player-chrome.drawer-open .gp-bottom-ui {
  display: flex !important;
  flex-direction: column !important;
  position: absolute !important;
  left: 0 !important;
  right: 0 !important;
  top: auto !important;
  bottom: 0 !important;
  height: auto !important;
  min-height: 0 !important;
  padding: 0 !important;
  z-index: 150 !important;
  opacity: 1 !important;
  visibility: visible !important;
  pointer-events: none !important;
  transform: none !important;
  background: linear-gradient(180deg, rgba(0,0,0,0) 0%, rgba(0,0,0,.72) 28%, rgba(0,0,0,.96) 100%) !important;
}
body.public-tv-layout.tv-app-experience .player-stage.public-player-stage .gp-player-chrome.drawer-open .gp-channel-drawer,
body.public-tv-layout.tv-app-experience.player-ui-visible .player-stage.public-player-stage .gp-player-chrome.drawer-open .gp-channel-drawer,
body.public-tv-layout.tv-app-experience.player-ui-hidden .player-stage.public-player-stage .gp-player-chrome.drawer-open .gp-channel-drawer,
body.public-tv-layout.tv-app-experience .player-stage.has-embed-player .gp-player-chrome.drawer-open .gp-channel-drawer {
  order: 2 !important;
  display: grid !important;
  grid-template-rows: auto minmax(0, 1fr) !important;
  gap: 12px !important;
  position: relative !important;
  width: 100% !important;
  max-height: min(42vh, 360px) !important;
  height: auto !important;
  min-height: min(210px, 32vh) !important;
  padding: 12px clamp(24px, 3.5vw, 54px) clamp(72px, 9vh, 110px) !important;
  margin: 0 !important;
  opacity: 1 !important;
  visibility: visible !important;
  overflow: visible !important;
  pointer-events: auto !important;
  transform: none !important;
  background: transparent !important;
}
body.public-tv-layout.tv-app-experience .player-stage.public-player-stage .gp-player-chrome.drawer-open .gp-category-strip,
body.public-tv-layout.tv-app-experience .player-stage.public-player-stage .gp-player-chrome.drawer-open .gp-rail-wrap,
body.public-tv-layout.tv-app-experience .player-stage.public-player-stage .gp-player-chrome.drawer-open .gp-channel-rail,
body.public-tv-layout.tv-app-experience.player-ui-hidden .player-stage.public-player-stage .gp-player-chrome.drawer-open .gp-category-strip,
body.public-tv-layout.tv-app-experience.player-ui-hidden .player-stage.public-player-stage .gp-player-chrome.drawer-open .gp-rail-wrap,
body.public-tv-layout.tv-app-experience.player-ui-hidden .player-stage.public-player-stage .gp-player-chrome.drawer-open .gp-channel-rail {
  display: flex !important;
  opacity: 1 !important;
  visibility: visible !important;
  pointer-events: auto !important;
  transform: none !important;
}
body.public-tv-layout.tv-app-experience .player-stage.public-player-stage .gp-player-chrome.drawer-open .gp-channel-rail {
  min-height: clamp(112px, 16vh, 160px) !important;
  height: clamp(112px, 16vh, 160px) !important;
  overflow-x: auto !important;
  overflow-y: hidden !important;
  scroll-snap-type: x proximity !important;
}
body.public-tv-layout.tv-app-experience .player-stage.public-player-stage .gp-player-chrome.drawer-open .gp-channel-card {
  display: block !important;
  flex: 0 0 clamp(210px, 17vw, 300px) !important;
  height: clamp(104px, 14.5vh, 148px) !important;
  opacity: 1 !important;
  visibility: visible !important;
  pointer-events: auto !important;
}
body.public-tv-layout.tv-app-experience .player-stage.public-player-stage .gp-player-chrome.drawer-open .gp-live-controls,
body.public-tv-layout.tv-app-experience.player-ui-hidden .player-stage.public-player-stage .gp-player-chrome.drawer-open .gp-live-controls {
  display: block !important;
  opacity: 1 !important;
  visibility: visible !important;
  transform: none !important;
  pointer-events: none !important;
}
body.public-tv-layout.tv-app-experience .player-stage.public-player-stage .gp-player-chrome.drawer-open .gp-control-actions,
body.public-tv-layout.tv-app-experience .player-stage.public-player-stage .gp-player-chrome.drawer-open .gp-control-actions button {
  pointer-events: auto !important;
}
@media (max-height: 760px) {
  body.public-tv-layout.tv-app-experience .player-stage.public-player-stage .gp-player-chrome.drawer-open .gp-channel-drawer {
    max-height: min(40vh, 310px) !important;
    min-height: min(186px, 31vh) !important;
    padding-top: 8px !important;
    padding-bottom: clamp(56px, 8vh, 90px) !important;
  }
  body.public-tv-layout.tv-app-experience .player-stage.public-player-stage .gp-player-chrome.drawer-open .gp-channel-rail {
    min-height: clamp(96px, 14vh, 128px) !important;
    height: clamp(96px, 14vh, 128px) !important;
  }
  body.public-tv-layout.tv-app-experience .player-stage.public-player-stage .gp-player-chrome.drawer-open .gp-channel-card {
    flex-basis: clamp(188px, 15.5vw, 246px) !important;
    height: clamp(90px, 12.5vh, 118px) !important;
  }
}


/* ======================================================================
   v2.8.52 - TV igual à referência
   Foto 1: modo padrão compacto. Foto 2: modo expandido ao mover cursor/controle.
   ====================================================================== */
body.public-tv-layout.tv-app-experience {
  --tv-safe-x: clamp(38px, 5.2vw, 82px);
  --tv-safe-bottom: clamp(24px, 3.5vh, 46px);
  --tv-rail-h-compact: clamp(54px, 8vh, 74px);
  --tv-rail-h-expanded: clamp(132px, 18vh, 188px);
  background: #000 !important;
  overflow: hidden !important;
}
body.public-tv-layout.tv-app-experience .public-tv-topbar,
body.public-tv-layout.tv-app-experience .tv-mobile-menu,
body.public-tv-layout.tv-app-experience .tv-mobile-menu-backdrop,
body.public-tv-layout.tv-app-experience .global-notice,
body.public-tv-layout.tv-app-experience .bg-glow {
  display: none !important;
}
body.public-tv-layout.tv-app-experience .page-grid.public-tv-shell,
body.public-tv-layout.tv-app-experience .public-tv-shell,
body.public-tv-layout.tv-app-experience .public-player-panel,
body.public-tv-layout.tv-app-experience .player-panel.public-player-panel,
body.public-tv-layout.tv-app-experience .player-stage.public-player-stage {
  width: 100vw !important;
  height: 100svh !important;
  max-width: none !important;
  min-height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: #000 !important;
  overflow: hidden !important;
}
body.public-tv-layout.tv-app-experience #mainVideo,
body.public-tv-layout.tv-app-experience #mainFrame {
  position: absolute !important;
  inset: 0 !important;
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  z-index: 0 !important;
}
body.public-tv-layout.tv-app-experience .player-stage.public-player-stage::before {
  content: '' !important;
  position: absolute !important;
  inset: 0 !important;
  z-index: 2 !important;
  pointer-events: none !important;
  background:
    linear-gradient(180deg, rgba(0,0,0,.58) 0%, rgba(0,0,0,.10) 34%, rgba(0,0,0,.24) 60%, rgba(0,0,0,.82) 100%),
    linear-gradient(90deg, rgba(0,0,0,.54) 0%, rgba(0,0,0,.10) 42%, rgba(0,0,0,.32) 100%) !important;
}
body.public-tv-layout.tv-app-experience.player-ui-visible .player-stage.public-player-stage::before,
body.public-tv-layout.tv-app-experience:not(.player-ui-hidden) .player-stage.public-player-stage::before {
  background:
    linear-gradient(180deg, rgba(0,0,0,.45) 0%, rgba(0,0,0,.05) 34%, rgba(0,0,0,.20) 56%, rgba(0,0,0,.74) 100%),
    linear-gradient(90deg, rgba(0,0,0,.55) 0%, rgba(0,0,0,.10) 52%, rgba(0,0,0,.24) 100%) !important;
}
body.public-tv-layout.tv-app-experience .gp-player-chrome,
body.public-tv-layout.tv-app-experience.player-ui-hidden .player-stage.public-player-stage .gp-player-chrome,
body.public-tv-layout.tv-app-experience .gp-player-chrome.drawer-open {
  position: absolute !important;
  inset: 0 !important;
  z-index: 20 !important;
  opacity: 1 !important;
  visibility: visible !important;
  pointer-events: none !important;
  transform: none !important;
  background: transparent !important;
}
body.public-tv-layout.tv-app-experience .gp-player-chrome * {
  pointer-events: auto !important;
}

/* Topo/informações: padrão compacto da foto 1 */
body.public-tv-layout.tv-app-experience .gp-top-info,
body.public-tv-layout.tv-app-experience.player-ui-hidden .player-stage.public-player-stage .gp-top-info {
  position: absolute !important;
  left: var(--tv-safe-x) !important;
  top: clamp(34px, 5.2vh, 64px) !important;
  width: min(520px, 42vw) !important;
  max-width: 42vw !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  backdrop-filter: none !important;
  display: grid !important;
  gap: 7px !important;
  opacity: 1 !important;
  visibility: visible !important;
  transform: none !important;
  text-shadow: 0 3px 16px rgba(0,0,0,.8) !important;
}
body.public-tv-layout.tv-app-experience.player-ui-hidden .gp-live-logo,
body.public-tv-layout.tv-app-experience.player-ui-hidden .gp-schedule-line,
body.public-tv-layout.tv-app-experience.player-ui-hidden .gp-info-progress,
body.public-tv-layout.tv-app-experience.player-ui-hidden .gp-next-box,
body.public-tv-layout.tv-app-experience.player-ui-hidden .gp-tv-info-actions {
  display: none !important;
}
body.public-tv-layout.tv-app-experience .gp-top-info #gpNowTitle,
body.public-tv-layout.tv-app-experience.player-ui-hidden .gp-top-info #gpNowTitle {
  font-size: clamp(1.55rem, 2.35vw, 2.8rem) !important;
  line-height: 1.06 !important;
  letter-spacing: -.035em !important;
  font-weight: 950 !important;
  color: #fff !important;
  margin: 0 !important;
  display: block !important;
  max-width: none !important;
  -webkit-line-clamp: 2 !important;
}
body.public-tv-layout.tv-app-experience .gp-top-info #gpNowMeta,
body.public-tv-layout.tv-app-experience.player-ui-hidden .gp-top-info #gpNowMeta {
  color: rgba(255,255,255,.90) !important;
  font-size: clamp(.98rem, 1.35vw, 1.45rem) !important;
  line-height: 1.2 !important;
  font-weight: 800 !important;
  display: block !important;
  -webkit-line-clamp: 1 !important;
}

/* Estado expandido da foto 2 */
body.public-tv-layout.tv-app-experience.player-ui-visible .gp-top-info,
body.public-tv-layout.tv-app-experience:not(.player-ui-hidden) .gp-top-info {
  top: clamp(42px, 7vh, 78px) !important;
  left: var(--tv-safe-x) !important;
  width: min(650px, 48vw) !important;
  max-width: 48vw !important;
  gap: 12px !important;
}
body.public-tv-layout.tv-app-experience.player-ui-visible .gp-live-logo,
body.public-tv-layout.tv-app-experience:not(.player-ui-hidden) .gp-live-logo {
  display: inline-grid !important;
  width: clamp(38px, 4.8vw, 58px) !important;
  height: clamp(38px, 4.8vw, 58px) !important;
  border-radius: 50% !important;
  background: rgba(255,255,255,.90) !important;
  color: #111 !important;
  box-shadow: 0 10px 30px rgba(0,0,0,.35) !important;
}
body.public-tv-layout.tv-app-experience.player-ui-visible .gp-schedule-line,
body.public-tv-layout.tv-app-experience:not(.player-ui-hidden) .gp-schedule-line {
  display: flex !important;
  align-items: center !important;
  gap: 10px !important;
  font-size: clamp(.88rem, 1.18vw, 1.20rem) !important;
  color: #fff !important;
}
body.public-tv-layout.tv-app-experience.player-ui-visible .gp-signal-pill,
body.public-tv-layout.tv-app-experience:not(.player-ui-hidden) .gp-signal-pill {
  min-height: 28px !important;
  padding: 0 12px !important;
  border-radius: 6px !important;
  background: #22a7ff !important;
  color: #fff !important;
  font-weight: 950 !important;
  border: 0 !important;
}
body.public-tv-layout.tv-app-experience.player-ui-visible .gp-top-info #gpNowTitle,
body.public-tv-layout.tv-app-experience:not(.player-ui-hidden) .gp-top-info #gpNowTitle {
  font-size: clamp(2.0rem, 3.3vw, 4.2rem) !important;
  line-height: .98 !important;
}
body.public-tv-layout.tv-app-experience.player-ui-visible .gp-info-progress,
body.public-tv-layout.tv-app-experience:not(.player-ui-hidden) .gp-info-progress {
  display: block !important;
  width: min(560px, 36vw) !important;
  height: 5px !important;
  margin: 0 !important;
  background: rgba(255,255,255,.55) !important;
  border-radius: 999px !important;
}
body.public-tv-layout.tv-app-experience.player-ui-visible .gp-next-box,
body.public-tv-layout.tv-app-experience:not(.player-ui-hidden) .gp-next-box {
  display: flex !important;
  align-items: center !important;
  gap: 8px !important;
  padding: 0 !important;
  background: transparent !important;
  border: 0 !important;
  color: #fff !important;
}
body.public-tv-layout.tv-app-experience .gp-next-label { color: rgba(255,255,255,.80) !important; font-size: clamp(.92rem,1.2vw,1.25rem) !important; }
body.public-tv-layout.tv-app-experience .gp-next-box em { color: #fff !important; font-style: normal !important; font-weight: 850 !important; font-size: clamp(.92rem,1.2vw,1.25rem) !important; }
body.public-tv-layout.tv-app-experience.player-ui-visible .gp-tv-info-actions,
body.public-tv-layout.tv-app-experience:not(.player-ui-hidden) .gp-tv-info-actions {
  display: flex !important;
  align-items: center !important;
  gap: 12px !important;
  margin-top: 8px !important;
}
body.public-tv-layout.tv-app-experience .gp-tv-action {
  height: clamp(42px, 5.7vh, 58px) !important;
  padding: 0 clamp(18px, 2vw, 28px) !important;
  border-radius: 999px !important;
  border: 1px solid rgba(255,255,255,.14) !important;
  background: rgba(235,242,255,.92) !important;
  color: #2374b8 !important;
  font-weight: 950 !important;
  font-size: clamp(.95rem, 1.35vw, 1.38rem) !important;
  display: inline-flex !important;
  align-items: center !important;
  gap: 10px !important;
  box-shadow: 0 14px 34px rgba(0,0,0,.25) !important;
}
body.public-tv-layout.tv-app-experience .gp-tv-action + .gp-tv-action {
  background: rgba(106, 137, 161, .82) !important;
  color: #fff !important;
}

/* Botões do canto: somem no padrão, aparecem discretos ao interagir */
body.public-tv-layout.tv-app-experience.player-ui-hidden .gp-embed-top-actions {
  opacity: 0 !important;
  visibility: hidden !important;
  pointer-events: none !important;
}
body.public-tv-layout.tv-app-experience.player-ui-visible .gp-embed-top-actions,
body.public-tv-layout.tv-app-experience:not(.player-ui-hidden) .gp-embed-top-actions {
  top: clamp(22px, 3vh, 42px) !important;
  right: clamp(28px, 4vw, 70px) !important;
  display: flex !important;
  gap: 12px !important;
  opacity: 1 !important;
  visibility: visible !important;
  z-index: 230 !important;
}
body.public-tv-layout.tv-app-experience .gp-embed-top-actions .gp-embed-action {
  min-width: clamp(48px, 5vw, 68px) !important;
  height: clamp(48px, 5vw, 68px) !important;
  border-radius: 18px !important;
  background: rgba(30,37,48,.65) !important;
  border: 1px solid rgba(255,255,255,.16) !important;
  color: #fff !important;
  backdrop-filter: blur(12px) !important;
}
body.public-tv-layout.tv-app-experience .gp-embed-top-actions .gp-football-open-btn {
  width: auto !important;
  padding: 0 16px !important;
}

/* Controles inferiores e rail compacto/expandido */
body.public-tv-layout.tv-app-experience .gp-bottom-ui,
body.public-tv-layout.tv-app-experience.player-ui-hidden .player-stage.public-player-stage .gp-player-chrome.drawer-open .gp-bottom-ui {
  position: absolute !important;
  left: 0 !important;
  right: 0 !important;
  bottom: 0 !important;
  z-index: 160 !important;
  display: flex !important;
  flex-direction: column-reverse !important;
  min-height: calc(var(--tv-rail-h-compact) + 74px) !important;
  padding: 0 var(--tv-safe-x) var(--tv-safe-bottom) !important;
  background: linear-gradient(180deg, rgba(0,0,0,0) 0%, rgba(0,0,0,.30) 30%, rgba(0,0,0,.84) 100%) !important;
  opacity: 1 !important;
  visibility: visible !important;
  pointer-events: none !important;
  transform: none !important;
}
body.public-tv-layout.tv-app-experience.player-ui-visible .gp-bottom-ui,
body.public-tv-layout.tv-app-experience:not(.player-ui-hidden) .gp-bottom-ui {
  min-height: clamp(270px, 36vh, 420px) !important;
  padding-bottom: clamp(34px, 4vh, 58px) !important;
}
body.public-tv-layout.tv-app-experience .gp-live-controls {
  order: 2 !important;
  display: block !important;
  position: relative !important;
  width: 100% !important;
  margin: 0 0 clamp(8px, 1.4vh, 16px) !important;
  padding: 0 !important;
  opacity: 1 !important;
  visibility: visible !important;
  pointer-events: none !important;
}
body.public-tv-layout.tv-app-experience .gp-live-line {
  height: 5px !important;
  width: 100% !important;
  margin: 0 0 clamp(12px, 1.8vh, 22px) !important;
  background: rgba(255,255,255,.78) !important;
  border-radius: 999px !important;
}
body.public-tv-layout.tv-app-experience .gp-live-line span {
  height: 100% !important;
  background: #ff1763 !important;
  border-radius: inherit !important;
}
body.public-tv-layout.tv-app-experience .gp-control-row {
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
}
body.public-tv-layout.tv-app-experience .gp-now-pill {
  margin-left: auto !important;
  margin-right: 0 !important;
  min-height: 42px !important;
  padding: 0 14px !important;
  border-radius: 10px !important;
  background: rgba(120, 170, 210, .72) !important;
  color: #fff !important;
  font-size: clamp(.85rem, 1vw, 1rem) !important;
}
body.public-tv-layout.tv-app-experience .gp-control-actions {
  order: -1 !important;
  display: flex !important;
  gap: 12px !important;
  pointer-events: auto !important;
}
body.public-tv-layout.tv-app-experience .gp-control-actions > :not(#gpPlayBtn) {
  display: none !important;
}
body.public-tv-layout.tv-app-experience #gpPlayBtn {
  display: grid !important;
  width: clamp(50px, 5.4vw, 74px) !important;
  height: clamp(50px, 5.4vw, 74px) !important;
  border-radius: 999px !important;
  background: rgba(239,246,255,.92) !important;
  color: #1e83cc !important;
  font-size: clamp(1.3rem, 2.4vw, 2.1rem) !important;
}
body.public-tv-layout.tv-app-experience .gp-channel-drawer,
body.public-tv-layout.tv-app-experience.player-ui-hidden .player-stage.public-player-stage .gp-player-chrome.drawer-open .gp-channel-drawer {
  order: 1 !important;
  display: grid !important;
  position: relative !important;
  grid-template-rows: 0 minmax(0, var(--tv-rail-h-compact)) !important;
  gap: 0 !important;
  width: 100% !important;
  height: var(--tv-rail-h-compact) !important;
  min-height: var(--tv-rail-h-compact) !important;
  max-height: var(--tv-rail-h-compact) !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow: visible !important;
  background: transparent !important;
  opacity: 1 !important;
  visibility: visible !important;
  pointer-events: auto !important;
  transform: none !important;
}
body.public-tv-layout.tv-app-experience.player-ui-visible .gp-channel-drawer,
body.public-tv-layout.tv-app-experience:not(.player-ui-hidden) .gp-channel-drawer {
  grid-template-rows: clamp(48px, 6vh, 72px) minmax(0, var(--tv-rail-h-expanded)) !important;
  gap: clamp(14px, 2vh, 22px) !important;
  height: auto !important;
  min-height: calc(var(--tv-rail-h-expanded) + clamp(62px, 8vh, 94px)) !important;
  max-height: none !important;
}
body.public-tv-layout.tv-app-experience .gp-category-strip {
  display: flex !important;
  gap: clamp(14px, 1.7vw, 24px) !important;
  overflow-x: auto !important;
  opacity: 0 !important;
  visibility: hidden !important;
  pointer-events: none !important;
  height: 0 !important;
  min-height: 0 !important;
}
body.public-tv-layout.tv-app-experience.player-ui-visible .gp-category-strip,
body.public-tv-layout.tv-app-experience:not(.player-ui-hidden) .gp-category-strip {
  opacity: 1 !important;
  visibility: visible !important;
  pointer-events: auto !important;
  height: clamp(48px, 6vh, 72px) !important;
  min-height: clamp(48px, 6vh, 72px) !important;
}
body.public-tv-layout.tv-app-experience .category-tab {
  height: clamp(46px, 5.8vh, 66px) !important;
  padding: 0 clamp(22px, 2.4vw, 38px) !important;
  border-radius: 12px !important;
  background: rgba(140, 186, 225, .82) !important;
  border: 1px solid rgba(255,255,255,.18) !important;
  color: #fff !important;
  font-size: clamp(1rem, 1.5vw, 1.55rem) !important;
  font-weight: 950 !important;
  flex: 0 0 auto !important;
}
body.public-tv-layout.tv-app-experience .category-tab.active {
  background: rgba(238, 246, 255, .96) !important;
  color: #2773b6 !important;
}
body.public-tv-layout.tv-app-experience .gp-rail-wrap {
  display: block !important;
  position: relative !important;
  height: 100% !important;
  overflow: visible !important;
  pointer-events: auto !important;
}
body.public-tv-layout.tv-app-experience .gp-rail-arrow {
  display: none !important;
}
body.public-tv-layout.tv-app-experience .gp-channel-rail {
  display: flex !important;
  gap: clamp(10px, 1.4vw, 18px) !important;
  height: 100% !important;
  min-height: 100% !important;
  padding: 0 !important;
  overflow-x: auto !important;
  overflow-y: hidden !important;
  scrollbar-width: none !important;
  scroll-snap-type: x proximity !important;
  pointer-events: auto !important;
}
body.public-tv-layout.tv-app-experience .gp-channel-rail::-webkit-scrollbar { display: none !important; }
body.public-tv-layout.tv-app-experience .gp-channel-card,
body.public-tv-layout.tv-app-experience.player-ui-hidden .player-stage.public-player-stage .gp-player-chrome.drawer-open .gp-channel-card {
  flex: 0 0 clamp(150px, 13vw, 210px) !important;
  width: clamp(150px, 13vw, 210px) !important;
  height: var(--tv-rail-h-compact) !important;
  min-height: 0 !important;
  border-radius: 8px !important;
  overflow: hidden !important;
  opacity: .95 !important;
  visibility: visible !important;
  pointer-events: auto !important;
  border: 0 !important;
  background: rgba(255,255,255,.12) !important;
  scroll-snap-align: start !important;
}
body.public-tv-layout.tv-app-experience.player-ui-visible .gp-channel-card,
body.public-tv-layout.tv-app-experience:not(.player-ui-hidden) .gp-channel-card {
  flex-basis: clamp(260px, 23vw, 400px) !important;
  width: clamp(260px, 23vw, 400px) !important;
  height: var(--tv-rail-h-expanded) !important;
  border-radius: 14px !important;
  opacity: 1 !important;
  border: 1px solid rgba(255,255,255,.14) !important;
  box-shadow: 0 20px 46px rgba(0,0,0,.30) !important;
}
body.public-tv-layout.tv-app-experience .gp-channel-card img,
body.public-tv-layout.tv-app-experience .gp-channel-card .thumb-fallback {
  position: absolute !important;
  inset: 0 !important;
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
}
body.public-tv-layout.tv-app-experience.player-ui-hidden .gp-channel-badge,
body.public-tv-layout.tv-app-experience.player-ui-hidden .gp-lock-badge,
body.public-tv-layout.tv-app-experience.player-ui-hidden .gp-channel-card-copy b,
body.public-tv-layout.tv-app-experience.player-ui-hidden .gp-channel-card-copy small {
  display: none !important;
}
body.public-tv-layout.tv-app-experience.player-ui-hidden .gp-channel-card-copy {
  left: 10px !important;
  right: 10px !important;
  bottom: 7px !important;
}
body.public-tv-layout.tv-app-experience.player-ui-hidden .gp-channel-card-copy strong {
  font-size: clamp(.78rem, 1vw, 1rem) !important;
  line-height: 1 !important;
  text-shadow: 0 2px 10px rgba(0,0,0,.8) !important;
}
body.public-tv-layout.tv-app-experience.player-ui-visible .gp-channel-badge,
body.public-tv-layout.tv-app-experience:not(.player-ui-hidden) .gp-channel-badge {
  display: inline-flex !important;
}
body.public-tv-layout.tv-app-experience.player-ui-visible .gp-channel-card-copy,
body.public-tv-layout.tv-app-experience:not(.player-ui-hidden) .gp-channel-card-copy {
  left: 18px !important;
  right: 18px !important;
  bottom: 18px !important;
}
body.public-tv-layout.tv-app-experience.player-ui-visible .gp-channel-card-copy strong,
body.public-tv-layout.tv-app-experience:not(.player-ui-hidden) .gp-channel-card-copy strong {
  font-size: clamp(1rem, 1.5vw, 1.45rem) !important;
}
body.public-tv-layout.tv-app-experience.player-ui-visible .gp-channel-card-copy small,
body.public-tv-layout.tv-app-experience:not(.player-ui-hidden) .gp-channel-card-copy small {
  font-size: clamp(.78rem, 1vw, 1.02rem) !important;
  display: block !important;
}
body.public-tv-layout.tv-app-experience .gp-channel-card.active,
body.public-tv-layout.tv-app-experience .gp-channel-card:focus-visible,
body.public-tv-layout.tv-app-experience .category-tab:focus-visible,
body.public-tv-layout.tv-app-experience .gp-tv-action:focus-visible,
body.public-tv-layout.tv-app-experience .gp-embed-action:focus-visible {
  outline: 4px solid rgba(255,255,255,.96) !important;
  outline-offset: 4px !important;
  box-shadow: 0 0 0 8px rgba(74,166,255,.32), 0 22px 58px rgba(0,0,0,.45) !important;
  transform: translateY(-2px) scale(1.025) !important;
}
body.public-tv-layout.tv-app-experience.football-panel-open .gp-top-info,
body.public-tv-layout.tv-app-experience.football-panel-open .gp-bottom-ui,
body.public-tv-layout.tv-app-experience.football-panel-open .gp-live-controls,
body.public-tv-layout.tv-app-experience.football-panel-open .gp-channel-drawer {
  opacity: 0 !important;
  visibility: hidden !important;
  pointer-events: none !important;
}

@media (max-height: 760px) {
  body.public-tv-layout.tv-app-experience {
    --tv-safe-x: clamp(28px, 4.6vw, 58px);
    --tv-safe-bottom: clamp(14px, 2.4vh, 28px);
    --tv-rail-h-compact: clamp(44px, 7vh, 60px);
    --tv-rail-h-expanded: clamp(108px, 17vh, 146px);
  }
  body.public-tv-layout.tv-app-experience.player-ui-visible .gp-top-info,
  body.public-tv-layout.tv-app-experience:not(.player-ui-hidden) .gp-top-info {
    top: clamp(24px, 5vh, 48px) !important;
  }
  body.public-tv-layout.tv-app-experience.player-ui-visible .gp-bottom-ui,
  body.public-tv-layout.tv-app-experience:not(.player-ui-hidden) .gp-bottom-ui {
    min-height: clamp(228px, 34vh, 330px) !important;
  }
}


/* ======================================================================
   v2.8.53 - Segurança: layout TV isolado
   O design de TV só pode afetar a página quando body.tv-app-experience existir.
   Smartphones e PC continuam usando a lógica/visual antigo.
   ====================================================================== */
body.public-tv-layout:not(.tv-app-experience) .public-tv-topbar {
  display: flex !important;
}
body.public-tv-layout:not(.tv-app-experience) .page-grid.public-tv-shell,
body.public-tv-layout:not(.tv-app-experience) .public-tv-shell,
body.public-tv-layout:not(.tv-app-experience) .public-player-panel,
body.public-tv-layout:not(.tv-app-experience) .player-panel.public-player-panel {
  width: revert-layer;
  height: revert-layer;
  max-width: revert-layer;
  margin: revert-layer;
  border-radius: revert-layer;
}
body.public-tv-layout:not(.tv-app-experience) .player-stage.public-player-stage #mainVideo,
body.public-tv-layout:not(.tv-app-experience) .player-stage.public-player-stage #mainFrame {
  object-fit: cover;
}


/* v2.8.54 - cadastro rápido de canal por base + código */
.predefined-channel-link-box {
  display: grid;
  gap: 12px;
  margin: 14px 0;
  padding: 16px;
  border: 1px solid rgba(255,255,255,.09);
  border-radius: 18px;
  background: linear-gradient(180deg, rgba(255,255,255,.055), rgba(255,255,255,.035));
}
.predefined-channel-link-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 14px;
}
.predefined-channel-link-head strong {
  display: inline-flex;
  align-items: center;
  gap: 8px;
}
.predefined-channel-link-head small {
  display: block;
  margin-top: 4px;
  color: rgba(255,255,255,.62);
  line-height: 1.35;
}
.predefined-channel-preview {
  min-height: 40px;
  display: flex;
  align-items: center;
  padding: 10px 12px;
  border-radius: 12px;
  background: rgba(0,0,0,.20);
  color: rgba(255,255,255,.68);
  font-size: .86rem;
  word-break: break-all;
}
.predefined-channel-preview.is-ready {
  color: #c5f7d0;
  border: 1px solid rgba(60, 220, 120, .22);
  background: rgba(23, 128, 64, .13);
}
@media (max-width: 720px) {
  .predefined-channel-link-head { flex-direction: column; }
}


/* ======================================================================
   v2.8.55 - TV: Programação sem apagar o player
   Mantém o iframe/vídeo no mesmo lugar e deixa o guia transparente.
   Afeta somente o modo TV. Smartphone e PC continuam com a lógica antiga.
   ====================================================================== */
body.public-tv-layout.tv-app-experience.tv-programming-visible .player-stage.public-player-stage,
body.public-tv-layout.tv-app-experience.tv-programming-visible .player-panel.public-player-panel,
body.public-tv-layout.tv-app-experience.tv-programming-visible .public-player-panel {
  background: transparent !important;
}

body.public-tv-layout.tv-app-experience.tv-programming-visible #mainVideo,
body.public-tv-layout.tv-app-experience.tv-programming-visible #mainFrame,
body.public-tv-layout.tv-app-experience.tv-programming-visible .player-stage.public-player-stage #mainVideo,
body.public-tv-layout.tv-app-experience.tv-programming-visible .player-stage.public-player-stage #mainFrame {
  display: block !important;
  opacity: 1 !important;
  visibility: visible !important;
  position: absolute !important;
  inset: 0 !important;
  width: 100% !important;
  height: 100% !important;
  z-index: 5 !important;
  background: transparent !important;
}

body.public-tv-layout.tv-app-experience.tv-programming-visible .player-stage.public-player-stage::before {
  z-index: 8 !important;
  background:
    linear-gradient(180deg, rgba(0,0,0,.24) 0%, rgba(0,0,0,.02) 34%, rgba(0,0,0,.10) 58%, rgba(0,0,0,.58) 100%),
    linear-gradient(90deg, rgba(0,0,0,.42) 0%, rgba(0,0,0,.06) 45%, rgba(0,0,0,.18) 100%) !important;
}

body.public-tv-layout.tv-app-experience.tv-programming-visible .gp-player-chrome,
body.public-tv-layout.tv-app-experience.tv-programming-visible .player-stage.public-player-stage .gp-player-chrome,
body.public-tv-layout.tv-app-experience.tv-programming-visible .player-stage.public-player-stage .gp-player-chrome.drawer-open {
  z-index: 30 !important;
  background: transparent !important;
  pointer-events: none !important;
}

body.public-tv-layout.tv-app-experience.tv-programming-visible .gp-player-chrome * {
  pointer-events: auto !important;
}

body.public-tv-layout.tv-app-experience.tv-programming-visible .gp-bottom-ui,
body.public-tv-layout.tv-app-experience.tv-programming-visible .player-stage.public-player-stage .gp-bottom-ui,
body.public-tv-layout.tv-app-experience.tv-programming-visible .player-stage.public-player-stage .gp-player-chrome.drawer-open .gp-bottom-ui {
  background: linear-gradient(180deg, rgba(0,0,0,0) 0%, rgba(0,0,0,.10) 18%, rgba(0,0,0,.42) 62%, rgba(0,0,0,.64) 100%) !important;
  z-index: 40 !important;
}

body.public-tv-layout.tv-app-experience.tv-programming-visible .gp-channel-drawer,
body.public-tv-layout.tv-app-experience.tv-programming-visible .player-stage.public-player-stage .gp-channel-drawer,
body.public-tv-layout.tv-app-experience.tv-programming-visible .player-stage.public-player-stage .gp-player-chrome.drawer-open .gp-channel-drawer {
  background: transparent !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
}

body.public-tv-layout.tv-app-experience.tv-programming-visible .gp-category-strip,
body.public-tv-layout.tv-app-experience.tv-programming-visible .gp-rail-wrap,
body.public-tv-layout.tv-app-experience.tv-programming-visible .gp-channel-rail {
  background: transparent !important;
}

body.public-tv-layout.tv-app-experience.tv-programming-visible .gp-channel-card,
body.public-tv-layout.tv-app-experience.tv-programming-visible .category-tab,
body.public-tv-layout.tv-app-experience.tv-programming-visible .gp-tv-action {
  backdrop-filter: blur(10px) saturate(118%) !important;
  -webkit-backdrop-filter: blur(10px) saturate(118%) !important;
}

body.public-tv-layout:not(.tv-app-experience).tv-programming-visible {
  /* Segurança: esta classe nunca altera smartphone/PC. */
}


/* ======================================================================
   v2.8.56 - TV com o mesmo layout/design do PC
   Mantém smartphones e PC na lógica antiga e neutraliza o modo TV especial.
   ====================================================================== */
body.public-tv-layout.tv-app-experience {
  overflow: auto !important;
  background: var(--body-bg, #050505) !important;
}
body.public-tv-layout.tv-app-experience .public-tv-topbar,
body.public-tv-layout.tv-app-experience .tv-main-nav,
body.public-tv-layout.tv-app-experience .tv-actions,
body.public-tv-layout.tv-app-experience .bg-glow,
body.public-tv-layout.tv-app-experience .global-notice {
  display: revert !important;
}
body.public-tv-layout.tv-app-experience .public-tv-shell,
body.public-tv-layout.tv-app-experience .page-grid.public-tv-shell,
body.public-tv-layout.tv-app-experience .public-player-panel,
body.public-tv-layout.tv-app-experience .player-panel.public-player-panel,
body.public-tv-layout.tv-app-experience .player-stage.public-player-stage,
body.public-tv-layout.tv-app-experience .gp-player-chrome,
body.public-tv-layout.tv-app-experience .gp-top-info,
body.public-tv-layout.tv-app-experience .gp-bottom-ui,
body.public-tv-layout.tv-app-experience .gp-channel-drawer,
body.public-tv-layout.tv-app-experience .gp-live-controls,
body.public-tv-layout.tv-app-experience .gp-embed-top-actions {
  width: revert !important;
  height: revert !important;
  min-height: revert !important;
  max-height: revert !important;
  margin: revert !important;
  padding: revert !important;
  border-radius: revert !important;
  position: revert !important;
  inset: revert !important;
  display: revert !important;
  opacity: revert !important;
  visibility: revert !important;
  transform: revert !important;
  pointer-events: revert !important;
}


/* ======================================================================
   v2.8.57 - UI sobre o player + navegação por setas para TV/controle remoto
   ====================================================================== */
body.public-tv-layout .gp-player-chrome {
  z-index: 80 !important;
  background:
    linear-gradient(90deg, rgba(0,0,0,.64) 0%, rgba(0,0,0,.34) 28%, rgba(0,0,0,.08) 58%, rgba(0,0,0,.28) 100%),
    linear-gradient(180deg, rgba(0,0,0,.56) 0%, rgba(0,0,0,.04) 36%, rgba(0,0,0,.18) 58%, rgba(0,0,0,.78) 100%) !important;
}
body.public-tv-layout .gp-channel-drawer,
body.public-tv-layout .gp-live-controls,
body.public-tv-layout .gp-top-info,
body.public-tv-layout .gp-embed-top-actions,
body.public-tv-layout .gp-football-panel {
  pointer-events: auto !important;
}
body.public-tv-layout .gp-channel-drawer {
  position: absolute !important;
  left: 0 !important;
  right: 0 !important;
  bottom: 0 !important;
  z-index: 14 !important;
  background:
    linear-gradient(180deg, rgba(0,0,0,0) 0%, rgba(0,0,0,.30) 18%, rgba(0,0,0,.74) 58%, rgba(0,0,0,.88) 100%) !important;
  backdrop-filter: blur(2px) !important;
  -webkit-backdrop-filter: blur(2px) !important;
}
body.public-tv-layout .gp-player-chrome.drawer-open .gp-channel-drawer {
  max-height: min(48svh, 500px) !important;
  padding-bottom: clamp(78px, 8vh, 108px) !important;
}
body.public-tv-layout .gp-live-controls {
  z-index: 22 !important;
}
body.public-tv-layout .gp-rail-wrap {
  overflow: visible !important;
  padding: 0 64px !important;
}
body.public-tv-layout .gp-rail-arrow {
  display: grid !important;
  width: clamp(52px, 4.6vw, 76px) !important;
  height: clamp(78px, 10vh, 128px) !important;
  border-radius: 999px !important;
  background: rgba(16, 18, 24, .72) !important;
  color: #fff !important;
  border: 1px solid rgba(255,255,255,.18) !important;
  box-shadow: 0 18px 45px rgba(0,0,0,.34) !important;
  backdrop-filter: blur(10px) !important;
  -webkit-backdrop-filter: blur(10px) !important;
}
body.public-tv-layout .gp-rail-prev {
  left: 8px !important;
}
body.public-tv-layout .gp-rail-next {
  right: 8px !important;
}
body.public-tv-layout .gp-rail-arrow:hover,
body.public-tv-layout .gp-rail-arrow:focus-visible {
  background: rgba(255,255,255,.92) !important;
  color: #111 !important;
  outline: 4px solid rgba(255,255,255,.32) !important;
  outline-offset: 3px !important;
}
body.public-tv-layout .gp-channel-card:focus-visible,
body.public-tv-layout .category-tab:focus-visible,
body.public-tv-layout .gp-icon-btn:focus-visible,
body.public-tv-layout .gp-extras-btn:focus-visible {
  outline: 4px solid rgba(255,255,255,.78) !important;
  outline-offset: 4px !important;
  transform: translateY(-2px) !important;
}
body.public-tv-layout.player-ui-hidden .gp-player-chrome.drawer-open {
  opacity: 1 !important;
  visibility: visible !important;
}
@media (max-width: 1024px) {
  body.public-tv-layout .gp-rail-wrap {
    padding: 0 48px !important;
  }
  body.public-tv-layout .gp-rail-arrow {
    display: grid !important;
    width: 44px !important;
    height: 72px !important;
    font-size: 1.45rem !important;
  }
  body.public-tv-layout .gp-rail-prev { left: 2px !important; }
  body.public-tv-layout .gp-rail-next { right: 2px !important; }
}
@media (max-width: 700px), (hover: none) and (pointer: coarse) {
  body.public-tv-layout .gp-rail-wrap {
    padding: 0 !important;
  }
  body.public-tv-layout .gp-rail-arrow {
    display: none !important;
  }
}


/* ======================================================================
   v2.8.58 - TV com layout da referência, sem Programação/Extras
   Afeta somente Smart TV/TV Box ou quando acessar com ?tv=1.
   PC e smartphone permanecem fora de .tv-app-experience.
   ====================================================================== */
body.public-tv-layout.tv-app-experience {
  --tv-safe-x: clamp(38px, 5vw, 82px);
  --tv-safe-bottom: clamp(22px, 3.2vh, 46px);
  --tv-rail-h-compact: clamp(54px, 7.4vh, 76px);
  --tv-rail-h-expanded: clamp(118px, 18vh, 172px);
  overflow: hidden !important;
  background: #000 !important;
  min-height: 100vh !important;
}
body.public-tv-layout.tv-app-experience .public-tv-topbar,
body.public-tv-layout.tv-app-experience .tv-main-nav,
body.public-tv-layout.tv-app-experience .tv-actions,
body.public-tv-layout.tv-app-experience .bg-glow,
body.public-tv-layout.tv-app-experience .global-notice,
body.public-tv-layout.tv-app-experience .gp-tv-info-actions,
body.public-tv-layout.tv-app-experience .gp-tv-action,
body.public-tv-layout.tv-app-experience .gp-program-btn,
body.public-tv-layout.tv-app-experience .gp-extras-btn {
  display: none !important;
}
body.public-tv-layout.tv-app-experience .public-tv-shell,
body.public-tv-layout.tv-app-experience .page-grid.public-tv-shell,
body.public-tv-layout.tv-app-experience .public-player-panel,
body.public-tv-layout.tv-app-experience .player-panel.public-player-panel,
body.public-tv-layout.tv-app-experience .player-stage.public-player-stage {
  position: fixed !important;
  inset: 0 !important;
  width: 100vw !important;
  height: 100vh !important;
  min-height: 100vh !important;
  max-width: none !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  overflow: hidden !important;
  background: #000 !important;
}
body.public-tv-layout.tv-app-experience .player-stage.public-player-stage #mainVideo,
body.public-tv-layout.tv-app-experience .player-stage.public-player-stage #mainFrame {
  position: absolute !important;
  inset: 0 !important;
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  background: #000 !important;
  z-index: 5 !important;
}
body.public-tv-layout.tv-app-experience .gp-player-chrome {
  position: absolute !important;
  inset: 0 !important;
  z-index: 80 !important;
  width: 100% !important;
  height: 100% !important;
  pointer-events: none !important;
  background:
    linear-gradient(90deg, rgba(0,0,0,.68) 0%, rgba(0,0,0,.28) 34%, rgba(0,0,0,.04) 62%, rgba(0,0,0,.20) 100%),
    linear-gradient(180deg, rgba(0,0,0,.34) 0%, rgba(0,0,0,.02) 32%, rgba(0,0,0,.10) 56%, rgba(0,0,0,.80) 100%) !important;
  opacity: 1 !important;
  visibility: visible !important;
  transform: none !important;
}
body.public-tv-layout.tv-app-experience.player-ui-hidden .gp-player-chrome:not(.drawer-open) {
  opacity: 1 !important;
  visibility: visible !important;
}
body.public-tv-layout.tv-app-experience .gp-player-chrome * {
  pointer-events: auto !important;
}

/* Padrão TV: informação limpa + trilho compacto */
body.public-tv-layout.tv-app-experience .gp-top-info {
  position: absolute !important;
  top: clamp(42px, 7vh, 78px) !important;
  left: var(--tv-safe-x) !important;
  width: min(620px, 47vw) !important;
  max-width: 48vw !important;
  display: grid !important;
  gap: 9px !important;
  padding: 0 !important;
  margin: 0 !important;
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  text-shadow: 0 3px 14px rgba(0,0,0,.62) !important;
  z-index: 190 !important;
  opacity: 1 !important;
  visibility: visible !important;
}
body.public-tv-layout.tv-app-experience.player-ui-hidden .gp-live-logo {
  display: none !important;
}
body.public-tv-layout.tv-app-experience .gp-live-logo {
  width: clamp(42px, 5vw, 58px) !important;
  height: clamp(42px, 5vw, 58px) !important;
  border-radius: 50% !important;
  display: inline-grid !important;
  place-items: center !important;
  background: rgba(255,255,255,.90) !important;
  color: #111 !important;
}
body.public-tv-layout.tv-app-experience .gp-schedule-line {
  display: flex !important;
  align-items: center !important;
  gap: 10px !important;
  color: #fff !important;
  font-size: clamp(.9rem, 1.15vw, 1.25rem) !important;
  font-weight: 900 !important;
}
body.public-tv-layout.tv-app-experience .gp-signal-pill {
  min-height: 29px !important;
  padding: 0 12px !important;
  border-radius: 7px !important;
  background: #20a8ff !important;
  color: #fff !important;
  border: 0 !important;
  font-weight: 950 !important;
}
body.public-tv-layout.tv-app-experience .gp-top-info #gpNowTitle {
  font-size: clamp(1.85rem, 3.1vw, 4rem) !important;
  line-height: .98 !important;
  letter-spacing: -.04em !important;
  color: #fff !important;
  max-width: 100% !important;
  display: -webkit-box !important;
  -webkit-line-clamp: 2 !important;
  -webkit-box-orient: vertical !important;
  overflow: hidden !important;
}
body.public-tv-layout.tv-app-experience .gp-top-info #gpNowMeta,
body.public-tv-layout.tv-app-experience .gp-top-info #gpNextMeta {
  color: #fff !important;
  font-size: clamp(.92rem, 1.25vw, 1.25rem) !important;
  line-height: 1.2 !important;
  font-weight: 850 !important;
  max-width: 100% !important;
  display: -webkit-box !important;
  -webkit-line-clamp: 1 !important;
  -webkit-box-orient: vertical !important;
  overflow: hidden !important;
}
body.public-tv-layout.tv-app-experience .gp-info-progress {
  width: min(560px, 34vw) !important;
  height: 5px !important;
  margin: 2px 0 0 !important;
  background: rgba(255,255,255,.55) !important;
  border-radius: 999px !important;
}
body.public-tv-layout.tv-app-experience .gp-info-progress span,
body.public-tv-layout.tv-app-experience #gpInfoProgressBar {
  background: #ff1763 !important;
}
body.public-tv-layout.tv-app-experience .gp-next-box {
  display: flex !important;
  align-items: center !important;
  gap: 8px !important;
  padding: 0 !important;
  background: transparent !important;
  border: 0 !important;
}
body.public-tv-layout.tv-app-experience .gp-next-label {
  color: rgba(255,255,255,.78) !important;
  font-size: clamp(.88rem, 1.1vw, 1.18rem) !important;
  font-weight: 900 !important;
}

/* Ações no topo direito */
body.public-tv-layout.tv-app-experience .gp-embed-top-actions {
  position: absolute !important;
  top: clamp(28px, 4vh, 54px) !important;
  right: clamp(28px, 4vw, 76px) !important;
  z-index: 240 !important;
  display: flex !important;
  align-items: center !important;
  gap: 12px !important;
  opacity: 1 !important;
  visibility: visible !important;
  pointer-events: auto !important;
}
body.public-tv-layout.tv-app-experience.player-ui-hidden .gp-embed-top-actions .gp-football-open-btn {
  display: none !important;
}
body.public-tv-layout.tv-app-experience .gp-embed-top-actions .gp-embed-action {
  width: clamp(48px, 5vw, 68px) !important;
  min-width: clamp(48px, 5vw, 68px) !important;
  height: clamp(48px, 5vw, 68px) !important;
  border-radius: 18px !important;
  background: rgba(36,43,56,.62) !important;
  border: 1px solid rgba(255,255,255,.18) !important;
  color: #fff !important;
  backdrop-filter: blur(12px) !important;
  box-shadow: 0 14px 34px rgba(0,0,0,.28) !important;
}
body.public-tv-layout.tv-app-experience .gp-embed-top-actions .gp-football-open-btn {
  width: auto !important;
  padding: 0 18px !important;
}

/* Área inferior: por cima do vídeo, sem fundo preto chapado */
body.public-tv-layout.tv-app-experience .gp-bottom-ui {
  position: absolute !important;
  left: 0 !important;
  right: 0 !important;
  bottom: 0 !important;
  z-index: 170 !important;
  display: flex !important;
  flex-direction: column-reverse !important;
  min-height: calc(var(--tv-rail-h-compact) + 78px) !important;
  padding: 0 var(--tv-safe-x) var(--tv-safe-bottom) !important;
  background: linear-gradient(180deg, rgba(0,0,0,0) 0%, rgba(0,0,0,.16) 20%, rgba(0,0,0,.48) 58%, rgba(0,0,0,.72) 100%) !important;
  opacity: 1 !important;
  visibility: visible !important;
  pointer-events: none !important;
  transform: none !important;
}
body.public-tv-layout.tv-app-experience.player-ui-visible .gp-bottom-ui,
body.public-tv-layout.tv-app-experience:not(.player-ui-hidden) .gp-bottom-ui {
  min-height: clamp(270px, 36vh, 420px) !important;
  padding-bottom: clamp(34px, 4.2vh, 58px) !important;
}
body.public-tv-layout.tv-app-experience .gp-live-controls {
  display: block !important;
  order: 2 !important;
  position: relative !important;
  width: 100% !important;
  margin: 0 0 clamp(10px, 1.6vh, 18px) !important;
  pointer-events: none !important;
  opacity: 1 !important;
  visibility: visible !important;
}
body.public-tv-layout.tv-app-experience .gp-live-line {
  height: 5px !important;
  width: 100% !important;
  margin: 0 0 clamp(12px, 2vh, 22px) !important;
  background: rgba(255,255,255,.72) !important;
  border-radius: 999px !important;
}
body.public-tv-layout.tv-app-experience .gp-live-line span {
  background: #ff1763 !important;
  border-radius: inherit !important;
}
body.public-tv-layout.tv-app-experience .gp-control-row {
  display: flex !important;
  justify-content: space-between !important;
  align-items: center !important;
}
body.public-tv-layout.tv-app-experience .gp-now-pill {
  margin-left: auto !important;
  margin-right: 0 !important;
  min-height: 42px !important;
  padding: 0 14px !important;
  border-radius: 10px !important;
  background: rgba(120, 170, 210, .72) !important;
  color: #fff !important;
}
body.public-tv-layout.tv-app-experience .gp-control-actions {
  order: -1 !important;
  display: flex !important;
  pointer-events: auto !important;
}
body.public-tv-layout.tv-app-experience .gp-control-actions > :not(#gpPlayBtn) {
  display: none !important;
}
body.public-tv-layout.tv-app-experience #gpPlayBtn {
  display: grid !important;
  width: clamp(52px, 5.4vw, 76px) !important;
  height: clamp(52px, 5.4vw, 76px) !important;
  border-radius: 999px !important;
  background: rgba(239,246,255,.92) !important;
  color: #1e83cc !important;
  font-size: clamp(1.35rem, 2.3vw, 2.1rem) !important;
}

body.public-tv-layout.tv-app-experience .gp-channel-drawer {
  display: grid !important;
  order: 1 !important;
  position: relative !important;
  grid-template-rows: 0 minmax(0, var(--tv-rail-h-compact)) !important;
  gap: 0 !important;
  width: 100% !important;
  height: var(--tv-rail-h-compact) !important;
  min-height: var(--tv-rail-h-compact) !important;
  max-height: var(--tv-rail-h-compact) !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow: visible !important;
  background: transparent !important;
  opacity: 1 !important;
  visibility: visible !important;
  pointer-events: auto !important;
  transform: none !important;
}
body.public-tv-layout.tv-app-experience.player-ui-visible .gp-channel-drawer,
body.public-tv-layout.tv-app-experience:not(.player-ui-hidden) .gp-channel-drawer {
  grid-template-rows: clamp(50px, 6.8vh, 76px) minmax(0, var(--tv-rail-h-expanded)) !important;
  gap: clamp(16px, 2vh, 24px) !important;
  height: auto !important;
  min-height: calc(var(--tv-rail-h-expanded) + clamp(64px, 8vh, 96px)) !important;
  max-height: none !important;
}
body.public-tv-layout.tv-app-experience .gp-category-strip {
  display: flex !important;
  align-items: center !important;
  gap: clamp(14px, 1.7vw, 24px) !important;
  overflow-x: auto !important;
  opacity: 0 !important;
  visibility: hidden !important;
  pointer-events: none !important;
  height: 0 !important;
  min-height: 0 !important;
  scrollbar-width: none !important;
}
body.public-tv-layout.tv-app-experience.player-ui-visible .gp-category-strip,
body.public-tv-layout.tv-app-experience:not(.player-ui-hidden) .gp-category-strip {
  opacity: 1 !important;
  visibility: visible !important;
  pointer-events: auto !important;
  height: auto !important;
  min-height: clamp(50px, 6.5vh, 76px) !important;
}
body.public-tv-layout.tv-app-experience .category-tab {
  flex: 0 0 auto !important;
  height: clamp(48px, 6vh, 70px) !important;
  padding: 0 clamp(18px, 2.2vw, 34px) !important;
  border-radius: 12px !important;
  background: rgba(160,205,245,.78) !important;
  color: #fff !important;
  font-size: clamp(1rem, 1.45vw, 1.55rem) !important;
  font-weight: 950 !important;
  border: 1px solid rgba(255,255,255,.16) !important;
  backdrop-filter: blur(10px) !important;
}
body.public-tv-layout.tv-app-experience .category-tab.active {
  background: rgba(238,246,255,.96) !important;
  color: #2773b6 !important;
}
body.public-tv-layout.tv-app-experience .gp-rail-wrap {
  position: relative !important;
  height: 100% !important;
  overflow: visible !important;
  padding: 0 clamp(44px, 5vw, 80px) !important;
  pointer-events: auto !important;
}
body.public-tv-layout.tv-app-experience .gp-channel-rail {
  display: flex !important;
  gap: clamp(10px, 1.4vw, 18px) !important;
  height: 100% !important;
  min-height: 100% !important;
  padding: 0 !important;
  overflow-x: auto !important;
  overflow-y: hidden !important;
  scrollbar-width: none !important;
  scroll-snap-type: x proximity !important;
}
body.public-tv-layout.tv-app-experience .gp-channel-rail::-webkit-scrollbar { display: none !important; }
body.public-tv-layout.tv-app-experience .gp-channel-card {
  flex: 0 0 clamp(150px, 13vw, 210px) !important;
  width: clamp(150px, 13vw, 210px) !important;
  height: var(--tv-rail-h-compact) !important;
  border-radius: 8px !important;
  overflow: hidden !important;
  opacity: .95 !important;
  visibility: visible !important;
  pointer-events: auto !important;
  border: 0 !important;
  background: rgba(255,255,255,.12) !important;
  scroll-snap-align: center !important;
}
body.public-tv-layout.tv-app-experience.player-ui-visible .gp-channel-card,
body.public-tv-layout.tv-app-experience:not(.player-ui-hidden) .gp-channel-card {
  flex-basis: clamp(250px, 22vw, 390px) !important;
  width: clamp(250px, 22vw, 390px) !important;
  height: var(--tv-rail-h-expanded) !important;
  border-radius: 14px !important;
  opacity: 1 !important;
  border: 1px solid rgba(255,255,255,.14) !important;
  box-shadow: 0 20px 46px rgba(0,0,0,.30) !important;
}
body.public-tv-layout.tv-app-experience.player-ui-hidden .gp-channel-badge,
body.public-tv-layout.tv-app-experience.player-ui-hidden .gp-lock-badge,
body.public-tv-layout.tv-app-experience.player-ui-hidden .gp-channel-card-copy b,
body.public-tv-layout.tv-app-experience.player-ui-hidden .gp-channel-card-copy small {
  display: none !important;
}
body.public-tv-layout.tv-app-experience.player-ui-hidden .gp-channel-card-copy {
  left: 10px !important;
  right: 10px !important;
  bottom: 7px !important;
}
body.public-tv-layout.tv-app-experience.player-ui-hidden .gp-channel-card-copy strong {
  font-size: clamp(.78rem, 1vw, 1rem) !important;
  line-height: 1 !important;
}
body.public-tv-layout.tv-app-experience.player-ui-visible .gp-channel-card-copy,
body.public-tv-layout.tv-app-experience:not(.player-ui-hidden) .gp-channel-card-copy {
  left: 18px !important;
  right: 18px !important;
  bottom: 18px !important;
}
body.public-tv-layout.tv-app-experience.player-ui-visible .gp-channel-card-copy strong,
body.public-tv-layout.tv-app-experience:not(.player-ui-hidden) .gp-channel-card-copy strong {
  font-size: clamp(1rem, 1.45vw, 1.42rem) !important;
}
body.public-tv-layout.tv-app-experience.player-ui-visible .gp-channel-card-copy small,
body.public-tv-layout.tv-app-experience:not(.player-ui-hidden) .gp-channel-card-copy small {
  font-size: clamp(.78rem, 1vw, 1.02rem) !important;
  display: block !important;
}
body.public-tv-layout.tv-app-experience .gp-rail-arrow {
  position: absolute !important;
  top: 50% !important;
  transform: translateY(-50%) !important;
  display: grid !important;
  place-items: center !important;
  width: clamp(44px, 4.5vw, 72px) !important;
  height: clamp(70px, 10vh, 130px) !important;
  min-width: 0 !important;
  border-radius: 999px !important;
  z-index: 260 !important;
  background: rgba(7,10,16,.72) !important;
  color: #fff !important;
  border: 1px solid rgba(255,255,255,.18) !important;
  box-shadow: 0 18px 45px rgba(0,0,0,.36) !important;
  backdrop-filter: blur(10px) !important;
  font-size: clamp(1.6rem, 2vw, 2.4rem) !important;
}
body.public-tv-layout.tv-app-experience .gp-rail-prev { left: 0 !important; }
body.public-tv-layout.tv-app-experience .gp-rail-next { right: 0 !important; }
body.public-tv-layout.tv-app-experience .gp-channel-card.active,
body.public-tv-layout.tv-app-experience .gp-channel-card:focus-visible,
body.public-tv-layout.tv-app-experience .category-tab:focus-visible,
body.public-tv-layout.tv-app-experience .gp-rail-arrow:focus-visible,
body.public-tv-layout.tv-app-experience .gp-embed-action:focus-visible {
  outline: 4px solid rgba(255,255,255,.96) !important;
  outline-offset: 4px !important;
  box-shadow: 0 0 0 8px rgba(74,166,255,.32), 0 22px 58px rgba(0,0,0,.45) !important;
}

@media (max-height: 760px) {
  body.public-tv-layout.tv-app-experience {
    --tv-safe-x: clamp(28px, 4.6vw, 58px);
    --tv-safe-bottom: clamp(14px, 2.4vh, 28px);
    --tv-rail-h-compact: clamp(44px, 7vh, 60px);
    --tv-rail-h-expanded: clamp(108px, 17vh, 146px);
  }
  body.public-tv-layout.tv-app-experience .gp-top-info {
    top: clamp(24px, 5vh, 48px) !important;
  }
  body.public-tv-layout.tv-app-experience.player-ui-visible .gp-bottom-ui,
  body.public-tv-layout.tv-app-experience:not(.player-ui-hidden) .gp-bottom-ui {
    min-height: clamp(228px, 34vh, 330px) !important;
  }
}


/* ======================================================================
   v2.8.59 - TV: botão discreto para mostrar/sumir interface + canais absolutos
   - Não altera PC/smartphone, apenas .tv-app-experience.
   ====================================================================== */
body.public-tv-layout.tv-app-experience .gp-interface-toggle-btn {
  width: clamp(38px, 3.8vw, 52px) !important;
  min-width: clamp(38px, 3.8vw, 52px) !important;
  height: clamp(38px, 3.8vw, 52px) !important;
  border-radius: 999px !important;
  background: rgba(10,14,20,.42) !important;
  border: 1px solid rgba(255,255,255,.12) !important;
  color: rgba(255,255,255,.86) !important;
  opacity: .78 !important;
  box-shadow: 0 10px 24px rgba(0,0,0,.20) !important;
  backdrop-filter: blur(8px) !important;
}
body.public-tv-layout.tv-app-experience .gp-interface-toggle-btn:hover,
body.public-tv-layout.tv-app-experience .gp-interface-toggle-btn:focus-visible {
  opacity: 1 !important;
  background: rgba(18,24,34,.72) !important;
}

/* Remove barra vermelha, play/pause e AGORA no modo TV */
body.public-tv-layout.tv-app-experience .gp-live-controls,
body.public-tv-layout.tv-app-experience .gp-live-line,
body.public-tv-layout.tv-app-experience .gp-control-row,
body.public-tv-layout.tv-app-experience .gp-now-pill,
body.public-tv-layout.tv-app-experience #gpPlayBtn,
body.public-tv-layout.tv-app-experience .gp-info-progress,
body.public-tv-layout.tv-app-experience #gpInfoProgressBar {
  display: none !important;
  opacity: 0 !important;
  visibility: hidden !important;
  pointer-events: none !important;
}
body.public-tv-layout.tv-app-experience .gp-channel-card::before {
  display: none !important;
  content: none !important;
}

/* Lista/categorias sempre absolutas por cima do player, sem empurrar vídeo */
body.public-tv-layout.tv-app-experience .gp-bottom-ui,
body.public-tv-layout.tv-app-experience.player-ui-hidden .player-stage.public-player-stage .gp-player-chrome.drawer-open .gp-bottom-ui,
body.public-tv-layout.tv-app-experience.player-ui-visible .gp-bottom-ui,
body.public-tv-layout.tv-app-experience:not(.player-ui-hidden) .gp-bottom-ui {
  position: absolute !important;
  inset: 0 !important;
  z-index: 190 !important;
  display: block !important;
  min-height: 0 !important;
  height: auto !important;
  padding: 0 !important;
  margin: 0 !important;
  background: transparent !important;
  pointer-events: none !important;
  opacity: 1 !important;
  visibility: visible !important;
  transform: none !important;
}
body.public-tv-layout.tv-app-experience .gp-channel-drawer,
body.public-tv-layout.tv-app-experience.player-ui-visible .gp-channel-drawer,
body.public-tv-layout.tv-app-experience:not(.player-ui-hidden) .gp-channel-drawer,
body.public-tv-layout.tv-app-experience.player-ui-hidden .player-stage.public-player-stage .gp-player-chrome.drawer-open .gp-channel-drawer {
  position: absolute !important;
  left: var(--tv-safe-x) !important;
  right: var(--tv-safe-x) !important;
  bottom: var(--tv-safe-bottom) !important;
  z-index: 210 !important;
  width: auto !important;
  display: grid !important;
  grid-template-rows: clamp(50px, 6.8vh, 76px) minmax(0, var(--tv-rail-h-expanded)) !important;
  gap: clamp(14px, 1.8vh, 22px) !important;
  min-height: calc(var(--tv-rail-h-expanded) + clamp(62px, 8vh, 94px)) !important;
  max-height: clamp(230px, 36vh, 390px) !important;
  height: auto !important;
  padding: 0 !important;
  margin: 0 !important;
  overflow: visible !important;
  background: transparent !important;
  box-shadow: none !important;
  pointer-events: auto !important;
  opacity: 1 !important;
  visibility: visible !important;
  transform: none !important;
}
body.public-tv-layout.tv-app-experience .gp-category-strip,
body.public-tv-layout.tv-app-experience.player-ui-visible .gp-category-strip,
body.public-tv-layout.tv-app-experience:not(.player-ui-hidden) .gp-category-strip {
  opacity: 1 !important;
  visibility: visible !important;
  pointer-events: auto !important;
  height: auto !important;
  min-height: clamp(50px, 6.5vh, 76px) !important;
}
body.public-tv-layout.tv-app-experience .gp-channel-card,
body.public-tv-layout.tv-app-experience.player-ui-visible .gp-channel-card,
body.public-tv-layout.tv-app-experience:not(.player-ui-hidden) .gp-channel-card {
  flex: 0 0 clamp(230px, 20vw, 350px) !important;
  width: clamp(230px, 20vw, 350px) !important;
  height: var(--tv-rail-h-expanded) !important;
  border-radius: 14px !important;
  opacity: 1 !important;
  border: 1px solid rgba(255,255,255,.16) !important;
  box-shadow: 0 20px 46px rgba(0,0,0,.30) !important;
}
body.public-tv-layout.tv-app-experience .gp-channel-card-copy {
  left: 18px !important;
  right: 18px !important;
  bottom: 18px !important;
}
body.public-tv-layout.tv-app-experience .gp-channel-badge,
body.public-tv-layout.tv-app-experience .gp-lock-badge,
body.public-tv-layout.tv-app-experience .gp-channel-card-copy b,
body.public-tv-layout.tv-app-experience .gp-channel-card-copy strong,
body.public-tv-layout.tv-app-experience .gp-channel-card-copy small {
  display: block !important;
}

/* Estado manual oculto: deixa somente o botão discreto visível */
body.public-tv-layout.tv-app-experience.tv-ui-manual-hidden .player-stage.public-player-stage::before,
body.public-tv-layout.tv-app-experience.tv-ui-manual-hidden .gp-player-chrome {
  background: transparent !important;
}
body.public-tv-layout.tv-app-experience.tv-ui-manual-hidden .gp-top-info,
body.public-tv-layout.tv-app-experience.tv-ui-manual-hidden .gp-bottom-ui,
body.public-tv-layout.tv-app-experience.tv-ui-manual-hidden .gp-football-panel,
body.public-tv-layout.tv-app-experience.tv-ui-manual-hidden .gp-embed-top-actions .gp-embed-action:not(.gp-interface-toggle-btn) {
  opacity: 0 !important;
  visibility: hidden !important;
  pointer-events: none !important;
  transform: none !important;
}
body.public-tv-layout.tv-app-experience.tv-ui-manual-hidden .gp-embed-top-actions {
  opacity: 1 !important;
  visibility: visible !important;
  pointer-events: auto !important;
  z-index: 260 !important;
}
body.public-tv-layout.tv-app-experience.tv-ui-manual-hidden .gp-interface-toggle-btn {
  opacity: .56 !important;
  visibility: visible !important;
  pointer-events: auto !important;
  background: rgba(10,14,20,.34) !important;
}
body.public-tv-layout.tv-app-experience.tv-ui-manual-hidden .gp-interface-toggle-btn:focus-visible {
  opacity: 1 !important;
}

@media (max-height: 760px) {
  body.public-tv-layout.tv-app-experience .gp-channel-drawer,
  body.public-tv-layout.tv-app-experience.player-ui-visible .gp-channel-drawer,
  body.public-tv-layout.tv-app-experience:not(.player-ui-hidden) .gp-channel-drawer {
    max-height: clamp(190px, 38vh, 320px) !important;
    min-height: calc(var(--tv-rail-h-expanded) + clamp(50px, 7vh, 74px)) !important;
  }
  body.public-tv-layout.tv-app-experience .gp-channel-card,
  body.public-tv-layout.tv-app-experience.player-ui-visible .gp-channel-card,
  body.public-tv-layout.tv-app-experience:not(.player-ui-hidden) .gp-channel-card {
    flex-basis: clamp(190px, 18vw, 290px) !important;
    width: clamp(190px, 18vw, 290px) !important;
  }
}


/* ======================================================================
   v2.8.60 - TV: overlay próprio e absoluto para lista de canais
   Não depende de .gp-channel-drawer; resolve TVs que não exibiam o guia.
   ====================================================================== */
body.public-tv-layout.tv-app-experience .gp-tv-channel-layer {
  position: absolute !important;
  left: clamp(34px, 5vw, 82px) !important;
  right: clamp(34px, 5vw, 82px) !important;
  bottom: clamp(22px, 3.2vh, 48px) !important;
  z-index: 2147483000 !important;
  display: grid !important;
  grid-template-rows: auto auto !important;
  gap: clamp(12px, 1.8vh, 22px) !important;
  pointer-events: none !important;
  opacity: 0 !important;
  visibility: hidden !important;
  transform: translateY(16px) !important;
  transition: opacity .22s ease, transform .22s ease, visibility .22s ease !important;
}
body.public-tv-layout.tv-app-experience.tv-channel-overlay-visible .gp-tv-channel-layer,
body.public-tv-layout.tv-app-experience.player-ui-visible .gp-tv-channel-layer {
  opacity: 1 !important;
  visibility: visible !important;
  transform: translateY(0) !important;
  pointer-events: auto !important;
}
body.public-tv-layout.tv-app-experience.tv-ui-manual-hidden .gp-tv-channel-layer {
  opacity: 0 !important;
  visibility: hidden !important;
  pointer-events: none !important;
}
body.public-tv-layout.tv-app-experience .gp-tv-channel-layer-cats {
  display: flex !important;
  align-items: center !important;
  gap: clamp(10px, 1.2vw, 18px) !important;
  overflow-x: auto !important;
  overflow-y: hidden !important;
  scrollbar-width: none !important;
  padding: 4px 4px 6px !important;
  max-width: 100% !important;
}
body.public-tv-layout.tv-app-experience .gp-tv-channel-layer-cats::-webkit-scrollbar { display: none !important; }
body.public-tv-layout.tv-app-experience .gp-tv-category-tab {
  flex: 0 0 auto !important;
  min-height: clamp(46px, 6.2vh, 72px) !important;
  padding: 0 clamp(20px, 2.3vw, 34px) !important;
  border: 1px solid rgba(255,255,255,.14) !important;
  border-radius: 14px !important;
  background: rgba(122, 185, 245, .76) !important;
  color: #fff !important;
  font-size: clamp(1rem, 1.45vw, 1.55rem) !important;
  font-weight: 950 !important;
  box-shadow: 0 16px 40px rgba(0,0,0,.28) !important;
  backdrop-filter: blur(12px) !important;
}
body.public-tv-layout.tv-app-experience .gp-tv-category-tab.active {
  background: rgba(255,255,255,.96) !important;
  color: #151515 !important;
}
body.public-tv-layout.tv-app-experience .gp-tv-category-tab:focus-visible,
body.public-tv-layout.tv-app-experience .gp-tv-channel-card:focus-visible,
body.public-tv-layout.tv-app-experience .gp-tv-layer-arrow:focus-visible {
  outline: 4px solid rgba(255,255,255,.96) !important;
  outline-offset: 4px !important;
  box-shadow: 0 0 0 9px rgba(74,166,255,.35), 0 24px 60px rgba(0,0,0,.45) !important;
}
body.public-tv-layout.tv-app-experience .gp-tv-channel-layer-wrap {
  position: relative !important;
  min-width: 0 !important;
}
body.public-tv-layout.tv-app-experience .gp-tv-channel-layer-rail {
  display: flex !important;
  gap: clamp(14px, 1.6vw, 24px) !important;
  width: 100% !important;
  min-height: clamp(118px, 18vh, 190px) !important;
  overflow-x: auto !important;
  overflow-y: hidden !important;
  scroll-snap-type: x proximity !important;
  scrollbar-width: none !important;
  padding: 4px 52px 10px !important;
  -webkit-overflow-scrolling: touch !important;
}
body.public-tv-layout.tv-app-experience .gp-tv-channel-layer-rail::-webkit-scrollbar { display: none !important; }
body.public-tv-layout.tv-app-experience .gp-tv-channel-card {
  position: relative !important;
  flex: 0 0 clamp(250px, 22vw, 390px) !important;
  width: clamp(250px, 22vw, 390px) !important;
  height: clamp(118px, 18vh, 190px) !important;
  border-radius: 14px !important;
  overflow: hidden !important;
  border: 1px solid rgba(255,255,255,.18) !important;
  background: radial-gradient(circle at 50% 24%, rgba(255,255,255,.20), rgba(0,0,0,.94) 64%) !important;
  color: #fff !important;
  text-align: left !important;
  scroll-snap-align: start !important;
  box-shadow: 0 22px 58px rgba(0,0,0,.42) !important;
}
body.public-tv-layout.tv-app-experience .gp-tv-channel-card.active {
  border: 2px solid rgba(255,255,255,.96) !important;
}
body.public-tv-layout.tv-app-experience .gp-tv-channel-card img,
body.public-tv-layout.tv-app-experience .gp-tv-channel-card .thumb-fallback {
  position: absolute !important;
  inset: 0 !important;
  z-index: 1 !important;
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  filter: brightness(.72) saturate(.96) contrast(1.05) !important;
  pointer-events: none !important;
}
body.public-tv-layout.tv-app-experience .gp-tv-channel-card::after {
  content: '' !important;
  position: absolute !important;
  inset: 0 !important;
  z-index: 2 !important;
  pointer-events: none !important;
  background: linear-gradient(180deg, rgba(0,0,0,.05), rgba(0,0,0,.18) 42%, rgba(0,0,0,.84)) !important;
}
body.public-tv-layout.tv-app-experience .gp-tv-card-badge {
  position: absolute !important;
  top: 12px !important;
  right: 12px !important;
  z-index: 5 !important;
  min-height: 27px !important;
  padding: 0 10px !important;
  border-radius: 6px !important;
  display: inline-flex !important;
  align-items: center !important;
  background: var(--sh-accent, #fb0057) !important;
  color: #fff !important;
  font-size: clamp(.68rem, .8vw, .9rem) !important;
  font-weight: 950 !important;
}
body.public-tv-layout.tv-app-experience .gp-tv-card-lock {
  position: absolute !important;
  left: 50% !important;
  top: 50% !important;
  z-index: 5 !important;
  transform: translate(-50%, -50%) !important;
  width: 44px !important;
  height: 44px !important;
  display: grid !important;
  place-items: center !important;
  border-radius: 50% !important;
  background: #ffe100 !important;
  color: #171717 !important;
}
body.public-tv-layout.tv-app-experience .gp-tv-card-copy {
  position: absolute !important;
  left: 18px !important;
  right: 18px !important;
  bottom: 16px !important;
  z-index: 6 !important;
  display: grid !important;
  gap: 3px !important;
  text-shadow: 0 2px 15px rgba(0,0,0,.70) !important;
}
body.public-tv-layout.tv-app-experience .gp-tv-card-copy b,
body.public-tv-layout.tv-app-experience .gp-tv-card-copy strong {
  color: #fff !important;
  font-weight: 950 !important;
  line-height: 1.06 !important;
}
body.public-tv-layout.tv-app-experience .gp-tv-card-copy b { font-size: clamp(.78rem, .9vw, 1rem) !important; }
body.public-tv-layout.tv-app-experience .gp-tv-card-copy strong { font-size: clamp(1rem, 1.35vw, 1.5rem) !important; }
body.public-tv-layout.tv-app-experience .gp-tv-card-copy small {
  color: rgba(255,255,255,.82) !important;
  font-weight: 800 !important;
  font-size: clamp(.78rem, .92vw, 1.05rem) !important;
}
body.public-tv-layout.tv-app-experience .gp-tv-layer-arrow {
  position: absolute !important;
  top: 50% !important;
  z-index: 12 !important;
  transform: translateY(-50%) !important;
  width: clamp(48px, 4.8vw, 78px) !important;
  height: clamp(74px, 11vh, 136px) !important;
  display: grid !important;
  place-items: center !important;
  border: 1px solid rgba(255,255,255,.18) !important;
  background: rgba(0,0,0,.55) !important;
  color: #fff !important;
  font-size: clamp(1.7rem, 2vw, 2.6rem) !important;
  box-shadow: 0 18px 48px rgba(0,0,0,.36) !important;
  backdrop-filter: blur(10px) !important;
}
body.public-tv-layout.tv-app-experience .gp-tv-layer-prev { left: 0 !important; border-radius: 0 999px 999px 0 !important; }
body.public-tv-layout.tv-app-experience .gp-tv-layer-next { right: 0 !important; border-radius: 999px 0 0 999px !important; }
body.public-tv-layout.tv-app-experience .gp-tv-channel-empty {
  min-width: 320px !important;
  display: grid !important;
  place-items: center !important;
  color: rgba(255,255,255,.76) !important;
  background: rgba(0,0,0,.36) !important;
  border: 1px solid rgba(255,255,255,.12) !important;
  border-radius: 14px !important;
  font-weight: 850 !important;
}
/* No modo TV, esconde o drawer antigo para não duplicar ou conflitar. */
body.public-tv-layout.tv-app-experience .gp-bottom-ui .gp-channel-drawer {
  display: none !important;
  opacity: 0 !important;
  visibility: hidden !important;
  pointer-events: none !important;
}
body.public-tv-layout.tv-app-experience.tv-channel-overlay-visible .gp-bottom-ui .gp-channel-drawer {
  display: none !important;
}
@media (max-height: 760px) {
  body.public-tv-layout.tv-app-experience .gp-tv-channel-layer {
    bottom: clamp(12px, 2vh, 26px) !important;
    gap: clamp(8px, 1.2vh, 16px) !important;
  }
  body.public-tv-layout.tv-app-experience .gp-tv-category-tab {
    min-height: clamp(40px, 6vh, 58px) !important;
    font-size: clamp(.86rem, 1.2vw, 1.25rem) !important;
  }
  body.public-tv-layout.tv-app-experience .gp-tv-channel-layer-rail,
  body.public-tv-layout.tv-app-experience .gp-tv-channel-card {
    height: clamp(92px, 16vh, 145px) !important;
    min-height: clamp(92px, 16vh, 145px) !important;
  }
  body.public-tv-layout.tv-app-experience .gp-tv-channel-card { flex-basis: clamp(210px, 19vw, 320px) !important; width: clamp(210px, 19vw, 320px) !important; }
}


/* ======================================================================
   v2.8.61 - TV: seta discreta para mostrar/ocultar interface
   - Oculto: seta para cima permanente no rodapé.
   - Visível: seta para baixo acima da lista de canais.
   - Mantém a lista absoluta sobre o player.
   ====================================================================== */
body.public-tv-layout.tv-app-experience .gp-embed-top-actions .gp-interface-toggle-btn {
  display: none !important;
  opacity: 0 !important;
  visibility: hidden !important;
  pointer-events: none !important;
}

body.public-tv-layout.tv-app-experience .gp-tv-interface-arrow-toggle {
  position: absolute !important;
  left: 50% !important;
  bottom: calc(clamp(22px, 3.2vh, 48px) + clamp(118px, 18vh, 190px) + clamp(46px, 6.2vh, 72px) + clamp(22px, 3vh, 42px)) !important;
  transform: translateX(-50%) !important;
  z-index: 2147483200 !important;
  width: clamp(48px, 4.6vw, 70px) !important;
  height: clamp(32px, 3.7vh, 48px) !important;
  min-width: clamp(48px, 4.6vw, 70px) !important;
  border: 1px solid rgba(255,255,255,.18) !important;
  border-radius: 999px !important;
  display: grid !important;
  place-items: center !important;
  background: rgba(12, 17, 24, .46) !important;
  color: rgba(255,255,255,.92) !important;
  font-size: clamp(1.05rem, 1.45vw, 1.65rem) !important;
  box-shadow: 0 14px 32px rgba(0,0,0,.26) !important;
  backdrop-filter: blur(10px) !important;
  -webkit-backdrop-filter: blur(10px) !important;
  opacity: .82 !important;
  visibility: visible !important;
  pointer-events: auto !important;
  transition: opacity .18s ease, background .18s ease, bottom .20s ease, transform .18s ease !important;
}

body.public-tv-layout.tv-app-experience .gp-tv-interface-arrow-toggle:hover,
body.public-tv-layout.tv-app-experience .gp-tv-interface-arrow-toggle:focus-visible {
  opacity: 1 !important;
  background: rgba(20, 28, 40, .72) !important;
  outline: 3px solid rgba(255,255,255,.80) !important;
  outline-offset: 3px !important;
}

body.public-tv-layout.tv-app-experience.tv-ui-manual-hidden .gp-tv-interface-arrow-toggle {
  bottom: clamp(14px, 2.6vh, 34px) !important;
  width: clamp(52px, 5vw, 76px) !important;
  height: clamp(32px, 4vh, 50px) !important;
  background: rgba(8, 12, 18, .42) !important;
  opacity: .62 !important;
}

body.public-tv-layout.tv-app-experience.tv-ui-manual-hidden .gp-tv-interface-arrow-toggle:hover,
body.public-tv-layout.tv-app-experience.tv-ui-manual-hidden .gp-tv-interface-arrow-toggle:focus-visible {
  opacity: 1 !important;
}

body.public-tv-layout.tv-app-experience.tv-ui-manual-hidden .gp-tv-channel-layer {
  opacity: 0 !important;
  visibility: hidden !important;
  pointer-events: none !important;
}

body.public-tv-layout.tv-app-experience.tv-ui-manual-hidden .gp-tv-interface-arrow-toggle,
body.public-tv-layout.tv-app-experience.player-ui-hidden .gp-tv-interface-arrow-toggle {
  display: grid !important;
  visibility: visible !important;
  pointer-events: auto !important;
}

@media (max-height: 760px) {
  body.public-tv-layout.tv-app-experience .gp-tv-interface-arrow-toggle {
    bottom: calc(clamp(12px, 2vh, 26px) + clamp(92px, 16vh, 145px) + clamp(40px, 6vh, 58px) + 16px) !important;
  }
}


/* ======================================================================
   v2.8.62 - Player PC/smartphone limpo + VAST visível em todas as telas
   - Remove botões Programação/Extras e o botão antigo mostrar/ocultar da UI normal.
   - Mantém o VAST preso ao retângulo do player e com vídeo visível no iOS/Safari.
   ====================================================================== */
body.public-tv-layout .gp-tv-info-actions,
body.public-tv-layout .gp-tv-program-action,
body.public-tv-layout .gp-tv-extras-action,
body.public-tv-layout .gp-embed-top-actions .gp-interface-toggle-btn {
  display: none !important;
  opacity: 0 !important;
  visibility: hidden !important;
  pointer-events: none !important;
}

/* O botão de seta específico da TV continua permitido. */
body.public-tv-layout.tv-app-experience .gp-tv-interface-arrow-toggle {
  display: grid !important;
}

/* Correção definitiva para anúncio VAST: o container do anúncio e o vídeo
   ficam sempre acima do player/iframe e dentro da área visual do player. */

















/* ======================================================================
   v2.8.63 - Correções visuais finais do modo TV
   - A lista de canais não some sozinha no carregamento.
   - A seta de mostrar/ocultar sempre acompanha o estado real da interface.
   - Remove botão de tela cheia e linhas de progresso vermelhas no modo TV.
   ====================================================================== */
body.public-tv-layout.tv-app-experience #gpEmbedFullscreenBtn,
body.public-tv-layout.tv-app-experience #gpFullscreenBtn,
body.public-tv-layout.tv-app-experience #fullscreenBtn,
body.public-tv-layout.tv-app-experience .gp-embed-top-actions #gpEmbedFullscreenBtn,
body.public-tv-layout.tv-app-experience .gp-control-actions #gpFullscreenBtn {
  display: none !important;
  opacity: 0 !important;
  visibility: hidden !important;
  pointer-events: none !important;
}

body.public-tv-layout.tv-app-experience .epg-progress,
body.public-tv-layout.tv-app-experience #epgProgress,
body.public-tv-layout.tv-app-experience #epgProgressBar,
body.public-tv-layout.tv-app-experience .gp-info-progress,
body.public-tv-layout.tv-app-experience #gpInfoProgressBar {
  display: none !important;
  opacity: 0 !important;
  visibility: hidden !important;
  pointer-events: none !important;
  width: 0 !important;
  height: 0 !important;
}

body.public-tv-layout.tv-app-experience.tv-ui-manual-hidden .gp-tv-interface-arrow-toggle i,
body.public-tv-layout.tv-app-experience.tv-ui-manual-hidden .gp-tv-interface-arrow-toggle svg {
  transform: none !important;
}

body.public-tv-layout.tv-app-experience:not(.tv-ui-manual-hidden).tv-channel-overlay-visible .gp-tv-interface-arrow-toggle {
  opacity: .88 !important;
  visibility: visible !important;
  pointer-events: auto !important;
}

body.public-tv-layout.tv-app-experience.tv-ui-manual-hidden .gp-tv-channel-layer {
  opacity: 0 !important;
  visibility: hidden !important;
  pointer-events: none !important;
}

body.public-tv-layout.tv-app-experience:not(.tv-ui-manual-hidden).tv-channel-overlay-visible .gp-tv-channel-layer {
  opacity: 1 !important;
  visibility: visible !important;
  pointer-events: auto !important;
}


/* ======================================================================
   v2.8.64 - TV sem linha vermelha + iframe mais leve e sem popup
   - Esconde todos os progressos/seek internos do StreamHub no modo TV.
   - Reduz efeitos pesados para Smart TV/TV Box e deixa o iframe clicar/play.
   ====================================================================== */
body.public-tv-layout.tv-app-experience .gp-info-progress,
body.public-tv-layout.tv-app-experience .gp-info-progress *,
body.public-tv-layout.tv-app-experience #gpInfoProgressBar,
body.public-tv-layout.tv-app-experience .epg-progress,
body.public-tv-layout.tv-app-experience .epg-progress *,
body.public-tv-layout.tv-app-experience #epgProgress,
body.public-tv-layout.tv-app-experience #epgProgressBar,
body.public-tv-layout.tv-app-experience .gp-live-line,
body.public-tv-layout.tv-app-experience .gp-live-line *,
body.public-tv-layout.tv-app-experience .custom-player-controls,
body.public-tv-layout.tv-app-experience .custom-player-controls *,
body.public-tv-layout.tv-app-experience .custom-player-seek,
body.public-tv-layout.tv-app-experience input[type="range"].custom-player-seek {
  display: none !important;
  opacity: 0 !important;
  visibility: hidden !important;
  pointer-events: none !important;
  width: 0 !important;
  height: 0 !important;
  min-width: 0 !important;
  min-height: 0 !important;
  max-width: 0 !important;
  max-height: 0 !important;
  overflow: hidden !important;
  clip-path: inset(50%) !important;
}

body.public-tv-layout.tv-app-experience .gp-top-info,
body.public-tv-layout.tv-app-experience .gp-tv-channel-layer,
body.public-tv-layout.tv-app-experience .gp-tv-channel-card,
body.public-tv-layout.tv-app-experience .gp-tv-category-tab,
body.public-tv-layout.tv-app-experience .gp-tv-layer-arrow,
body.public-tv-layout.tv-app-experience .gp-tv-interface-arrow-toggle,
body.public-tv-layout.tv-app-experience .gp-embed-action {
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
}

body.public-tv-layout.tv-app-experience .gp-tv-channel-layer,
body.public-tv-layout.tv-app-experience .gp-tv-channel-layer * {
  transition-property: opacity, transform, outline, background-color !important;
  transition-duration: .12s !important;
}

body.public-tv-layout.tv-app-experience #mainFrame {
  display: block !important;
  pointer-events: auto !important;
  z-index: 1 !important;
  transform: translateZ(0) !important;
  will-change: auto !important;
}

body.public-tv-layout.tv-app-experience .gp-player-chrome,
body.public-tv-layout.tv-app-experience .gp-tv-channel-layer,
body.public-tv-layout.tv-app-experience .gp-embed-top-actions {
  contain: layout style paint !important;
}


/* v2.8.66 - Admin: atualização manual do cache EPG/Jogos */
.admin-cache-refresh-box {
  display: grid !important;
  gap: 12px !important;
  padding: 16px !important;
  border: 1px solid rgba(255,255,255,.08) !important;
  border-radius: 18px !important;
  background: rgba(255,255,255,.035) !important;
}
.admin-cache-refresh-box > div:first-child {
  display: grid !important;
  gap: 4px !important;
}
.admin-cache-actions {
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 10px !important;
}
.admin-cache-actions .btn {
  min-height: 42px !important;
}

/* ======================================================================
   v2.8.67 - Painel admin profissional, responsivo e interativo
   ====================================================================== */
body.admin-ux-v2867 {
  --admin-bg: #06070a;
  --admin-panel: rgba(18, 20, 27, .86);
  --admin-panel-2: rgba(25, 28, 37, .88);
  --admin-card: rgba(20, 22, 30, .82);
  --admin-border: rgba(255,255,255,.09);
  --admin-text: #f8fafc;
  --admin-muted: rgba(248,250,252,.64);
  --admin-soft: rgba(255,255,255,.055);
  --admin-accent: #ff2e63;
  --admin-accent-2: #35b7ff;
  --admin-success: #28d17c;
  background:
    radial-gradient(circle at 16% -12%, rgba(255,46,99,.17), transparent 34%),
    radial-gradient(circle at 92% 6%, rgba(53,183,255,.12), transparent 32%),
    var(--admin-bg) !important;
  color: var(--admin-text) !important;
  overflow-x: hidden !important;
}

body.admin-ux-v2867 .admin-mobile-topbar,
body.admin-ux-v2867 .admin-sidebar-backdrop {
  display: none;
}

body.admin-ux-v2867 .admin-layout-pro {
  width: min(1480px, calc(100% - 32px)) !important;
  margin: 0 auto !important;
  padding: 20px 0 42px !important;
  display: grid !important;
  grid-template-columns: 284px minmax(0, 1fr) !important;
  gap: 20px !important;
  align-items: start !important;
}

body.admin-ux-v2867 .admin-sidebar.card {
  position: sticky !important;
  top: 20px !important;
  height: calc(100vh - 40px) !important;
  min-height: 620px !important;
  padding: 18px !important;
  border-radius: 26px !important;
  background: linear-gradient(180deg, rgba(18,20,28,.94), rgba(9,10,15,.92)) !important;
  border: 1px solid var(--admin-border) !important;
  box-shadow: 0 28px 70px rgba(0,0,0,.28) !important;
  display: flex !important;
  flex-direction: column !important;
  justify-content: space-between !important;
  overflow: hidden auto !important;
  z-index: 30 !important;
}

body.admin-ux-v2867 .sidebar-brand {
  gap: 12px !important;
  padding: 8px 6px 18px !important;
  border-bottom: 1px solid rgba(255,255,255,.07) !important;
}

body.admin-ux-v2867 .sidebar-brand .brand-logo {
  width: 48px !important;
  height: 48px !important;
  border-radius: 16px !important;
  box-shadow: 0 16px 32px rgba(255,46,99,.22) !important;
}

body.admin-ux-v2867 .sidebar-brand h2 {
  font-size: 1.04rem !important;
  letter-spacing: -.02em !important;
}

body.admin-ux-v2867 .sidebar-brand p,
body.admin-ux-v2867 .admin-hero p,
body.admin-ux-v2867 .admin-card-head p,
body.admin-ux-v2867 .section-head p,
body.admin-ux-v2867 label > small,
body.admin-ux-v2867 .field-help {
  color: var(--admin-muted) !important;
}

body.admin-ux-v2867 .admin-nav {
  display: flex !important;
  flex-direction: column !important;
  gap: 6px !important;
  margin-top: 18px !important;
}

body.admin-ux-v2867 .admin-nav a {
  min-height: 46px !important;
  display: flex !important;
  align-items: center !important;
  gap: 11px !important;
  padding: 0 12px !important;
  border-radius: 16px !important;
  color: rgba(255,255,255,.76) !important;
  border: 1px solid transparent !important;
  transition: background .18s ease, color .18s ease, border-color .18s ease, transform .18s ease !important;
}

body.admin-ux-v2867 .admin-nav a:hover,
body.admin-ux-v2867 .admin-nav a.active {
  color: #fff !important;
  background: rgba(255,255,255,.075) !important;
  border-color: rgba(255,255,255,.08) !important;
  transform: translateX(2px) !important;
}

body.admin-ux-v2867 .admin-nav a span {
  width: 34px !important;
  height: 34px !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  border-radius: 12px !important;
  background: rgba(255,255,255,.055) !important;
  flex: 0 0 auto !important;
}

body.admin-ux-v2867 .admin-main {
  display: flex !important;
  flex-direction: column !important;
  gap: 18px !important;
  min-width: 0 !important;
}

body.admin-ux-v2867 .card,
body.admin-ux-v2867 .admin-card-pro,
body.admin-ux-v2867 .metric-card-pro {
  background: linear-gradient(180deg, rgba(255,255,255,.055), rgba(255,255,255,.032)), var(--admin-panel) !important;
  border: 1px solid var(--admin-border) !important;
  box-shadow: 0 22px 70px rgba(0,0,0,.24) !important;
  backdrop-filter: blur(18px) saturate(120%) !important;
  -webkit-backdrop-filter: blur(18px) saturate(120%) !important;
}

body.admin-ux-v2867 .admin-card-pro:hover,
body.admin-ux-v2867 .metric-card-pro:hover,
body.admin-ux-v2867 .admin-card-pro.is-focused,
body.admin-ux-v2867 .metric-card-pro.is-focused {
  border-color: rgba(255,255,255,.15) !important;
}

body.admin-ux-v2867 .admin-hero.card {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) 320px !important;
  gap: 18px !important;
  padding: clamp(20px, 3vw, 34px) !important;
  border-radius: 30px !important;
  overflow: hidden !important;
}

body.admin-ux-v2867 .admin-hero h1 {
  font-size: clamp(1.8rem, 3.5vw, 3.2rem) !important;
  line-height: .98 !important;
  margin-bottom: 10px !important;
}

body.admin-ux-v2867 .admin-global-search {
  width: min(100%, 620px) !important;
  min-height: 50px !important;
  margin: 18px 0 0 !important;
  border-radius: 18px !important;
  background: rgba(0,0,0,.22) !important;
  border: 1px solid rgba(255,255,255,.09) !important;
}

body.admin-ux-v2867 .admin-global-search input {
  min-width: 0 !important;
  width: 100% !important;
  font-size: 1rem !important;
}

body.admin-ux-v2867 .admin-quick-actions,
body.admin-ux-v2867 .admin-cache-panel-actions,
body.admin-ux-v2867 .form-actions,
body.admin-ux-v2867 .admin-cache-actions {
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 10px !important;
  align-items: center !important;
}

body.admin-ux-v2867 .btn,
body.admin-ux-v2867 button,
body.admin-ux-v2867 .admin-command-bar a {
  min-height: 44px !important;
  border-radius: 14px !important;
}

body.admin-ux-v2867 .btn-primary {
  background: linear-gradient(135deg, var(--admin-accent), #ff764a) !important;
  color: #fff !important;
  border: 0 !important;
  box-shadow: 0 16px 34px rgba(255,46,99,.2) !important;
}

body.admin-ux-v2867 .btn-ghost,
body.admin-ux-v2867 .btn-secondary {
  background: rgba(255,255,255,.065) !important;
  color: #fff !important;
  border: 1px solid rgba(255,255,255,.1) !important;
}

body.admin-ux-v2867 .btn.is-loading i {
  animation: adminSpin .8s linear infinite;
}
@keyframes adminSpin { to { transform: rotate(360deg); } }

body.admin-ux-v2867 .admin-command-bar.card {
  position: sticky !important;
  top: 12px !important;
  z-index: 20 !important;
  display: flex !important;
  gap: 8px !important;
  overflow-x: auto !important;
  padding: 10px !important;
  border-radius: 20px !important;
  scrollbar-width: none !important;
}
body.admin-ux-v2867 .admin-command-bar::-webkit-scrollbar { display: none; }
body.admin-ux-v2867 .admin-command-bar a {
  flex: 0 0 auto !important;
  display: inline-flex !important;
  align-items: center !important;
  padding: 0 14px !important;
  color: rgba(255,255,255,.78) !important;
  background: transparent !important;
  border: 1px solid transparent !important;
}
body.admin-ux-v2867 .admin-command-bar a:hover,
body.admin-ux-v2867 .admin-command-bar a.active {
  color: #fff !important;
  background: rgba(255,255,255,.08) !important;
  border-color: rgba(255,255,255,.10) !important;
}

body.admin-ux-v2867 .admin-cache-panel {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) auto !important;
  gap: 18px !important;
  align-items: center !important;
  padding: 20px !important;
  border-radius: 24px !important;
  background:
    linear-gradient(135deg, rgba(53,183,255,.11), transparent 46%),
    linear-gradient(180deg, rgba(255,255,255,.055), rgba(255,255,255,.03)),
    var(--admin-panel) !important;
}
body.admin-ux-v2867 .admin-cache-panel h3 {
  margin: 4px 0 6px !important;
  font-size: 1.35rem !important;
}
body.admin-ux-v2867 .admin-cache-panel p {
  margin: 0 !important;
  color: var(--admin-muted) !important;
}
body.admin-ux-v2867 .admin-cache-panel-actions {
  justify-content: flex-end !important;
  max-width: 520px !important;
}
body.admin-ux-v2867 #cacheRefreshStatusTop {
  width: 100% !important;
  text-align: right !important;
  color: var(--admin-muted) !important;
}
body.admin-ux-v2867 #cacheRefreshStatusTop.success,
body.admin-ux-v2867 #cacheRefreshStatus.success { color: #a7f3d0 !important; }
body.admin-ux-v2867 #cacheRefreshStatusTop.error,
body.admin-ux-v2867 #cacheRefreshStatus.error { color: #fecaca !important; }

body.admin-ux-v2867 .admin-stats {
  display: grid !important;
  grid-template-columns: repeat(5, minmax(150px, 1fr)) !important;
  gap: 12px !important;
}
body.admin-ux-v2867 .metric-card-pro {
  min-height: 136px !important;
  padding: 16px !important;
  border-radius: 22px !important;
  display: flex !important;
  flex-direction: column !important;
  gap: 6px !important;
}
body.admin-ux-v2867 .metric-card-pro > .bi {
  width: 40px !important;
  height: 40px !important;
  border-radius: 14px !important;
  background: rgba(255,255,255,.07) !important;
  color: #fff !important;
}
body.admin-ux-v2867 .metric-card-pro strong {
  font-size: clamp(1.4rem, 2.2vw, 2rem) !important;
}

body.admin-ux-v2867 .admin-grid {
  display: grid !important;
  grid-template-columns: minmax(360px, 0.78fr) minmax(0, 1.22fr) !important;
  gap: 18px !important;
  align-items: start !important;
}
body.admin-ux-v2867 .form-card,
body.admin-ux-v2867 .table-card,
body.admin-ux-v2867 .clients-card,
body.admin-ux-v2867 #issuesCard,
body.admin-ux-v2867 #siteSettingsCard {
  border-radius: 26px !important;
  padding: clamp(16px, 2vw, 24px) !important;
  overflow: hidden !important;
}
body.admin-ux-v2867 .admin-card-head {
  display: flex !important;
  gap: 14px !important;
  align-items: flex-start !important;
  justify-content: space-between !important;
  margin-bottom: 16px !important;
}
body.admin-ux-v2867 .admin-card-head h3 {
  font-size: 1.34rem !important;
  margin: 4px 0 !important;
}
body.admin-ux-v2867 .admin-section-kicker,
body.admin-ux-v2867 .admin-eyebrow {
  color: #9ddcff !important;
  letter-spacing: .08em !important;
}

body.admin-ux-v2867 .admin-form,
body.admin-ux-v2867 .field-grid,
body.admin-ux-v2867 .admin-settings-panel.active {
  display: grid !important;
  gap: 14px !important;
}
body.admin-ux-v2867 .field-grid,
body.admin-ux-v2867 .admin-settings-panel.active {
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
}
body.admin-ux-v2867 .admin-settings-panel:not(.active) {
  display: none !important;
}
body.admin-ux-v2867 .field-full,
body.admin-ux-v2867 .admin-field-card.field-full {
  grid-column: 1 / -1 !important;
}
body.admin-ux-v2867 .admin-field-card,
body.admin-ux-v2867 .admin-form label,
body.admin-ux-v2867 .predefined-channel-link-box,
body.admin-ux-v2867 .epg-finder-box,
body.admin-ux-v2867 .admin-cache-refresh-box {
  border-radius: 18px !important;
  background: rgba(255,255,255,.045) !important;
  border: 1px solid rgba(255,255,255,.075) !important;
  padding: 13px !important;
}
body.admin-ux-v2867 .admin-form label {
  color: rgba(255,255,255,.88) !important;
  font-weight: 750 !important;
}
body.admin-ux-v2867 .admin-form input,
body.admin-ux-v2867 .admin-form select,
body.admin-ux-v2867 .admin-form textarea,
body.admin-ux-v2867 .admin-table-search input,
body.admin-ux-v2867 .epg-finder-row input {
  width: 100% !important;
  min-width: 0 !important;
  min-height: 46px !important;
  margin-top: 7px !important;
  border-radius: 14px !important;
  background: rgba(0,0,0,.24) !important;
  border: 1px solid rgba(255,255,255,.10) !important;
  color: #fff !important;
  font-size: 16px !important;
}
body.admin-ux-v2867 .admin-form textarea {
  min-height: 120px !important;
  resize: vertical !important;
}
body.admin-ux-v2867 .admin-form input:focus,
body.admin-ux-v2867 .admin-form select:focus,
body.admin-ux-v2867 .admin-form textarea:focus,
body.admin-ux-v2867 .admin-table-search input:focus {
  outline: 2px solid rgba(53,183,255,.45) !important;
  border-color: rgba(53,183,255,.46) !important;
}

body.admin-ux-v2867 .admin-settings-tabs-shell {
  display: grid !important;
  gap: 16px !important;
}
body.admin-ux-v2867 .admin-settings-tabs {
  display: flex !important;
  gap: 8px !important;
  overflow-x: auto !important;
  padding: 8px !important;
  border-radius: 18px !important;
  background: rgba(255,255,255,.04) !important;
  border: 1px solid rgba(255,255,255,.07) !important;
  scrollbar-width: none !important;
}
body.admin-ux-v2867 .admin-settings-tabs::-webkit-scrollbar { display: none; }
body.admin-ux-v2867 .admin-settings-tab {
  flex: 0 0 auto !important;
  display: inline-flex !important;
  align-items: center !important;
  gap: 8px !important;
  padding: 0 14px !important;
  border-radius: 14px !important;
  background: transparent !important;
  color: rgba(255,255,255,.7) !important;
  border: 1px solid transparent !important;
}
body.admin-ux-v2867 .admin-settings-tab.active {
  color: #fff !important;
  background: rgba(255,255,255,.09) !important;
  border-color: rgba(255,255,255,.10) !important;
}

body.admin-ux-v2867 .table-wrap {
  width: 100% !important;
  overflow: auto !important;
  border-radius: 18px !important;
  border: 1px solid rgba(255,255,255,.06) !important;
  background: rgba(0,0,0,.16) !important;
  -webkit-overflow-scrolling: touch !important;
}
body.admin-ux-v2867 table {
  width: 100% !important;
  min-width: 860px !important;
  border-collapse: separate !important;
  border-spacing: 0 7px !important;
}
body.admin-ux-v2867 th {
  position: sticky !important;
  top: 0 !important;
  z-index: 1 !important;
  background: rgba(14,16,22,.96) !important;
  color: rgba(255,255,255,.7) !important;
  font-size: .76rem !important;
  text-transform: uppercase !important;
  letter-spacing: .05em !important;
}
body.admin-ux-v2867 td,
body.admin-ux-v2867 th {
  padding: 12px 14px !important;
  white-space: nowrap !important;
}
body.admin-ux-v2867 tbody tr {
  background: rgba(255,255,255,.04) !important;
}
body.admin-ux-v2867 tbody tr:hover {
  background: rgba(255,255,255,.075) !important;
}

body.admin-ux-v2867 .admin-modal {
  padding: 18px !important;
}
body.admin-ux-v2867 .admin-modal-card {
  width: min(760px, 96vw) !important;
  max-height: calc(100vh - 36px) !important;
  overflow: auto !important;
  border-radius: 26px !important;
}

@media (max-width: 1280px) {
  body.admin-ux-v2867 .admin-layout-pro {
    width: min(100% - 24px, 1180px) !important;
    grid-template-columns: 250px minmax(0, 1fr) !important;
  }
  body.admin-ux-v2867 .admin-stats {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  }
  body.admin-ux-v2867 .admin-grid {
    grid-template-columns: 1fr !important;
  }
}

@media (max-width: 980px) {
  body.admin-ux-v2867 {
    padding-top: 74px !important;
  }
  body.admin-ux-v2867 .admin-mobile-topbar {
    position: fixed !important;
    left: 12px !important;
    right: 12px !important;
    top: 10px !important;
    height: 54px !important;
    z-index: 80 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    gap: 12px !important;
    padding: 0 12px !important;
    border-radius: 18px !important;
    background: rgba(13,15,20,.88) !important;
    border: 1px solid rgba(255,255,255,.1) !important;
    backdrop-filter: blur(16px) !important;
    -webkit-backdrop-filter: blur(16px) !important;
    box-shadow: 0 18px 50px rgba(0,0,0,.28) !important;
  }
  body.admin-ux-v2867 .admin-mobile-menu-btn,
  body.admin-ux-v2867 .admin-mobile-view-link {
    width: 42px !important;
    height: 42px !important;
    border-radius: 14px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    background: rgba(255,255,255,.07) !important;
    border: 1px solid rgba(255,255,255,.08) !important;
    color: #fff !important;
  }
  body.admin-ux-v2867 .admin-sidebar-backdrop {
    position: fixed !important;
    inset: 0 !important;
    z-index: 70 !important;
    background: rgba(0,0,0,.58) !important;
    display: block !important;
  }
  body.admin-ux-v2867 .admin-sidebar-backdrop[hidden] { display: none !important; }
  body.admin-ux-v2867 .admin-layout-pro {
    display: block !important;
    width: calc(100% - 20px) !important;
    padding: 0 0 34px !important;
  }
  body.admin-ux-v2867 .admin-sidebar.card {
    position: fixed !important;
    top: 74px !important;
    left: 10px !important;
    bottom: 12px !important;
    width: min(330px, calc(100vw - 20px)) !important;
    height: auto !important;
    min-height: 0 !important;
    transform: translateX(calc(-100% - 24px)) !important;
    transition: transform .22s ease !important;
    z-index: 90 !important;
  }
  body.admin-ux-v2867 .admin-sidebar.card.is-open {
    transform: translateX(0) !important;
  }
  body.admin-ux-v2867 .admin-main {
    gap: 14px !important;
  }
  body.admin-ux-v2867 .admin-command-bar.card {
    top: 72px !important;
    border-radius: 18px !important;
  }
  body.admin-ux-v2867 .admin-hero.card,
  body.admin-ux-v2867 .admin-cache-panel {
    grid-template-columns: 1fr !important;
  }
  body.admin-ux-v2867 .admin-hero-panel,
  body.admin-ux-v2867 .admin-cache-panel-actions {
    max-width: none !important;
    justify-content: flex-start !important;
  }
  body.admin-ux-v2867 #cacheRefreshStatusTop { text-align: left !important; }
  body.admin-ux-v2867 .admin-stats {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
  body.admin-ux-v2867 .admin-card-head {
    flex-direction: column !important;
    align-items: stretch !important;
  }
  body.admin-ux-v2867 .admin-table-search {
    width: 100% !important;
  }
}

@media (max-width: 640px) {
  body.admin-ux-v2867 .admin-layout-pro {
    width: calc(100% - 12px) !important;
  }
  body.admin-ux-v2867 .admin-hero.card,
  body.admin-ux-v2867 .form-card,
  body.admin-ux-v2867 .table-card,
  body.admin-ux-v2867 .clients-card,
  body.admin-ux-v2867 #issuesCard,
  body.admin-ux-v2867 #siteSettingsCard,
  body.admin-ux-v2867 .admin-cache-panel {
    border-radius: 20px !important;
    padding: 14px !important;
  }
  body.admin-ux-v2867 .admin-stats,
  body.admin-ux-v2867 .field-grid,
  body.admin-ux-v2867 .admin-settings-panel.active {
    grid-template-columns: 1fr !important;
  }
  body.admin-ux-v2867 .metric-card-pro {
    min-height: 112px !important;
  }
  body.admin-ux-v2867 .admin-cache-panel-actions .btn,
  body.admin-ux-v2867 .admin-quick-actions .btn,
  body.admin-ux-v2867 .form-actions .btn,
  body.admin-ux-v2867 .admin-cache-actions .btn {
    width: 100% !important;
    justify-content: center !important;
  }
  body.admin-ux-v2867 .admin-settings-tabs {
    margin-inline: -4px !important;
  }
  body.admin-ux-v2867 table {
    min-width: 780px !important;
  }
  body.admin-ux-v2867 td,
  body.admin-ux-v2867 th {
    padding: 10px 11px !important;
  }
}

@media (prefers-reduced-motion: reduce) {
  body.admin-ux-v2867 *,
  body.admin-ux-v2867 *::before,
  body.admin-ux-v2867 *::after {
    transition: none !important;
    animation: none !important;
  }
}

/* ======================================================================
   v2.8.68 - TV: interface sincronizada, jogos compactos e EPG completo
   ====================================================================== */
body.public-tv-layout.tv-app-experience.tv-interface-top-hidden .player-stage.public-player-stage .gp-top-info,
body.public-tv-layout.tv-app-experience.tv-ui-manual-hidden .player-stage.public-player-stage .gp-top-info,
body.public-tv-layout.tv-app-experience.tv-interface-top-hidden .player-stage.public-player-stage .gp-embed-top-actions,
body.public-tv-layout.tv-app-experience.tv-ui-manual-hidden .player-stage.public-player-stage .gp-embed-top-actions,
body.public-tv-layout.tv-app-experience.tv-interface-top-hidden .player-stage.public-player-stage .gp-football-panel,
body.public-tv-layout.tv-app-experience.tv-ui-manual-hidden .player-stage.public-player-stage .gp-football-panel,
body.public-tv-layout.tv-app-experience.tv-interface-top-hidden .player-stage.public-player-stage .gp-bottom-ui,
body.public-tv-layout.tv-app-experience.tv-ui-manual-hidden .player-stage.public-player-stage .gp-bottom-ui {
  opacity: 0 !important;
  visibility: hidden !important;
  pointer-events: none !important;
  transform: translateY(8px) !important;
}

body.public-tv-layout.tv-app-experience.tv-interface-top-hidden .gp-tv-interface-arrow-toggle,
body.public-tv-layout.tv-app-experience.tv-ui-manual-hidden .gp-tv-interface-arrow-toggle {
  opacity: .78 !important;
  visibility: visible !important;
  pointer-events: auto !important;
  transform: none !important;
}

body.public-tv-layout.tv-app-experience:not(.tv-ui-manual-hidden) .player-stage.public-player-stage .gp-top-info,
body.public-tv-layout.tv-app-experience:not(.tv-ui-manual-hidden) .player-stage.public-player-stage .gp-embed-top-actions {
  opacity: 1 !important;
  visibility: visible !important;
  transform: none !important;
}

/* EPG completo na TV: não corta textos de Agora/A seguir */
body.public-tv-layout.tv-app-experience .player-stage.public-player-stage .gp-top-info {
  top: clamp(18px, 3.2vh, 38px) !important;
  left: clamp(22px, 4.2vw, 74px) !important;
  max-width: min(58vw, 760px) !important;
  width: auto !important;
  display: grid !important;
  gap: clamp(4px, .8vh, 9px) !important;
  align-content: start !important;
}

body.public-tv-layout.tv-app-experience .gp-top-info #gpNowTitle,
body.public-tv-layout.tv-app-experience .gp-top-info strong {
  max-width: min(58vw, 760px) !important;
  white-space: normal !important;
  overflow: visible !important;
  text-overflow: clip !important;
  display: block !important;
  -webkit-line-clamp: unset !important;
  line-height: 1.04 !important;
  font-size: clamp(1.02rem, 2.1vw, 2.45rem) !important;
}

body.public-tv-layout.tv-app-experience .gp-top-info #gpNowMeta,
body.public-tv-layout.tv-app-experience .gp-top-info #gpNowTime,
body.public-tv-layout.tv-app-experience .gp-top-info #gpNextMeta,
body.public-tv-layout.tv-app-experience .gp-next-box,
body.public-tv-layout.tv-app-experience .gp-next-box em {
  white-space: normal !important;
  overflow: visible !important;
  text-overflow: clip !important;
  display: block !important;
  -webkit-line-clamp: unset !important;
  line-height: 1.16 !important;
}

body.public-tv-layout.tv-app-experience .gp-top-info #gpNowMeta {
  max-width: min(58vw, 760px) !important;
  font-size: clamp(.78rem, 1.18vw, 1.18rem) !important;
}

body.public-tv-layout.tv-app-experience .gp-next-box {
  width: fit-content !important;
  max-width: min(42vw, 540px) !important;
  min-height: 0 !important;
  height: auto !important;
  padding: clamp(8px, 1.2vh, 14px) clamp(12px, 1.5vw, 18px) !important;
  border-radius: 16px !important;
}

body.public-tv-layout.tv-app-experience .gp-next-box #gpNextMeta,
body.public-tv-layout.tv-app-experience .gp-next-box em {
  font-size: clamp(.72rem, 1.08vw, 1.05rem) !important;
  font-weight: 800 !important;
}

/* Jogos de hoje compacto e acima da lista de canais */
body.public-tv-layout.tv-app-experience .gp-football-panel,
body.public-tv-layout.tv-app-experience.football-panel-open .gp-football-panel {
  top: clamp(58px, 8vh, 90px) !important;
  right: clamp(18px, 3vw, 44px) !important;
  bottom: clamp(230px, 36vh, 385px) !important;
  width: min(355px, 31vw) !important;
  max-width: 355px !important;
  max-height: none !important;
  min-height: 0 !important;
  padding: 10px 10px 10px !important;
  border-radius: 18px !important;
  display: grid !important;
  grid-template-rows: auto auto minmax(0, 1fr) !important;
  gap: 8px !important;
  overflow: hidden !important;
  z-index: 180 !important;
}

body.public-tv-layout.tv-app-experience .gp-football-head {
  margin: 0 !important;
  gap: 8px !important;
}
body.public-tv-layout.tv-app-experience .gp-football-head small {
  font-size: .58rem !important;
  margin: 0 0 2px !important;
}
body.public-tv-layout.tv-app-experience .gp-football-head strong {
  font-size: clamp(.94rem, 1.35vw, 1.25rem) !important;
  line-height: 1.02 !important;
  margin: 0 !important;
}
body.public-tv-layout.tv-app-experience .gp-football-subtitle {
  display: none !important;
}
body.public-tv-layout.tv-app-experience .gp-football-close {
  width: 32px !important;
  height: 32px !important;
  min-width: 32px !important;
}
body.public-tv-layout.tv-app-experience .gp-football-status {
  min-height: 42px !important;
  padding: 10px !important;
  font-size: .72rem !important;
  border-radius: 13px !important;
}
body.public-tv-layout.tv-app-experience .gp-football-list {
  min-height: 0 !important;
  max-height: none !important;
  overflow-y: auto !important;
  padding: 0 42px 0 0 !important;
  gap: 7px !important;
  scroll-behavior: smooth !important;
}
body.public-tv-layout.tv-app-experience .gp-football-list::-webkit-scrollbar { width: 0 !important; height: 0 !important; }
body.public-tv-layout.tv-app-experience .gp-football-card {
  padding: 9px 10px !important;
  gap: 5px !important;
  border-radius: 13px !important;
}
body.public-tv-layout.tv-app-experience .gp-football-card-top,
body.public-tv-layout.tv-app-experience .gp-football-card-actions {
  gap: 6px !important;
}
body.public-tv-layout.tv-app-experience .gp-football-card strong {
  font-size: clamp(.74rem, .92vw, .92rem) !important;
  line-height: 1.08 !important;
}
body.public-tv-layout.tv-app-experience .gp-football-card small,
body.public-tv-layout.tv-app-experience .gp-football-time span,
body.public-tv-layout.tv-app-experience .gp-football-channel span {
  font-size: clamp(.58rem, .74vw, .76rem) !important;
  line-height: 1.08 !important;
}
body.public-tv-layout.tv-app-experience .gp-football-league,
body.public-tv-layout.tv-app-experience .gp-football-chip {
  min-height: 23px !important;
  padding: 0 7px !important;
  font-size: .54rem !important;
  border-radius: 999px !important;
}
body.public-tv-layout.tv-app-experience .gp-football-watch {
  min-width: 96px !important;
  height: 30px !important;
  padding: 0 9px !important;
  font-size: .62rem !important;
}

body.public-tv-layout.tv-app-experience .gp-football-nav {
  position: absolute !important;
  right: 9px !important;
  top: 58px !important;
  bottom: 10px !important;
  z-index: 6 !important;
  display: flex !important;
  flex-direction: column !important;
  justify-content: space-between !important;
  gap: 8px !important;
  pointer-events: none !important;
}
body.public-tv-layout.tv-app-experience .gp-football-nav-btn {
  width: 34px !important;
  height: 34px !important;
  border-radius: 50% !important;
  border: 1px solid rgba(255,255,255,.20) !important;
  background: rgba(0,0,0,.58) !important;
  color: #fff !important;
  display: grid !important;
  place-items: center !important;
  font-size: 1rem !important;
  pointer-events: auto !important;
  box-shadow: 0 10px 22px rgba(0,0,0,.35) !important;
}
body.public-tv-layout.tv-app-experience .gp-football-nav-btn:focus-visible {
  outline: 3px solid #fff !important;
  outline-offset: 2px !important;
}

@media (max-height: 760px) {
  body.public-tv-layout.tv-app-experience .gp-football-panel,
  body.public-tv-layout.tv-app-experience.football-panel-open .gp-football-panel {
    top: 50px !important;
    bottom: clamp(178px, 31vh, 270px) !important;
    width: min(330px, 34vw) !important;
  }
  body.public-tv-layout.tv-app-experience .gp-football-card { padding: 7px 8px !important; }
  body.public-tv-layout.tv-app-experience .gp-football-watch { height: 28px !important; }
}


/* ======================================================================
   v2.8.69 - TV: Jogos fechado no carregamento + toggle controla tudo
   ====================================================================== */
body.public-tv-layout.tv-app-experience:not(.football-panel-open) .player-stage.public-player-stage .gp-football-panel,
body.public-tv-layout.tv-app-experience .player-stage.public-player-stage .gp-football-panel[hidden],
body.public-tv-layout.tv-app-experience.tv-ui-manual-hidden .player-stage.public-player-stage .gp-football-panel {
  display: none !important;
  opacity: 0 !important;
  visibility: hidden !important;
  pointer-events: none !important;
}

body.public-tv-layout.tv-app-experience.football-panel-open:not(.tv-ui-manual-hidden) .player-stage.public-player-stage .gp-football-panel {
  display: grid !important;
  opacity: 1 !important;
  visibility: visible !important;
  pointer-events: auto !important;
}

body.public-tv-layout.tv-app-experience.tv-ui-manual-hidden .player-stage.public-player-stage .gp-top-info,
body.public-tv-layout.tv-app-experience.tv-ui-manual-hidden .player-stage.public-player-stage .gp-embed-top-actions,
body.public-tv-layout.tv-app-experience.tv-ui-manual-hidden .player-stage.public-player-stage .gp-bottom-ui,
body.public-tv-layout.tv-app-experience.tv-ui-manual-hidden .player-stage.public-player-stage .gp-tv-channel-layer,
body.public-tv-layout.tv-app-experience.tv-ui-manual-hidden .player-stage.public-player-stage .gp-tv-channel-layer * {
  opacity: 0 !important;
  visibility: hidden !important;
  pointer-events: none !important;
}

body.public-tv-layout.tv-app-experience:not(.tv-ui-manual-hidden) .player-stage.public-player-stage .gp-top-info,
body.public-tv-layout.tv-app-experience:not(.tv-ui-manual-hidden) .player-stage.public-player-stage .gp-embed-top-actions,
body.public-tv-layout.tv-app-experience:not(.tv-ui-manual-hidden).tv-channel-overlay-visible .player-stage.public-player-stage .gp-tv-channel-layer {
  opacity: 1 !important;
  visibility: visible !important;
}

body.public-tv-layout.tv-app-experience .gp-tv-interface-arrow-toggle {
  z-index: 260 !important;
}

/* ======================================================================
   v2.8.71 - TV: EPG mais próximo da lista de canais
   - Move Agora/A seguir para logo acima do overlay de canais.
   - Reduz os espaços verticais internos sem alterar PC/mobile.
   ====================================================================== */
body.public-tv-layout.tv-app-experience .player-stage.public-player-stage .gp-top-info {
  top: auto !important;
  bottom: calc(
    clamp(22px, 3.2vh, 48px)
    + clamp(118px, 18vh, 190px)
    + clamp(46px, 6.2vh, 72px)
    + clamp(12px, 1.8vh, 22px)
    + 10px
  ) !important;
  gap: clamp(2px, .4vh, 5px) !important;
  align-content: end !important;
}

body.public-tv-layout.tv-app-experience .gp-top-info .gp-schedule-line {
  margin: 0 !important;
  gap: 6px !important;
}

body.public-tv-layout.tv-app-experience .gp-top-info #gpNowTitle,
body.public-tv-layout.tv-app-experience .gp-top-info #gpNowMeta,
body.public-tv-layout.tv-app-experience .gp-top-info #gpNowTime {
  margin-top: 0 !important;
  margin-bottom: 0 !important;
}

body.public-tv-layout.tv-app-experience .gp-top-info .gp-next-box {
  margin: 1px 0 0 !important;
  padding: 4px 8px !important;
  border-radius: 10px !important;
}

body.public-tv-layout.tv-app-experience .gp-top-info .gp-next-label,
body.public-tv-layout.tv-app-experience .gp-top-info .gp-next-box #gpNextMeta,
body.public-tv-layout.tv-app-experience .gp-top-info .gp-next-box em {
  line-height: 1.08 !important;
}

/* Em TVs 720p, usa as medidas compactas reais da lista para manter o EPG perto. */
@media (max-height: 760px) {
  body.public-tv-layout.tv-app-experience .player-stage.public-player-stage .gp-top-info {
    top: auto !important;
    bottom: calc(
      clamp(12px, 2vh, 26px)
      + clamp(92px, 16vh, 145px)
      + clamp(40px, 6vh, 58px)
      + clamp(8px, 1.2vh, 16px)
      + 8px
    ) !important;
    gap: 2px !important;
  }
}

/* ======================================================================
   v2.8.72 - Perfil leve para Smart TV / hardware limitado
   Reduz efeitos de composição caros sem alterar a estrutura do layout.
   ====================================================================== */
body.performance-lite .bg-glow {
  display: none !important;
}

body.performance-lite .topbar,
body.performance-lite .public-tv-topbar,
body.performance-lite .gp-player-chrome,
body.performance-lite .gp-channel-drawer,
body.performance-lite .gp-tv-channel-layer,
body.performance-lite .gp-football-panel,
body.performance-lite .tv-mobile-menu,
body.performance-lite .global-notice {
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
}

body.performance-lite .gp-channel-card,
body.performance-lite .gp-tv-channel-card,
body.performance-lite .gp-tv-category-tab,
body.performance-lite .category-tab,
body.performance-lite .gp-icon-btn,
body.performance-lite .gp-tv-action,
body.performance-lite .gp-football-card,
body.performance-lite .gp-rail-arrow,
body.performance-lite .gp-tv-layer-arrow {
  transition: none !important;
  animation: none !important;
}

body.performance-lite .gp-channel-rail,
body.performance-lite .gp-tv-channel-layer-rail,
body.performance-lite .gp-football-list,
body.performance-lite .gp-category-strip,
body.performance-lite .gp-tv-channel-layer-cats {
  scroll-behavior: auto !important;
}


/* v2.8.73 selected updates: sponsored cards */
body.public-tv-layout .gp-channel-card.gp-sponsored-channel-card{position:relative;text-decoration:none!important;cursor:pointer!important;border-style:dashed!important;border-color:rgba(255,255,255,.28)!important;background:linear-gradient(135deg,rgba(25,38,58,.98),rgba(8,12,18,.98))!important}
body.public-tv-layout .gp-sponsored-channel-icon{position:absolute!important;left:16px!important;top:14px!important;z-index:5!important;width:38px!important;height:38px!important;display:grid!important;place-items:center!important;border-radius:50%!important;background:rgba(255,255,255,.14)!important;color:#fff!important;pointer-events:none!important}
body.public-tv-layout .gp-sponsored-channel-badge{background:#ffd54a!important;color:#181818!important;font-size:.68rem!important}
body.public-tv-layout .gp-sponsored-channel-copy b{display:block!important;color:#ffd966!important;font-size:.76rem!important}
body.public-tv-layout.tv-app-experience .gp-tv-channel-card.gp-tv-sponsored-card{position:relative;text-decoration:none!important;cursor:pointer!important;border-style:dashed!important;border-color:rgba(255,255,255,.34)!important;background:linear-gradient(135deg,rgba(25,38,58,.98),rgba(8,12,18,.98))!important}
body.public-tv-layout.tv-app-experience .gp-tv-sponsored-icon{position:absolute!important;left:18px!important;top:16px!important;z-index:5!important;width:clamp(38px,3.4vw,54px)!important;height:clamp(38px,3.4vw,54px)!important;display:grid!important;place-items:center!important;border-radius:50%!important;background:rgba(255,255,255,.14)!important;color:#fff!important;pointer-events:none!important}
body.public-tv-layout.tv-app-experience .gp-tv-sponsored-badge{background:#ffd54a!important;color:#181818!important}
body.public-tv-layout.tv-app-experience .gp-tv-sponsored-copy b{color:#ffd966!important}

/* Admin: Canais, Clientes e Relatos em cards responsivos */
@media (max-width:1100px){
 body.admin-ux-v2867 #tableCard .table-wrap,body.admin-ux-v2867 #clientsCard .table-wrap,body.admin-ux-v2867 #issuesCard .table-wrap{overflow:visible!important;border:0!important;background:transparent!important}
 body.admin-ux-v2867 #tableCard table,body.admin-ux-v2867 #clientsCard table,body.admin-ux-v2867 #issuesCard table,body.admin-ux-v2867 #channelsTableBody,body.admin-ux-v2867 #clientsTableBody,body.admin-ux-v2867 #issuesTableBody,body.admin-ux-v2867 #channelsTableBody tr,body.admin-ux-v2867 #clientsTableBody tr,body.admin-ux-v2867 #issuesTableBody tr,body.admin-ux-v2867 #channelsTableBody td,body.admin-ux-v2867 #clientsTableBody td,body.admin-ux-v2867 #issuesTableBody td{display:block!important;width:100%!important;min-width:0!important}
 body.admin-ux-v2867 #tableCard table,body.admin-ux-v2867 #clientsCard table,body.admin-ux-v2867 #issuesCard table{min-width:0!important;border-spacing:0!important}
 body.admin-ux-v2867 #tableCard thead,body.admin-ux-v2867 #clientsCard thead,body.admin-ux-v2867 #issuesCard thead{position:absolute!important;width:1px!important;height:1px!important;overflow:hidden!important;clip:rect(0 0 0 0)!important}
 body.admin-ux-v2867 #channelsTableBody,body.admin-ux-v2867 #clientsTableBody,body.admin-ux-v2867 #issuesTableBody{display:grid!important;gap:12px!important}
 body.admin-ux-v2867 #channelsTableBody tr,body.admin-ux-v2867 #clientsTableBody tr,body.admin-ux-v2867 #issuesTableBody tr{overflow:hidden!important;border:1px solid rgba(255,255,255,.08)!important;border-radius:18px!important;background:rgba(255,255,255,.045)!important}
 body.admin-ux-v2867 #channelsTableBody td,body.admin-ux-v2867 #clientsTableBody td,body.admin-ux-v2867 #issuesTableBody td{display:grid!important;grid-template-columns:minmax(92px,.35fr) minmax(0,1fr)!important;gap:12px!important;align-items:center!important;padding:10px 12px!important;white-space:normal!important;overflow-wrap:anywhere!important;border-bottom:1px solid rgba(255,255,255,.055)!important}
 body.admin-ux-v2867 #channelsTableBody td::before,body.admin-ux-v2867 #clientsTableBody td::before,body.admin-ux-v2867 #issuesTableBody td::before{content:attr(data-label);color:rgba(255,255,255,.56)!important;font-size:.72rem!important;font-weight:800!important;text-transform:uppercase!important}
 body.admin-ux-v2867 .table-actions{display:flex!important;flex-wrap:wrap!important;gap:8px!important;min-width:0!important}
 body.admin-ux-v2867 .table-actions .btn{flex:1 1 130px!important;min-width:0!important}
}
@media (max-width:560px){body.admin-ux-v2867 #channelsTableBody td,body.admin-ux-v2867 #clientsTableBody td,body.admin-ux-v2867 #issuesTableBody td{grid-template-columns:82px minmax(0,1fr)!important;gap:8px!important;padding:9px 10px!important}body.admin-ux-v2867 .table-actions{display:grid!important;grid-template-columns:1fr!important}.admin-table-search,.admin-table-search input{max-width:100%!important;min-width:0!important}}

/* Teste VAST genérico somente para admin */
body.public-tv-layout .gp-admin-vast-test-btn{gap:6px!important;width:auto!important;min-width:40px!important;padding-inline:10px!important}
body.public-tv-layout .gp-admin-vast-test-btn.is-active{background:#b42318!important;color:#fff!important}
body.public-tv-layout.admin-vast-test-active .player-stage.public-player-stage .gp-embed-top-actions{z-index:2147483600!important}
body.public-tv-layout.admin-vast-test-active .player-stage.public-player-stage #gpAdminVastTestBtn{z-index:2147483601!important}

body.public-tv-layout .admin-vast-generic-shell{position:absolute!important;inset:0!important;width:100%!important;height:100%!important;overflow:hidden!important;background:#000!important;display:grid!important;place-items:center!important}
body.public-tv-layout .admin-vast-generic-video{display:block!important;position:absolute!important;inset:0!important;width:100%!important;height:100%!important;object-fit:contain!important;background:#000!important}
body.public-tv-layout .admin-vast-generic-badge{position:absolute!important;left:14px!important;bottom:14px!important;z-index:4!important;padding:7px 10px!important;border-radius:999px!important;background:rgba(0,0,0,.72)!important;border:1px solid rgba(255,255,255,.2)!important;color:#fff!important;font-size:11px!important;font-weight:800!important;pointer-events:none!important}
@media(max-width:720px){body.public-tv-layout .gp-admin-vast-test-btn span{display:none!important}body.public-tv-layout .gp-admin-vast-test-btn{width:40px!important;padding:0!important}}

/* v2.8.74 - Smartphone: gp-bottom-ui não intercepta toques no player */
@media (max-width: 1024px), (hover: none) and (pointer: coarse) {
  body.public-tv-layout .player-stage.public-player-stage .gp-bottom-ui {
    pointer-events: none !important;
  }

  body.public-tv-layout .player-stage.public-player-stage .gp-bottom-ui button,
  body.public-tv-layout .player-stage.public-player-stage .gp-bottom-ui a,
  body.public-tv-layout .player-stage.public-player-stage .gp-bottom-ui input,
  body.public-tv-layout .player-stage.public-player-stage .gp-bottom-ui .gp-channel-drawer,
  body.public-tv-layout .player-stage.public-player-stage .gp-bottom-ui .gp-channel-card,
  body.public-tv-layout .player-stage.public-player-stage .gp-bottom-ui .category-tab,
  body.public-tv-layout .player-stage.public-player-stage .gp-bottom-ui .gp-volume-wrap {
    pointer-events: auto !important;
  }
}

/* ======================================================================
   v2.8.76 - anúncio por script isolado + botão VAST clicável no mobile
   ====================================================================== */
body.public-tv-layout .gp-script-sponsored-card,
body.public-tv-layout .gp-tv-channel-card.gp-script-sponsored-card,
body.public-tv-layout .channel-card.script-sponsored-card {
  position: relative !important;
  overflow: hidden !important;
  padding: 0 !important;
  background: #0a0d13 !important;
  border: 1px solid rgba(255,255,255,.12) !important;
  isolation: isolate !important;
  contain: layout paint style !important;
}
body.public-tv-layout .sponsored-script-frame {
  position: absolute !important;
  inset: 0 !important;
  display: block !important;
  width: 100% !important;
  height: 100% !important;
  min-width: 0 !important;
  min-height: 0 !important;
  max-width: 100% !important;
  max-height: 100% !important;
  border: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow: hidden !important;
  background: transparent !important;
  z-index: 1 !important;
}
body.public-tv-layout .script-sponsored-badge {
  position: absolute !important;
  top: 8px !important;
  right: 8px !important;
  left: auto !important;
  z-index: 4 !important;
  pointer-events: none !important;
  font-size: 9px !important;
  line-height: 1 !important;
  padding: 5px 7px !important;
  border-radius: 999px !important;
  background: rgba(0,0,0,.74) !important;
  color: #fff !important;
  border: 1px solid rgba(255,255,255,.24) !important;
}

/* O overlay fica acima do IMA somente para o botão manual. A área transparente
   não captura toque; o criativo e o Skip nativo continuam clicáveis. */
@media (max-width: 1024px), (pointer: coarse) {
  
  
  
}

/* ======================================================================
   v2.8.77 - criativo de script 300x250 100% responsivo sem recorte
   - O anúncio mantém uma viewport lógica de 300x250.
   - O iframe inteiro é escalado proporcionalmente (contain), nunca cover.
   - Em cards mais largos, sobra espaço lateral em vez de cortar o criativo.
   ====================================================================== */
body.public-tv-layout .gp-script-sponsored-card,
body.public-tv-layout .gp-tv-channel-card.gp-script-sponsored-card,
body.public-tv-layout .channel-card.script-sponsored-card {
  display: block !important;
  overflow: hidden !important;
  background: #07090d !important;
}
body.public-tv-layout .sponsored-script-viewport {
  position: absolute !important;
  inset: 0 !important;
  width: 100% !important;
  height: 100% !important;
  min-width: 0 !important;
  min-height: 0 !important;
  overflow: hidden !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  background: transparent !important;
  z-index: 1 !important;
}
body.public-tv-layout .sponsored-script-frame {
  --sponsored-script-scale: 1;
  position: relative !important;
  left: auto !important;
  top: auto !important;
  right: auto !important;
  bottom: auto !important;
  inset: auto !important;
  flex: 0 0 300px !important;
  width: 300px !important;
  height: 250px !important;
  min-width: 300px !important;
  min-height: 250px !important;
  max-width: none !important;
  max-height: none !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  overflow: hidden !important;
  background: transparent !important;
  transform-origin: center center !important;
  transform: scale(var(--sponsored-script-scale)) !important;
  z-index: 1 !important;
}
body.public-tv-layout .gp-script-sponsored-card::before,
body.public-tv-layout .gp-script-sponsored-card::after,
body.public-tv-layout .channel-card.script-sponsored-card::before,
body.public-tv-layout .channel-card.script-sponsored-card::after,
body.public-tv-layout .gp-tv-channel-card.gp-script-sponsored-card::before,
body.public-tv-layout .gp-tv-channel-card.gp-script-sponsored-card::after {
  pointer-events: none !important;
}


/* ======================================================================
   v2.8.78 - VAST real usa superfície de vídeo dedicada no desktop
   + camada manual de skip que não bloqueia o IMA no smartphone
   ====================================================================== */


@media (min-width: 1025px) {
  

  

  
}

/* O IMA recebe clique em toda a área. Esta camada só recebe clique no botão manual. */




/* No smartphone, o overlay informativo some assim que o VAST fica pronto.
   Portanto toda a superfície do Google IMA, inclusive o Skip nativo, fica tocável. */
@media (max-width: 1024px), (hover: none) and (pointer: coarse) {
  
  
}

/* ======================================================================
   v2.8.79 - Player VAST direto para InLine progressivo (HilltopAds/VAST 3)
   O vídeo real usa a mesma superfície dedicada do teste genérico.
   O IMA permanece como fallback e não cobre o botão manual no mobile.
   ====================================================================== */




/* ======================================================================
   v2.8.82 - centralização real do criativo patrocinado 300x250
   - viewport centraliza pelo layout (flex), não por translate + scale.
   - o iframe só escala proporcionalmente, então nunca desloca para a esquerda.
   ====================================================================== */
body.public-tv-layout .gp-script-sponsored-card .sponsored-script-viewport,
body.public-tv-layout .gp-tv-channel-card.gp-script-sponsored-card .sponsored-script-viewport,
body.public-tv-layout .channel-card.script-sponsored-card .sponsored-script-viewport {
  position: absolute !important;
  inset: 0 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 100% !important;
  height: 100% !important;
  overflow: hidden !important;
}
body.public-tv-layout .gp-script-sponsored-card .sponsored-script-frame,
body.public-tv-layout .gp-tv-channel-card.gp-script-sponsored-card .sponsored-script-frame,
body.public-tv-layout .channel-card.script-sponsored-card .sponsored-script-frame {
  position: relative !important;
  inset: auto !important;
  left: auto !important;
  top: auto !important;
  right: auto !important;
  bottom: auto !important;
  flex: 0 0 300px !important;
  width: 300px !important;
  height: 250px !important;
  min-width: 300px !important;
  min-height: 250px !important;
  margin: 0 !important;
  transform-origin: center center !important;
  transform: scale(var(--sponsored-script-scale, 1)) !important;
}

/* ======================================================================
   v2.8.83 - Card patrocinado 300x250 sem deslocamento por transform
   - A viewport centraliza uma moldura no tamanho visual real.
   - O iframe 300x250 fica dentro dela com transform-origin no canto superior.
   - Remove overlays herdados dos cards de canal que podiam mascarar o criativo.
   ====================================================================== */
body.public-tv-layout .gp-script-sponsored-card,
body.public-tv-layout .gp-tv-channel-card.gp-script-sponsored-card,
body.public-tv-layout .channel-card.script-sponsored-card {
  position: relative !important;
  display: block !important;
  overflow: hidden !important;
  padding: 0 !important;
  background: #000 !important;
  isolation: isolate !important;
  contain: layout paint style !important;
}

body.public-tv-layout .gp-script-sponsored-card::before,
body.public-tv-layout .gp-script-sponsored-card::after,
body.public-tv-layout .gp-tv-channel-card.gp-script-sponsored-card::before,
body.public-tv-layout .gp-tv-channel-card.gp-script-sponsored-card::after,
body.public-tv-layout .channel-card.script-sponsored-card::before,
body.public-tv-layout .channel-card.script-sponsored-card::after {
  content: none !important;
  display: none !important;
}

body.public-tv-layout .gp-script-sponsored-card .sponsored-script-viewport,
body.public-tv-layout .gp-tv-channel-card.gp-script-sponsored-card .sponsored-script-viewport,
body.public-tv-layout .channel-card.script-sponsored-card .sponsored-script-viewport {
  position: absolute !important;
  inset: 0 !important;
  width: 100% !important;
  height: 100% !important;
  display: grid !important;
  place-items: center !important;
  overflow: hidden !important;
  background: #000 !important;
  z-index: 1 !important;
}

body.public-tv-layout .gp-script-sponsored-card .sponsored-script-fit,
body.public-tv-layout .gp-tv-channel-card.gp-script-sponsored-card .sponsored-script-fit,
body.public-tv-layout .channel-card.script-sponsored-card .sponsored-script-fit {
  position: relative !important;
  flex: 0 0 auto !important;
  width: 300px;
  height: 250px;
  max-width: 100% !important;
  max-height: 100% !important;
  overflow: hidden !important;
  background: transparent !important;
  z-index: 1 !important;
}

body.public-tv-layout .gp-script-sponsored-card .sponsored-script-frame,
body.public-tv-layout .gp-tv-channel-card.gp-script-sponsored-card .sponsored-script-frame,
body.public-tv-layout .channel-card.script-sponsored-card .sponsored-script-frame {
  position: absolute !important;
  inset: 0 auto auto 0 !important;
  left: 0 !important;
  top: 0 !important;
  right: auto !important;
  bottom: auto !important;
  display: block !important;
  flex: none !important;
  width: 300px !important;
  height: 250px !important;
  min-width: 300px !important;
  min-height: 250px !important;
  max-width: none !important;
  max-height: none !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  background: transparent !important;
  transform-origin: top left !important;
  transform: scale(var(--sponsored-script-scale, 1)) !important;
  z-index: 1 !important;
}

body.public-tv-layout .gp-script-sponsored-card .script-sponsored-badge,
body.public-tv-layout .gp-tv-channel-card.gp-script-sponsored-card .script-sponsored-badge,
body.public-tv-layout .channel-card.script-sponsored-card .script-sponsored-badge {
  z-index: 4 !important;
}

/* v2.8.83 - desktop/PC acima de 1025px: VAST direto sempre na camada visivel. */
@media (min-width: 1025px) {
  

  
}

/* ======================================================================
   v2.8.84 - VAST desktop/TV preserva a altura real do palco
   Uma regra legada tornava o palco relativo durante o anuncio. Como os
   players normais ficam ocultos nesse momento, a altura calculada virava 0.
   ====================================================================== */
@media (min-width: 1025px) {
  

  
}

/* v2.8.85 - regras finais contra CSS legado carregado antes deste build. */
body.public-tv-layout.tv-app-experience #gpChannelDrawer,
body.public-tv-layout.tv-app-experience .gp-channel-drawer,
body.public-tv-layout.tv-app-experience #gpChannelRail,
body.public-tv-layout.tv-app-experience .gp-channel-rail {
  display: none !important;
  visibility: hidden !important;
  opacity: 0 !important;
  pointer-events: none !important;
}

body.public-tv-layout.tv-app-experience #gpTvChannelLayer {
  z-index: 2147482000 !important;
}

body.admin-ux-v2867.admin-dashboard-v2885 {
  background: #090b0f !important;
}

body.admin-ux-v2867.admin-dashboard-v2885 .bg-glow {
  display: none !important;
}

body.admin-ux-v2867.admin-dashboard-v2885,
body.admin-ux-v2867.admin-dashboard-v2885 * {
  letter-spacing: 0 !important;
}

body.admin-ux-v2867.admin-dashboard-v2885 .admin-layout-pro {
  width: min(1500px, calc(100% - 32px)) !important;
  grid-template-columns: 252px minmax(0, 1fr) !important;
}

body.admin-ux-v2867.admin-dashboard-v2885 .admin-main {
  display: block !important;
}

body.admin-ux-v2867.admin-dashboard-v2885 .admin-view[hidden],
body.admin-ux-v2867.admin-dashboard-v2885 [data-channel-panel][hidden],
body.admin-ux-v2867.admin-dashboard-v2885 .admin-view:not(.is-active) {
  display: none !important;
}

body.admin-ux-v2867.admin-dashboard-v2885 .admin-view.is-active {
  display: grid !important;
  gap: 18px !important;
}

body.admin-ux-v2867.admin-dashboard-v2885 .admin-sidebar.card,
body.admin-ux-v2867.admin-dashboard-v2885 .admin-hero.card,
body.admin-ux-v2867.admin-dashboard-v2885 .admin-cache-panel,
body.admin-ux-v2867.admin-dashboard-v2885 .metric-card-pro,
body.admin-ux-v2867.admin-dashboard-v2885 .form-card,
body.admin-ux-v2867.admin-dashboard-v2885 .table-card,
body.admin-ux-v2867.admin-dashboard-v2885 .clients-card,
body.admin-ux-v2867.admin-dashboard-v2885 #issuesCard,
body.admin-ux-v2867.admin-dashboard-v2885 #siteSettingsCard,
body.admin-ux-v2867.admin-dashboard-v2885 .admin-modal-card {
  border-radius: 8px !important;
}

body.admin-ux-v2867.admin-dashboard-v2885 .admin-sidebar.card {
  background: #101319 !important;
}

body.admin-ux-v2867.admin-dashboard-v2885 .admin-nav a,
body.admin-ux-v2867.admin-dashboard-v2885 .btn,
body.admin-ux-v2867.admin-dashboard-v2885 button,
body.admin-ux-v2867.admin-dashboard-v2885 input,
body.admin-ux-v2867.admin-dashboard-v2885 select,
body.admin-ux-v2867.admin-dashboard-v2885 textarea,
body.admin-ux-v2867.admin-dashboard-v2885 .admin-global-search,
body.admin-ux-v2867.admin-dashboard-v2885 .admin-field-card {
  border-radius: 6px !important;
}

body.admin-ux-v2867.admin-dashboard-v2885 .admin-nav a.active {
  color: #fff !important;
  background: rgba(53, 183, 255, .1) !important;
  border-color: rgba(53, 183, 255, .32) !important;
  border-left: 3px solid #35b7ff !important;
  transform: none !important;
}

body.admin-ux-v2867.admin-dashboard-v2885 .admin-hero.card {
  grid-template-columns: minmax(0, 1fr) 260px !important;
  padding: 22px !important;
  background: #12161d !important;
}

body.admin-ux-v2867.admin-dashboard-v2885 .admin-hero h1 {
  font-size: clamp(1.55rem, 2vw, 2.1rem) !important;
  line-height: 1.12 !important;
}

body.admin-ux-v2867.admin-dashboard-v2885 .admin-cache-panel {
  padding: 18px !important;
  background: #101820 !important;
}

body.admin-ux-v2867.admin-dashboard-v2885 .admin-stats {
  grid-template-columns: repeat(5, minmax(140px, 1fr)) !important;
  gap: 10px !important;
}

body.admin-ux-v2867.admin-dashboard-v2885 .metric-card-pro {
  min-height: 118px !important;
  padding: 14px !important;
  background: #12161d !important;
}

body.admin-ux-v2867.admin-dashboard-v2885 .admin-grid {
  grid-template-columns: minmax(0, 1fr) !important;
  gap: 0 !important;
}

body.admin-ux-v2867.admin-dashboard-v2885 .admin-view-head {
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 18px !important;
  padding: 2px 2px 10px !important;
  border-bottom: 1px solid rgba(255, 255, 255, .08) !important;
}

body.admin-ux-v2867.admin-dashboard-v2885 .admin-view-head h1 {
  margin: 3px 0 4px !important;
  font-size: clamp(1.45rem, 2vw, 1.9rem) !important;
  line-height: 1.15 !important;
}

body.admin-ux-v2867.admin-dashboard-v2885 .admin-view-head p {
  margin: 0 !important;
  color: var(--admin-muted) !important;
}

body.admin-ux-v2867.admin-dashboard-v2885 .admin-channel-tabs {
  display: inline-flex !important;
  gap: 4px !important;
  padding: 4px !important;
  border: 1px solid rgba(255, 255, 255, .09) !important;
  border-radius: 8px !important;
  background: rgba(255, 255, 255, .035) !important;
}

body.admin-ux-v2867.admin-dashboard-v2885 .admin-channel-tabs button {
  min-height: 38px !important;
  padding: 0 13px !important;
  color: var(--admin-muted) !important;
  background: transparent !important;
  border: 1px solid transparent !important;
  box-shadow: none !important;
}

body.admin-ux-v2867.admin-dashboard-v2885 .admin-channel-tabs button.active {
  color: #fff !important;
  background: #216d99 !important;
  border-color: #35b7ff !important;
}

@media (max-width: 1180px) {
  body.admin-ux-v2867.admin-dashboard-v2885 .admin-layout-pro {
    grid-template-columns: 224px minmax(0, 1fr) !important;
  }

  body.admin-ux-v2867.admin-dashboard-v2885 .admin-stats {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  }
}

@media (max-width: 980px) {
  body.admin-ux-v2867.admin-dashboard-v2885 .admin-layout-pro {
    width: min(100% - 24px, 900px) !important;
    grid-template-columns: 1fr !important;
    padding-top: 84px !important;
  }
}

@media (max-width: 720px) {
  body.admin-ux-v2867.admin-dashboard-v2885 .admin-view.is-active {
    gap: 12px !important;
  }

  body.admin-ux-v2867.admin-dashboard-v2885 .admin-view-head {
    align-items: stretch !important;
    flex-direction: column !important;
  }

  body.admin-ux-v2867.admin-dashboard-v2885 .admin-channel-tabs {
    width: 100% !important;
  }

  body.admin-ux-v2867.admin-dashboard-v2885 .admin-channel-tabs button {
    flex: 1 1 0 !important;
    justify-content: center !important;
  }

  body.admin-ux-v2867.admin-dashboard-v2885 .admin-hero.card,
  body.admin-ux-v2867.admin-dashboard-v2885 .admin-cache-panel {
    grid-template-columns: 1fr !important;
  }

  body.admin-ux-v2867.admin-dashboard-v2885 .admin-stats {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
}

@media (max-width: 460px) {
  body.admin-ux-v2867.admin-dashboard-v2885 .admin-stats {
    grid-template-columns: 1fr !important;
  }
}

/* v2.8.86 - o backdrop mobile nunca pode capturar os cliques do menu. */
@media (max-width: 980px) {
  body.admin-ux-v2867.admin-dashboard-v2885 #adminSidebarBackdrop,
  body.admin-ux-v2867.admin-dashboard-v2885.admin-sidebar-open #adminSidebarBackdrop,
  body.admin-ux-v2867.admin-dashboard-v2885 #adminSidebarBackdrop:not([hidden]) {
    display: none !important;
    visibility: hidden !important;
    opacity: 0 !important;
    pointer-events: none !important;
  }

  body.admin-ux-v2867.admin-dashboard-v2885 .admin-sidebar.card,
  body.admin-ux-v2867.admin-dashboard-v2885 .admin-sidebar.card.is-open {
    z-index: 120 !important;
    pointer-events: auto !important;
  }

  body.admin-ux-v2867.admin-dashboard-v2885 .admin-mobile-topbar {
    z-index: 130 !important;
  }

  body.admin-ux-v2867.admin-dashboard-v2885.admin-sidebar-open {
    overflow: hidden !important;
  }
}

/* v2.8.88 - prioridade final sobre o histórico de compatibilidade. */
body.public-tv-layout:not(.tv-app-experience) .public-tv-topbar {
  left: 0 !important;
  right: 0 !important;
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
  border-radius: 0 !important;
  box-sizing: border-box !important;
}

body.public-tv-layout:not(.tv-app-experience) .gp-top-info #gpNowTitle,
body.public-tv-layout:not(.tv-app-experience) .gp-top-info > strong {
  font-size: 1.3rem !important;
  line-height: 1.12 !important;
  letter-spacing: 0 !important;
}

body.public-tv-layout.tv-app-experience .gp-top-info #gpNowTitle,
body.public-tv-layout.tv-app-experience .gp-top-info > strong {
  font-size: 23px !important;
  line-height: 1.1 !important;
  letter-spacing: 0 !important;
}

body.public-tv-layout.tv-app-experience .gp-top-info #gpNowMeta,
body.public-tv-layout.tv-app-experience .gp-top-info #gpNowTime {
  font-size: 13px !important;
}

body.public-tv-layout.tv-app-experience .gp-next-box #gpNextMeta,
body.public-tv-layout.tv-app-experience .gp-next-box em,
body.public-tv-layout.tv-app-experience .gp-next-label,
body.public-tv-layout.tv-app-experience .gp-schedule-line,
body.public-tv-layout.tv-app-experience .gp-signal-pill {
  font-size: 11px !important;
}

body.admin-ux-v2867 #adminSidebarBackdrop,
body.admin-ux-v2867.admin-sidebar-open #adminSidebarBackdrop,
body.admin-ux-v2867 #adminSidebarBackdrop:not([hidden]) {
  display: none !important;
  visibility: hidden !important;
  opacity: 0 !important;
  pointer-events: none !important;
}

@media (max-width: 1024px) {
  body.public-tv-layout:not(.tv-app-experience) .public-tv-topbar {
    position: sticky !important;
    top: 0 !important;
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
  }

  body.public-tv-layout:not(.tv-app-experience) .gp-top-info #gpNowTitle,
  body.public-tv-layout:not(.tv-app-experience) .gp-top-info > strong {
    font-size: 17px !important;
  }
}

@media (max-width: 980px) {
  body.admin-ux-v2867.admin-dashboard-v2885 .admin-mobile-topbar {
    inset: 0 0 auto 0 !important;
    width: 100% !important;
    max-width: none !important;
    height: 56px !important;
    margin: 0 !important;
    border-radius: 0 !important;
    z-index: 1000 !important;
  }

  body.admin-ux-v2867.admin-dashboard-v2885 .admin-sidebar.card,
  body.admin-ux-v2867.admin-dashboard-v2885 .admin-sidebar.card.is-open {
    top: 56px !important;
    left: 0 !important;
    bottom: 0 !important;
    width: min(300px, 86vw) !important;
    height: auto !important;
    margin: 0 !important;
    border-radius: 0 8px 8px 0 !important;
    z-index: 990 !important;
    pointer-events: auto !important;
  }
}

@media (max-width: 560px) {
  body.public-tv-layout:not(.tv-app-experience) .gp-top-info #gpNowTitle,
  body.public-tv-layout:not(.tv-app-experience) .gp-top-info > strong {
    font-size: 15px !important;
  }
}

/* A especificidade abaixo neutraliza tamanhos antigos do player TV. */
html body.public-tv-layout.tv-app-experience #playerStage #gpPlayerChrome .gp-top-info #gpNowTitle {
  font-size: 23px !important;
  line-height: 1.1 !important;
  letter-spacing: 0 !important;
}

html body.public-tv-layout.tv-app-experience #playerStage #gpPlayerChrome .gp-top-info #gpNowMeta,
html body.public-tv-layout.tv-app-experience #playerStage #gpPlayerChrome .gp-top-info #gpNowTime {
  font-size: 13px !important;
  line-height: 1.2 !important;
}

html body.public-tv-layout.tv-app-experience #playerStage #gpPlayerChrome .gp-top-info #gpNextMeta,
html body.public-tv-layout.tv-app-experience #playerStage #gpPlayerChrome .gp-top-info .gp-next-label {
  font-size: 11px !important;
  line-height: 1.15 !important;
}

a.channel-card,
a.gp-channel-card,
a.gp-tv-channel-card,
a.quick-channel-btn {
  text-decoration: none;
}

/* ======================================================================
   v2.8.89 - Player responsivo e controles com acabamento profissional
   Esta camada final neutraliza dimensoes legadas sem alterar VAST ou EPG.
   ====================================================================== */
body.public-tv-layout {
  --player-surface: #0f0f0f;
  --player-surface-raised: #212121;
  --player-surface-hover: #303030;
  --player-border: rgba(255, 255, 255, .14);
  --player-text: #f1f1f1;
  --player-muted: #aaa;
  --player-live: #ff0033;
  background: var(--player-surface) !important;
  color: var(--player-text) !important;
}

body.public-tv-layout .public-tv-topbar *,
body.public-tv-layout .gp-player-chrome *,
body.public-tv-layout .gp-tv-channel-layer * {
  letter-spacing: 0 !important;
}

body.public-tv-layout:not(.tv-app-experience) .public-tv-topbar {
  min-height: 64px !important;
  height: 64px !important;
  padding: 0 24px !important;
  gap: 18px !important;
  background: rgba(15, 15, 15, .98) !important;
  border: 0 !important;
  border-bottom: 1px solid rgba(255, 255, 255, .08) !important;
  box-shadow: none !important;
}

body.public-tv-layout:not(.tv-app-experience) .tv-brand,
body.public-tv-layout:not(.tv-app-experience) .tv-main-nav a,
body.public-tv-layout:not(.tv-app-experience) .tv-account-link,
body.public-tv-layout:not(.tv-app-experience) .tv-login-btn,
body.public-tv-layout:not(.tv-app-experience) .tv-round-action,
body.public-tv-layout:not(.tv-app-experience) .tv-mobile-menu-toggle {
  min-height: 40px !important;
  border-radius: 8px !important;
}

body.public-tv-layout:not(.tv-app-experience) .tv-main-nav a:hover,
body.public-tv-layout:not(.tv-app-experience) .tv-main-nav a:focus-visible,
body.public-tv-layout:not(.tv-app-experience) .tv-account-link:hover,
body.public-tv-layout:not(.tv-app-experience) .tv-login-btn:hover,
body.public-tv-layout:not(.tv-app-experience) .tv-round-action:hover,
body.public-tv-layout:not(.tv-app-experience) .tv-mobile-menu-toggle:hover {
  background: var(--player-surface-hover) !important;
  color: #fff !important;
}

body.public-tv-layout:not(.tv-app-experience) .tv-search {
  min-height: 40px !important;
  border-radius: 8px !important;
  border-color: var(--player-border) !important;
  background: #121212 !important;
}

body.public-tv-layout:not(.tv-app-experience) .tv-search:focus-within {
  border-color: #3ea6ff !important;
  box-shadow: 0 0 0 1px #3ea6ff !important;
}

body.public-tv-layout:not(.tv-app-experience) .public-player-panel,
body.public-tv-layout:not(.tv-app-experience) .player-stage.public-player-stage {
  border-radius: 0 !important;
  background: #000 !important;
}

body.public-tv-layout:not(.tv-app-experience) .gp-player-chrome {
  background:
    linear-gradient(180deg, rgba(0, 0, 0, .58) 0%, rgba(0, 0, 0, 0) 30%),
    linear-gradient(180deg, rgba(0, 0, 0, 0) 52%, rgba(0, 0, 0, .86) 100%) !important;
}

/* EPG fora do modo TV: linhas automaticas, sem a grade fixa que cortava texto. */
html body.public-tv-layout:not(.tv-app-experience) #playerStage #gpPlayerChrome .gp-top-info {
  position: absolute !important;
  inset: 24px auto auto 24px !important;
  width: min(520px, calc(100% - 300px)) !important;
  height: auto !important;
  min-height: 0 !important;
  max-height: none !important;
  padding: 0 !important;
  margin: 0 !important;
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) !important;
  grid-template-rows: repeat(5, max-content) !important;
  grid-template-areas: "line" "title" "meta" "bar" "next" !important;
  align-content: start !important;
  align-items: start !important;
  gap: 6px !important;
  overflow: visible !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  text-shadow: 0 2px 8px rgba(0, 0, 0, .9) !important;
  box-sizing: border-box !important;
}

body.public-tv-layout:not(.tv-app-experience) .gp-top-info .gp-live-logo,
body.public-tv-layout:not(.tv-app-experience) .gp-top-info .gp-tv-info-actions {
  display: none !important;
}

body.public-tv-layout:not(.tv-app-experience) .gp-top-info .gp-schedule-line {
  grid-area: line !important;
  width: 100% !important;
  height: auto !important;
  min-height: 22px !important;
  display: flex !important;
  align-items: center !important;
  flex-wrap: wrap !important;
  gap: 6px !important;
  overflow: visible !important;
  color: #fff !important;
}

body.public-tv-layout:not(.tv-app-experience) .gp-top-info .gp-signal-pill {
  min-height: 22px !important;
  padding: 0 8px !important;
  display: inline-flex !important;
  align-items: center !important;
  border: 0 !important;
  border-radius: 4px !important;
  background: var(--player-live) !important;
  color: #fff !important;
  font-size: 11px !important;
  line-height: 1 !important;
  font-weight: 800 !important;
  text-transform: uppercase !important;
}

html body.public-tv-layout:not(.tv-app-experience) #playerStage #gpPlayerChrome .gp-top-info #gpNowTime {
  height: auto !important;
  min-width: 0 !important;
  display: block !important;
  overflow: visible !important;
  white-space: normal !important;
  color: rgba(255, 255, 255, .88) !important;
  font-size: 12px !important;
  line-height: 1.3 !important;
  font-weight: 700 !important;
}

html body.public-tv-layout:not(.tv-app-experience) #playerStage #gpPlayerChrome .gp-top-info #gpNowTitle {
  grid-area: title !important;
  width: 100% !important;
  height: auto !important;
  min-width: 0 !important;
  max-width: 100% !important;
  margin: 0 !important;
  display: -webkit-box !important;
  -webkit-box-orient: vertical !important;
  -webkit-line-clamp: 2 !important;
  overflow: hidden !important;
  overflow-wrap: anywhere !important;
  white-space: normal !important;
  text-overflow: clip !important;
  color: #fff !important;
  font-size: 22px !important;
  line-height: 1.2 !important;
  font-weight: 700 !important;
}

html body.public-tv-layout:not(.tv-app-experience) #playerStage #gpPlayerChrome .gp-top-info #gpNowMeta {
  grid-area: meta !important;
  width: 100% !important;
  height: auto !important;
  min-width: 0 !important;
  max-width: 100% !important;
  display: -webkit-box !important;
  -webkit-box-orient: vertical !important;
  -webkit-line-clamp: 2 !important;
  overflow: hidden !important;
  overflow-wrap: anywhere !important;
  white-space: normal !important;
  text-overflow: clip !important;
  color: rgba(255, 255, 255, .82) !important;
  font-size: 13px !important;
  line-height: 1.35 !important;
  font-weight: 500 !important;
}

body.public-tv-layout:not(.tv-app-experience) .gp-top-info .gp-info-progress {
  grid-area: bar !important;
  width: min(280px, 70%) !important;
  height: 3px !important;
  min-height: 3px !important;
  margin: 1px 0 !important;
  overflow: hidden !important;
  border-radius: 2px !important;
  background: rgba(255, 255, 255, .28) !important;
}

body.public-tv-layout:not(.tv-app-experience) .gp-top-info .gp-info-progress span {
  background: var(--player-live) !important;
}

html body.public-tv-layout:not(.tv-app-experience) #playerStage #gpPlayerChrome .gp-top-info .gp-next-box {
  grid-area: next !important;
  width: min(100%, 460px) !important;
  height: auto !important;
  min-height: 24px !important;
  max-height: none !important;
  margin: 1px 0 0 !important;
  padding: 0 !important;
  display: grid !important;
  grid-template-columns: max-content minmax(0, 1fr) !important;
  grid-template-rows: max-content !important;
  grid-template-areas: "label content" !important;
  align-items: start !important;
  gap: 8px !important;
  overflow: visible !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}

body.public-tv-layout:not(.tv-app-experience) .gp-top-info .gp-next-label {
  grid-area: label !important;
  grid-column: 1 !important;
  grid-row: 1 !important;
  padding-top: 1px !important;
  color: var(--player-muted) !important;
  font-size: 12px !important;
  line-height: 1.35 !important;
  font-weight: 700 !important;
  text-transform: none !important;
}

html body.public-tv-layout:not(.tv-app-experience) #playerStage #gpPlayerChrome .gp-top-info .gp-next-box #gpNextMeta {
  grid-area: content !important;
  grid-column: 2 !important;
  grid-row: 1 !important;
  width: 100% !important;
  height: auto !important;
  min-width: 0 !important;
  display: -webkit-box !important;
  -webkit-box-orient: vertical !important;
  -webkit-line-clamp: 2 !important;
  overflow: hidden !important;
  overflow-wrap: anywhere !important;
  white-space: normal !important;
  text-overflow: clip !important;
  color: #fff !important;
  font-size: 12px !important;
  line-height: 1.35 !important;
  font-style: normal !important;
  font-weight: 600 !important;
}

/* Controles com alvos estaveis e linguagem visual de player de video. */
body.public-tv-layout:not(.tv-app-experience) .gp-embed-top-actions {
  top: 16px !important;
  right: 16px !important;
  min-height: 40px !important;
  display: flex !important;
  align-items: center !important;
  gap: 8px !important;
}

body.public-tv-layout:not(.tv-app-experience) .gp-icon-btn,
body.public-tv-layout:not(.tv-app-experience) .gp-embed-top-actions .gp-embed-action,
body.public-tv-layout:not(.tv-app-experience) .gp-control-actions .gp-icon-btn {
  width: 40px !important;
  min-width: 40px !important;
  height: 40px !important;
  min-height: 40px !important;
  padding: 0 !important;
  display: inline-grid !important;
  place-items: center !important;
  border: 0 !important;
  border-radius: 50% !important;
  background: rgba(33, 33, 33, .9) !important;
  color: #fff !important;
  box-shadow: none !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
  font-size: 17px !important;
}

body.public-tv-layout:not(.tv-app-experience) .gp-embed-top-actions .gp-football-open-btn,
body.public-tv-layout:not(.tv-app-experience) .gp-embed-top-actions .gp-admin-vast-test-btn {
  width: auto !important;
  min-width: 40px !important;
  padding: 0 12px !important;
  display: inline-flex !important;
  gap: 7px !important;
  border-radius: 8px !important;
  font-size: 12px !important;
  font-weight: 700 !important;
}

body.public-tv-layout:not(.tv-app-experience) .gp-icon-btn:hover,
body.public-tv-layout:not(.tv-app-experience) .gp-embed-action:hover,
body.public-tv-layout:not(.tv-app-experience) .gp-rail-arrow:hover {
  background: rgba(255, 255, 255, .2) !important;
  color: #fff !important;
}

body.public-tv-layout .gp-icon-btn:focus-visible,
body.public-tv-layout .gp-embed-action:focus-visible,
body.public-tv-layout .gp-channel-card:focus-visible,
body.public-tv-layout .category-tab:focus-visible,
body.public-tv-layout .gp-tv-channel-card:focus-visible,
body.public-tv-layout .gp-tv-category-tab:focus-visible {
  outline: 2px solid #fff !important;
  outline-offset: 2px !important;
  transform: none !important;
}

body.public-tv-layout:not(.tv-app-experience) .gp-control-row {
  min-height: 52px !important;
  padding: 0 20px !important;
  gap: 12px !important;
}

body.public-tv-layout:not(.tv-app-experience) .gp-control-actions,
body.public-tv-layout:not(.tv-app-experience) .gp-volume-wrap {
  min-width: 0 !important;
  display: flex !important;
  align-items: center !important;
  gap: 8px !important;
}

body.public-tv-layout:not(.tv-app-experience) .gp-volume-range {
  width: 96px !important;
  accent-color: #fff !important;
}

body.public-tv-layout:not(.tv-app-experience) .gp-now-pill,
body.public-tv-layout:not(.tv-app-experience) .gp-channel-badge {
  border-radius: 4px !important;
  background: var(--player-live) !important;
  color: #fff !important;
}

/* Trilho: miniaturas legiveis, cantos discretos e filtros segmentados. */
html body.public-tv-layout:not(.tv-app-experience) #playerStage #gpPlayerChrome #gpChannelDrawer {
  bottom: 0 !important;
  margin: 0 !important;
  padding-bottom: 68px !important;
  background: linear-gradient(180deg, transparent 0%, rgba(0, 0, 0, .74) 28%, rgba(0, 0, 0, .94) 100%) !important;
}

body.public-tv-layout:not(.tv-app-experience) .gp-category-strip {
  gap: 8px !important;
  padding-inline: 20px !important;
}

body.public-tv-layout:not(.tv-app-experience) .category-tab {
  min-height: 38px !important;
  padding: 0 14px !important;
  border: 1px solid rgba(255, 255, 255, .12) !important;
  border-radius: 8px !important;
  background: rgba(255, 255, 255, .1) !important;
  color: #fff !important;
  font-size: 13px !important;
  font-weight: 600 !important;
}

body.public-tv-layout:not(.tv-app-experience) .category-tab.active {
  border-color: #fff !important;
  background: #fff !important;
  color: #0f0f0f !important;
}

body.public-tv-layout:not(.tv-app-experience) .gp-channel-card {
  flex: 0 0 210px !important;
  width: 210px !important;
  min-width: 210px !important;
  height: 118px !important;
  min-height: 118px !important;
  border: 1px solid transparent !important;
  border-radius: 8px !important;
  background: #181818 !important;
  box-shadow: none !important;
  overflow: hidden !important;
}

body.public-tv-layout:not(.tv-app-experience) .gp-channel-card:hover {
  border-color: rgba(255, 255, 255, .42) !important;
  transform: none !important;
}

body.public-tv-layout:not(.tv-app-experience) .gp-channel-card.active {
  border: 2px solid #fff !important;
  box-shadow: inset 0 -3px 0 var(--player-live) !important;
}

body.public-tv-layout:not(.tv-app-experience) .gp-channel-card-copy {
  min-width: 0 !important;
}

body.public-tv-layout:not(.tv-app-experience) .gp-channel-card-copy b {
  display: none !important;
}

body.public-tv-layout:not(.tv-app-experience) .gp-channel-card-copy strong,
body.public-tv-layout:not(.tv-app-experience) .gp-channel-card-copy small {
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  white-space: nowrap !important;
}

body.public-tv-layout:not(.tv-app-experience) .gp-rail-arrow {
  width: 44px !important;
  min-width: 44px !important;
  height: 44px !important;
  min-height: 44px !important;
  border: 1px solid var(--player-border) !important;
  border-radius: 50% !important;
  background: rgba(33, 33, 33, .94) !important;
  box-shadow: none !important;
}

/* TV: EPG compacto acima da unica camada de canais, sem sobreposicao. */
html body.public-tv-layout.tv-app-experience #playerStage #gpPlayerChrome .gp-top-info {
  position: absolute !important;
  inset: auto auto calc(var(--tv-safe-bottom, 28px) + var(--tv-rail-h-expanded, 150px) + 112px) var(--tv-safe-x, 56px) !important;
  width: min(620px, calc(100vw - 360px)) !important;
  max-width: 620px !important;
  height: auto !important;
  min-height: 0 !important;
  max-height: none !important;
  padding: 0 !important;
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) !important;
  grid-template-rows: repeat(4, max-content) !important;
  align-content: end !important;
  align-items: start !important;
  gap: 5px !important;
  overflow: visible !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  text-shadow: 0 2px 10px rgba(0, 0, 0, .94) !important;
}

body.public-tv-layout.tv-app-experience .gp-top-info .gp-live-logo,
body.public-tv-layout.tv-app-experience .gp-top-info .gp-info-progress,
body.public-tv-layout.tv-app-experience .gp-top-info .gp-tv-info-actions {
  display: none !important;
}

body.public-tv-layout.tv-app-experience .gp-top-info .gp-schedule-line {
  width: 100% !important;
  height: auto !important;
  min-height: 24px !important;
  display: flex !important;
  align-items: center !important;
  flex-wrap: wrap !important;
  gap: 8px !important;
  overflow: visible !important;
  font-size: 13px !important;
  line-height: 1.3 !important;
}

body.public-tv-layout.tv-app-experience .gp-top-info .gp-signal-pill {
  min-height: 24px !important;
  padding: 0 9px !important;
  border: 0 !important;
  border-radius: 4px !important;
  background: var(--player-live) !important;
  color: #fff !important;
  font-size: 11px !important;
  line-height: 1 !important;
}

html body.public-tv-layout.tv-app-experience #playerStage #gpPlayerChrome .gp-top-info #gpNowTime {
  height: auto !important;
  display: block !important;
  overflow: visible !important;
  white-space: normal !important;
  font-size: 13px !important;
  line-height: 1.3 !important;
}

html body.public-tv-layout.tv-app-experience #playerStage #gpPlayerChrome .gp-top-info #gpNowTitle {
  width: 100% !important;
  height: auto !important;
  max-width: 100% !important;
  margin: 0 !important;
  display: -webkit-box !important;
  -webkit-box-orient: vertical !important;
  -webkit-line-clamp: 2 !important;
  overflow: hidden !important;
  overflow-wrap: anywhere !important;
  white-space: normal !important;
  color: #fff !important;
  font-size: 26px !important;
  line-height: 1.16 !important;
  font-weight: 700 !important;
}

html body.public-tv-layout.tv-app-experience #playerStage #gpPlayerChrome .gp-top-info #gpNowMeta {
  width: 100% !important;
  height: auto !important;
  max-width: 100% !important;
  display: -webkit-box !important;
  -webkit-box-orient: vertical !important;
  -webkit-line-clamp: 2 !important;
  overflow: hidden !important;
  overflow-wrap: anywhere !important;
  white-space: normal !important;
  color: rgba(255, 255, 255, .86) !important;
  font-size: 14px !important;
  line-height: 1.35 !important;
  font-weight: 500 !important;
}

html body.public-tv-layout.tv-app-experience #playerStage #gpPlayerChrome .gp-top-info .gp-next-box {
  width: min(100%, 540px) !important;
  max-width: 540px !important;
  height: auto !important;
  min-height: 24px !important;
  margin: 0 !important;
  padding: 0 !important;
  display: grid !important;
  grid-template-columns: max-content minmax(0, 1fr) !important;
  grid-template-rows: max-content !important;
  grid-template-areas: "label content" !important;
  align-items: start !important;
  gap: 8px !important;
  overflow: visible !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}

html body.public-tv-layout.tv-app-experience #playerStage #gpPlayerChrome .gp-top-info .gp-next-label,
html body.public-tv-layout.tv-app-experience #playerStage #gpPlayerChrome .gp-top-info #gpNextMeta {
  height: auto !important;
  min-width: 0 !important;
  overflow: hidden !important;
  overflow-wrap: anywhere !important;
  white-space: normal !important;
  color: #fff !important;
  font-size: 13px !important;
  line-height: 1.35 !important;
  font-style: normal !important;
}

html body.public-tv-layout.tv-app-experience #playerStage #gpPlayerChrome .gp-top-info .gp-next-label {
  grid-area: label !important;
  grid-column: 1 !important;
  grid-row: 1 !important;
}

html body.public-tv-layout.tv-app-experience #playerStage #gpPlayerChrome .gp-top-info #gpNextMeta {
  grid-area: content !important;
  grid-column: 2 !important;
  grid-row: 1 !important;
  display: -webkit-box !important;
  -webkit-box-orient: vertical !important;
  -webkit-line-clamp: 2 !important;
}

body.public-tv-layout.tv-app-experience .gp-embed-top-actions .gp-embed-action {
  width: 52px !important;
  min-width: 52px !important;
  height: 52px !important;
  min-height: 52px !important;
  padding: 0 !important;
  border: 1px solid rgba(255, 255, 255, .18) !important;
  border-radius: 8px !important;
  background: rgba(33, 33, 33, .9) !important;
  box-shadow: none !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
}

body.public-tv-layout.tv-app-experience .gp-embed-top-actions .gp-football-open-btn {
  width: auto !important;
  padding: 0 14px !important;
}

body.public-tv-layout.tv-app-experience .gp-tv-category-tab {
  min-height: 40px !important;
  border: 1px solid rgba(255, 255, 255, .16) !important;
  border-radius: 8px !important;
  background: rgba(255, 255, 255, .12) !important;
  color: #fff !important;
}

body.public-tv-layout.tv-app-experience .gp-tv-category-tab.active {
  border-color: #fff !important;
  background: #fff !important;
  color: #0f0f0f !important;
}

body.public-tv-layout.tv-app-experience .gp-tv-channel-card {
  border-radius: 8px !important;
}

body.public-tv-layout.tv-app-experience .gp-tv-channel-card-copy b {
  display: none !important;
}

@media (max-width: 1024px) {
  body.public-tv-layout:not(.tv-app-experience) .public-tv-topbar {
    min-height: 56px !important;
    height: 56px !important;
    padding: 0 12px !important;
    gap: 8px !important;
    display: grid !important;
    grid-template-columns: 40px minmax(0, 1fr) 40px !important;
    align-items: center !important;
    justify-content: stretch !important;
  }

  body.public-tv-layout:not(.tv-app-experience) #tvMobileMenuBtn,
  body.public-tv-layout:not(.tv-app-experience) .tv-brand,
  body.public-tv-layout:not(.tv-app-experience) .tv-actions,
  body.public-tv-layout:not(.tv-app-experience) .tv-search {
    position: static !important;
    inset: auto !important;
    margin: 0 !important;
    transform: none !important;
  }

  body.public-tv-layout:not(.tv-app-experience) #tvMobileMenuBtn {
    grid-column: 1 !important;
    grid-row: 1 !important;
    width: 40px !important;
    min-width: 40px !important;
    height: 40px !important;
    padding: 0 !important;
    place-self: center !important;
  }

  body.public-tv-layout:not(.tv-app-experience) .tv-brand {
    grid-column: 2 !important;
    grid-row: 1 !important;
    width: auto !important;
    max-width: 100% !important;
    height: 40px !important;
    min-height: 40px !important;
    padding: 0 8px !important;
    place-self: center !important;
    overflow: hidden !important;
  }

  body.public-tv-layout:not(.tv-app-experience) .tv-brand-copy,
  body.public-tv-layout:not(.tv-app-experience) .tv-brand-copy h1 {
    min-width: 0 !important;
    max-width: 100% !important;
    margin: 0 !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    white-space: nowrap !important;
  }

  body.public-tv-layout:not(.tv-app-experience) .tv-brand-copy p,
  body.public-tv-layout:not(.tv-app-experience) .tv-brand-icon,
  body.public-tv-layout:not(.tv-app-experience) .tv-main-nav,
  body.public-tv-layout:not(.tv-app-experience) .tv-actions > :not(.tv-search) {
    display: none !important;
  }

  body.public-tv-layout:not(.tv-app-experience) .tv-actions {
    grid-column: 3 !important;
    grid-row: 1 !important;
    width: 40px !important;
    height: 40px !important;
    display: grid !important;
    place-items: center !important;
    place-self: center !important;
  }

  body.public-tv-layout:not(.tv-app-experience) .tv-search {
    width: 40px !important;
    min-width: 40px !important;
    height: 40px !important;
    min-height: 40px !important;
    padding: 0 !important;
    display: grid !important;
    place-items: center !important;
    border: 0 !important;
    background: transparent !important;
  }

  body.public-tv-layout:not(.tv-app-experience) .tv-search .search-icon {
    position: static !important;
    margin: 0 !important;
    transform: none !important;
    font-size: 18px !important;
  }

  body.public-tv-layout:not(.tv-app-experience) .tv-search input {
    display: none !important;
  }

  html body.public-tv-layout:not(.tv-app-experience) #playerStage #gpPlayerChrome .gp-top-info {
    inset: 20px auto auto 20px !important;
    width: min(470px, calc(100% - 220px)) !important;
  }

  html body.public-tv-layout:not(.tv-app-experience) #playerStage #gpPlayerChrome .gp-top-info #gpNowTitle {
    font-size: 19px !important;
  }

  html body.public-tv-layout:not(.tv-app-experience) #playerStage #gpPlayerChrome .gp-top-info #gpNowMeta,
  html body.public-tv-layout:not(.tv-app-experience) #playerStage #gpPlayerChrome .gp-top-info #gpNextMeta {
    font-size: 12px !important;
  }
}

@media (max-width: 700px) {
  body.public-tv-layout:not(.tv-app-experience) .public-tv-topbar {
    min-height: 52px !important;
    height: 52px !important;
    padding: 0 max(8px, env(safe-area-inset-right)) 0 max(8px, env(safe-area-inset-left)) !important;
  }

  body.public-tv-layout:not(.tv-app-experience) .tv-mobile-menu-toggle {
    width: 40px !important;
    min-width: 40px !important;
    height: 40px !important;
    padding: 0 !important;
  }

  body.public-tv-layout:not(.tv-app-experience) .tv-brand-copy h1 {
    font-size: 17px !important;
  }

  html body.public-tv-layout:not(.tv-app-experience) #playerStage #gpPlayerChrome .gp-top-info {
    inset: 78px 16px auto 16px !important;
    width: auto !important;
    max-width: none !important;
    grid-template-rows: repeat(5, max-content) !important;
    gap: 5px !important;
  }

  html body.public-tv-layout:not(.tv-app-experience) #playerStage #gpPlayerChrome .gp-top-info #gpNowTitle {
    font-size: 17px !important;
    line-height: 1.22 !important;
  }

  html body.public-tv-layout:not(.tv-app-experience) #playerStage #gpPlayerChrome .gp-top-info #gpNowMeta,
  html body.public-tv-layout:not(.tv-app-experience) #playerStage #gpPlayerChrome .gp-top-info #gpNextMeta,
  body.public-tv-layout:not(.tv-app-experience) .gp-top-info .gp-next-label,
  html body.public-tv-layout:not(.tv-app-experience) #playerStage #gpPlayerChrome .gp-top-info #gpNowTime {
    font-size: 12px !important;
    line-height: 1.35 !important;
  }

  body.public-tv-layout:not(.tv-app-experience) .gp-top-info .gp-info-progress {
    width: min(220px, 68%) !important;
  }

  body.public-tv-layout:not(.tv-app-experience) .gp-embed-top-actions {
    top: 14px !important;
    right: 14px !important;
    gap: 7px !important;
  }

  body.public-tv-layout:not(.tv-app-experience) .gp-icon-btn,
  body.public-tv-layout:not(.tv-app-experience) .gp-embed-top-actions .gp-embed-action,
  body.public-tv-layout:not(.tv-app-experience) .gp-control-actions .gp-icon-btn {
    width: 38px !important;
    min-width: 38px !important;
    height: 38px !important;
    min-height: 38px !important;
    font-size: 16px !important;
  }

  body.public-tv-layout:not(.tv-app-experience) .gp-embed-top-actions .gp-football-open-btn {
    width: 38px !important;
    min-width: 38px !important;
    padding: 0 !important;
    border-radius: 50% !important;
  }

  body.public-tv-layout:not(.tv-app-experience) .gp-embed-top-actions .gp-football-open-btn span,
  body.public-tv-layout:not(.tv-app-experience) .gp-volume-range {
    display: none !important;
  }

  body.public-tv-layout:not(.tv-app-experience) .gp-category-strip {
    gap: 7px !important;
    padding-inline: 16px !important;
  }

  body.public-tv-layout:not(.tv-app-experience) .category-tab {
    min-height: 36px !important;
    padding: 0 12px !important;
    font-size: 12px !important;
  }

  body.public-tv-layout:not(.tv-app-experience) .gp-channel-card {
    flex-basis: 184px !important;
    width: 184px !important;
    min-width: 184px !important;
    height: 108px !important;
    min-height: 108px !important;
  }

  body.public-tv-layout:not(.tv-app-experience) .gp-control-row {
    min-height: 48px !important;
    padding: 0 14px !important;
  }
}

@media (max-width: 420px) {
  html body.public-tv-layout:not(.tv-app-experience) #playerStage #gpPlayerChrome .gp-top-info {
    inset: 72px 16px auto 16px !important;
    gap: 4px !important;
  }

  body.public-tv-layout:not(.tv-app-experience) .gp-top-info .gp-schedule-line {
    min-height: 20px !important;
  }

  body.public-tv-layout:not(.tv-app-experience) .gp-top-info .gp-signal-pill {
    min-height: 20px !important;
    padding: 0 7px !important;
    font-size: 10px !important;
  }

  html body.public-tv-layout:not(.tv-app-experience) #playerStage #gpPlayerChrome .gp-top-info #gpNowTitle {
    font-size: 16px !important;
  }

  html body.public-tv-layout:not(.tv-app-experience) #playerStage #gpPlayerChrome .gp-top-info #gpNowMeta,
  html body.public-tv-layout:not(.tv-app-experience) #playerStage #gpPlayerChrome .gp-top-info #gpNextMeta,
  body.public-tv-layout:not(.tv-app-experience) .gp-top-info .gp-next-label,
  html body.public-tv-layout:not(.tv-app-experience) #playerStage #gpPlayerChrome .gp-top-info #gpNowTime {
    font-size: 11px !important;
  }

  html body.public-tv-layout:not(.tv-app-experience) #playerStage #gpPlayerChrome .gp-top-info .gp-next-box {
    min-height: 20px !important;
    gap: 6px !important;
  }

  body.public-tv-layout:not(.tv-app-experience) .gp-channel-card {
    flex-basis: 176px !important;
    width: 176px !important;
    min-width: 176px !important;
    height: 104px !important;
    min-height: 104px !important;
  }
}

@media (max-width: 360px) {
  html body.public-tv-layout:not(.tv-app-experience) #playerStage #mainVideo,
  html body.public-tv-layout:not(.tv-app-experience) #playerStage #mainFrame {
    height: 240px !important;
    min-height: 240px !important;
    max-height: 240px !important;
    object-fit: contain !important;
    background: #000 !important;
  }

  html body.public-tv-layout:not(.tv-app-experience) #playerStage #gpPlayerChrome .gp-live-controls {
    top: 208px !important;
    bottom: auto !important;
    height: auto !important;
    min-height: 66px !important;
  }

  html body.public-tv-layout:not(.tv-app-experience) #playerStage #gpPlayerChrome .gp-top-info #gpNowMeta,
  html body.public-tv-layout:not(.tv-app-experience) #playerStage #gpPlayerChrome .gp-top-info .gp-next-box #gpNextMeta {
    height: auto !important;
    display: block !important;
    -webkit-line-clamp: unset !important;
    overflow: visible !important;
    text-overflow: clip !important;
  }

  body.public-tv-layout:not(.tv-app-experience) .gp-top-info .gp-info-progress {
    display: none !important;
  }

  html body.public-tv-layout:not(.tv-app-experience) #playerStage #gpPlayerChrome .gp-category-strip {
    height: 38px !important;
    min-height: 38px !important;
    max-height: 38px !important;
    padding: 0 14px !important;
    display: flex !important;
    align-items: center !important;
    overflow-x: auto !important;
    overflow-y: hidden !important;
  }
}

@media (min-width: 361px) and (max-height: 620px) and (max-width: 700px) {
  html body.public-tv-layout:not(.tv-app-experience) #playerStage #gpPlayerChrome .gp-top-info {
    inset: 64px 16px auto 16px !important;
  }

  html body.public-tv-layout:not(.tv-app-experience) #playerStage #gpPlayerChrome .gp-top-info #gpNowMeta,
  html body.public-tv-layout:not(.tv-app-experience) #playerStage #gpPlayerChrome .gp-top-info #gpNextMeta {
    -webkit-line-clamp: 1 !important;
  }
}

@media (min-width: 1600px) {
  html body.public-tv-layout.tv-app-experience #playerStage #gpPlayerChrome .gp-top-info #gpNowTitle {
    font-size: 30px !important;
  }

  html body.public-tv-layout.tv-app-experience #playerStage #gpPlayerChrome .gp-top-info #gpNowMeta,
  html body.public-tv-layout.tv-app-experience #playerStage #gpPlayerChrome .gp-top-info #gpNowTime,
  html body.public-tv-layout.tv-app-experience #playerStage #gpPlayerChrome .gp-top-info .gp-next-label,
  html body.public-tv-layout.tv-app-experience #playerStage #gpPlayerChrome .gp-top-info #gpNextMeta {
    font-size: 15px !important;
  }
}

@media (prefers-reduced-motion: reduce) {
  body.public-tv-layout .gp-player-chrome *,
  body.public-tv-layout .gp-tv-channel-layer * {
    scroll-behavior: auto !important;
    transition: none !important;
  }
}

/* ======================================================================
   v2.8.90 - Auto-hide movel, categorias estaveis e topbar sem sobreposicao
   ====================================================================== */
html body.public-tv-layout:not(.tv-app-experience) #playerStage #gpPlayerChrome #gpChannelDrawer {
  grid-template-rows: 48px minmax(0, auto) !important;
  row-gap: 10px !important;
}

html body.public-tv-layout:not(.tv-app-experience) #playerStage #gpPlayerChrome #gpCategoryTabs {
  display: flex !important;
  align-items: center !important;
  gap: 8px !important;
  width: 100% !important;
  height: 48px !important;
  min-height: 48px !important;
  max-height: 48px !important;
  padding: 2px 20px !important;
  overflow-x: auto !important;
  overflow-y: hidden !important;
  box-sizing: border-box !important;
  scrollbar-width: none !important;
}

html body.public-tv-layout:not(.tv-app-experience) #playerStage #gpPlayerChrome #gpCategoryTabs::-webkit-scrollbar {
  display: none !important;
}

html body.public-tv-layout:not(.tv-app-experience) #playerStage #gpPlayerChrome #gpCategoryTabs > .category-tab {
  flex: 0 0 auto !important;
  width: auto !important;
  height: 44px !important;
  min-height: 44px !important;
  max-height: 44px !important;
  padding: 0 16px !important;
  line-height: 1 !important;
}

body.public-tv-layout:not(.tv-app-experience) .gp-top-info,
body.public-tv-layout:not(.tv-app-experience) .gp-top-info * {
  min-width: 0 !important;
  max-width: 100% !important;
}

body.public-tv-layout:not(.tv-app-experience) .gp-top-info #gpNowMeta,
body.public-tv-layout:not(.tv-app-experience) .gp-top-info #gpNextMeta {
  overflow-wrap: anywhere !important;
  word-break: normal !important;
}

@media (max-width: 1024px) {
  body.public-tv-layout:not(.tv-app-experience).mobile-search-open .tv-brand {
    opacity: 0 !important;
    visibility: hidden !important;
    pointer-events: none !important;
  }

  body.public-tv-layout:not(.tv-app-experience).mobile-search-open .tv-actions {
    position: absolute !important;
    inset: 8px 12px auto 60px !important;
    grid-column: 1 / -1 !important;
    grid-row: 1 !important;
    width: calc(100% - 72px) !important;
    min-width: 0 !important;
    max-width: none !important;
    height: 40px !important;
    display: block !important;
    place-self: stretch !important;
    z-index: 8 !important;
  }

  body.public-tv-layout:not(.tv-app-experience).mobile-search-open .tv-search {
    position: relative !important;
    inset: auto !important;
    width: 100% !important;
    min-width: 0 !important;
    max-width: none !important;
    height: 40px !important;
    margin: 0 !important;
    display: flex !important;
    align-items: center !important;
    justify-self: stretch !important;
    border: 1px solid rgba(255, 255, 255, .16) !important;
    border-radius: 8px !important;
    background: #212121 !important;
  }

  body.public-tv-layout:not(.tv-app-experience).mobile-search-open .tv-search .search-icon {
    position: absolute !important;
    left: 14px !important;
    top: 50% !important;
    margin: 0 !important;
    transform: translateY(-50%) !important;
    z-index: 2 !important;
  }

  body.public-tv-layout:not(.tv-app-experience).mobile-search-open .tv-search input {
    display: block !important;
    flex: 1 1 auto !important;
    width: 100% !important;
    min-width: 0 !important;
    height: 40px !important;
    min-height: 38px !important;
    max-height: none !important;
    padding: 0 12px 0 42px !important;
    opacity: 1 !important;
    box-sizing: border-box !important;
  }

  html body.public-tv-layout:not(.tv-app-experience).player-ui-hidden:not(.football-panel-open):not(.is-playing-ad):not(.is-vast-click-mode) #playerStage #gpPlayerChrome,
  html body.public-tv-layout:not(.tv-app-experience).player-ui-hidden:not(.football-panel-open):not(.is-playing-ad):not(.is-vast-click-mode) #playerStage #gpPlayerChrome .gp-top-info,
  html body.public-tv-layout:not(.tv-app-experience).player-ui-hidden:not(.football-panel-open):not(.is-playing-ad):not(.is-vast-click-mode) #playerStage #gpPlayerChrome .gp-bottom-ui,
  html body.public-tv-layout:not(.tv-app-experience).player-ui-hidden:not(.football-panel-open):not(.is-playing-ad):not(.is-vast-click-mode) #playerStage #gpPlayerChrome #gpChannelDrawer,
  html body.public-tv-layout:not(.tv-app-experience).player-ui-hidden:not(.football-panel-open):not(.is-playing-ad):not(.is-vast-click-mode) #playerStage #gpPlayerChrome .gp-live-controls,
  html body.public-tv-layout:not(.tv-app-experience).player-ui-hidden:not(.football-panel-open):not(.is-playing-ad):not(.is-vast-click-mode) #playerStage #gpPlayerChrome .gp-embed-top-actions {
    opacity: 0 !important;
    visibility: hidden !important;
    pointer-events: none !important;
  }
}

@media (max-width: 700px) {
  body.public-tv-layout:not(.tv-app-experience).mobile-search-open .tv-actions {
    inset: 6px max(8px, env(safe-area-inset-right)) auto 56px !important;
    width: calc(100% - 64px) !important;
  }

  html body.public-tv-layout:not(.tv-app-experience) #playerStage #gpPlayerChrome #gpCategoryTabs {
    padding-inline: 16px !important;
  }
}

/* ======================================================================
   v2.8.94 - EPG entre o video e os canais, sempre visivel ate 1024px
   ====================================================================== */
@media (max-width: 1024px) {
  html body.public-tv-layout.mobile-persistent-ui:not(.tv-app-experience):not(.is-playing-ad):not(.is-vast-click-mode):not(.is-direct-vast-player) #playerStage #gpPlayerChrome,
  html body.public-tv-layout.mobile-persistent-ui.player-ui-hidden:not(.tv-app-experience):not(.is-playing-ad):not(.is-vast-click-mode):not(.is-direct-vast-player) #playerStage #gpPlayerChrome {
    display: block !important;
    opacity: 1 !important;
    visibility: visible !important;
    pointer-events: none !important;
    transform: none !important;
  }

  html body.public-tv-layout.mobile-persistent-ui:not(.tv-app-experience):not(.is-playing-ad):not(.is-vast-click-mode) #playerStage #gpPlayerChrome .gp-top-info,
  html body.public-tv-layout.mobile-persistent-ui:not(.tv-app-experience):not(.is-playing-ad):not(.is-vast-click-mode) #playerStage #gpPlayerChrome .gp-bottom-ui,
  html body.public-tv-layout.mobile-persistent-ui:not(.tv-app-experience):not(.is-playing-ad):not(.is-vast-click-mode) #playerStage #gpPlayerChrome #gpChannelDrawer,
  html body.public-tv-layout.mobile-persistent-ui:not(.tv-app-experience):not(.is-playing-ad):not(.is-vast-click-mode) #playerStage #gpPlayerChrome .gp-live-controls,
  html body.public-tv-layout.mobile-persistent-ui:not(.tv-app-experience):not(.is-playing-ad):not(.is-vast-click-mode) #playerStage #gpPlayerChrome .gp-embed-top-actions {
    opacity: 1 !important;
    visibility: visible !important;
    transform: none !important;
  }

  html body.public-tv-layout.mobile-persistent-ui:not(.tv-app-experience):not(.is-playing-ad):not(.is-vast-click-mode) #playerStage #gpPlayerChrome .gp-embed-top-actions {
    display: flex !important;
    top: 12px !important;
    right: 12px !important;
    pointer-events: auto !important;
  }

  html body.public-tv-layout.mobile-persistent-ui:not(.tv-app-experience):not(.is-playing-ad):not(.is-vast-click-mode) #playerStage #gpPlayerChrome .gp-top-info {
    position: absolute !important;
    inset: auto 0 calc(var(--mobile-channel-drawer-h) + 8px) 0 !important;
    width: 100% !important;
    max-width: none !important;
    min-height: 108px !important;
    max-height: 154px !important;
    margin: 0 !important;
    padding: 10px 16px !important;
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) !important;
    grid-template-rows: max-content max-content max-content !important;
    grid-template-areas: "line line" "title title" "meta next" !important;
    align-content: center !important;
    gap: 4px 16px !important;
    overflow: hidden !important;
    border-top: 1px solid rgba(255, 255, 255, .10) !important;
    border-bottom: 1px solid rgba(255, 255, 255, .10) !important;
    border-radius: 0 !important;
    background: rgba(15, 15, 15, .96) !important;
    box-shadow: none !important;
    text-shadow: none !important;
    pointer-events: none !important;
    box-sizing: border-box !important;
  }

  html body.public-tv-layout.mobile-persistent-ui:not(.tv-app-experience) #playerStage #gpPlayerChrome .gp-top-info .gp-schedule-line {
    grid-area: line !important;
    min-height: 20px !important;
  }

  html body.public-tv-layout.mobile-persistent-ui:not(.tv-app-experience) #playerStage #gpPlayerChrome .gp-top-info #gpNowTitle {
    grid-area: title !important;
    font-size: 17px !important;
    line-height: 1.2 !important;
    -webkit-line-clamp: 1 !important;
  }

  html body.public-tv-layout.mobile-persistent-ui:not(.tv-app-experience) #playerStage #gpPlayerChrome .gp-top-info #gpNowMeta {
    grid-area: meta !important;
    align-self: start !important;
    font-size: 12px !important;
    line-height: 1.35 !important;
    -webkit-line-clamp: 2 !important;
  }

  html body.public-tv-layout.mobile-persistent-ui:not(.tv-app-experience) #playerStage #gpPlayerChrome .gp-top-info .gp-next-box {
    grid-area: next !important;
    align-self: start !important;
    width: 100% !important;
    min-height: 0 !important;
    margin: 0 !important;
  }

  html body.public-tv-layout.mobile-persistent-ui:not(.tv-app-experience) #playerStage #gpPlayerChrome .gp-top-info .gp-info-progress {
    display: none !important;
  }

  html body.public-tv-layout.mobile-persistent-ui:not(.tv-app-experience) #playerStage.player-stage.public-player-stage #gpPlayerChrome.gp-player-chrome > .gp-bottom-ui {
    display: block !important;
    pointer-events: none !important;
  }

  html body.public-tv-layout.mobile-persistent-ui:not(.tv-app-experience) #playerStage #gpPlayerChrome #gpChannelDrawer,
  html body.public-tv-layout.mobile-persistent-ui:not(.tv-app-experience) #playerStage #gpPlayerChrome.drawer-open #gpChannelDrawer {
    position: absolute !important;
    inset: auto 0 0 0 !important;
    display: grid !important;
    grid-template-rows: 48px minmax(0, 126px) !important;
    row-gap: 8px !important;
    height: var(--mobile-channel-drawer-h) !important;
    min-height: var(--mobile-channel-drawer-h) !important;
    max-height: var(--mobile-channel-drawer-h) !important;
    padding: 8px 16px 54px !important;
    box-sizing: border-box !important;
    opacity: 1 !important;
    visibility: visible !important;
    overflow: hidden !important;
    pointer-events: auto !important;
  }

  html body.public-tv-layout.mobile-persistent-ui:not(.tv-app-experience) #playerStage #gpPlayerChrome #gpChannelDrawer .gp-rail-wrap,
  html body.public-tv-layout.mobile-persistent-ui:not(.tv-app-experience) #playerStage #gpPlayerChrome #gpChannelDrawer .gp-channel-rail {
    height: 126px !important;
    min-height: 0 !important;
    max-height: 126px !important;
  }

  html body.public-tv-layout.mobile-persistent-ui:not(.tv-app-experience) #playerStage #gpPlayerChrome .gp-live-controls {
    pointer-events: auto !important;
  }
}

@media (max-width: 560px) {
  html body.public-tv-layout.mobile-persistent-ui:not(.tv-app-experience) {
    --mobile-player-header: 52px;
  }

  html body.public-tv-layout.mobile-persistent-ui:not(.tv-app-experience):not(.is-playing-ad):not(.is-vast-click-mode) #playerStage #gpPlayerChrome .gp-top-info {
    min-height: 128px !important;
    max-height: 168px !important;
    padding: 9px 14px !important;
    grid-template-columns: minmax(0, 1fr) !important;
    grid-template-rows: repeat(4, max-content) !important;
    grid-template-areas: "line" "title" "meta" "next" !important;
    gap: 3px !important;
  }

  html body.public-tv-layout.mobile-persistent-ui:not(.tv-app-experience) #playerStage #gpPlayerChrome .gp-top-info #gpNowTitle {
    font-size: 16px !important;
  }

  html body.public-tv-layout.mobile-persistent-ui:not(.tv-app-experience) #playerStage #gpPlayerChrome .gp-top-info #gpNowMeta,
  html body.public-tv-layout.mobile-persistent-ui:not(.tv-app-experience) #playerStage #gpPlayerChrome .gp-top-info #gpNextMeta,
  html body.public-tv-layout.mobile-persistent-ui:not(.tv-app-experience) #playerStage #gpPlayerChrome .gp-top-info .gp-next-label,
  html body.public-tv-layout.mobile-persistent-ui:not(.tv-app-experience) #playerStage #gpPlayerChrome .gp-top-info #gpNowTime {
    font-size: 11px !important;
    line-height: 1.3 !important;
  }
}

@media (max-width: 1024px) and (max-height: 620px) {
  html body.public-tv-layout.mobile-persistent-ui:not(.tv-app-experience) {
    --mobile-channel-drawer-h: min(210px, 38svh);
  }

  html body.public-tv-layout.mobile-persistent-ui:not(.tv-app-experience) #playerStage #gpPlayerChrome #gpChannelDrawer,
  html body.public-tv-layout.mobile-persistent-ui:not(.tv-app-experience) #playerStage #gpPlayerChrome.drawer-open #gpChannelDrawer {
    height: var(--mobile-channel-drawer-h) !important;
    min-height: var(--mobile-channel-drawer-h) !important;
    max-height: var(--mobile-channel-drawer-h) !important;
  }

  html body.public-tv-layout.mobile-persistent-ui:not(.tv-app-experience):not(.is-playing-ad):not(.is-vast-click-mode) #playerStage #gpPlayerChrome .gp-top-info {
    inset: auto 0 calc(var(--mobile-channel-drawer-h) + 6px) 0 !important;
    min-height: 88px !important;
    max-height: 112px !important;
    padding-block: 7px !important;
  }
}

/* ========================================================================== 
   v2.8.108 - compatibilidade de anúncios isolados e fallback sem espaço vazio
   ========================================================================== */

body.public-tv-layout .gp-script-sponsored-card {
  cursor: grab !important;
  touch-action: pan-x pan-y !important;
}

body.public-tv-layout #gpChannelRail.is-dragging .gp-script-sponsored-card {
  cursor: grabbing !important;
}

body.public-tv-layout .gp-script-sponsored-card .sponsored-script-viewport,
body.public-tv-layout .gp-tv-channel-card.gp-script-sponsored-card .sponsored-script-viewport,
body.public-tv-layout .channel-card.script-sponsored-card .sponsored-script-viewport {
  position: absolute !important;
  inset: 0 !important;
  display: grid !important;
  place-items: center !important;
  width: 100% !important;
  height: 100% !important;
  overflow: hidden !important;
}

body.public-tv-layout .gp-script-sponsored-card .sponsored-script-fit,
body.public-tv-layout .gp-tv-channel-card.gp-script-sponsored-card .sponsored-script-fit,
body.public-tv-layout .channel-card.script-sponsored-card .sponsored-script-fit {
  position: absolute !important;
  inset: 0 !important;
  width: auto !important;
  height: auto !important;
  transform: none !important;
  overflow: hidden !important;
}

body.public-tv-layout .gp-script-sponsored-card .sponsored-script-frame,
body.public-tv-layout .gp-tv-channel-card.gp-script-sponsored-card .sponsored-script-frame,
body.public-tv-layout .channel-card.script-sponsored-card .sponsored-script-frame {
  position: absolute !important;
  inset: 0 !important;
  display: block !important;
  width: 100% !important;
  height: 100% !important;
  min-width: 0 !important;
  min-height: 0 !important;
  max-width: none !important;
  max-height: none !important;
  border: 0 !important;
  transform: none !important;
  transform-origin: center !important;
  background: transparent !important;
}

body.public-tv-layout .gp-script-sponsored-card .script-sponsored-badge {
  z-index: 8 !important;
  pointer-events: none !important;
}

body.public-tv-layout .gp-alt-source-btn {
  position: relative !important;
  display: grid !important;
  place-items: center !important;
  width: 40px !important;
  min-width: 42px !important;
  height: 40px !important;
  padding: 0 !important;
  gap: 0 !important;
  line-height: 1 !important;
}

html body.public-tv-layout #gpEmbedTopActions #altSourceBtn[hidden] {
  display: none !important;
}

body.public-tv-layout .gp-alt-source-btn .gp-alt-source-label {
  display: none !important;
}

body.public-tv-layout .gp-alt-source-btn .gp-alt-source-count {
  position: absolute !important;
  top: -5px !important;
  right: -5px !important;
  z-index: 2 !important;
  display: grid !important;
  place-items: center !important;
  min-width: 18px !important;
  height: 18px !important;
  padding: 0 4px !important;
  border: 2px solid #0a0a0a !important;
  border-radius: 9px !important;
  background: #ff174b !important;
  color: #fff !important;
  font-size: 10px !important;
  font-weight: 900 !important;
  line-height: 1 !important;
  pointer-events: none !important;
}

body.public-tv-layout .gp-alt-source-btn > i {
  display: block !important;
  margin: 0 !important;
  font-size: 1rem !important;
  line-height: 1 !important;
}

body.public-tv-layout .gp-alt-source-hint {
  position: absolute !important;
  top: calc(100% + 10px) !important;
  right: 42px !important;
  z-index: 20 !important;
  width: max-content !important;
  max-width: min(270px, calc(100vw - 32px)) !important;
  padding: 9px 11px !important;
  border: 1px solid rgba(255, 255, 255, .18) !important;
  border-radius: 6px !important;
  background: #f5f5f5 !important;
  color: #101114 !important;
  box-shadow: 0 10px 28px rgba(0, 0, 0, .42) !important;
  font-size: .72rem !important;
  font-weight: 800 !important;
  line-height: 1.35 !important;
  text-align: left !important;
  pointer-events: none !important;
}

body.public-tv-layout .gp-alt-source-hint::before {
  content: '' !important;
  position: absolute !important;
  top: -5px !important;
  right: 14px !important;
  width: 10px !important;
  height: 10px !important;
  border-top: 1px solid rgba(255, 255, 255, .18) !important;
  border-left: 1px solid rgba(255, 255, 255, .18) !important;
  background: #f5f5f5 !important;
  transform: rotate(45deg) !important;
}

html body.public-tv-layout #gpEmbedTopActions #altSourceHint[hidden] {
  display: none !important;
}

body.games-page-body .games-ad-slot {
  position: relative;
  display: grid;
  place-items: center;
  min-width: 0;
  overflow: hidden;
  border: 1px solid rgba(255,255,255,.12);
  border-radius: 8px;
  background: #101114;
  box-shadow: none;
}

body.games-page-body .games-ad-slot-wide {
  width: 100%;
  min-height: 104px;
  margin: 14px 0 20px;
}

body.games-page-body .games-ad-slot-bottom {
  margin-top: 28px;
  margin-bottom: 22px;
}

body.games-page-body .games-ad-slot-inline {
  width: 100%;
  min-height: 250px;
  aspect-ratio: 16 / 9;
  align-self: stretch;
}

body.games-page-body .games-ad-slot iframe {
  position: absolute;
  inset: 0;
  display: block;
  width: 100%;
  height: 100%;
  border: 0;
  background: transparent;
}

body.games-page-body .games-ad-label {
  position: absolute;
  top: 8px;
  right: 8px;
  z-index: 2;
  display: inline-flex;
  align-items: center;
  min-height: 22px;
  padding: 3px 7px;
  border-radius: 4px;
  background: rgba(0,0,0,.72);
  color: #d8dbe2;
  font-size: .62rem;
  font-weight: 800;
  text-transform: uppercase;
  pointer-events: none;
}

@media (max-width: 720px) {
  body.public-tv-layout .gp-alt-source-btn {
    width: 40px !important;
    min-width: 40px !important;
    padding: 0 !important;
  }

  body.public-tv-layout .gp-alt-source-hint {
    right: 0 !important;
    max-width: min(230px, calc(100vw - 24px)) !important;
    font-size: .68rem !important;
  }

  body.games-page-body .games-ad-slot-wide {
    min-height: 90px;
    margin-block: 12px 18px;
  }

  body.games-page-body .games-ad-slot-inline {
    min-height: 220px;
    aspect-ratio: 4 / 3;
  }
}


/* ======================================================================
   v2.8.97 - Painel Jogos do dia com o mesmo componente da página
   ====================================================================== */
body.public-tv-layout .gp-football-panel {
  width: min(440px, calc(100vw - 32px)) !important;
  max-height: min(82vh, 760px) !important;
  padding: 14px !important;
  border: 1px solid #303030 !important;
  border-radius: 8px !important;
  background: #0f0f0f !important;
  box-shadow: 0 18px 54px rgba(0, 0, 0, .48) !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
  grid-template-rows: auto auto minmax(0, 1fr) !important;
  gap: 10px !important;
}

body.public-tv-layout .gp-football-head {
  min-height: 44px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 12px !important;
  margin: 0 !important;
}

body.public-tv-layout .gp-football-head-copy {
  min-width: 0 !important;
}

body.public-tv-layout .gp-football-head strong {
  display: block !important;
  margin: 0 !important;
  color: #f1f1f1 !important;
  font-size: 18px !important;
  line-height: 1.2 !important;
  letter-spacing: 0 !important;
}

body.public-tv-layout .gp-football-subtitle {
  display: block !important;
  margin-top: 3px !important;
  color: #aaa !important;
  font-size: 12px !important;
  line-height: 1.3 !important;
}

body.public-tv-layout .gp-football-head-actions {
  display: flex !important;
  flex: 0 0 auto !important;
  align-items: center !important;
  gap: 6px !important;
}

body.public-tv-layout .gp-football-page-link,
body.public-tv-layout .gp-football-close {
  width: 36px !important;
  height: 36px !important;
  min-width: 36px !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 8px !important;
  background: #272727 !important;
  color: #fff !important;
  box-shadow: none !important;
  text-decoration: none !important;
  cursor: pointer !important;
}

body.public-tv-layout .gp-football-page-link:hover,
body.public-tv-layout .gp-football-page-link:focus-visible,
body.public-tv-layout .gp-football-close:hover,
body.public-tv-layout .gp-football-close:focus-visible {
  background: #3a3a3a !important;
}

body.public-tv-layout .gp-football-status {
  min-height: 52px !important;
  display: flex !important;
  align-items: center !important;
  margin: 0 !important;
  padding: 0 12px !important;
  border: 1px solid #303030 !important;
  border-radius: 8px !important;
  background: #181818 !important;
  color: #aaa !important;
  font-size: 13px !important;
  line-height: 1.4 !important;
}

body.public-tv-layout .gp-football-status[hidden] {
  display: none !important;
}

body.public-tv-layout .gp-football-list {
  min-height: 0 !important;
  display: flex !important;
  flex-direction: column !important;
  gap: 10px !important;
  padding: 0 3px 0 0 !important;
  overflow-y: auto !important;
  overscroll-behavior: contain !important;
}

body.public-tv-layout .gp-football-card.football-match-card {
  min-width: 0 !important;
  display: grid !important;
  grid-template-columns: 132px minmax(0, 1fr) !important;
  align-items: stretch !important;
  gap: 0 !important;
  padding: 0 !important;
  overflow: hidden !important;
  border: 1px solid #303030 !important;
  border-radius: 8px !important;
  background: #181818 !important;
  box-shadow: none !important;
}

body.public-tv-layout .gp-football-card.football-match-card.is-featured {
  border-color: #555 !important;
  background: #1c1c1c !important;
}

body.public-tv-layout .gp-football-card .football-match-thumb {
  width: 132px !important;
  min-width: 132px !important;
  height: 100% !important;
  min-height: 112px !important;
  aspect-ratio: auto !important;
  border-radius: 0 !important;
}

body.public-tv-layout .gp-football-card .football-match-thumb > img,
body.public-tv-layout .gp-football-card .football-match-thumb > .thumb-fallback {
  position: absolute !important;
  inset: 0 !important;
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
}

body.public-tv-layout .gp-football-card .football-match-thumb > .thumb-fallback {
  display: grid !important;
  place-items: center !important;
  background: #101010 !important;
  color: #777 !important;
}

body.public-tv-layout .gp-football-card .football-match-status {
  top: 7px !important;
  left: 7px !important;
}

body.public-tv-layout .gp-football-card .football-match-time {
  right: 7px !important;
  bottom: 7px !important;
  max-width: calc(100% - 14px) !important;
}

body.public-tv-layout .gp-football-card .football-match-info {
  min-width: 0 !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: stretch !important;
  padding: 10px !important;
}

body.public-tv-layout .gp-football-card .football-match-league {
  color: #aaa !important;
  font-size: 11px !important;
}

body.public-tv-layout .gp-football-card .football-match-featured {
  color: #ffd54a !important;
  font-size: 10px !important;
}

body.public-tv-layout .gp-football-card h3 {
  min-height: 0 !important;
  margin: 6px 0 0 !important;
  color: #f1f1f1 !important;
  font-size: 13px !important;
  line-height: 1.25 !important;
  letter-spacing: 0 !important;
}

body.public-tv-layout .gp-football-card .football-match-channel {
  margin-top: 7px !important;
  color: #aaa !important;
  font-size: 11px !important;
}

body.public-tv-layout .gp-football-card .football-match-action,
body.public-tv-layout .gp-football-card .gp-football-watch {
  min-width: 0 !important;
  min-height: 32px !important;
  height: 32px !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  align-self: flex-start !important;
  gap: 5px !important;
  margin-top: auto !important;
  padding: 0 10px !important;
  border: 0 !important;
  border-radius: 8px !important;
  background: #f1f1f1 !important;
  color: #0f0f0f !important;
  box-shadow: none !important;
  font-size: 12px !important;
  font-weight: 800 !important;
  letter-spacing: 0 !important;
}

body.public-tv-layout .gp-football-card .football-match-action:hover,
body.public-tv-layout .gp-football-card .football-match-action:focus-visible {
  background: #d9d9d9 !important;
  filter: none !important;
  transform: none !important;
}

body.public-tv-layout .gp-football-nav-btn {
  border-radius: 8px !important;
}

@media (max-width: 1024px) {
  body.public-tv-layout:not(.tv-app-experience) .gp-football-panel {
    top: var(--sh-header-height, 64px) !important;
    right: 0 !important;
    bottom: 0 !important;
    width: min(440px, 94vw) !important;
    max-height: none !important;
    border-radius: 8px 0 0 8px !important;
  }
}

@media (max-width: 560px) {
  body.public-tv-layout:not(.tv-app-experience) .gp-football-panel {
    width: 100vw !important;
    padding: 12px !important;
    border-right: 0 !important;
    border-left: 0 !important;
    border-radius: 0 !important;
  }

  body.public-tv-layout .gp-football-card.football-match-card {
    grid-template-columns: 112px minmax(0, 1fr) !important;
  }

  body.public-tv-layout .gp-football-card .football-match-thumb {
    width: 112px !important;
    min-width: 112px !important;
    min-height: 108px !important;
  }
}

body.public-tv-layout.tv-app-experience .gp-football-panel,
body.public-tv-layout.tv-app-experience.football-panel-open .gp-football-panel {
  width: min(390px, 34vw) !important;
  max-width: 390px !important;
  padding: 10px !important;
  border-radius: 8px !important;
}

body.public-tv-layout.tv-app-experience .gp-football-card.football-match-card {
  grid-template-columns: 96px minmax(0, 1fr) !important;
}

body.public-tv-layout.tv-app-experience .gp-football-card .football-match-thumb {
  width: 96px !important;
  min-width: 96px !important;
  min-height: 94px !important;
}

body.public-tv-layout.tv-app-experience .gp-football-card .football-match-info {
  padding: 7px 8px !important;
}

body.public-tv-layout.tv-app-experience .gp-football-card h3 {
  font-size: clamp(11px, .82vw, 13px) !important;
}

body.public-tv-layout.tv-app-experience .gp-football-card .football-match-action {
  min-height: 28px !important;
  height: 28px !important;
  font-size: 10px !important;
}

@media (max-width: 900px), (max-height: 640px) {
  body.public-tv-layout.tv-app-experience .gp-football-panel,
  body.public-tv-layout.tv-app-experience.football-panel-open .gp-football-panel {
    width: min(360px, 42vw) !important;
  }
}

/* ======================================================================
   v2.8.95 - iframe limpo, EPG sem painel e cadastro de canais em modal
   ====================================================================== */
html body.public-tv-layout.mobile-persistent-ui:not(.tv-app-experience) #playerStage.player-stage.public-player-stage.has-embed-player #gpPlayerChrome.gp-player-chrome .gp-live-controls,
html body.public-tv-layout.tv-app-experience #playerStage.player-stage.public-player-stage.has-embed-player #gpPlayerChrome.gp-player-chrome .gp-live-controls,
html body.public-tv-layout:not(.mobile-persistent-ui):not(.tv-app-experience) #playerStage.player-stage.public-player-stage.has-embed-player #gpPlayerChrome.gp-player-chrome .gp-live-controls {
  display: none !important;
  opacity: 0 !important;
  visibility: hidden !important;
  pointer-events: none !important;
}

html body.public-tv-layout.mobile-persistent-ui:not(.tv-app-experience):not(.is-playing-ad):not(.is-vast-click-mode) #playerStage.player-stage.public-player-stage #gpPlayerChrome.gp-player-chrome .gp-top-info,
html body.public-tv-layout.tv-app-experience #playerStage.player-stage.public-player-stage #gpPlayerChrome.gp-player-chrome .gp-top-info,
html body.public-tv-layout:not(.mobile-persistent-ui):not(.tv-app-experience) #playerStage.player-stage.public-player-stage #gpPlayerChrome.gp-player-chrome .gp-top-info {
  background: transparent !important;
  border-color: transparent !important;
  box-shadow: none !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
}

html body.public-tv-layout.mobile-persistent-ui:not(.tv-app-experience) #playerStage.player-stage.public-player-stage #gpPlayerChrome.gp-player-chrome .gp-top-info > *,
html body.public-tv-layout.tv-app-experience #playerStage.player-stage.public-player-stage #gpPlayerChrome.gp-player-chrome .gp-top-info > *,
html body.public-tv-layout:not(.mobile-persistent-ui):not(.tv-app-experience) #playerStage.player-stage.public-player-stage #gpPlayerChrome.gp-player-chrome .gp-top-info > * {
  text-shadow: 0 1px 3px rgba(0, 0, 0, .92) !important;
}

.legal-page .legal-content-text {
  white-space: pre-wrap;
  overflow-wrap: anywhere;
  line-height: 1.7;
  color: rgba(255, 255, 255, .78);
}

body.admin-ux-v2867.admin-dashboard-v2885.admin-channel-modal-open {
  overflow: hidden !important;
}

body.admin-ux-v2867.admin-dashboard-v2885 .admin-channel-modal {
  position: fixed !important;
  inset: 0 !important;
  z-index: 10000 !important;
  display: grid !important;
  place-items: center !important;
  padding: 20px !important;
  background: rgba(0, 0, 0, .78) !important;
  backdrop-filter: blur(8px) !important;
  -webkit-backdrop-filter: blur(8px) !important;
}

body.admin-ux-v2867.admin-dashboard-v2885 .admin-channel-modal[hidden] {
  display: none !important;
}

body.admin-ux-v2867.admin-dashboard-v2885 .admin-channel-modal-card {
  width: min(980px, calc(100vw - 40px)) !important;
  max-height: calc(100dvh - 40px) !important;
  margin: 0 !important;
  padding: 0 18px 18px !important;
  overflow: auto !important;
  overscroll-behavior: contain !important;
  border-radius: 8px !important;
  background: #12161d !important;
}

body.admin-ux-v2867.admin-dashboard-v2885 .admin-channel-modal-card > .admin-card-head {
  position: sticky !important;
  top: 0 !important;
  z-index: 3 !important;
  display: flex !important;
  flex-direction: row !important;
  align-items: flex-start !important;
  justify-content: space-between !important;
  gap: 12px !important;
  margin: 0 -18px 14px !important;
  padding: 16px 18px !important;
  background: #12161d !important;
  border-bottom: 1px solid rgba(255, 255, 255, .09) !important;
}

body.admin-ux-v2867.admin-dashboard-v2885 .admin-modal-close {
  flex: 0 0 40px !important;
  width: 40px !important;
  min-width: 40px !important;
  height: 40px !important;
  padding: 0 !important;
  display: inline-grid !important;
  place-items: center !important;
}

body.admin-ux-v2867.admin-dashboard-v2885 .admin-channel-modal-card .form-actions-sticky {
  bottom: -18px !important;
  z-index: 2 !important;
  margin-inline: -18px !important;
  padding: 14px 18px !important;
  background: #12161d !important;
  border-top: 1px solid rgba(255, 255, 255, .09) !important;
}

@media (max-width: 720px) {
  body.admin-ux-v2867.admin-dashboard-v2885 .admin-channel-modal {
    padding: 0 !important;
    align-items: stretch !important;
  }

  body.admin-ux-v2867.admin-dashboard-v2885 .admin-channel-modal-card {
    width: 100% !important;
    max-height: 100dvh !important;
    min-height: 100dvh !important;
    border: 0 !important;
    border-radius: 0 !important;
  }
}

/* ======================================================================
   v2.8.96 - contrato unico da superficie VAST
   O anuncio ocupa a mesma area do video; EPG e canais continuam no layout.
   ====================================================================== */
body.public-tv-layout .player-stage.public-player-stage {
  --vast-media-top: 0px;
  --vast-media-left: 0px;
  --vast-media-width: 100%;
  --vast-media-height: 100%;
}

body.public-tv-layout .player-media-slot {
  position: absolute;
  top: var(--vast-media-top);
  left: var(--vast-media-left);
  width: var(--vast-media-width);
  height: var(--vast-media-height);
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
}

body.public-tv-layout #adContainer,
body.public-tv-layout #imaAdVideo.ima-ad-video-surface {
  position: absolute;
  top: var(--vast-media-top);
  left: var(--vast-media-left);
  width: var(--vast-media-width);
  height: var(--vast-media-height);
  min-width: 0;
  min-height: 0;
  max-width: 100%;
  max-height: 100%;
  margin: 0;
  padding: 0;
  border: 0;
  overflow: hidden;
  background: #000;
  box-sizing: border-box;
}

body.public-tv-layout #adContainer {
  display: block;
  z-index: 300;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  touch-action: manipulation;
}

body.public-tv-layout #adContainer.is-active,
body.public-tv-layout .player-stage.is-generic-vast-test #adContainer {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
}

body.public-tv-layout #imaAdVideo.ima-ad-video-surface {
  display: none;
  z-index: 299;
  object-fit: contain;
  object-position: center;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
}

body.public-tv-layout.is-playing-ad .player-stage.public-player-stage,
body.public-tv-layout.is-vast-click-mode .player-stage.public-player-stage,
body.public-tv-layout.is-direct-vast-player .player-stage.public-player-stage {
  isolation: isolate;
  overflow: hidden;
  background: #000;
}

body.public-tv-layout.is-playing-ad #mainFrame,
body.public-tv-layout.is-vast-click-mode #mainFrame,
body.public-tv-layout.is-direct-vast-player #mainFrame,
body.public-tv-layout.is-playing-ad #mainVideo,
body.public-tv-layout.is-vast-click-mode #mainVideo,
body.public-tv-layout.is-direct-vast-player #mainVideo {
  display: none !important;
  opacity: 0 !important;
  visibility: hidden !important;
  pointer-events: none !important;
}

body.public-tv-layout.is-playing-ad #imaAdVideo.ima-ad-video-surface,
body.public-tv-layout.is-vast-click-mode #imaAdVideo.ima-ad-video-surface {
  display: block;
  opacity: 1;
  visibility: visible;
}

body.public-tv-layout.is-direct-vast-player #imaAdVideo.ima-ad-video-surface {
  display: none;
}

body.public-tv-layout #adContainer > div,
body.public-tv-layout #adContainer iframe,
body.public-tv-layout #adContainer video,
body.public-tv-layout #adContainer object,
body.public-tv-layout #adContainer embed {
  width: 100% !important;
  height: 100% !important;
  min-width: 0 !important;
  min-height: 0 !important;
  max-width: 100% !important;
  max-height: 100% !important;
  margin: 0 !important;
  border: 0 !important;
  box-sizing: border-box !important;
}

body.public-tv-layout #directVastVideo.direct-vast-video,
body.public-tv-layout .admin-vast-generic-video {
  display: block;
  width: 100% !important;
  height: 100% !important;
  object-fit: contain;
  object-position: center;
  background: #000;
}

body.public-tv-layout.is-playing-ad .gp-player-chrome,
body.public-tv-layout.is-vast-click-mode .gp-player-chrome,
body.public-tv-layout.is-direct-vast-player .gp-player-chrome,
body.public-tv-layout.is-playing-ad .gp-tv-channel-layer,
body.public-tv-layout.is-vast-click-mode .gp-tv-channel-layer,
body.public-tv-layout.is-direct-vast-player .gp-tv-channel-layer,
body.public-tv-layout.is-playing-ad .custom-player-controls,
body.public-tv-layout.is-vast-click-mode .custom-player-controls,
body.public-tv-layout.is-direct-vast-player .custom-player-controls,
body.public-tv-layout.is-playing-ad .custom-player-loader,
body.public-tv-layout.is-vast-click-mode .custom-player-loader,
body.public-tv-layout.is-direct-vast-player .custom-player-loader,
body.public-tv-layout.is-playing-ad .gp-iframe-shield,
body.public-tv-layout.is-vast-click-mode .gp-iframe-shield,
body.public-tv-layout.is-direct-vast-player .gp-iframe-shield {
  display: none !important;
  opacity: 0 !important;
  visibility: hidden !important;
  pointer-events: none !important;
}

body.public-tv-layout .player-stage.public-player-stage .ad-manual-controls {
  position: absolute;
  top: var(--vast-media-top);
  left: var(--vast-media-left);
  width: var(--vast-media-width);
  height: var(--vast-media-height);
  z-index: 460;
  pointer-events: none;
}

body.public-tv-layout .ad-manual-controls[hidden],
body.public-tv-layout .ad-status-pill[hidden],
body.public-tv-layout .ad-skip-btn[hidden] {
  display: none !important;
}

body.public-tv-layout .ad-status-pill {
  position: absolute;
  left: clamp(10px, 2vw, 18px);
  bottom: clamp(10px, 2vw, 18px);
  min-height: 30px;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 5px 9px;
  border-radius: 4px;
  background: rgba(0, 0, 0, .78);
  color: #fff;
  font-size: 12px;
  line-height: 1;
  font-weight: 600;
  z-index: 461;
  pointer-events: none;
}

body.public-tv-layout .ad-status-label {
  padding-right: 8px;
  border-right: 1px solid rgba(255, 255, 255, .35);
}

body.public-tv-layout .ad-time-badge {
  min-width: 34px;
  color: rgba(255, 255, 255, .88);
  font-variant-numeric: tabular-nums;
  text-align: center;
}

body.public-tv-layout .ad-skip-btn:not([hidden]) {
  position: absolute;
  right: clamp(10px, 2vw, 18px);
  bottom: clamp(10px, 2vw, 18px);
  min-width: 118px;
  min-height: 44px;
  max-width: calc(100% - 20px);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 9px;
  padding: 0 14px;
  border: 1px solid rgba(255, 255, 255, .72);
  border-radius: 4px;
  background: rgba(0, 0, 0, .82);
  color: #fff;
  box-shadow: 0 2px 8px rgba(0, 0, 0, .34);
  font: inherit;
  font-size: 13px;
  line-height: 1;
  font-weight: 700;
  letter-spacing: 0;
  white-space: nowrap;
  cursor: pointer;
  z-index: 462;
  pointer-events: auto;
  touch-action: manipulation;
  -webkit-tap-highlight-color: transparent;
}

body.public-tv-layout .ad-skip-btn:not([hidden]):hover,
body.public-tv-layout .ad-skip-btn:not([hidden]):focus-visible {
  background: rgba(35, 35, 35, .96);
  border-color: #fff;
}

body.public-tv-layout .ad-skip-btn:disabled,
body.public-tv-layout .ad-skip-btn[aria-disabled="true"] {
  border-color: rgba(255, 255, 255, .3);
  color: rgba(255, 255, 255, .7);
  background: rgba(0, 0, 0, .62);
  box-shadow: none;
  cursor: default;
}

body.public-tv-layout .ad-skip-btn i {
  font-size: 17px;
}

body.public-tv-layout.is-playing-ad .player-overlay,
body.public-tv-layout.is-vast-click-mode .player-overlay,
body.public-tv-layout.is-direct-vast-player .player-overlay {
  position: absolute;
  top: var(--vast-media-top);
  left: var(--vast-media-left);
  width: var(--vast-media-width);
  height: var(--vast-media-height);
  z-index: 420;
  background: #000;
  pointer-events: none;
}

body.public-tv-layout.is-ad-ready .player-overlay,
body.public-tv-layout .player-stage.is-ad-ready .player-overlay,
body.public-tv-layout.is-direct-vast-player .player-overlay {
  display: none !important;
}

body.public-tv-layout .ad-gate-card {
  width: min(340px, calc(100% - 32px));
  margin: auto;
  padding: 18px;
  text-align: center;
  color: #fff;
}

body.public-tv-layout .ad-gate-card .ad-kicker {
  display: inline-block;
  margin-bottom: 8px;
  color: rgba(255, 255, 255, .7);
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
}

@media (max-width: 1024px) {
  html body.public-tv-layout.mobile-persistent-ui:not(.tv-app-experience) .player-stage.public-player-stage {
    --vast-media-height: var(--ntv-video-height, min(56.25vw, 520px));
    height: 100% !important;
    min-height: 0 !important;
    max-height: 100% !important;
  }

  html body.public-tv-layout.mobile-persistent-ui:not(.tv-app-experience).is-playing-ad .gp-player-chrome,
  html body.public-tv-layout.mobile-persistent-ui:not(.tv-app-experience).is-vast-click-mode .gp-player-chrome,
  html body.public-tv-layout.mobile-persistent-ui:not(.tv-app-experience).is-direct-vast-player .gp-player-chrome {
    display: block !important;
    opacity: 1 !important;
    visibility: visible !important;
    pointer-events: none !important;
    transform: none !important;
  }

  html body.public-tv-layout.mobile-persistent-ui:not(.tv-app-experience).is-playing-ad .gp-top-info,
  html body.public-tv-layout.mobile-persistent-ui:not(.tv-app-experience).is-vast-click-mode .gp-top-info,
  html body.public-tv-layout.mobile-persistent-ui:not(.tv-app-experience).is-direct-vast-player .gp-top-info {
    position: absolute !important;
    inset: auto 0 calc(var(--mobile-channel-drawer-h) + 8px) 0 !important;
    width: 100% !important;
    max-width: none !important;
    min-height: 108px !important;
    max-height: 154px !important;
    margin: 0 !important;
    padding: 10px 16px !important;
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) !important;
    grid-template-rows: max-content max-content max-content !important;
    grid-template-areas: "line line" "title title" "meta next" !important;
    align-content: center !important;
    gap: 4px 16px !important;
    overflow: hidden !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    text-shadow: none !important;
    opacity: 1 !important;
    visibility: visible !important;
    pointer-events: none !important;
    box-sizing: border-box !important;
  }

  html body.public-tv-layout.mobile-persistent-ui:not(.tv-app-experience).is-playing-ad .gp-bottom-ui,
  html body.public-tv-layout.mobile-persistent-ui:not(.tv-app-experience).is-vast-click-mode .gp-bottom-ui,
  html body.public-tv-layout.mobile-persistent-ui:not(.tv-app-experience).is-direct-vast-player .gp-bottom-ui {
    display: block !important;
    opacity: 1 !important;
    visibility: visible !important;
  }

  html body.public-tv-layout.mobile-persistent-ui:not(.tv-app-experience).is-playing-ad #gpChannelDrawer,
  html body.public-tv-layout.mobile-persistent-ui:not(.tv-app-experience).is-vast-click-mode #gpChannelDrawer,
  html body.public-tv-layout.mobile-persistent-ui:not(.tv-app-experience).is-direct-vast-player #gpChannelDrawer {
    display: grid !important;
    opacity: 1 !important;
    visibility: visible !important;
  }

  html body.public-tv-layout.mobile-persistent-ui:not(.tv-app-experience).is-playing-ad .gp-embed-top-actions,
  html body.public-tv-layout.mobile-persistent-ui:not(.tv-app-experience).is-vast-click-mode .gp-embed-top-actions,
  html body.public-tv-layout.mobile-persistent-ui:not(.tv-app-experience).is-direct-vast-player .gp-embed-top-actions {
    display: flex !important;
    opacity: 1 !important;
    visibility: visible !important;
    pointer-events: auto !important;
    z-index: 470 !important;
  }

  html body.public-tv-layout.mobile-persistent-ui:not(.tv-app-experience).is-playing-ad .gp-live-controls,
  html body.public-tv-layout.mobile-persistent-ui:not(.tv-app-experience).is-vast-click-mode .gp-live-controls,
  html body.public-tv-layout.mobile-persistent-ui:not(.tv-app-experience).is-direct-vast-player .gp-live-controls {
    display: flex !important;
    opacity: 1 !important;
    visibility: visible !important;
    pointer-events: auto !important;
  }

  html body.public-tv-layout.mobile-persistent-ui:not(.tv-app-experience).is-playing-ad .gp-embed-top-actions,
  html body.public-tv-layout.mobile-persistent-ui:not(.tv-app-experience).is-vast-click-mode .gp-embed-top-actions,
  html body.public-tv-layout.mobile-persistent-ui:not(.tv-app-experience).is-direct-vast-player .gp-embed-top-actions {
    position: absolute !important;
    top: 12px !important;
    right: 12px !important;
  }

  body.public-tv-layout .ad-status-pill {
    left: 10px;
    bottom: 10px;
  }

  body.public-tv-layout .ad-skip-btn:not([hidden]) {
    right: 10px;
    bottom: 10px;
    min-width: 108px;
    min-height: 44px;
    padding-inline: 12px;
  }
}

@media (max-width: 560px) {
  html body.public-tv-layout.mobile-persistent-ui:not(.tv-app-experience).is-playing-ad .gp-top-info,
  html body.public-tv-layout.mobile-persistent-ui:not(.tv-app-experience).is-vast-click-mode .gp-top-info,
  html body.public-tv-layout.mobile-persistent-ui:not(.tv-app-experience).is-direct-vast-player .gp-top-info {
    min-height: 128px !important;
    max-height: 168px !important;
    padding: 9px 14px !important;
    grid-template-columns: minmax(0, 1fr) !important;
    grid-template-rows: repeat(4, max-content) !important;
    grid-template-areas: "line" "title" "meta" "next" !important;
    gap: 3px !important;
  }

  body.public-tv-layout .ad-status-pill {
    max-width: calc(100% - 142px);
    overflow: hidden;
  }
}

@media (max-width: 360px) {
  html body.public-tv-layout.mobile-persistent-ui:not(.tv-app-experience) .player-stage.public-player-stage {
    --vast-media-height: 240px;
  }

  body.public-tv-layout .ad-status-pill {
    min-height: 28px;
    padding: 4px 7px;
    gap: 6px;
    font-size: 11px;
  }

  body.public-tv-layout .ad-status-label {
    padding-right: 6px;
  }

  body.public-tv-layout .ad-skip-btn:not([hidden]) {
    min-width: 102px;
    min-height: 42px;
    padding-inline: 10px;
    font-size: 12px;
  }
}

/* v2.8.98: uma unica geometria responsiva para video, EPG e canais. */
@media (max-width: 1024px) {
  html body.public-tv-layout.mobile-persistent-ui:not(.tv-app-experience) #playerStage.player-stage.public-player-stage {
    --mobile-epg-h: 108px;
    /* WebViews sociais resolviam o 100% dentro do inset de forma inconsistente. */
    --ntv-video-height: min(56.25vw, 520px) !important;
    --vast-media-height: var(--ntv-video-height) !important;
  }

  html body.public-tv-layout.mobile-persistent-ui:not(.tv-app-experience):not(.is-playing-ad):not(.is-vast-click-mode):not(.is-direct-vast-player) #playerStage.player-stage.public-player-stage > #mainVideo,
  html body.public-tv-layout.mobile-persistent-ui:not(.tv-app-experience):not(.is-playing-ad):not(.is-vast-click-mode):not(.is-direct-vast-player) #playerStage.player-stage.public-player-stage > #mainFrame {
    position: absolute !important;
    inset: auto !important;
    top: 0 !important;
    right: 0 !important;
    bottom: auto !important;
    left: 0 !important;
    width: 100% !important;
    height: var(--ntv-video-height) !important;
    min-height: var(--ntv-video-height) !important;
    max-height: var(--ntv-video-height) !important;
  }

  html body.public-tv-layout.mobile-persistent-ui:not(.tv-app-experience) #playerStage #gpPlayerChrome .gp-bottom-ui {
    position: absolute !important;
    inset: 0 !important;
    width: 100% !important;
    height: 100% !important;
    z-index: 340 !important;
    transform: none !important;
  }

  html body.public-tv-layout.mobile-persistent-ui:not(.tv-app-experience).is-playing-ad #playerStage #gpPlayerChrome,
  html body.public-tv-layout.mobile-persistent-ui:not(.tv-app-experience).is-vast-click-mode #playerStage #gpPlayerChrome,
  html body.public-tv-layout.mobile-persistent-ui:not(.tv-app-experience).is-direct-vast-player #playerStage #gpPlayerChrome {
    z-index: 350 !important;
  }

  html body.public-tv-layout.mobile-persistent-ui:not(.tv-app-experience).is-playing-ad #playerStage #gpPlayerChrome .gp-live-controls,
  html body.public-tv-layout.mobile-persistent-ui:not(.tv-app-experience).is-vast-click-mode #playerStage #gpPlayerChrome .gp-live-controls,
  html body.public-tv-layout.mobile-persistent-ui:not(.tv-app-experience).is-direct-vast-player #playerStage #gpPlayerChrome .gp-live-controls,
  html body.public-tv-layout.mobile-persistent-ui:not(.tv-app-experience) #playerStage.has-embed-player #gpPlayerChrome .gp-live-controls {
    display: none !important;
    opacity: 0 !important;
    visibility: hidden !important;
    pointer-events: none !important;
  }

  html body.public-tv-layout.mobile-persistent-ui:not(.tv-app-experience) #playerStage.player-stage.public-player-stage #gpPlayerChrome.gp-player-chrome > .gp-top-info {
    position: absolute !important;
    inset: auto !important;
    top: var(--ntv-video-height) !important;
    right: 0 !important;
    bottom: auto !important;
    left: 0 !important;
    width: 100% !important;
    height: var(--mobile-epg-h) !important;
    min-height: var(--mobile-epg-h) !important;
    max-height: var(--mobile-epg-h) !important;
    margin: 0 !important;
    overflow: hidden !important;
    z-index: 342 !important;
    transform: none !important;
    box-sizing: border-box !important;
  }

  html body.public-tv-layout.mobile-persistent-ui:not(.tv-app-experience) #playerStage.player-stage.public-player-stage #gpPlayerChrome.gp-player-chrome #gpChannelDrawer,
  html body.public-tv-layout.mobile-persistent-ui:not(.tv-app-experience) #playerStage.player-stage.public-player-stage #gpPlayerChrome.gp-player-chrome.drawer-open #gpChannelDrawer {
    position: absolute !important;
    inset: auto !important;
    top: calc(var(--ntv-video-height) + var(--mobile-epg-h)) !important;
    right: 0 !important;
    bottom: auto !important;
    left: 0 !important;
    height: var(--mobile-channel-drawer-h) !important;
    min-height: var(--mobile-channel-drawer-h) !important;
    max-height: var(--mobile-channel-drawer-h) !important;
    z-index: 341 !important;
    transform: none !important;
    box-sizing: border-box !important;
  }
}

@media (max-width: 560px) {
  html body.public-tv-layout.mobile-persistent-ui:not(.tv-app-experience) #playerStage.player-stage.public-player-stage {
    --mobile-epg-h: 128px;
  }
}

@media (max-width: 1024px) and (max-height: 620px) {
  html body.public-tv-layout.mobile-persistent-ui:not(.tv-app-experience) {
    --mobile-epg-h: 96px;
    --mobile-channel-drawer-h: 210px;
    --ntv-video-height: min(56.25vw, 42svh, 360px);
    --mobile-stage-content-h: calc(min(56.25vw, 42svh, 360px) + 96px + 210px);
  }

  html body.public-tv-layout.mobile-persistent-ui:not(.tv-app-experience) .page-grid.public-tv-shell,
  html body.public-tv-layout.mobile-persistent-ui:not(.tv-app-experience) .public-player-panel,
  html body.public-tv-layout.mobile-persistent-ui:not(.tv-app-experience) .player-panel.card.public-player-panel {
    height: auto !important;
    min-height: var(--mobile-stage-content-h) !important;
    max-height: none !important;
    overflow: visible !important;
  }

  html body.public-tv-layout.mobile-persistent-ui:not(.tv-app-experience) #playerStage.player-stage.public-player-stage {
    --mobile-epg-h: 96px;
    --mobile-channel-drawer-h: 210px;
    --ntv-video-height: min(56.25vw, 42svh, 360px) !important;
    height: var(--mobile-stage-content-h) !important;
    min-height: var(--mobile-stage-content-h) !important;
    max-height: none !important;
  }

  html body.public-tv-layout.mobile-persistent-ui:not(.tv-app-experience) #playerStage #gpPlayerChrome #gpChannelDrawer,
  html body.public-tv-layout.mobile-persistent-ui:not(.tv-app-experience) #playerStage #gpPlayerChrome.drawer-open #gpChannelDrawer {
    grid-template-rows: 44px minmax(0, 108px) !important;
    row-gap: 6px !important;
    padding: 6px 12px 46px !important;
  }

  html body.public-tv-layout.mobile-persistent-ui:not(.tv-app-experience) #playerStage #gpPlayerChrome #gpChannelDrawer .gp-rail-wrap,
  html body.public-tv-layout.mobile-persistent-ui:not(.tv-app-experience) #playerStage #gpPlayerChrome #gpChannelDrawer .gp-channel-rail,
  html body.public-tv-layout.mobile-persistent-ui:not(.tv-app-experience) #playerStage #gpPlayerChrome #gpChannelDrawer .gp-channel-card {
    height: 108px !important;
    max-height: 108px !important;
  }
}

/* ======================================================================
   v2.8.102 - logos sem recorte, cards estáveis e EPG único durante VAST
   ====================================================================== */

/* A lista de canais exibe identidades visuais, não fotos de capa. */
body.public-tv-layout .gp-channel-card img {
  box-sizing: border-box !important;
  object-fit: contain !important;
  object-position: center !important;
  padding: clamp(16px, 2vw, 28px) clamp(20px, 3vw, 46px) clamp(38px, 4vw, 56px) !important;
  background: #101114 !important;
  filter: saturate(1) contrast(1.02) brightness(.96) !important;
}

body.public-tv-layout .gp-channel-card .thumb-fallback {
  padding: 0 !important;
  object-fit: initial !important;
}

/* Cards da página de jogos: pôster ocupa o quadro; logo respira no centro. */
body.games-page-body .games-day-card .football-match-thumb {
  isolation: isolate;
  background: #101114;
}

body.games-page-body .games-day-card .football-match-thumb > img {
  z-index: 1;
  box-sizing: border-box;
  object-position: center;
}

body.games-page-body .games-day-card .football-match-thumb.is-channel-logo > img {
  object-fit: contain !important;
  padding: clamp(34px, 5.5vw, 62px) clamp(30px, 7vw, 76px) !important;
  background: #101114;
}

body.games-page-body .games-day-card .football-match-thumb.is-event-poster > img {
  object-fit: cover !important;
  padding: 0 !important;
}

body.games-page-body .games-day-card .football-match-thumb-fallback {
  z-index: 0;
}

body.games-page-body .games-day-card .football-match-info {
  min-width: 0;
}

/* O painel lateral precisa rolar; os cards não podem encolher para caber todos. */
body.public-tv-layout .gp-football-card.football-match-card {
  flex: 0 0 auto !important;
  min-height: 112px !important;
}

body.public-tv-layout .gp-football-card .football-match-thumb {
  isolation: isolate !important;
  background: #101114 !important;
}

body.public-tv-layout .gp-football-card .football-match-thumb > img {
  z-index: 1 !important;
  box-sizing: border-box !important;
  object-position: center !important;
}

body.public-tv-layout .gp-football-card .football-match-thumb.is-channel-logo > img {
  object-fit: contain !important;
  padding: 25px 15px !important;
  background: #101114 !important;
}

body.public-tv-layout .gp-football-card .football-match-thumb.is-event-poster > img {
  object-fit: cover !important;
  padding: 0 !important;
}

body.public-tv-layout .gp-football-card .football-match-thumb > .thumb-fallback {
  z-index: 0 !important;
}

body.public-tv-layout .gp-football-card .football-match-info {
  min-width: 0 !important;
  overflow: hidden !important;
}

body.public-tv-layout .gp-football-card .football-match-meta-row,
body.public-tv-layout .gp-football-card .football-match-channel {
  min-width: 0 !important;
}

body.public-tv-layout .gp-football-card h3 {
  display: -webkit-box !important;
  max-height: 2.5em !important;
  overflow: hidden !important;
  -webkit-box-orient: vertical !important;
  -webkit-line-clamp: 2 !important;
}

body.public-tv-layout .gp-football-card .football-match-channel span {
  min-width: 0 !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  white-space: nowrap !important;
}

@media (max-width: 560px) {
  body.public-tv-layout .gp-football-card.football-match-card {
    min-height: 108px !important;
  }

  body.public-tv-layout .gp-football-card .football-match-thumb.is-channel-logo > img {
    padding: 24px 13px !important;
  }
}

/* Até 1024px, anúncio, EPG e canais usam sempre a mesma geometria. */
@media (max-width: 1024px) {
  html body.public-tv-layout.mobile-persistent-ui:not(.tv-app-experience):not(.is-playing-ad):not(.is-vast-click-mode):not(.is-direct-vast-player) #playerStage.player-stage.public-player-stage #gpPlayerChrome.gp-player-chrome > .gp-top-info,
  html body.public-tv-layout.mobile-persistent-ui:not(.tv-app-experience).is-playing-ad #playerStage.player-stage.public-player-stage #gpPlayerChrome.gp-player-chrome > .gp-top-info,
  html body.public-tv-layout.mobile-persistent-ui:not(.tv-app-experience).is-vast-click-mode #playerStage.player-stage.public-player-stage #gpPlayerChrome.gp-player-chrome > .gp-top-info,
  html body.public-tv-layout.mobile-persistent-ui:not(.tv-app-experience).is-direct-vast-player #playerStage.player-stage.public-player-stage #gpPlayerChrome.gp-player-chrome > .gp-top-info {
    position: absolute !important;
    inset: auto !important;
    top: var(--ntv-video-height) !important;
    right: 0 !important;
    bottom: auto !important;
    left: 0 !important;
    width: 100% !important;
    height: var(--mobile-epg-h) !important;
    min-height: var(--mobile-epg-h) !important;
    max-height: var(--mobile-epg-h) !important;
    margin: 0 !important;
    padding: 10px 16px !important;
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) !important;
    grid-template-rows: max-content max-content minmax(0, 1fr) !important;
    grid-template-areas: "line line" "title title" "meta next" !important;
    align-content: center !important;
    gap: 4px 16px !important;
    overflow: hidden !important;
    border: 0 !important;
    border-top: 1px solid #202124 !important;
    border-bottom: 1px solid #202124 !important;
    border-radius: 0 !important;
    background: #07080a !important;
    box-shadow: none !important;
    opacity: 1 !important;
    visibility: visible !important;
    transform: none !important;
    pointer-events: none !important;
    box-sizing: border-box !important;
  }

  html body.public-tv-layout.mobile-persistent-ui:not(.tv-app-experience) #playerStage #gpPlayerChrome .gp-top-info .gp-schedule-line {
    grid-area: line !important;
    min-width: 0 !important;
    min-height: 20px !important;
  }

  html body.public-tv-layout.mobile-persistent-ui:not(.tv-app-experience) #playerStage #gpPlayerChrome .gp-top-info #gpNowTitle {
    grid-area: title !important;
    min-width: 0 !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    white-space: nowrap !important;
  }

  html body.public-tv-layout.mobile-persistent-ui:not(.tv-app-experience) #playerStage #gpPlayerChrome .gp-top-info #gpNowMeta,
  html body.public-tv-layout.mobile-persistent-ui:not(.tv-app-experience) #playerStage #gpPlayerChrome .gp-top-info #gpNextMeta {
    min-width: 0 !important;
    display: -webkit-box !important;
    overflow: hidden !important;
    -webkit-box-orient: vertical !important;
    -webkit-line-clamp: 2 !important;
    overflow-wrap: anywhere !important;
  }

  html body.public-tv-layout.mobile-persistent-ui:not(.tv-app-experience) #playerStage #gpPlayerChrome .gp-top-info #gpNowMeta {
    grid-area: meta !important;
  }

  html body.public-tv-layout.mobile-persistent-ui:not(.tv-app-experience) #playerStage #gpPlayerChrome .gp-top-info .gp-next-box {
    grid-area: next !important;
    min-width: 0 !important;
    width: 100% !important;
    min-height: 0 !important;
    max-height: 3.2em !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: hidden !important;
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
  }

  html body.public-tv-layout.mobile-persistent-ui:not(.tv-app-experience) #playerStage #gpPlayerChrome .gp-top-info .gp-info-progress {
    display: none !important;
  }

  html body.public-tv-layout.mobile-persistent-ui:not(.tv-app-experience).is-playing-ad #playerStage #gpPlayerChrome > .gp-top-info,
  html body.public-tv-layout.mobile-persistent-ui:not(.tv-app-experience).is-vast-click-mode #playerStage #gpPlayerChrome > .gp-top-info,
  html body.public-tv-layout.mobile-persistent-ui:not(.tv-app-experience).is-direct-vast-player #playerStage #gpPlayerChrome > .gp-top-info {
    display: grid !important;
    opacity: 1 !important;
    visibility: visible !important;
  }
}

@media (max-width: 560px) {
  html body.public-tv-layout.mobile-persistent-ui:not(.tv-app-experience) #playerStage.player-stage.public-player-stage #gpPlayerChrome.gp-player-chrome > .gp-top-info {
    padding: 9px 14px !important;
    grid-template-columns: minmax(0, 1fr) !important;
    grid-template-rows: repeat(4, max-content) !important;
    grid-template-areas: "line" "title" "meta" "next" !important;
    gap: 3px !important;
  }

  html body.public-tv-layout.mobile-persistent-ui:not(.tv-app-experience) #playerStage #gpPlayerChrome .gp-top-info #gpNowMeta,
  html body.public-tv-layout.mobile-persistent-ui:not(.tv-app-experience) #playerStage #gpPlayerChrome .gp-top-info #gpNextMeta {
    -webkit-line-clamp: 1 !important;
  }
}

@media (max-width: 1024px) and (max-height: 620px) {
  html body.public-tv-layout.mobile-persistent-ui:not(.tv-app-experience) #playerStage.player-stage.public-player-stage #gpPlayerChrome.gp-player-chrome > .gp-top-info {
    padding-block: 7px !important;
  }

  html body.public-tv-layout.mobile-persistent-ui:not(.tv-app-experience) #playerStage #gpPlayerChrome .gp-top-info #gpNowMeta,
  html body.public-tv-layout.mobile-persistent-ui:not(.tv-app-experience) #playerStage #gpPlayerChrome .gp-top-info #gpNextMeta {
    -webkit-line-clamp: 1 !important;
  }
}

/* ======================================================================
   v2.8.103 - EPG resiliente, rolagem real e logos padronizadas
   ====================================================================== */

/* Miniaturas do admin usam um quadro previsível, sem ampliar a arte até cortar. */
body.admin-ux-v2867 #channelsTableBody .table-thumb {
  display: block !important;
  width: 112px !important;
  height: 63px !important;
  max-width: 100% !important;
  max-height: none !important;
  aspect-ratio: 16 / 9 !important;
  justify-self: start !important;
  box-sizing: border-box !important;
  padding: 7px 10px !important;
  border: 1px solid rgba(255, 255, 255, .10) !important;
  border-radius: 6px !important;
  object-fit: contain !important;
  object-position: center !important;
  background: #101114 !important;
}

@media (max-width: 1100px) {
  body.admin-ux-v2867 #channelsTableBody .table-thumb {
    width: 168px !important;
    height: 95px !important;
    padding: 10px 14px !important;
  }
}

@media (max-width: 560px) {
  body.admin-ux-v2867 #channelsTableBody .table-thumb {
    width: min(156px, 100%) !important;
    height: auto !important;
  }
}

/* Categorias e canais aceitam roda/arraste no PC e não prendem a rolagem vertical. */
body.public-tv-layout #gpCategoryTabs,
body.public-tv-layout #categoryTabs,
body.public-tv-layout #gpChannelRail {
  cursor: grab !important;
  touch-action: pan-x pan-y !important;
  overscroll-behavior-inline: contain !important;
  user-select: none !important;
  -webkit-user-select: none !important;
  scrollbar-width: none !important;
}

body.public-tv-layout #gpCategoryTabs::-webkit-scrollbar,
body.public-tv-layout #categoryTabs::-webkit-scrollbar,
body.public-tv-layout #gpChannelRail::-webkit-scrollbar {
  display: none !important;
}

body.public-tv-layout #gpCategoryTabs.is-dragging,
body.public-tv-layout #categoryTabs.is-dragging,
body.public-tv-layout #gpChannelRail.is-dragging {
  cursor: grabbing !important;
  scroll-behavior: auto !important;
}

body.public-tv-layout #gpCategoryTabs .category-tab,
body.public-tv-layout #categoryTabs .category-tab {
  flex: 0 0 auto !important;
}

/* Quadro de logo único para os cards do carrossel, no estilo de miniaturas de vídeo. */
body.public-tv-layout .gp-channel-card > .gp-channel-logo-frame {
  position: absolute !important;
  inset: 0 !important;
  z-index: 1 !important;
  display: grid !important;
  place-items: center !important;
  box-sizing: border-box !important;
  padding: 12px 16px 38px !important;
  overflow: hidden !important;
  background: #101114 !important;
}

body.public-tv-layout .gp-channel-card > .gp-channel-logo-frame > img,
body.public-tv-layout .gp-channel-card > .gp-channel-logo-frame > .thumb-fallback {
  position: static !important;
  inset: auto !important;
  display: grid !important;
  place-items: center !important;
  width: 100% !important;
  height: 100% !important;
  min-width: 0 !important;
  min-height: 0 !important;
  max-width: 100% !important;
  max-height: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
  border-radius: 0 !important;
  object-fit: contain !important;
  object-position: center !important;
  background: transparent !important;
  filter: none !important;
}

/* Logos de jogos ocupam sempre a mesma área útil; pôsteres continuam em cover. */
body.public-tv-layout .gp-football-card .football-match-thumb.is-channel-logo > img {
  inset: 14px 12px 34px !important;
  width: calc(100% - 24px) !important;
  height: calc(100% - 48px) !important;
  max-width: none !important;
  max-height: none !important;
  padding: 0 !important;
  object-fit: contain !important;
  background: transparent !important;
}

body.games-page-body .games-day-card .football-match-thumb.is-channel-logo > img {
  inset: 20% 14% 25% !important;
  width: 72% !important;
  height: 55% !important;
  max-width: none !important;
  max-height: none !important;
  padding: 0 !important;
  object-fit: contain !important;
  background: transparent !important;
}

/* A página precisa medir a soma vídeo + EPG + canais para o navegador poder rolar. */
@media (max-width: 1024px) {
  html,
  body,
  html body.public-tv-layout.mobile-persistent-ui:not(.tv-app-experience) {
    overflow-x: hidden !important;
    overflow-y: auto !important;
    overscroll-behavior-y: auto !important;
  }

  html body.public-tv-layout.mobile-persistent-ui:not(.tv-app-experience) {
    --mobile-epg-h: 108px;
    --mobile-stage-content-h: calc(var(--ntv-video-height) + var(--mobile-epg-h) + var(--mobile-channel-drawer-h));
  }

  html body.public-tv-layout.mobile-persistent-ui:not(.tv-app-experience) .page-grid.public-tv-shell {
    position: relative !important;
    height: auto !important;
    min-height: var(--mobile-stage-content-h) !important;
    max-height: none !important;
    padding-bottom: 48px !important;
    overflow: visible !important;
    box-sizing: content-box !important;
  }

  html body.public-tv-layout.mobile-persistent-ui:not(.tv-app-experience) .public-player-panel,
  html body.public-tv-layout.mobile-persistent-ui:not(.tv-app-experience) .player-panel.card.public-player-panel {
    position: relative !important;
    inset: auto !important;
    height: var(--mobile-stage-content-h) !important;
    min-height: var(--mobile-stage-content-h) !important;
    max-height: none !important;
    overflow: visible !important;
  }

  html body.public-tv-layout.mobile-persistent-ui:not(.tv-app-experience) #playerStage.player-stage.public-player-stage {
    position: relative !important;
    inset: auto !important;
    width: 100% !important;
    height: var(--mobile-stage-content-h) !important;
    min-height: var(--mobile-stage-content-h) !important;
    max-height: none !important;
    overflow: hidden !important;
    touch-action: pan-y pinch-zoom !important;
  }
}

@media (max-width: 560px) {
  html body.public-tv-layout.mobile-persistent-ui:not(.tv-app-experience) {
    --mobile-epg-h: 128px;
  }
}

@media (max-width: 1024px) and (max-height: 620px) {
  html body.public-tv-layout.mobile-persistent-ui:not(.tv-app-experience) {
    --mobile-epg-h: 96px;
    --mobile-channel-drawer-h: 210px;
  }
}
