/* ============================================================
   PLAYER CVGL IT. AI. — camada "Liquid Glass" (Kodi.TV x vidro)
   Carrega SEMPRE por ultimo (apos cvgl.css e shadcn.css).
   Regra do guia Liquid Glass: uma unica receita de vidro por tela.
   backdrop-filter SOMENTE em paineis sem midia (nunca no player).
   ============================================================ */

/* ---------- receitas (paleta) ---------- */
body[data-glass="1"]{--acc:#9db8ff;--acc2:#c0d3ff;--ink:#0d1430;--glowA:#3b5bdb;--glowB:#1864ab;--glowC:#4c6ef5;--bgB:#0b0e16;--glass:rgba(148,166,200,.10);--glassNB:rgba(148,166,200,.07);--lineG:rgba(190,205,235,.22);--blur:24px;--radG:18px}
body[data-glass="2"]{--acc:#e8ecf4;--acc2:#b7c0cf;--ink:#101623;--glowA:#8b5cf6;--glowB:#0ea5e9;--glowC:#f43f5e;--bgB:#0a0b10;--glass:rgba(20,24,34,.42);--glassNB:rgba(20,24,34,.30);--lineG:rgba(255,255,255,.16);--blur:30px;--radG:26px}
body[data-glass="3"]{--acc:#3ce6b0;--acc2:#0fb3d6;--ink:#04241c;--glowA:#059669;--glowB:#06b6d4;--glowC:#14b8a6;--bgB:#04120f;--glass:rgba(60,230,176,.07);--glassNB:rgba(60,230,176,.05);--lineG:rgba(120,255,214,.20);--blur:22px;--radG:18px}
body[data-glass="4"]{--acc:#ffc247;--acc2:#ff7a3d;--ink:#2a1602;--glowA:#f59e0b;--glowB:#b45309;--glowC:#fb923c;--bgB:#140b04;--glass:rgba(255,194,71,.08);--glassNB:rgba(255,194,71,.05);--lineG:rgba(255,214,140,.24);--blur:24px;--radG:18px}
body[data-glass="5"]{--acc:#c9a5ff;--acc2:#8b5cf6;--ink:#1c0b33;--glowA:#7c3aed;--glowB:#d946ef;--glowC:#4f46e5;--bgB:#0c0817;--glass:rgba(201,165,255,.08);--glassNB:rgba(201,165,255,.05);--lineG:rgba(216,190,255,.22);--blur:26px;--radG:20px}
body[data-glass="6"]{--acc:#ffffff;--acc2:#cfd6e4;--ink:#10131a;--glowA:#334155;--glowB:#1e293b;--glowC:#475569;--bgB:#0d1016;--glass:rgba(255,255,255,.045);--glassNB:rgba(255,255,255,.03);--lineG:rgba(255,255,255,.11);--blur:10px;--radG:12px}
body[data-glass="7"]{--acc:#67d9ff;--acc2:#2563eb;--ink:#031724;--glowA:#0369a1;--glowB:#1d4ed8;--glowC:#0891b2;--bgB:#03101c;--glass:rgba(103,217,255,.06);--glassNB:rgba(103,217,255,.04);--lineG:rgba(147,220,255,.18);--blur:24px;--radG:18px}
body[data-glass="8"]{--acc:#ff9d5c;--acc2:#e11d48;--ink:#2b0a12;--glowA:#e11d48;--glowB:#f97316;--glowC:#9f1239;--bgB:#12060b;--glass:rgba(255,157,92,.06);--glassNB:rgba(255,157,92,.04);--lineG:rgba(255,157,92,.28);--blur:20px;--radG:16px}
body[data-glass="9"]{--acc:#dbe7ff;--acc2:#7da2ff;--ink:#0b1230;--glowA:#1e3a8a;--glowB:#312e81;--glowC:#0e7490;--bgB:#070b1a;--glass:rgba(219,231,255,.06);--glassNB:rgba(219,231,255,.04);--lineG:rgba(200,216,255,.18);--blur:28px;--radG:22px}
body[data-glass="10"]{--acc:#7ef0c2;--acc2:#8b7ef0;--ink:#06251c;--glowA:#10b981;--glowB:#6366f1;--glowC:#22d3ee;--bgB:#060a12;--glass:rgba(255,255,255,.05);--glassNB:rgba(255,255,255,.035);--lineG:rgba(180,255,230,.20);--blur:22px;--radG:20px}

/* ---------- fundo vivo (orbes) ---------- */
html{background:var(--bgB,#0b0d13)}
body.dashboard-page,body.login-page{background:transparent}
.cvgl-aura{position:fixed;inset:-22%;z-index:0;pointer-events:none;filter:blur(85px);opacity:.8}
.cvgl-aura i{position:absolute;border-radius:50%}
.cvgl-aura i:nth-child(1){width:46vw;height:46vw;left:-6%;top:-12%;background:var(--glowA);animation:cvglFl1 26s ease-in-out infinite alternate}
.cvgl-aura i:nth-child(2){width:40vw;height:40vw;right:-8%;top:14%;background:var(--glowB);animation:cvglFl2 31s ease-in-out infinite alternate}
.cvgl-aura i:nth-child(3){width:36vw;height:36vw;left:24%;bottom:-18%;background:var(--glowC);animation:cvglFl3 37s ease-in-out infinite alternate}
@keyframes cvglFl1{to{transform:translate(11vw,9vh) scale(1.14)}}
@keyframes cvglFl2{to{transform:translate(-9vw,13vh) scale(.92)}}
@keyframes cvglFl3{to{transform:translate(7vw,-11vh) scale(1.1)}}
.cvgl-grain{position:fixed;inset:0;z-index:0;pointer-events:none;opacity:.45;background:repeating-linear-gradient(0deg,transparent 0 2px,#ffffff05 2px 3px)}
@media (prefers-reduced-motion:reduce){.cvgl-aura i{animation:none!important}}
body.dashboard-page .app-main,body.login-page .login-layout{position:relative;z-index:1}
body.dashboard-page .app-sidebar,body.dashboard-page .app-topbar{z-index:2}

/* ---------- utilitario vidro (uma receita por tela) ---------- */
.cvgl-gl{position:relative;background:var(--glass);backdrop-filter:blur(var(--blur)) saturate(1.3);-webkit-backdrop-filter:blur(var(--blur)) saturate(1.3);border:1px solid var(--lineG);border-radius:var(--radG);box-shadow:0 18px 50px #0006,inset 0 1px 0 #ffffff26,inset 0 -1px 0 #ffffff08}
.cvgl-glnb{position:relative;background:var(--glassNB);border:1px solid var(--lineG);border-radius:var(--radG);box-shadow:0 14px 40px #0005,inset 0 1px 0 #ffffff1d}

/* ---------- dashboard: paineis viram vidro ---------- */
.app-sidebar{background:var(--glass)!important;backdrop-filter:blur(var(--blur)) saturate(1.3);-webkit-backdrop-filter:blur(var(--blur)) saturate(1.3);border:1px solid var(--lineG)!important;border-radius:var(--radG)!important;box-shadow:0 18px 50px #0006,inset 0 1px 0 #ffffff26}
.app-topbar{background:var(--glass)!important;backdrop-filter:blur(calc(var(--blur) - 6px)) saturate(1.3);-webkit-backdrop-filter:blur(calc(var(--blur) - 6px)) saturate(1.3);border:1px solid var(--lineG);border-radius:calc(var(--radG) - 4px);border-width:1px 1px 1px 1px;margin-right:12px;box-shadow:0 14px 40px #0005,inset 0 1px 0 #ffffff22}
.overview-card{background:var(--glass)!important;backdrop-filter:blur(var(--blur)) saturate(1.3);-webkit-backdrop-filter:blur(var(--blur)) saturate(1.3);border:1px solid var(--lineG)!important;border-radius:var(--radG)!important;box-shadow:0 14px 40px #0005,inset 0 1px 0 #ffffff1f}
.content-area,.modal-content,#lux-loader{background:var(--glass)!important;backdrop-filter:blur(var(--blur)) saturate(1.3);-webkit-backdrop-filter:blur(var(--blur)) saturate(1.3);border:1px solid var(--lineG)!important;border-radius:var(--radG)!important;box-shadow:0 16px 46px #0006,inset 0 1px 0 #ffffff22}
.search-field,.sidebar-note{background:var(--glassNB)!important;border:1px solid var(--lineG);border-radius:12px;box-shadow:inset 0 1px 0 #ffffff17}
/* watch-card: vidro SEM blur (protege o video) */
.watch-card{background:var(--glassNB)!important;border:1px solid var(--lineG)!important;border-radius:var(--radG)!important;box-shadow:0 16px 46px #0006,inset 0 1px 0 #ffffff1a;overflow:hidden}
.hero-section{background:radial-gradient(circle at 50% 100%,var(--glowB)33,transparent 55%),var(--glassNB)!important}
.pill,.channel-item,.empty-state{background:var(--glassNB)!important;border:1px solid var(--lineG);border-radius:14px;box-shadow:inset 0 1px 0 #ffffff14}
.modal{background:#020409c9}

/* ---------- acentos seguem a receita ---------- */
.sidebar-link.active{background:linear-gradient(90deg,var(--acc),var(--acc2))!important;color:var(--ink)!important;box-shadow:0 10px 26px #0006,inset 0 1px 0 #ffffff55}
.sidebar-link.active:after{background:var(--acc)!important}
.sidebar-link.active .sidebar-icon{color:var(--ink)}
.badge-premium{background:linear-gradient(90deg,var(--acc),var(--acc2))!important;color:var(--ink)!important;border:0!important;font-weight:700;box-shadow:inset 0 1px 0 #ffffff55}
.btn-save,.primary-button{background:linear-gradient(90deg,var(--acc),var(--acc2))!important;color:var(--ink)!important;border:0!important;box-shadow:0 12px 30px #0006,inset 0 1px 0 #ffffff50}
.overview-icon{background:var(--glassNB)!important;color:var(--acc)!important;border:1px solid var(--lineG)}
.user-avatar{background:var(--glassNB);color:var(--acc);border:1px solid var(--lineG)}
.spinner-ring{border-color:var(--lineG);border-top-color:var(--acc)}
.search-field:focus-within{border-color:var(--acc)!important;box-shadow:0 0 0 3px color-mix(in srgb,var(--acc) 22%,transparent)}
.status-dot{background:var(--acc);box-shadow:0 0 0 3px color-mix(in srgb,var(--acc) 20%,transparent)}
.login-error{border:1px solid var(--lineG)}
a:focus-visible,button:focus-visible{outline-color:var(--acc)}

/* ---------- layout do exemplo (hero destaque + tipografia display) ---------- */
.now-label{font-size:10px;letter-spacing:.3em;color:var(--acc);font-weight:700}
.hero-title{font-size:clamp(26px,2.6vw,38px)!important;font-weight:800;letter-spacing:-.035em;line-height:1.08}
.hero-content{display:flex;flex-direction:column;justify-content:center}
.hero-meta{gap:12px}
.player-help{color:#aeb6c2}
.page-heading h1{font-size:clamp(26px,2.4vw,34px);font-weight:800;letter-spacing:-.03em}
.sync-chip{background:var(--glassNB);border:1px solid var(--lineG);border-radius:999px;color:#c3cad6}
.section-title{font-size:19px;font-weight:750;letter-spacing:-.02em}
.channel-item:hover{transform:translateY(-4px);border-color:var(--acc);background:var(--glass)!important;box-shadow:0 16px 36px #0007}
.pill:hover,.pill:focus{border-color:var(--acc);color:#fff;background:var(--glass)}
.avatar-ring{border:1px solid var(--lineG);background:var(--glassNB)}

/* ---------- botao + popover de configuracoes (aparencia) ---------- */
.icon-button.glass-toggle{position:relative;background:var(--glassNB);border:1px solid var(--lineG);border-radius:10px;color:#dfe3ea}
.icon-button.glass-toggle:hover{border-color:var(--acc);color:#fff}
.glass-toggle .glass-dot{position:absolute;right:-3px;bottom:-3px;width:10px;height:10px;border-radius:50%;background:var(--acc);border:2px solid var(--bgB);box-shadow:0 0 8px var(--acc)}
.glass-pop{position:fixed;top:64px;right:18px;z-index:2100;width:min(340px,calc(100vw - 24px));padding:18px;color:#e8ebf1;font-size:13px}
.glass-pop .gp-t{font-weight:750;font-size:14px;letter-spacing:-.01em;margin-bottom:12px}
.glass-pop .gp-cap{font-size:9.5px;letter-spacing:.22em;text-transform:uppercase;color:#9aa0ab;margin:14px 0 8px}
.glass-pop .gp-rand{display:flex;gap:11px;align-items:flex-start;cursor:pointer;padding:10px;border-radius:12px;border:1px solid var(--lineG);background:var(--glassNB)}
.glass-pop .gp-rand:hover{border-color:var(--acc)}
.glass-pop .gp-rand input{margin-top:3px;accent-color:var(--acc);width:16px;height:16px}
.glass-pop .gp-rand b{display:block;font-size:12.5px}
.glass-pop .gp-rand small{color:#9aa0ab;font-size:11px}
.glass-pop .gp-cur{margin:10px 0 4px;font-size:12px;color:#c3cad6}
.glass-pop .gp-grid{display:grid;grid-template-columns:1fr 1fr;gap:7px;max-height:44vh;overflow:auto;padding-right:2px}
.glass-pop .gp-sw{display:flex;align-items:center;gap:9px;border:1px solid var(--lineG);background:var(--glassNB);border-radius:10px;padding:8px 10px;cursor:pointer;color:#dfe3ea;font-size:11.5px;text-align:left}
.glass-pop .gp-sw i{width:13px;height:13px;border-radius:50%;background:var(--c);box-shadow:0 0 8px var(--c);flex:0 0 auto}
.glass-pop .gp-sw:hover{border-color:var(--acc)}
.glass-pop .gp-sw.on{border-color:var(--acc);box-shadow:0 0 0 2px color-mix(in srgb,var(--acc) 30%,transparent);color:#fff;font-weight:650}
.glass-pop .gp-lang{display:grid;grid-template-columns:1fr 1fr;gap:7px}
.glass-pop .gp-lang button{border:1px solid var(--lineG);background:var(--glassNB);border-radius:10px;padding:10px;cursor:pointer;color:#dfe3ea;font-size:12.5px;font-weight:600}
.glass-pop .gp-lang button.on{border-color:var(--acc);color:#fff;background:var(--glass);box-shadow:0 0 0 2px color-mix(in srgb,var(--acc) 25%,transparent)}
.glass-pop .gp-f{margin-top:12px;font-size:10px;color:#9aa0ab;line-height:1.6}

/* ---------- login (estetica original preservada; vidro so no cartao do formulario) ---------- */
body.login-page .login-story{margin:0!important;border:0!important;border-radius:0!important;background:radial-gradient(ellipse at 30% 70%,var(--glowA) 0,transparent 65%),radial-gradient(ellipse at 75% 20%,var(--glowC)33,transparent 60%),#10131c!important;box-shadow:none!important}
body.login-page .login-form-side{display:grid;place-items:center;padding:40px 22px}
body.login-page .login-card{background:var(--glass)!important;backdrop-filter:blur(var(--blur)) saturate(1.3);-webkit-backdrop-filter:blur(var(--blur)) saturate(1.3);border:1px solid var(--lineG);border-radius:calc(var(--radG) + 2px);box-shadow:0 24px 60px #000a,inset 0 1px 0 #ffffff26;padding:32px 30px}
body.login-page .login-card input{background:#0e1118cc!important;border:1px solid var(--lineG)}
body.login-page .login-card input:focus{border-color:var(--acc)!important}
body.login-page .brand-tag{background:var(--acc);color:var(--ink)}
body.login-page .login-error{background:rgba(127,29,29,.30);border:1px solid var(--lineG)}
body.login-page #bio-login{background:#ffffff0d!important;border:1px solid var(--lineG)!important;color:var(--acc)!important}
@media(max-width:760px){
  body.login-page .login-layout{grid-template-columns:1fr}
  body.login-page .login-story{padding:16px}
  body.login-page .login-form-side{padding:30px 16px 40px}
}

/* ---------- tema claro: vidro branco, receita mantem o accent ---------- */
body.light{--glass:rgba(255,255,255,.5);--glassNB:rgba(255,255,255,.4);--lineG:rgba(10,15,25,.10);--bgB:#eef1f6}
body.light .cvgl-aura{opacity:.35}
body.light .glass-pop,body.light .modal-content{color:#171b22}

/* ---------- layout: bibliotecas na coluna esquerda (desktop/TV) ---------- */
@media(min-width:1101px){
  body.dashboard-page .app-main{display:grid;grid-template-columns:minmax(300px,352px) minmax(0,1fr);
    grid-template-areas:"head head" "alert alert" "overview overview" "content watch" "content foot";
    grid-template-rows:auto auto auto minmax(0,1fr) auto;gap:18px 22px;align-items:start}
  body.dashboard-page .page-heading{grid-area:head;margin-bottom:0}
  body.dashboard-page #alerta-erro{grid-area:alert}
  body.dashboard-page .overview-grid{grid-area:overview}
  body.dashboard-page .watch-card{grid-area:watch;margin-bottom:0}
  body.dashboard-page .app-footer{grid-area:foot}
  body.dashboard-page .content-area{grid-area:content;position:sticky;top:74px;max-height:calc(100vh - 92px);
    overflow-y:auto;overscroll-behavior:contain;padding:16px;scrollbar-width:thin}
  body.dashboard-page .content-area #nav-voltar-container{margin-bottom:10px}
  body.dashboard-page .content-area .btn-back{margin-bottom:0;width:100%}
  body.dashboard-page .pill-container{display:grid!important;grid-template-columns:1fr!important}
  body.dashboard-page .pill{min-height:46px}
  body.dashboard-page .grid-canais{grid-template-columns:1fr!important;gap:8px}
  body.dashboard-page .channel-item{display:flex;align-items:center;gap:12px;padding:9px 12px;text-align:left}
  body.dashboard-page .avatar-ring{width:44px;height:44px;border-radius:10px;margin-bottom:0;flex:0 0 auto}
  body.dashboard-page .avatar-ring img{padding:5px}
  body.dashboard-page .avatar-fallback{font-size:17px}
  body.dashboard-page .channel-name{font-size:13px}
  body.dashboard-page .library-tools{width:100%}
  body.dashboard-page .search-field{flex:1;min-width:0}
}

/* ---------- navegador de bibliotecas dentro da sidebar ---------- */
#side-nav{display:flex;flex-direction:column;min-height:0;flex:1;margin-top:10px}
#side-nav[hidden]{display:none!important}
.side-volta{align-self:flex-start;display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;
  margin:2px 8px 10px;border:1px solid var(--lineG);border-radius:9px;background:var(--glassNB);color:#aab0ba;cursor:pointer;opacity:.65;transition:.15s}
.side-volta:hover{opacity:1;color:#fff;border-color:var(--acc)}
.side-volta svg{width:17px;height:17px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
#side-nav-lista{display:flex;flex-direction:column;gap:3px;overflow-y:auto;min-height:0;scrollbar-width:thin;padding:0 4px 8px 0}
.side-item .side-logo{width:26px;height:26px;border-radius:7px;overflow:hidden;display:grid;place-items:center;flex:0 0 auto;
  background:#0b0d13;border:1px solid var(--lineG);font-weight:800;font-size:12px;color:#ffffffd9}
.side-item .side-logo img{width:100%;height:100%;object-fit:contain;padding:3px}
.side-canal span:last-child{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.side-nav-aviso{font-size:10.5px;color:#9aa0ab;padding:8px 12px;line-height:1.6}

/* ---------- barra de zapping (TV / controle): sobe de baixo com <- -> ---------- */
#cvgl-zap{position:fixed;left:50%;bottom:16px;transform:translate(-50%,130%);z-index:1900;
  display:flex;align-items:center;gap:10px;max-width:min(92vw,980px);padding:12px 16px;
  transition:transform .28s cubic-bezier(.2,.9,.25,1)}
#cvgl-zap.aberta{transform:translate(-50%,0)}
#cvgl-zap .zap-titulo{font:700 10px/1.5 "Segoe UI",system-ui,sans-serif;letter-spacing:.2em;text-transform:uppercase;color:#9aa0ab;white-space:nowrap}
#cvgl-zap .zap-trilha{display:flex;gap:8px;overflow-x:auto;scrollbar-width:none;padding:2px}
#cvgl-zap .zap-trilha::-webkit-scrollbar{display:none}
#cvgl-zap .zap-item{flex:0 0 auto;display:flex;align-items:center;gap:9px;padding:7px 13px 7px 7px;border-radius:12px;
  border:1px solid transparent;background:var(--glassNB);color:#dfe3ea;font:600 12.5px/1.2 "Segoe UI",system-ui,sans-serif;cursor:pointer}
#cvgl-zap .zap-item:hover{border-color:var(--lineG)}
#cvgl-zap .zap-item .zap-logo{width:38px;height:38px;border-radius:9px;object-fit:contain;background:#0b0d13;padding:4px;flex:0 0 auto}
#cvgl-zap .zap-item .zap-sigla{width:38px;height:38px;border-radius:9px;display:grid;place-items:center;font-weight:800;font-size:14px;color:#ffffffd9;flex:0 0 auto}
#cvgl-zap .zap-item.atual,#cvgl-zap .zap-item.destaque{border-color:var(--acc);box-shadow:0 0 0 2px color-mix(in srgb,var(--acc) 28%,transparent);color:#fff}
#cvgl-zap .zap-dica{font:500 10px/1.5 "Segoe UI",system-ui,sans-serif;color:#9aa0ab;white-space:nowrap}

/* ---------- refino estetico: scrollbars ocultas (scroll continua) + hover estavel ---------- */
*,*::before,*::after{scrollbar-width:none!important;-ms-overflow-style:none!important}
*::-webkit-scrollbar{display:none!important;width:0!important;height:0!important}

/* status do scan: rotulo curto fixo; detalhe completo em tooltip suave.
   Blindagem: qualquer texto que o catalog.js escrever direto no .catalog-scan
   nasce INVISIVEL (font-size:0) — so o rotulo, o ponto e os contadores,
   que recebem tamanho proprio, ficam visiveis. */
.catalog-scan{position:relative;cursor:help;width:fit-content;max-width:100%;font-size:0!important;line-height:0!important}
.catalog-scan .cvgl-scan-label{font-size:12px!important;line-height:1.5!important;display:inline-block;vertical-align:middle}
.catalog-scan .catalog-scan-counts{font-size:12px;line-height:1.4}
.catalog-scan .catalog-scan-counts strong{font-size:16px}
.catalog-scan .catalog-scan-counts span{font-size:10px}
.cvgl-scan-tip{position:absolute;left:0;top:calc(100% + 8px);z-index:60;max-width:min(360px,86vw);
  padding:10px 14px;border-radius:12px;background:var(--glass);backdrop-filter:blur(var(--blur)) saturate(1.3);
  -webkit-backdrop-filter:blur(var(--blur)) saturate(1.3);border:1px solid var(--lineG);color:#e3e7ee;
  font-size:11.5px;line-height:1.65;box-shadow:0 16px 40px #0009,inset 0 1px 0 #ffffff1f;
  opacity:0;visibility:hidden;transform:translateY(5px);pointer-events:none;
  transition:opacity .3s ease,transform .3s ease,visibility .3s}
.catalog-scan:hover .cvgl-scan-tip,.catalog-scan:focus-within .cvgl-scan-tip{opacity:1;visibility:visible;transform:translateY(0)}

/* hover SEM transform/sombra animada — transform sobre backdrop-filter com orbes
   animados faz o elemento piscar; hover estavel muda apenas cores */
.side-item,.sidebar-link,.channel-item,.pill,.zap-item{transition:background-color .16s ease,border-color .16s ease,color .16s ease!important}
.side-item:hover,.side-item:focus-visible{transform:none!important;box-shadow:none!important;background:#ffffff17!important}
.side-item.on{box-shadow:none!important}
.sidebar-link:hover{transform:none!important;box-shadow:none!important;background:#ffffff12}
.channel-item:hover{transform:none!important;box-shadow:none!important;border-color:var(--acc);background:var(--glassNB)!important}
.pill:hover,.pill:focus{transform:none!important;box-shadow:none!important;background:#ffffff12;border-color:var(--acc);color:#fff}
.gp-sw:hover,.gp-lang button:hover{transform:none!important}
.cvgl-fit-btn:hover{transform:none!important}

/* contadores de verificacao: 2 colunas alinhadas na coluna lateral (sem sobreposicao) */
body.dashboard-page .content-area .catalog-scan-counts{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;margin-top:8px}
body.dashboard-page .content-area .catalog-scan-counts button{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:9px 10px;min-width:0}
body.dashboard-page .content-area .catalog-scan-counts strong{font-size:16px;line-height:1.2;flex:0 0 auto}
body.dashboard-page .content-area .catalog-scan-counts span{font-size:10px;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-align:right}
body.dashboard-page .content-area .catalog-scan{line-height:1.55}

/* ---------- contraste: botoes e links fora da penumbra ---------- */
.sidebar-link,.sidebar-note,.account-chip,.topbar-title{color:#d5dae2!important}
.sidebar-link svg{opacity:.92}
.sidebar-note strong{color:#eceff4!important}
.sidebar-note{color:#b9c0cb!important}
.btn-action,.btn-back,.icon-button{color:#eef1f5!important;border-color:#4a5160!important;background:#232a36!important}
.btn-action:hover,.btn-back:hover,.icon-button:hover{background:#2c3543!important}
.app-footer{color:#b9c0cb!important}
.app-footer a{color:#dfe4ea!important}
.login-help,.secure-note{color:#aab2bf!important}
#txt-dica-ordem{color:#aab2bf!important}
/* dentro do APK o link "Baixar o aplicativo" nao tem funcao (o WebView nao
   processa o download e o usuario ja esta no app): esconder */
html.cvgl-app a[href="/app/"]{display:none!important}

/* ============ MODO TV (logica de APK de TV por assinatura) ============ */
/* GPU de TV e fraca: sem orbes animados e SEM backdrop-filter — painéis
   sólidos translúcidos. Leve e fluido como os apps de mercado. */
html.tv-mode .cvgl-aura,html.tv-mode .cvgl-grain{display:none!important}
html.tv-mode .cvgl-aura ~ *{backdrop-filter:none!important;-webkit-backdrop-filter:none!important}
html.tv-mode *{backdrop-filter:none!important;-webkit-backdrop-filter:none!important}
html.tv-mode .app-sidebar,html.tv-mode .app-topbar,html.tv-mode .watch-card,html.tv-mode .content-area,
html.tv-mode .modal-content,html.tv-mode .glass-pop,html.tv-mode .overview-card,
html.tv-mode .login-card,html.tv-mode .pill,html.tv-mode .channel-item,html.tv-mode .empty-state{background:#10141bd9!important}
html.tv-mode .cvgl-gl,html.tv-mode .cvgl-glnb{backdrop-filter:none!important;-webkit-backdrop-filter:none!important;background:#10141bd9!important}

/* home enxuta: sem blocos densos do dashboard */
html.tv-mode .overview-grid{display:none!important}
html.tv-mode #txt-dica-ordem{display:none!important}
html.tv-mode .catalog-scan{display:none!important}
html.tv-mode .page-heading p{display:none!important}
html.tv-mode .sidebar-note{display:none!important}
html.tv-mode .library-tools .btn-action{display:none!important}
html.tv-mode #refresh-library{display:inline-flex!important}
html.tv-mode .app-main{padding:18px 26px}

/* topbar TV: clima + relogio + validade do pacote (nao pode faltar) */
#cvgl-tvtop{display:none;align-items:center;gap:26px;flex-wrap:wrap;padding:14px 22px;margin:0 0 16px;
  border:1px solid var(--lineG);border-radius:var(--radG);background:#10141bd9}
html.tv-mode #cvgl-tvtop{display:flex}
#cvgl-tvtop .tv-brand{font:750 17px/1 "Segoe UI",system-ui,sans-serif;letter-spacing:.02em}
#cvgl-tvtop .tv-brand small{display:block;font:500 9px/1.6 "Segoe UI",system-ui,sans-serif;letter-spacing:.3em;color:var(--acc);text-transform:uppercase}
#cvgl-tvtop .tv-relogio{display:flex;align-items:baseline;gap:10px}
#cvgl-tvtop #tv-hora{font:300 34px/1 "Segoe UI",system-ui,sans-serif;color:#f2f4f8}
#cvgl-tvtop #tv-data{font-size:12.5px;color:#aab2bf;text-transform:capitalize}
#cvgl-tvtop .tv-clima{display:flex;align-items:center;gap:10px;font-size:15px;color:#e3e7ee}
#cvgl-tvtop .tv-clima b{font-size:21px;font-weight:650}
#cvgl-tvtop .tv-clima-icone{font-size:27px}
#cvgl-tvtop .tv-clima-local{display:block;font-size:11px;color:#9aa0ab}
#cvgl-tvtop .tv-validade{margin-left:auto;display:flex;flex-direction:column;align-items:flex-end;gap:3px}
#cvgl-tvtop .tv-validade b{font-size:15px;color:#f2f4f8}
#cvgl-tvtop .tv-validade span{font-size:11px;color:#9aa0ab}
#cvgl-tvtop .tv-validade.vencendo b{color:#ffb648}
#cvgl-tvtop .tv-titulo-bloco{font:600 12px/1 "Segoe UI",system-ui,sans-serif;color:#aab2bf;letter-spacing:.18em;text-transform:uppercase}

/* cards grandes estilo APK de assinatura (D-pad first) */
html.tv-mode .pill-container .pill{min-height:92px;font-size:19px;border-radius:16px;padding:18px 22px;border-width:2px}
html.tv-mode .pill::before{width:26px;height:20px}
html.tv-mode .grid-canais .channel-item{min-height:84px;border-radius:14px;border-width:2px}
html.tv-mode .avatar-ring{width:54px;height:54px}
html.tv-mode .channel-name{font-size:16px}
html.tv-mode .sidebar-link{font-size:16px;min-height:52px;padding:13px 14px}
html.tv-mode .hero-title{font-size:clamp(28px,3vw,44px)!important}
html.tv-mode .app-footer{font-size:12px;color:#aab2bf!important}

/* ============ TELA TV v2 (autorais cvt-*) — azul profundo escuro ============ */
#cvt-tela{display:none}
html.tv-mode.cvt-on #cvt-tela{display:grid;position:fixed;inset:0;z-index:500;padding:16px 20px 12px;gap:12px;
  grid-template-rows:auto minmax(0,1fr) auto auto;background:
  radial-gradient(900px 420px at 82% -10%, #1d4ed826, transparent 60%),
  radial-gradient(700px 380px at -8% 108%, #0d5f5720, transparent 60%), var(--bgB, #0b0e14);
  color:#f2f4f8;font-family:"Segoe UI",system-ui,-apple-system,sans-serif;overflow:hidden}
html.tv-mode.cvt-on .app-sidebar,html.tv-mode.cvt-on .app-topbar,html.tv-mode.cvt-on .app-main,
html.tv-mode.cvt-on .mobile-menu{display:none!important}
#cvt-tela *{box-sizing:border-box}
.cvt-topo{display:flex;align-items:center;gap:18px;height:54px;padding:0 18px;background:#10141bd9;
  border:1px solid #2a3040;border-radius:14px}
.cvt-marca{display:flex;align-items:center;gap:10px}
.cvt-marca .cvt-logo{width:30px;height:30px;border-radius:9px;background:linear-gradient(135deg,#2563eb,#1d4ed8);
  display:grid;place-items:center;color:#fff;font-weight:800;font-size:12px}
.cvt-marca b{font-size:15px;font-weight:750}
.cvt-marca b span{color:#3b82f6}
.cvt-divisor{width:1px;height:26px;background:#3a4254}
.cvt-relogio{display:flex;align-items:baseline;gap:8px;min-width:150px}
.cvt-relogio b{font-size:26px;font-weight:300;color:#f2f4f8}
.cvt-relogio span{font-size:12px;color:#9aa3b2;text-transform:capitalize}
.cvt-clima{display:flex;align-items:center;gap:9px;font-size:14px;color:#c7cdd8}
.cvt-clima .cvt-ic{font-size:22px}
.cvt-clima b{font-size:17px;color:#f2f4f8;font-weight:650}
.cvt-clima small{display:block;font-size:10.5px;color:#9aa3b2}
.cvt-clima-muted{font-size:12px;color:#9aa3b2}
.cvt-chip-validade{margin-left:auto;display:flex;align-items:center;gap:9px;border:1px solid #1f5c47;
  background:#0d2b22cc;border-radius:999px;padding:7px 14px}
.cvt-chip-validade.vencendo{border-color:#5a4212;background:#241a08cc}
.cvt-chip-validade.vencendo div span,.cvt-chip-validade.vencendo b{color:#ffd9a0!important}
.cvt-chip-validade .cvt-pt{width:8px;height:8px;border-radius:50%;background:#3ddc84;box-shadow:0 0 9px #3ddc84}
.cvt-chip-validade span{font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:#9aa3b2;display:block}
.cvt-chip-validade b{font-size:13px;color:#a7f3d0;font-weight:650;white-space:nowrap}
.cvt-user{display:flex;align-items:center;gap:9px}
.cvt-user .cvt-av{width:30px;height:30px;border-radius:50%;background:#233123;color:#8fe6ae;display:grid;place-items:center;font-weight:700;font-size:11px}
.cvt-user span{font-size:12.5px;color:#c7cdd8}
.cvt-miolo{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:12px;min-height:0}
.cvt-player{display:flex;flex-direction:column;background:#10141bd9;border:1px solid #2a3040;border-radius:16px;overflow:hidden;min-height:0}
.cvt-video{position:relative;flex:1;min-height:0;background:linear-gradient(140deg,#12202b,#0a0f16 70%)}
.cvt-video .video-wrapper{position:absolute;inset:0;width:100%;height:100%;border-radius:0;opacity:1;transition:opacity .8s ease}
.cvt-video .video-wrapper video{object-fit:cover}
.cvt-video .dvr-overlay{padding:14px 16px}
.cvt-acoes{display:flex;gap:8px;padding:10px 14px;border-top:1px solid #2a3040;background:#151a24}
.cvt-btn{display:inline-flex;align-items:center;gap:8px;border:1px solid #3a4254;background:#1a2030;color:#c7cdd8;
  border-radius:10px;padding:9px 15px;font:600 12.5px/1 inherit;cursor:pointer}
.cvt-btn.principal{background:linear-gradient(90deg,#2563eb,#1d4ed8);color:#fff;border-color:transparent}
.cvt-btn:focus-visible{outline:3px solid #60a5fa;box-shadow:0 0 22px #60a5fa55;outline-offset:2px}
.cvt-canais{display:flex;flex-direction:column;background:#10141bd9;border:1px solid #2a3040;border-radius:16px;overflow:hidden;min-height:0}
.cvt-canais > header{display:flex;align-items:center;justify-content:space-between;padding:11px 14px;border-bottom:1px solid #2a3040}
.cvt-canais > header b{font-size:12px;letter-spacing:.18em;text-transform:uppercase;color:#9aa3b2;font-weight:650;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:60%}
.cvt-canais > header span{font-size:10.5px;color:#9aa3b2;white-space:nowrap}
.cvt-lista{flex:1;min-height:0;overflow-y:auto;scrollbar-width:none;padding:8px}
.cvt-lista::-webkit-scrollbar{display:none}
.cvt-lista button{width:100%;display:flex;align-items:center;gap:10px;border:1px solid transparent;background:transparent;
  border-radius:11px;padding:7px 9px;cursor:pointer;text-align:left;color:#c7cdd8}
.cvt-lista button .cvt-lg{width:34px;height:34px;border-radius:9px;object-fit:contain;background:#0b0d13;border:1px solid #2a3040;flex:0 0 auto}
.cvt-lista button .cvt-sg{width:34px;height:34px;border-radius:9px;display:grid;place-items:center;font-weight:800;font-size:12px;color:#fffc;background:#1a2030;flex:0 0 auto}
.cvt-lista button .cvt-nm{font-size:13px;font-weight:550;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cvt-lista button:hover{background:#ffffff0d}
.cvt-lista button:focus-visible{outline:3px solid #60a5fa;outline-offset:-1px}
.cvt-lista button.atual{background:linear-gradient(90deg,#2563eb26,transparent 70%);border-color:#1e4f8f}
.cvt-lista button.atual .cvt-nm{color:#bfdbfe}
.cvt-canais > footer{padding:9px 14px;border-top:1px solid #2a3040;font-size:10.5px;color:#9aa3b2;display:flex;justify-content:space-between}
.cvt-rodape-bib{display:flex;align-items:center;gap:12px}
.cvt-rodape-bib .cvt-rotulo{font-size:10.5px;letter-spacing:.18em;text-transform:uppercase;color:#9aa3b2;writing-mode:vertical-rl;
  transform:rotate(180deg);border-left:1px solid #2a3040;padding-left:7px;align-self:center;max-height:82px;line-height:1.1}
.cvt-bibliotecas{flex:1;display:grid;grid-template-columns:repeat(8,minmax(0,1fr));gap:10px}
.cvt-bibliotecas button{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:4px;
  background:#10141bd9;border:1px solid #2a3040;border-radius:13px;padding:10px 13px;min-height:74px;cursor:pointer;text-align:left}
.cvt-bibliotecas button b{font-size:13.5px;font-weight:650;color:#f2f4f8;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
.cvt-bibliotecas button .cvt-seta{margin-left:auto;font-size:15px;color:#3b82f6;opacity:.85}
.cvt-bibliotecas button:hover{border-color:#3a4254;background:#151a24}
.cvt-bibliotecas button:focus-visible{outline:3px solid #60a5fa;box-shadow:0 0 22px #60a5fa55;outline-offset:2px}
.cvt-rodape{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:0 6px;font-size:10.5px;color:#9aa3b2}
.cvt-rodape b{color:#3b82f6;font-weight:650}
.cvt-rodape a{color:#9aa3b2;text-decoration:none}
.cvt-rodape .cvt-dica{display:flex;gap:14px}
@media(max-width:1100px){
  html.tv-mode.cvt-on #cvt-tela{grid-template-rows:auto minmax(0,1fr) auto auto auto}
  .cvt-miolo{grid-template-columns:1fr}
  .cvt-canais{max-height:26vh}
  .cvt-bibliotecas{grid-template-columns:repeat(4,minmax(0,1fr))}
}

/* ---------- ajuste de video: Preencher (padrao) x Ajustar ---------- */
.video-wrapper.cvgl-fill video,
.video-wrapper.cvgl-fill video:fullscreen,
.video-wrapper.cvgl-fill video:-webkit-full-screen{object-fit:cover!important}
.video-wrapper.cvgl-fit video,
.video-wrapper.cvgl-fit video:fullscreen,
.video-wrapper.cvgl-fit video:-webkit-full-screen{object-fit:contain!important}
.cvgl-fit-btn{position:absolute;right:10px;bottom:38px;z-index:40;display:inline-flex;align-items:center;gap:7px;
  padding:8px 12px;border-radius:999px;border:1px solid var(--lineG);background:var(--glassNB);color:#e8ebf1;
  font:600 11.5px/1 "Segoe UI",system-ui,sans-serif;cursor:pointer;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);
  box-shadow:0 8px 22px #0006,inset 0 1px 0 #ffffff1c}
.cvgl-fit-btn:hover{border-color:var(--acc);color:#fff}
.cvgl-fit-btn svg{width:14px;height:14px;stroke:currentColor;fill:none;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
@media(max-width:760px){.cvgl-fit-btn{padding:10px 14px;font-size:12.5px;bottom:44px}}

/* ---------- performance em telas pequenas ---------- */
@media(max-width:760px){
  .cvgl-aura{filter:blur(55px);opacity:.6}
  .app-sidebar,.app-topbar,.overview-card,.content-area,.modal-content,#lux-loader,body.login-page .login-card{backdrop-filter:blur(14px) saturate(1.25);-webkit-backdrop-filter:blur(14px) saturate(1.25)}
}
