/* Global Entretenimento — App reprodutor | tema preto + dourado */
:root{
  --preto:#060607; --preto2:#0e0e11; --preto3:#17171c; --card:#16161b;
  --borda:#26262d; --borda2:#34343c;
  --ouro:#f0c330; --ouro2:#ffe07a; --ouro-esc:#7a610f; --ouro-linha:#d9a92a;
  --txt:#f4f4f6; --muted:#8e8e98; --prata:#d7dae0; --prata2:#a9adb6;
  --vivo:#e23b3b;
  --sombra:0 14px 40px rgba(0,0,0,.6);
}
*{box-sizing:border-box;margin:0;padding:0}
html,body{height:100%}
body{font-family:'Segoe UI',system-ui,-apple-system,sans-serif;background:var(--preto);
  color:var(--txt);overflow-x:hidden;-webkit-font-smoothing:antialiased}
.hidden{display:none!important}
img{display:block;max-width:100%}
button{font-family:inherit}
::-webkit-scrollbar{height:9px;width:9px}
::-webkit-scrollbar-thumb{background:var(--borda2);border-radius:5px}

/* ---------- LOGO (SVG injetado via JS) ---------- */
.logo-svg{display:block}
.logo-grande{display:flex;align-items:center;justify-content:center;margin-bottom:18px}
.topo-logo{display:flex;align-items:center;flex:0 0 auto}
.logo-img-topo{height:46px;width:auto;filter:drop-shadow(0 2px 8px rgba(0,0,0,.5))}

/* ---------- LOGIN ---------- */
.login-bg{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px;
  position:relative;overflow:hidden;
  background:#030304 url('assets/login-bg.jpg') center/cover no-repeat}
/* leve escurecimento para o painel destacar sobre a arte */
.login-bg::after{content:'';position:absolute;inset:0;z-index:1;
  background:radial-gradient(120% 100% at 50% 50%,rgba(3,3,4,.15),rgba(3,3,4,.55))}
.login-painel{position:relative;z-index:2;width:100%;max-width:500px;
  background:linear-gradient(180deg,rgba(12,12,16,.74),rgba(7,7,10,.82));
  backdrop-filter:blur(16px) saturate(1.1);
  border:1px solid rgba(240,195,48,.42);border-radius:24px;padding:40px 40px 28px;
  text-align:center;
  box-shadow:0 40px 110px rgba(0,0,0,.8),0 0 0 1px rgba(0,0,0,.4),
    inset 0 1px 0 rgba(255,255,255,.06),0 0 80px rgba(240,195,48,.14)}
.login-painel h1{font-size:36px;font-weight:800;letter-spacing:.5px;color:#fff}
/* logo real (PNG) no login */
.logo-img-login{max-width:300px;width:72%;height:auto;margin:0 auto 6px;
  filter:drop-shadow(0 6px 20px rgba(0,0,0,.6))}
.login-painel .sub{color:var(--muted);margin:8px 0 26px;font-size:15px}

.form-login{display:flex;flex-direction:column;gap:14px;text-align:left}
.campo{display:flex;align-items:center;gap:12px;background:rgba(20,20,25,.85);
  border:1.5px solid var(--borda);border-radius:13px;padding:0 15px;transition:.16s;position:relative}
.campo:focus-within{border-color:var(--ouro);box-shadow:0 0 0 3px rgba(240,195,48,.14)}
.campo-icone{width:20px;height:20px;color:var(--muted);flex:0 0 auto}
.campo input,.campo select{flex:1;background:transparent;border:none;outline:none;
  color:var(--txt);font-size:16px;padding:15px 0;min-width:0}
.campo select{cursor:pointer;appearance:none;-webkit-appearance:none}
.campo select option{background:#121216;color:var(--txt)}
.campo input::placeholder{color:var(--muted)}
.campo .campo-seta{width:18px;height:18px;color:var(--muted);flex:0 0 auto;pointer-events:none}
/* primeiro campo em destaque dourado, como na referência */
.form-login .campo:first-child{border-color:var(--ouro)}
.login-msg{min-height:20px;font-size:14px;line-height:1.3}
.login-msg.erro{color:#ff8179}
.login-msg.ok{color:var(--ouro)}

.btn-entrar{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;
  background:linear-gradient(180deg,#ffd758,#ecb11f);color:#2a2000;
  border:none;border-radius:13px;padding:16px;font-size:19px;font-weight:800;cursor:pointer;
  box-shadow:0 10px 26px rgba(240,195,48,.32),inset 0 1px 0 rgba(255,255,255,.5);
  transition:.15s}
.btn-entrar svg{width:20px;height:20px}
.btn-entrar:hover{filter:brightness(1.06);transform:translateY(-1px)}
.btn-entrar:active{transform:translateY(0)}
.btn-entrar:disabled{opacity:.6;cursor:not-allowed;transform:none}

.mac-rodape{display:flex;align-items:center;justify-content:center;gap:9px;flex-wrap:wrap;
  margin-top:22px;padding-top:18px;border-top:1px solid rgba(255,255,255,.06);
  font-size:12px;color:var(--muted);text-transform:uppercase;letter-spacing:.8px}
.mac-rodape .mac-valor{font-family:'Consolas',monospace;font-size:14px;color:var(--ouro);
  font-weight:700;letter-spacing:.5px;text-transform:none}
.mac-copiar{background:transparent;border:1px solid var(--borda2);color:var(--muted);
  border-radius:7px;padding:5px 8px;cursor:pointer;display:flex}
.mac-copiar svg{width:15px;height:15px}
.mac-copiar:hover{border-color:var(--ouro);color:var(--ouro)}

/* ---------- TOPO ---------- */
.topo{position:sticky;top:0;z-index:30;display:flex;align-items:center;gap:22px;
  padding:12px 34px;background:linear-gradient(180deg,#060607 60%,rgba(6,6,7,.4));
  backdrop-filter:blur(8px)}
.menu{display:flex;gap:4px;flex:1;justify-content:center;flex-wrap:wrap}
.menu-item{display:flex;align-items:center;gap:8px;padding:10px 18px;border-radius:30px;
  color:var(--prata2);cursor:pointer;font-size:15px;text-decoration:none;transition:.15s;
  white-space:nowrap;border:1px solid transparent}
.menu-item svg{width:19px;height:19px}
.menu-item:hover{color:#fff}
.menu-item.ativo{color:var(--ouro);
  background:radial-gradient(120% 120% at 50% 0%,rgba(240,195,48,.18),rgba(240,195,48,.05));
  border-color:var(--ouro);font-weight:600;
  box-shadow:0 0 18px rgba(240,195,48,.22),inset 0 0 12px rgba(240,195,48,.08)}
.topo-config{background:transparent;border:none;color:var(--prata2);cursor:pointer;
  flex:0 0 auto;display:flex;padding:6px}
.topo-config svg{width:23px;height:23px}
.topo-config:hover{color:var(--ouro)}

/* ---------- MAIN ---------- */
.main{padding-bottom:70px}
.sec-titulo{font-size:28px;font-weight:800;padding:26px 36px 8px}
.trilha-titulo{font-size:20px;font-weight:700;padding:24px 36px 14px;color:#fff}

/* ---------- HERO ---------- */
.hero{position:relative;min-height:min(60vh,540px);display:flex;align-items:center;
  padding:48px;overflow:hidden}
.hero-bg{position:absolute;inset:0;z-index:0;background-size:cover;background-position:center}
.hero::after{content:'';position:absolute;inset:0;z-index:1;
  background:
    linear-gradient(90deg,var(--preto) 6%,rgba(6,6,7,.55) 46%,transparent 78%),
    linear-gradient(0deg,var(--preto) 1%,transparent 38%)}
.hero-info{position:relative;z-index:2;max-width:560px}
.hero-tag{color:var(--prata2);letter-spacing:5px;font-size:13px;font-weight:700;margin-bottom:6px}
.hero-nome{font-size:clamp(40px,6.5vw,76px);font-weight:900;line-height:.95;margin-bottom:14px;
  letter-spacing:1px;
  background:linear-gradient(180deg,#ffffff 30%,#9fa3ab 100%);
  -webkit-background-clip:text;background-clip:text;color:transparent;
  filter:drop-shadow(0 3px 12px rgba(0,0,0,.6))}
.hero-nome b{font-weight:900;
  background:linear-gradient(180deg,#ffe07a 20%,#e0a81e 100%);
  -webkit-background-clip:text;background-clip:text;color:transparent}
.hero-frase{font-size:20px;color:var(--prata);margin-bottom:8px;font-weight:500}
.hero-desc{color:var(--prata2);font-size:15.5px;line-height:1.55;margin-bottom:24px;max-width:470px}
.hero-botoes{display:flex;gap:14px;flex-wrap:wrap}
.btn-hero{display:flex;align-items:center;gap:9px;border:none;border-radius:11px;
  padding:15px 30px;font-size:16px;font-weight:700;cursor:pointer;transition:.15s}
.btn-hero svg{width:20px;height:20px}
.btn-hero.play{background:linear-gradient(180deg,#ffd758,#ecb11f);color:#2a2000;
  box-shadow:0 8px 22px rgba(240,195,48,.3),inset 0 1px 0 rgba(255,255,255,.5)}
.btn-hero.info{background:rgba(28,28,33,.82);color:#fff;border:1px solid var(--borda2);
  backdrop-filter:blur(4px)}
.btn-hero:hover{filter:brightness(1.07);transform:translateY(-1px)}
.hero-pontos{position:absolute;left:48px;bottom:34px;z-index:2;display:flex;gap:7px}
.hero-ponto{width:26px;height:4px;border-radius:3px;background:rgba(255,255,255,.25)}
.hero-ponto.ativo{background:var(--ouro);box-shadow:0 0 8px var(--ouro)}

/* ---------- TRILHAS / CARROSSEL ---------- */
.trilha{margin-bottom:4px}
.trilha-scroll{display:flex;gap:16px;overflow-x:auto;padding:4px 36px 18px;scroll-behavior:smooth}
.cartao{flex:0 0 auto;width:272px;border-radius:12px;overflow:hidden;cursor:pointer;
  background:var(--card);border:1px solid var(--borda);transition:.18s;position:relative}
.cartao .capa{width:100%;height:153px;object-fit:cover;background:var(--preto3)}
.cartao .capa-fallback{width:100%;height:153px;display:flex;align-items:flex-end;
  background:linear-gradient(135deg,#232733,#0d0e12);padding:14px;
  font-weight:800;font-size:16px;color:#fff;text-shadow:0 2px 8px rgba(0,0,0,.7);
  position:relative}
.cartao .capa-fallback::before{content:'';position:absolute;inset:0;
  background:radial-gradient(120% 90% at 80% 15%,rgba(240,195,48,.18),transparent 60%)}
.cartao .capa-fallback span{display:none}
.cartao .capa-fallback::after{content:'';position:absolute;inset:0;
  background:url('assets/logo.png') center/46% no-repeat;opacity:.16;filter:grayscale(.2)}
.cartao .nome{padding:11px 13px;font-size:14px;font-weight:600;white-space:nowrap;
  overflow:hidden;text-overflow:ellipsis;color:var(--prata)}
.cartao:hover,.cartao:focus{transform:translateY(-5px);border-color:var(--ouro);outline:none;
  box-shadow:0 14px 32px rgba(0,0,0,.6),0 0 22px rgba(240,195,48,.28)}
.cartao.ativo-moldura{border-color:var(--ouro);box-shadow:0 0 26px rgba(240,195,48,.4)}
.cartao.poster{width:184px}
.cartao.poster .capa,.cartao.poster .capa-fallback{height:264px}
/* badge AO VIVO */
.cartao .vivo{position:absolute;top:10px;left:10px;z-index:2;display:flex;align-items:center;
  gap:5px;background:rgba(0,0,0,.6);padding:3px 9px;border-radius:5px;font-size:11px;
  font-weight:700;color:#fff;letter-spacing:.5px}
.cartao .vivo::before{content:'';width:7px;height:7px;border-radius:50%;background:var(--vivo);
  box-shadow:0 0 6px var(--vivo)}
/* barra de progresso (Continuar assistindo) */
.cartao .progresso{position:absolute;left:0;right:0;bottom:46px;height:4px;background:rgba(255,255,255,.18)}
.cartao .progresso i{display:block;height:100%;background:linear-gradient(90deg,var(--ouro),var(--ouro2));
  box-shadow:0 0 6px rgba(240,195,48,.6)}

/* ---------- CATEGORIAS ---------- */
.categorias{display:flex;gap:10px;overflow-x:auto;padding:8px 36px 16px}
.chip-cat{flex:0 0 auto;padding:9px 18px;border-radius:30px;background:rgba(23,23,28,.9);
  border:1px solid var(--borda);color:var(--prata2);cursor:pointer;font-size:14px;white-space:nowrap;transition:.15s}
.chip-cat:hover{color:#fff;border-color:var(--borda2)}
.chip-cat.ativo{background:radial-gradient(120% 120% at 50% 0%,rgba(240,195,48,.18),rgba(240,195,48,.04));
  border-color:var(--ouro);color:var(--ouro);font-weight:600;box-shadow:0 0 14px rgba(240,195,48,.18)}

/* ---------- GRADE ---------- */
.grade{display:grid;grid-template-columns:repeat(auto-fill,minmax(188px,1fr));gap:18px;padding:12px 36px 44px}
.grade .cartao{width:100%}
.grade.canais{grid-template-columns:repeat(auto-fill,minmax(230px,1fr))}

/* ---------- BUSCA ---------- */
.busca-input{margin:12px 36px 0;width:calc(100% - 72px);background:rgba(23,23,28,.9);
  border:1.5px solid var(--borda);border-radius:13px;padding:16px 20px;color:var(--txt);font-size:17px}
.busca-input:focus{outline:none;border-color:var(--ouro);box-shadow:0 0 0 3px rgba(240,195,48,.12)}

/* ---------- PLAYER ---------- */
.player-wrap{position:fixed;inset:0;z-index:100;background:#000;display:flex;
  flex-direction:column;align-items:center;justify-content:center}
.player-wrap video{width:100%;height:100%;object-fit:contain;background:#000}
.player-titulo{position:absolute;top:0;left:0;right:0;z-index:2;padding:22px 32px;
  font-size:20px;font-weight:700;background:linear-gradient(180deg,rgba(0,0,0,.85),transparent)}
.player-fechar{position:absolute;top:18px;right:22px;z-index:5;background:rgba(0,0,0,.6);
  border:1px solid var(--borda2);color:#fff;width:44px;height:44px;border-radius:50%;
  font-size:20px;cursor:pointer}
.player-fechar:hover{border-color:var(--ouro);color:var(--ouro)}
.player-msg{position:absolute;z-index:3;color:var(--prata2);font-size:16px;padding:0 30px;text-align:center}

/* ---------- DETALHE ---------- */
.detalhe-wrap{position:fixed;inset:0;z-index:90;background:rgba(0,0,0,.82);display:flex;
  align-items:center;justify-content:center;padding:20px}
.detalhe{position:relative;background:var(--preto2);border:1px solid var(--borda2);border-radius:16px;
  max-width:840px;width:100%;max-height:90vh;overflow:auto}
.detalhe-hero{height:320px;background-size:cover;background-position:center;position:relative;
  background-color:#15151a}
.detalhe-hero::after{content:'';position:absolute;inset:0;background:linear-gradient(0deg,var(--preto2),transparent 72%)}
.detalhe-corpo{padding:0 34px 34px;margin-top:-64px;position:relative;z-index:2}
.detalhe-corpo h2{font-size:32px;margin-bottom:10px}
.detalhe-corpo .meta{color:var(--muted);font-size:14px;margin-bottom:14px}
.detalhe-corpo .sinopse{color:var(--prata);line-height:1.6;margin-bottom:22px}
.temporadas{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:16px}
.ep-lista{display:flex;flex-direction:column;gap:8px}
.ep{display:flex;align-items:center;gap:12px;background:var(--preto3);border:1px solid var(--borda);
  border-radius:9px;padding:12px 14px;cursor:pointer}
.ep:hover,.ep:focus{border-color:var(--ouro);outline:none}
.ep .ep-num{color:var(--ouro);font-weight:700;flex:0 0 auto}
.ep .ep-play{margin-left:auto;color:var(--ouro)}

/* ---------- ESTADOS ---------- */
.vazio{padding:44px 36px;color:var(--muted);font-size:16px;text-align:center;grid-column:1/-1}
.carregando{padding:44px 36px;color:var(--ouro);text-align:center;grid-column:1/-1}
.aviso-demo{margin:4px 36px 0;padding:11px 16px;border-radius:10px;font-size:13px;
  color:var(--prata2);background:rgba(240,195,48,.07);border:1px solid rgba(240,195,48,.22)}

/* ---------- RESPONSIVO ---------- */
@media(max-width:860px){
  .topo{flex-wrap:wrap;gap:10px;padding:12px 16px}
  .menu{order:3;flex:1 1 100%;justify-content:flex-start;flex-wrap:nowrap;overflow-x:auto;padding-bottom:4px;
    scrollbar-width:none}
  .menu::-webkit-scrollbar{display:none}
  .topo-config{margin-left:auto}
  .login-bg{background-position:80% center}
  .menu-item{padding:8px 14px;font-size:14px}
  .sec-titulo,.trilha-titulo{padding-left:16px;padding-right:16px;font-size:22px}
  .trilha-scroll,.categorias,.grade{padding-left:16px;padding-right:16px}
  .hero{padding:22px;min-height:48vh}
  .hero-pontos{left:22px;bottom:18px}
  .grade{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px}
  .cartao{width:210px}
  .busca-input{margin:12px 16px 0;width:calc(100% - 32px)}
  .login-painel{padding:30px 22px 24px}
  .login-painel h1{font-size:30px}
}
@media(max-width:480px){
  .grade,.grade.canais{grid-template-columns:repeat(2,1fr)}
  .cartao{width:168px}
}

/* =================================================================
   BUSCA DENTRO DA CATEGORIA
   ================================================================= */
.busca-cat-wrap{display:flex;align-items:center;gap:10px;margin:2px 36px 6px;max-width:520px;
  background:rgba(23,23,28,.9);border:1.5px solid var(--borda);border-radius:12px;padding:0 14px;transition:.15s}
.busca-cat-wrap:focus-within{border-color:var(--ouro);box-shadow:0 0 0 3px rgba(240,195,48,.12)}
.busca-cat-wrap svg{width:18px;height:18px;color:var(--muted);flex:0 0 auto}
.busca-cat{flex:1;background:transparent;border:none;outline:none;color:var(--txt);font-size:15px;padding:12px 0;min-width:0}
.busca-cat::placeholder{color:var(--muted)}

/* =================================================================
   FAVORITOS (Minha Lista)
   ================================================================= */
.fav-btn{position:absolute;top:8px;right:8px;z-index:3;width:36px;height:36px;border-radius:50%;
  display:flex;align-items:center;justify-content:center;cursor:pointer;
  background:rgba(0,0,0,.62);border:1px solid rgba(255,255,255,.18);color:#fff;transition:.15s}
.fav-btn svg{width:17px;height:17px}
.fav-btn:hover{border-color:var(--ouro);color:var(--ouro)}
.fav-btn.ativo{background:var(--ouro);border-color:var(--ouro);color:#2a2000}
.fav-btn.ativo svg{fill:currentColor}
.fav-detalhe svg{width:19px;height:19px}
.fav-detalhe.ativo{border-color:var(--ouro);color:var(--ouro)}
.fav-detalhe.ativo svg{fill:currentColor}

/* =================================================================
   PLAYER — barra superior com título, Minha Lista e fechar
   ================================================================= */
.player-barra{position:absolute;top:0;left:0;right:0;z-index:4;display:flex;align-items:center;gap:12px;
  padding:16px 20px;background:linear-gradient(180deg,rgba(0,0,0,.85),transparent)}
.player-barra .player-titulo{position:static;padding:0;background:none;flex:1;font-size:19px;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.player-barra .player-fechar{position:static;flex:0 0 auto}
.player-acao{display:flex;align-items:center;gap:8px;flex:0 0 auto;background:rgba(0,0,0,.55);color:#fff;
  border:1px solid var(--borda2);border-radius:22px;padding:9px 15px;font-size:14px;font-weight:600;cursor:pointer}
.player-acao svg{width:17px;height:17px}
.player-acao.ativo{border-color:var(--ouro);color:var(--ouro)}
.player-acao.ativo svg{fill:currentColor}

/* =================================================================
   CONFIGURAÇÕES
   ================================================================= */
.cfg-topo{display:flex;align-items:center;gap:12px;padding:18px 36px 4px}
.cfg-topo .sec-titulo{padding:0}
.btn-voltar{width:46px;height:46px;border-radius:12px;background:rgba(23,23,28,.9);border:1px solid var(--borda);
  color:var(--prata);display:flex;align-items:center;justify-content:center;cursor:pointer;flex:0 0 auto}
.btn-voltar svg{width:22px;height:22px}
.cfg-grade{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:14px;padding:18px 36px}
.cfg-tile{display:flex;align-items:center;gap:15px;text-align:left;min-height:78px;padding:14px 18px;cursor:pointer;
  background:linear-gradient(180deg,#1a1a20,#121216);border:1px solid var(--borda);border-radius:13px;color:var(--txt);
  transition:.15s}
.cfg-ic{width:42px;height:42px;border-radius:11px;flex:0 0 auto;display:flex;align-items:center;justify-content:center;
  background:rgba(240,195,48,.1);color:var(--ouro)}
.cfg-ic svg{width:23px;height:23px}
.cfg-txt{display:flex;flex-direction:column;gap:3px;min-width:0}
.cfg-txt b{font-size:15px;font-weight:600}
.cfg-txt small{font-size:12.5px;color:var(--ouro)}
.cfg-tile:hover,.cfg-tile:focus{border-color:var(--ouro);outline:none;box-shadow:0 0 18px rgba(240,195,48,.22)}
.cfg-rodape{text-align:center;color:var(--prata2);font-size:15px;line-height:1.8;padding:8px 20px 40px}
.cfg-rodape b{color:var(--ouro);font-family:Consolas,monospace;letter-spacing:.5px}

/* =================================================================
   PLAYLIST
   ================================================================= */
.pl-layout{display:grid;grid-template-columns:1fr 320px;min-height:calc(100vh - 90px)}
.pl-grade{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:14px;padding:18px 36px 40px;align-content:start}
.pl-tile{position:relative;min-height:112px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;
  padding:16px;cursor:pointer;color:var(--txt);text-align:center;
  background:linear-gradient(180deg,#1a1a20,#121216);border:1px solid var(--borda);border-radius:13px;transition:.15s}
.pl-tile:hover,.pl-tile:focus{border-color:var(--ouro);outline:none;box-shadow:0 0 18px rgba(240,195,48,.22)}
.pl-nome{font-size:17px;font-weight:700;letter-spacing:.5px}
.pl-conectado{font-size:12px;font-weight:700;color:#2a2000;background:var(--ouro);border-radius:20px;padding:4px 14px}
.pl-tag{font-size:11.5px;color:var(--muted)}
.pl-add{color:var(--prata2);border-style:dashed}
.pl-mais{width:44px;height:44px;border-radius:50%;background:rgba(240,195,48,.14);color:var(--ouro);
  display:flex;align-items:center;justify-content:center;font-size:28px;line-height:1}
.pl-lateral{border-left:1px solid var(--borda);display:flex;flex-direction:column;align-items:center;justify-content:center;
  gap:24px;padding:30px 20px;background:linear-gradient(180deg,rgba(240,195,48,.04),transparent)}
.pl-logo{width:200px;max-width:80%;height:auto}
.pl-info{display:flex;flex-direction:column;align-items:center;gap:4px;text-align:center}
.pl-info span{color:var(--prata2);font-size:14px;margin-top:10px}
.pl-info b{color:var(--ouro);font-family:Consolas,monospace;font-size:18px;letter-spacing:.5px}

/* =================================================================
   JANELA (modal), OPÇÕES E AVISOS
   ================================================================= */
.modal-wrap{position:fixed;inset:0;z-index:200;background:rgba(0,0,0,.72);display:flex;align-items:center;
  justify-content:center;padding:20px}
.modal-box{width:100%;max-width:470px;max-height:88vh;overflow:auto;padding:26px 24px 22px;
  background:linear-gradient(180deg,#16161b,#0e0e12);border:1px solid rgba(240,195,48,.4);border-radius:18px;
  box-shadow:0 30px 80px rgba(0,0,0,.7)}
.modal-box h3{font-size:21px;font-weight:800;margin-bottom:12px}
.modal-texto{color:var(--prata2);font-size:14.5px;line-height:1.5;margin-bottom:16px}
.modal-texto b{color:var(--ouro)}
.modal-acoes{display:flex;gap:10px;justify-content:flex-end;margin-top:18px;flex-wrap:wrap}
.btn-pri,.btn-sec{border-radius:11px;padding:12px 20px;font-size:15px;font-weight:700;cursor:pointer;border:1px solid transparent}
.btn-pri{background:linear-gradient(180deg,#ffd758,#ecb11f);color:#2a2000}
.btn-pri:disabled{opacity:.6}
.btn-sec{background:#1f1f25;color:#fff;border-color:var(--borda2)}
.btn-pri:focus,.btn-sec:focus{outline:3px solid #fff;outline-offset:2px}
.rot-modal{display:block;font-size:13px;color:var(--muted);margin:12px 0 6px 2px}
.campo-modal{width:100%;background:#15151a;border:1.5px solid var(--borda2);border-radius:11px;color:#fff;
  font-size:16px;padding:13px 14px;outline:none}
.campo-modal:focus{border-color:var(--ouro)}
.campo-modal.pin{text-align:center;font-size:28px;letter-spacing:14px;font-family:Consolas,monospace;max-width:220px;display:block;margin:0 auto}
.modal-erro{min-height:20px;color:#ff9a93;font-size:14px;margin-top:10px;text-align:center}
.opcoes,.checklist{display:flex;flex-direction:column;gap:8px}
.checklist{max-height:46vh;overflow:auto;padding:2px}
.opcao{display:flex;align-items:center;gap:13px;text-align:left;width:100%;padding:13px 14px;cursor:pointer;
  background:#15151a;border:1px solid var(--borda);border-radius:11px;color:var(--txt)}
.opcao b{font-size:15px;font-weight:600;display:block}
.opcao small{display:block;color:var(--muted);font-size:12.5px;margin-top:2px}
.opcao:focus,.opcao:hover{border-color:var(--ouro);outline:none}
.radio,.caixa{width:20px;height:20px;flex:0 0 auto;border:2px solid var(--borda2);border-radius:50%;position:relative}
.caixa{border-radius:6px}
.opcao.ativa{border-color:rgba(240,195,48,.6);background:rgba(240,195,48,.07)}
.opcao.ativa .radio,.opcao.ativa .caixa{border-color:var(--ouro);background:var(--ouro)}
.opcao.ativa .radio::after{content:'';position:absolute;inset:4px;border-radius:50%;background:#2a2000}
.opcao.ativa .caixa::after{content:'';position:absolute;left:5px;top:1px;width:5px;height:10px;border:solid #2a2000;
  border-width:0 2.5px 2.5px 0;transform:rotate(45deg)}
.grupo-op{margin-bottom:14px}
.grupo-tit{font-size:13px;color:var(--muted);margin-bottom:8px}
.grupo-chips{display:flex;gap:8px;flex-wrap:wrap}
.legenda-amostra{margin-top:6px;height:96px;border-radius:12px;display:flex;align-items:flex-end;justify-content:center;
  padding:14px;background:linear-gradient(135deg,#3a3f52,#14161d)}
.legenda-amostra span{padding:2px 8px;border-radius:4px;text-shadow:0 1px 3px #000}
.toast{position:fixed;left:50%;bottom:36px;transform:translateX(-50%);z-index:300;max-width:90%;
  background:#1c1c22;color:#fff;border:1px solid var(--ouro);border-radius:30px;padding:12px 22px;font-size:15px;
  box-shadow:0 12px 30px rgba(0,0,0,.6)}

/* episódio com progresso */
.ep-nome{display:flex;flex-direction:column;gap:6px;flex:1;min-width:0}
.ep-prog{display:block;height:3px;background:rgba(255,255,255,.15);border-radius:2px;max-width:220px}
.ep-prog b{display:block;height:100%;background:var(--ouro);border-radius:2px}

/* foco visível para o controle remoto */
.btn-voltar:focus,.topo-config:focus,.player-fechar:focus,.player-acao:focus,.menu-item:focus,.chip-cat:focus{
  outline:3px solid var(--ouro);outline-offset:2px}

@media(max-width:860px){
  .busca-cat-wrap{margin:2px 16px 6px}
  .cfg-topo{padding:14px 16px 2px}
  .cfg-grade{padding:14px 16px;grid-template-columns:1fr 1fr;gap:10px}
  .cfg-tile{flex-direction:column;align-items:flex-start;gap:10px;min-height:118px;padding:14px}
  .cfg-txt b{font-size:14px}
  .pl-layout{grid-template-columns:1fr}
  .pl-lateral{order:-1;border-left:none;border-bottom:1px solid var(--borda);flex-direction:row;padding:14px 16px;gap:16px}
  .pl-logo{width:110px}
  .pl-info{align-items:flex-start;text-align:left;gap:1px}
  .pl-info span{margin-top:4px;font-size:12px}
  .pl-info b{font-size:15px}
  .pl-grade{padding:14px 16px 30px;grid-template-columns:1fr 1fr;gap:10px}
  .player-acao span{display:none}
  .fav-btn{width:32px;height:32px}
}
@media(max-width:860px){
  .pl-layout{min-height:0;grid-template-rows:auto auto}
  .pl-lateral{justify-content:flex-start;min-height:0}
}

/* =================================================================
   CARROSSEL DE DESTAQUES
   ================================================================= */
.hero{height:min(62vh,560px);min-height:340px;padding:0;display:block}
.hero::after{pointer-events:none}
.slide{position:absolute;inset:0;display:flex;align-items:center;padding:48px 48px 74px;
  opacity:0;visibility:hidden;transition:opacity .9s ease,visibility 0s linear .9s}
.slide.ativo{opacity:1;visibility:visible;transition:opacity .9s ease}
.slide-fundo{position:absolute;inset:-40px;z-index:0;background:radial-gradient(900px 500px at 75% 30%,rgba(240,195,48,.2),transparent 60%),linear-gradient(135deg,#20212b,#0a0a0e);
  background-size:cover;background-position:center;filter:blur(22px) brightness(.55) saturate(1.1);transform:scale(1.08)}
.slide-poster{position:absolute;right:7%;top:50%;transform:translateY(-50%);height:76%;max-width:34%;object-fit:cover;
  border-radius:14px;box-shadow:0 24px 60px rgba(0,0,0,.7),0 0 0 1px rgba(240,195,48,.35)}
.slide .hero-info{position:relative;z-index:2}
.slide.ativo .hero-info{animation:slideEntra .9s ease both}
@keyframes slideEntra{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){.slide,.slide.ativo{transition:none}.slide.ativo .hero-info{animation:none}}
.hero-pontos{z-index:3}
.hero-ponto{border:none;padding:0;cursor:pointer;height:5px;width:26px;transition:width .3s,background .3s}
.hero-ponto.ativo{width:42px}
.hero-ponto:focus{outline:2px solid #fff;outline-offset:3px}

/* =================================================================
   CONTEÚDO ADULTO BLOQUEADO
   ================================================================= */
.cartao .trava{display:none}
.cartao.bloqueado .trava{position:absolute;left:0;right:0;top:0;bottom:42px;z-index:2;display:flex;flex-direction:column;
  align-items:center;justify-content:center;gap:6px;color:var(--ouro);font-size:13px;font-weight:700;letter-spacing:.5px}
.cartao.bloqueado .trava svg{width:30px;height:30px}
.cartao.bloqueado .capa,.cartao.bloqueado .capa-fallback{filter:blur(16px) brightness(.45)}
.cartao.bloqueado .vivo{display:none}
.chip-cat{display:inline-flex;align-items:center;gap:6px}
.chip-trava{display:none;font-style:normal}
.chip-cat.bloqueado .chip-trava{display:inline-flex}
.chip-trava svg{width:14px;height:14px}

@media(max-width:860px){
  .hero{height:auto;min-height:0}
  .slide{position:relative;display:none;align-items:flex-end;padding:30px 18px 54px;min-height:52vh}
  .slide.ativo{display:flex}
  .slide-poster{display:none}
  .hero-pontos{left:18px;bottom:20px}
}
@media(max-width:860px){
  /* no celular a capa vertical vira o fundo do destaque, nítida */
  .slide-fundo{inset:0;filter:brightness(.62);transform:none;background-position:center 18%}
  .slide::before{content:'';position:absolute;inset:0;z-index:1;background:linear-gradient(0deg,var(--preto) 4%,rgba(6,6,7,.55) 45%,rgba(6,6,7,.1) 80%)}
}
.pl-dados{display:flex;align-items:center;justify-content:space-between;background:#15151a;border:1px solid var(--borda);
  border-radius:11px;padding:12px 14px;font-size:14px;color:var(--muted)}
.pl-dados b{color:var(--txt);font-size:15px}
.versao{display:block;color:var(--muted);font-family:inherit;font-size:12.5px;margin-top:6px;letter-spacing:.3px}
.versao-login{text-align:center;color:var(--muted);font-size:11.5px;margin-top:10px;opacity:.8}

/* =================================================================
   v2.1 — TV: login inteiro na tela, carregamento, player novo
   ================================================================= */
/* login em TV / telas largas e baixas: logo à esquerda, formulário à direita */
@media (min-width:700px) and (max-height:640px){
  .login-bg{padding:14px 20px}
  .login-painel{max-width:900px;display:grid;grid-template-columns:.85fr 1.15fr;column-gap:36px;align-items:center;
    padding:26px 36px 18px;text-align:left}
  .login-painel > *{grid-column:2}
  .login-painel .logo-grande{grid-column:1;grid-row:1 / span 6;margin:0;align-self:center}
  .logo-img-login{width:100%;max-width:340px;margin:0 auto}
  .login-painel h1{font-size:28px}
  .login-painel .sub{margin:4px 0 14px;font-size:14px}
  .form-login{gap:10px}
  .campo input{padding:11px 0;font-size:15px}
  .login-msg{min-height:18px;font-size:13px}
  .btn-entrar{padding:12px;font-size:17px}
  .mac-rodape{margin-top:12px;padding-top:10px;justify-content:flex-start}
  .versao-login{text-align:left;margin-top:6px}
}
/* foco bem visível nos campos do login para o controle */
.btn-entrar:focus{outline:3px solid #fff;outline-offset:3px}
.mac-copiar:focus{outline:2px solid var(--ouro);outline-offset:2px}

/* tela de carregamento quando o app já está logado */
.splash{display:none;position:fixed;inset:0;z-index:400;background:radial-gradient(900px 500px at 50% 40%,rgba(240,195,48,.10),transparent 60%),var(--preto);
  flex-direction:column;align-items:center;justify-content:center;gap:28px}
.splash img{width:min(300px,60vw);height:auto;filter:drop-shadow(0 6px 20px rgba(0,0,0,.6))}
html.logado .splash{display:flex}
html.logado #telaLogin{display:none!important}
.splash-giro{width:42px;height:42px;border-radius:50%;border:3px solid rgba(240,195,48,.18);border-top-color:var(--ouro);animation:giro .9s linear infinite}
@keyframes giro{to{transform:rotate(360deg)}}

/* cartão: foco do controle mais evidente e "pulso" ao favoritar */
.cartao:focus{transform:translateY(-5px) scale(1.04);z-index:2}
.cartao.favoritou{animation:pulsoFav .6s ease}
@keyframes pulsoFav{0%{box-shadow:0 0 0 0 rgba(240,195,48,.8)}100%{box-shadow:0 0 0 18px rgba(240,195,48,0)}}
.hero-ponto:focus,.btn-hero:focus{outline:3px solid #fff;outline-offset:3px}

/* ---------- PLAYER v2.1 ---------- */
.player-wrap{outline:none}
.player-ui{position:absolute;inset:0;z-index:4;display:flex;flex-direction:column;justify-content:space-between;
  opacity:0;visibility:hidden;transition:opacity .35s ease,visibility 0s linear .35s;pointer-events:none}
.player-wrap.ui .player-ui{opacity:1;visibility:visible;transition:opacity .25s ease;pointer-events:auto}
.player-wrap.ui{cursor:default}
.player-wrap:not(.ui){cursor:none}
.player-ui .player-barra{position:relative;padding:22px 30px 40px;background:linear-gradient(180deg,rgba(0,0,0,.88),rgba(0,0,0,.45) 60%,transparent)}
.player-titulo-box{flex:1;min-width:0}
.player-sub{display:flex;align-items:center;gap:10px;font-size:13px;color:var(--prata2);letter-spacing:.6px;margin-bottom:4px;min-height:18px}
.player-sub .ao-vivo{display:inline-flex;align-items:center;gap:6px;background:var(--vivo);color:#fff;font-weight:800;font-size:11.5px;
  padding:3px 9px;border-radius:5px;letter-spacing:.8px}
.player-sub .ao-vivo::before{content:'';width:7px;height:7px;border-radius:50%;background:#fff;animation:piscar 1.4s ease infinite}
@keyframes piscar{50%{opacity:.25}}
.player-ui .player-titulo{font-size:22px;font-weight:800;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.player-base{padding:40px 34px 26px;background:linear-gradient(0deg,rgba(0,0,0,.9),rgba(0,0,0,.5) 55%,transparent)}
.player-linha{display:flex;align-items:center;gap:16px}
.pt{font-variant-numeric:tabular-nums;font-size:15px;font-weight:600;color:#fff;min-width:56px;text-align:center;
  text-shadow:0 1px 4px rgba(0,0,0,.8)}
.pbarra{position:relative;flex:1;height:7px;border-radius:7px;background:rgba(255,255,255,.18);cursor:pointer;touch-action:none}
.pbarra::before{content:'';position:absolute;left:0;right:0;top:-12px;bottom:-12px} /* área de toque maior */
.pbarra-buf{position:absolute;left:0;top:0;bottom:0;border-radius:7px;background:rgba(255,255,255,.28);width:0}
.pbarra-fill{position:absolute;left:0;top:0;bottom:0;border-radius:7px;width:0;
  background:linear-gradient(90deg,#c98f12,var(--ouro) 60%,var(--ouro2));box-shadow:0 0 12px rgba(240,195,48,.55)}
.pbarra-pino{position:absolute;right:-9px;top:50%;width:18px;height:18px;margin-top:-9px;border-radius:50%;
  background:#fff;border:3px solid var(--ouro);box-shadow:0 2px 10px rgba(0,0,0,.6)}
.player-ctrls{display:flex;align-items:center;justify-content:center;gap:26px;margin-top:18px}
.pctl{position:relative;width:58px;height:58px;border-radius:50%;display:flex;align-items:center;justify-content:center;
  background:rgba(20,20,26,.72);border:1.5px solid rgba(255,255,255,.22);color:#fff;cursor:pointer;transition:.15s}
.pctl svg{width:26px;height:26px}
.pctl b{position:absolute;font-size:10px;font-weight:800;top:50%;left:50%;transform:translate(-50%,-38%)}
.pctl.principal{width:76px;height:76px;background:linear-gradient(180deg,#ffd758,#ecb11f);color:#2a2000;border:none;
  box-shadow:0 10px 26px rgba(240,195,48,.35)}
.pctl.principal svg{width:34px;height:34px}
.pctl:focus{outline:none;border-color:var(--ouro);color:var(--ouro);transform:scale(1.12);box-shadow:0 0 0 4px rgba(240,195,48,.35)}
.pctl.principal:focus{color:#2a2000;box-shadow:0 0 0 5px rgba(255,255,255,.85),0 10px 26px rgba(240,195,48,.45)}
.player-wrap.ao-vivo .vod-only,.player-wrap.ao-vivo .player-linha{display:none}
.player-wrap:not(.ao-vivo) .live-only{display:none}
.player-dica{text-align:center;color:var(--prata2);font-size:12.5px;margin-top:14px;opacity:.85}
.player-ui .player-fechar:focus,.player-ui .player-acao:focus{outline:3px solid var(--ouro);outline-offset:2px}
/* ícone grande de pausa/play no centro */
.player-grande{position:absolute;z-index:3;width:110px;height:110px;border-radius:50%;display:flex;align-items:center;justify-content:center;
  background:rgba(0,0,0,.55);color:var(--ouro);opacity:0;transform:scale(.8);pointer-events:none;transition:opacity .3s,transform .3s}
.player-grande svg{width:52px;height:52px}
.player-grande.mostra{opacity:1;transform:scale(1)}
.player-carregando{position:absolute;z-index:2;display:none}
.player-wrap.carregando .player-carregando{display:block}
@media(max-width:860px){
  .player-ui .player-barra{padding:14px 16px 30px}
  .player-ui .player-titulo{font-size:17px}
  .player-base{padding:30px 16px 18px}
  .pctl{width:50px;height:50px}.pctl.principal{width:64px;height:64px}
  .player-ctrls{gap:18px}
  .player-dica{display:none}
}

/* =================================================================
   v2.2 — TV: tudo na tela sem rolar, destaque menor, controle mais leve
   ================================================================= */
.trilha-scroll{scroll-behavior:auto}
/* detalhe de filme/série: compacto, com o botão Assistir sempre à vista */
.detalhe-corpo .sinopse{display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden}
@media (min-width:700px) and (max-height:640px){
  .detalhe-wrap{padding:14px}
  .detalhe{max-width:880px;max-height:calc(100vh - 28px)}
  .detalhe-hero{height:150px}
  .detalhe-corpo{padding:0 26px 20px;margin-top:-52px}
  .detalhe-corpo h2{font-size:24px;margin-bottom:4px}
  .detalhe-corpo .meta{font-size:12.5px;margin-bottom:8px}
  .detalhe-corpo .sinopse{font-size:13.5px;line-height:1.45;margin-bottom:12px;-webkit-line-clamp:3}
  .detalhe .hero-botoes{margin-bottom:12px!important}
  .detalhe .btn-hero{padding:10px 22px;font-size:14.5px}
  .temporadas{margin-bottom:10px}
  .temporadas .chip-cat{padding:7px 14px;font-size:13px}
  .ep{padding:9px 12px;font-size:14px}

  /* destaque do Início um pouco menor; os tracinhos ficam abaixo dos botões */
  .hero{height:300px;min-height:0}
  .slide{padding:26px 40px 46px}
  .hero-tag{font-size:11px;letter-spacing:4px;margin-bottom:4px}
  .hero-nome{font-size:40px;line-height:1.02;margin-bottom:10px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;padding-bottom:2px}
  .hero-frase{font-size:15px;margin-bottom:12px}
  .hero-info{max-width:52%}
  .slide .btn-hero{padding:11px 22px;font-size:14.5px}
  .slide-poster{height:80%}
  .hero-pontos{left:40px;bottom:16px}

  /* configurações: as 12 opções cabem na tela, sem rolar */
  .cfg-topo{padding:10px 30px 0}
  .cfg-topo .sec-titulo{font-size:22px}
  .cfg-grade{grid-template-columns:repeat(4,1fr);gap:10px;padding:10px 30px}
  .cfg-tile{min-height:60px;padding:9px 12px;gap:11px}
  .cfg-ic{width:34px;height:34px;border-radius:9px}
  .cfg-ic svg{width:19px;height:19px}
  .cfg-txt b{font-size:13.5px;line-height:1.2}
  .cfg-txt small{font-size:11.5px}
  .cfg-rodape{padding:2px 20px 10px;font-size:13px;line-height:1.6}
}
/* TV: menos efeitos pesados para a navegação ficar leve */
@media (min-width:700px) and (max-height:640px) and (pointer:none), (min-width:700px) and (max-height:640px) and (hover:none){
  .slide-fundo{filter:brightness(.45);transform:none;inset:0}
  .btn-hero.info{backdrop-filter:none}
  .cartao{transition:transform .12s ease,box-shadow .12s ease}
  .slide,.slide.ativo{transition:opacity .4s ease}
  .slide.ativo .hero-info{animation:none}
}

/* ---------- PLAYER: programação do canal e sinal da internet ---------- */
.player-epg{max-width:760px;margin:0 auto 4px;display:flex;flex-direction:column;gap:6px}
.epg-item{display:grid;grid-template-columns:64px 1fr auto;align-items:center;column-gap:12px;row-gap:5px;
  background:rgba(14,14,18,.66);border:1px solid rgba(255,255,255,.08);border-radius:10px;padding:7px 14px;font-size:14px;color:var(--prata)}
.epg-item.agora{border-color:rgba(240,195,48,.45);background:rgba(28,24,10,.7);color:#fff}
.epg-hora{font-weight:800;font-size:12.5px;color:var(--prata2);letter-spacing:.5px;font-variant-numeric:tabular-nums}
.epg-item.agora .epg-hora{color:var(--ouro)}
.epg-nome{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-weight:600}
.epg-fim{font-size:12px;color:var(--muted);font-variant-numeric:tabular-nums}
.epg-prog{grid-column:1 / -1;height:3px;border-radius:3px;background:rgba(255,255,255,.15);overflow:hidden}
.epg-prog b{display:block;height:100%;background:var(--ouro)}
.player-epg + .player-ctrls{margin-top:12px}
.sinal{display:inline-flex;align-items:flex-end;gap:2px;height:16px;margin-left:4px;padding:0 2px}
.sinal i{width:4px;border-radius:1.5px;background:rgba(255,255,255,.22)}
.sinal i:nth-child(1){height:5px}.sinal i:nth-child(2){height:8px}.sinal i:nth-child(3){height:12px}.sinal i:nth-child(4){height:16px}
.sinal em{font-style:normal;font-size:12px;font-weight:700;margin-left:6px;align-self:center;letter-spacing:.3px}
.sinal.s4 i,.sinal.s3 i:nth-child(-n+3){background:#3fd26b}.sinal.s4 em,.sinal.s3 em{color:#3fd26b}
.sinal.s2 i:nth-child(-n+2){background:#f0c330}.sinal.s2 em{color:#f0c330}
.sinal.s1 i:nth-child(1){background:#ff5a4f}.sinal.s1 em{color:#ff5a4f}
@media (min-width:700px) and (max-height:640px){
  .player-base{padding:30px 30px 18px}
  .epg-item{padding:6px 12px;font-size:13px}
  .pctl{width:50px;height:50px}.pctl.principal{width:64px;height:64px}
  .player-dica{margin-top:8px}
}
@media(max-width:860px){
  .player-epg{gap:4px}
  .epg-item{grid-template-columns:52px 1fr;font-size:13px;padding:6px 10px}
  .epg-fim{display:none}
  .player-epg .epg-item:nth-child(3){display:none}
}

/* =================================================================
   v2.3 — vencimento, contagem nas categorias, Início mais junto
   ================================================================= */
#sec-inicio{position:relative}
.assinatura{position:absolute;top:12px;right:36px;z-index:6;display:flex;align-items:center;gap:8px;
  padding:7px 14px;border-radius:30px;font-size:13.5px;color:var(--prata);
  background:rgba(12,12,16,.78);border:1px solid rgba(240,195,48,.35);box-shadow:0 4px 16px rgba(0,0,0,.45)}
.assinatura svg{width:17px;height:17px;color:var(--ouro);flex:0 0 auto}
.assinatura b{color:var(--ouro);font-weight:700}
.assinatura.alerta{border-color:#f0a530;background:rgba(48,32,6,.85)}
.assinatura.alerta b,.assinatura.alerta svg{color:#ffb547}
.assinatura.vencida{border-color:#ff5a4f;background:rgba(52,12,12,.88)}
.assinatura.vencida b,.assinatura.vencida svg{color:#ff7a70}
/* contagem em cada categoria */
.chip-n{font-style:normal;font-size:12px;font-weight:700;color:var(--prata2);background:rgba(255,255,255,.08);
  border-radius:20px;padding:2px 8px;min-width:22px;text-align:center;font-variant-numeric:tabular-nums}
.chip-n:empty{display:none}
.chip-cat.ativo .chip-n{background:rgba(0,0,0,.25);color:inherit}
.chip-cat.especial{border-color:rgba(240,195,48,.28)}
@media (min-width:700px) and (max-height:640px){
  /* Início: destaque encostado no conteúdo de baixo */
  .hero{height:262px}
  .slide{align-items:flex-end;padding:44px 40px 34px}
  .slide-poster{top:auto;bottom:16px;transform:none;height:72%}
  .hero-pontos{bottom:13px}
  #trilhasInicio .trilha:first-child .trilha-titulo{padding-top:8px}
  .trilha-titulo{padding:14px 36px 10px;font-size:18px}
  .assinatura{top:10px;right:30px;font-size:12.5px;padding:6px 12px}
}
@media(max-width:860px){
  .assinatura{position:static;margin:10px 16px 0;justify-content:center;font-size:13px}
}

/* =================================================================
   v2.4 — TV ao vivo, Filmes e Séries em colunas: pastas na vertical,
   lista de canais e prévia do canal (OK = prévia, OK de novo = tela cheia)
   ================================================================= */
.tv-previa{display:none}
@media (min-width:861px){
  html.secao-colunas .main{padding-bottom:0}
  html.secao-colunas body{overflow:hidden}
  #sec-tv:not(.hidden),#sec-filmes:not(.hidden),#sec-series:not(.hidden){display:grid;gap:10px 14px;
    height:calc(100vh - var(--topoH,70px));overflow:hidden;padding:10px 22px 12px;
    grid-template-columns:240px minmax(0,1fr);grid-template-rows:auto minmax(0,1fr);
    grid-template-areas:"cats busca" "cats grade"}
  #sec-tv:not(.hidden){grid-template-columns:230px minmax(0,.95fr) minmax(0,1.25fr);
    grid-template-areas:"cats busca previa" "cats grade previa"}
  #sec-tv .sec-titulo,#sec-filmes .sec-titulo,#sec-series .sec-titulo{display:none}
  /* pastas na vertical, com a quantidade à direita */
  #catTv,#catFilmes,#catSeries{grid-area:cats;display:flex;flex-direction:column;flex-wrap:nowrap;gap:5px;
    overflow-y:auto;overflow-x:hidden;padding:2px 4px 10px 2px;background:rgba(18,18,23,.55);border:1px solid var(--borda);border-radius:12px;padding:6px}
  #catTv .chip-cat,#catFilmes .chip-cat,#catSeries .chip-cat{width:100%;flex:0 0 auto;display:flex;justify-content:space-between;align-items:center;gap:8px;
    border-radius:8px;padding:9px 12px;font-size:14px;background:rgba(32,32,40,.75);border-color:transparent}
  .chip-cat .chip-nome{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1;text-align:left}
  #catTv .chip-cat .chip-trava,#catFilmes .chip-cat .chip-trava,#catSeries .chip-cat .chip-trava{order:-1}
  #catTv .chip-cat:focus,#catFilmes .chip-cat:focus,#catSeries .chip-cat:focus{outline:none;border-color:var(--ouro);background:rgba(60,50,18,.75);color:#fff}
  #catTv .chip-cat.ativo,#catFilmes .chip-cat.ativo,#catSeries .chip-cat.ativo{border-color:rgba(240,195,48,.6);box-shadow:none}
  #sec-tv .busca-cat-wrap,#sec-filmes .busca-cat-wrap,#sec-series .busca-cat-wrap{grid-area:busca;margin:0;max-width:none}
  #gradeTv,#gradeFilmes,#gradeSeries{grid-area:grade;overflow-y:auto;overflow-x:hidden;padding:6px 6px 24px;align-content:start}
  #gradeFilmes,#gradeSeries{grid-template-columns:repeat(auto-fill,minmax(116px,1fr));grid-auto-rows:max-content;gap:12px}
  #gradeFilmes .cartao,#gradeSeries .cartao{flex-shrink:0}
  #gradeFilmes .cartao.poster .capa,#gradeFilmes .cartao.poster .capa-fallback,
  #gradeSeries .cartao.poster .capa,#gradeSeries .cartao.poster .capa-fallback{height:auto;aspect-ratio:2/3}
  #gradeFilmes .cartao .nome,#gradeSeries .cartao .nome{padding:7px 9px;font-size:12.5px}
  #gradeFilmes .cartao:focus,#gradeSeries .cartao:focus{transform:scale(1.05)}

  /* canais em lista: número, logo e nome */
  #gradeTv.grade{display:flex;flex-direction:column;gap:4px;counter-reset:canal}
  #gradeTv .cartao{counter-increment:canal;display:flex;align-items:center;gap:10px;width:100%;flex:0 0 auto;height:46px;
    padding:0 12px 0 6px;border-radius:8px;background:rgba(32,32,40,.75);border:1px solid transparent;box-shadow:none;transform:none}
  #gradeTv .cartao::before{content:counter(canal);flex:0 0 30px;text-align:right;font-size:12px;color:var(--muted);font-variant-numeric:tabular-nums}
  #gradeTv .cartao .capa,#gradeTv .cartao .capa-fallback{flex:0 0 44px;width:44px;height:30px;object-fit:contain;border-radius:4px;padding:0;
    background:rgba(255,255,255,.06)}
  #gradeTv .cartao .capa-fallback::after{background-size:70%}
  #gradeTv .cartao .vivo,#gradeTv .cartao .fav-btn,#gradeTv .cartao .progresso,#gradeTv .cartao .trava span{display:none}
  #gradeTv .cartao.bloqueado .trava{position:static;flex:0 0 auto}
  #gradeTv .cartao.bloqueado .trava svg{width:16px;height:16px}
  #gradeTv .cartao .nome{padding:0;flex:1;min-width:0;font-size:14px}
  #gradeTv .cartao:hover,#gradeTv .cartao:focus{transform:none;border-color:var(--ouro);background:rgba(60,50,18,.75);box-shadow:none}
  #gradeTv .cartao:focus .nome{color:#fff}
  #gradeTv .cartao.tocando .nome{color:var(--ouro)}
  #gradeTv .cartao.tocando::after{content:'';width:8px;height:8px;border-radius:50%;background:var(--vivo);box-shadow:0 0 8px var(--vivo);flex:0 0 auto}
  #gradeTv .vazio{padding:30px 10px}

  /* prévia do canal */
  .tv-previa{grid-area:previa;display:flex;flex-direction:column;gap:10px;min-height:0}
  .tv-tela{position:relative;width:100%;aspect-ratio:16/9;border-radius:10px;overflow:hidden;background:#000;border:1px solid var(--borda2)}
  .tv-tela-vazia{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;
    color:var(--prata2);text-align:center;padding:10px;font-size:14px}
  .tv-tela-vazia svg{width:40px;height:40px;color:var(--ouro);opacity:.8}
  .tv-tela-vazia small{color:var(--muted);font-size:12px}
  .tv-previa.tocando .tv-tela-vazia{display:none}
  .tv-info{flex:1;min-height:0;overflow:hidden;display:flex;flex-direction:column;gap:8px}
  .tv-info-topo{display:flex;align-items:center;gap:10px;font-size:18px}
  .tv-info-topo b{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .ao-vivo-mini{flex:0 0 auto;background:var(--vivo);color:#fff;font-size:10.5px;font-weight:800;letter-spacing:.8px;padding:3px 8px;border-radius:5px}
  .tv-previa:not(.tocando) .ao-vivo-mini{display:none}
  .tv-epg{display:flex;flex-direction:column;gap:5px}
  .tv-epg .epg-item{padding:6px 10px;font-size:13px;grid-template-columns:54px 1fr auto}
  .tv-epg .epg-item:nth-child(n+3){display:none}
  .tv-botoes{display:flex;gap:8px}
  .tv-botoes .btn-sec{flex:1;padding:10px 8px;font-size:13.5px}
  .tv-botoes .btn-sec:focus{outline:none;border-color:var(--ouro);color:var(--ouro);box-shadow:0 0 0 3px rgba(240,195,48,.25)}
  .tv-botoes .btn-sec.ativo{color:var(--ouro)}
  .tv-previa:not(.tocando) .tv-botoes{opacity:.55}

  /* o player vira a "telinha" da prévia */
  .player-wrap.mini{inset:auto;border-radius:10px;overflow:hidden;z-index:20;background:#000;cursor:pointer}
  .player-wrap.mini .player-ui,.player-wrap.mini .player-grande{display:none}
  .player-wrap.mini .player-msg{font-size:12.5px;padding:0 14px}
  .player-wrap.mini .splash-giro{width:30px;height:30px}
}

/* =================================================================
   v2.5 — prévia sem cantos (Android TV), aviso de lista fora do ar,
   WhatsApp do atendimento no login
   ================================================================= */
/* o vídeo do Android TV some (fica só o áudio) se a camada do vídeo for recortada com cantos arredondados */
@media (min-width:861px){
  .player-wrap.mini{border-radius:0;overflow:visible}
  .tv-tela{border-radius:6px}
}
.player-wrap:not(.ao-vivo) .player-epg{display:none!important}
.aviso-lista{display:flex;flex-direction:column;align-items:center;text-align:center;gap:14px;padding:6px 6px 4px}
.aviso-lista svg{width:76px;height:76px}
.aviso-lista p{font-size:16px;line-height:1.5;color:var(--prata);max-width:420px}
/* WhatsApp do atendimento */
.login-suporte{display:flex;align-items:center;gap:14px;margin-top:14px;padding:12px 14px;border-radius:14px;text-align:left;
  background:rgba(10,10,13,.7);border:1px solid rgba(37,211,102,.35)}
.sup-qr{flex:0 0 96px;width:96px;height:96px;background:#fff;border-radius:8px;padding:3px}
.sup-qr svg{width:100%;height:100%;display:block}
.sup-txt{display:flex;flex-direction:column;gap:3px;min-width:0}
.sup-txt small{font-size:12.5px;color:var(--prata2)}
.sup-txt b{display:flex;align-items:center;gap:7px;font-size:18px;color:#25d366;letter-spacing:.3px}
.sup-txt b svg{width:20px;height:20px;flex:0 0 auto}
.sup-txt span{font-size:11.5px;color:var(--muted)}
@media (min-width:700px) and (max-height:640px){
  #telaLogin.com-suporte .login-painel .logo-grande{grid-row:1 / span 3;align-self:end}
  #telaLogin.com-suporte .logo-img-login{max-width:250px}
  .login-suporte{grid-column:1;grid-row:4 / span 3;align-self:start;margin-top:8px;padding:10px 12px}
  .sup-qr{flex-basis:88px;width:88px;height:88px}
}
@media(max-width:699px){
  .sup-qr{flex-basis:84px;width:84px;height:84px}
}
/* ao vivo não tem pausa */
.player-wrap.ao-vivo #pPlay{display:none}
/* o fundo desfocado do destaque não vaza para baixo (faixa clara no Android TV) */
.hero{clip-path:inset(0)}
@media (min-width:700px) and (max-height:640px){
  .slide-fundo{filter:brightness(.42) saturate(1.1);transform:none;inset:0}
}

/* =================================================================
   v2.6 — sinal da internet fixo no player (Configurações)
   ================================================================= */
.sinal-fixo{display:none;position:absolute;top:16px;right:18px;z-index:5;padding:6px 10px;border-radius:20px;
  background:rgba(0,0,0,.55);border:1px solid rgba(255,255,255,.12);pointer-events:none}
.player-wrap.sinal-fixo-on:not(.ui):not(.mini):not(.hidden) .sinal-fixo{display:flex}
.sinal-fixo .sinal{margin:0}
.player-sub span:first-child:not(.ao-vivo){letter-spacing:.6px}
@media (min-width:700px) and (max-height:640px){
  html.secao-config .main{padding-bottom:0}
  .cfg-grade{gap:8px}
  .cfg-tile{min-height:56px;padding:7px 12px}
  .cfg-rodape{padding:0 20px 6px;line-height:1.5}
}

/* =================================================================
   v2.7 — playlist sem o menu, sinal na prévia, sem ícone de transmitir
   ================================================================= */
html.secao-playlist .topo .menu,html.secao-playlist .topo .topo-config{display:none!important}
.tv-info-topo .sinal{margin-left:auto;flex:0 0 auto}
.tv-previa:not(.tocando) .tv-info-topo .sinal{display:none}
video::-internal-media-controls-overlay-cast-button{display:none!important}
video::-webkit-media-controls-overlay-cast-button{display:none!important}
.pl-conectado.pl-fora{background:rgba(255,90,79,.18);color:#ff7a70;border-color:rgba(255,90,79,.5)}

/* =================================================================
   v2.9 — ordenar filmes/séries, vencimento na janela da playlist
   ================================================================= */
.btn-ordem{flex:0 0 auto;display:flex;align-items:center;gap:7px;margin:5px -8px 5px 4px;padding:8px 14px;border-radius:9px;cursor:pointer;
  background:rgba(240,195,48,.12);border:1px solid rgba(240,195,48,.4);color:var(--ouro);font-size:13.5px;font-weight:600;white-space:nowrap}
.btn-ordem svg{width:16px;height:16px}
.btn-ordem:focus{outline:none;background:var(--ouro);color:#2a2000;box-shadow:0 0 0 3px rgba(255,255,255,.7)}
.pl-dados + .pl-dados{margin-top:8px}
.pl-dados.alerta b{color:#ffb547}
.pl-dados.vencida b{color:#ff7a70}
@media(max-width:860px){ .btn-ordem span{display:none} .btn-ordem{padding:8px 10px} }
/* prévia com o player do aparelho (conteúdo adulto): o vídeo é desenhado pelo Android por cima desta área */
.tv-tela-msg{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:var(--prata2);font-size:14px;pointer-events:none}
.tv-tela-msg:empty{display:none}
.tv-previa.nativa .tv-info-topo .sinal{display:none}

.erro-tecnico{max-height:220px;overflow:auto;white-space:pre-wrap;word-break:break-all;font-size:10px;line-height:1.3;background:#0006;border-radius:8px;padding:8px;color:var(--prata2,#ccc);text-align:left}
