/* ===== tela de TV do ranking ===== */
.tv{--tv-bg:#0d0f12;--tv-card:#1a1e24;--tv-ink:#f2f4f6;--tv-mut:#9aa3ad;--tv-ouro:#e8b931;--tv-prata:#c9ced6;--tv-bronze:#c8814a;
  display:grid;grid-template-columns:minmax(0,1.35fr) minmax(320px,1fr);gap:24px;min-height:100%;padding:24px;background:radial-gradient(1200px 600px at 30% 20%,#1d232b,var(--tv-bg));color:var(--tv-ink);font-family:"Montserrat","Segoe UI",system-ui,sans-serif;box-sizing:border-box}
.tv *{box-sizing:border-box}
.tv-esq{display:grid;grid-template-rows:auto 1fr auto;gap:18px;min-width:0}
.tv-top{display:flex;align-items:center;gap:16px}
.tv-logo{max-height:46px;max-width:160px}.tv-logo-txt{font-weight:800;font-size:24px;letter-spacing:.04em}
.tv-tit{display:grid;flex:1;min-width:0}.tv-tit b{font-size:clamp(18px,2.2vw,30px)}.tv-tit span{color:var(--tv-mut);font-size:clamp(12px,1.1vw,15px)}
.tv-x{background:transparent;border:1px solid #444;color:#ddd;border-radius:8px;width:40px;height:40px;font-size:18px;cursor:pointer}
.tv-podio{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));align-items:end;gap:14px;min-height:0}
.tv-pod{display:grid;justify-items:center;gap:6px;text-align:center;min-width:0}
.tv-medalha{position:relative;width:clamp(96px,11vw,170px);aspect-ratio:1;border-radius:50%;display:grid;place-items:center;padding:8px;background:conic-gradient(from 210deg,#fff6,transparent 30%,#fff3 55%,transparent 80%,#fff6),var(--c);box-shadow:0 0 0 6px #0006,0 18px 40px -10px var(--c)}
.tv-pod.ouro{--c:var(--tv-ouro)}.tv-pod.prata{--c:var(--tv-prata)}.tv-pod.bronze{--c:var(--tv-bronze)}
.tv-pod.ouro .tv-medalha{width:clamp(120px,14vw,210px)}
.tv-foto{width:100%;height:100%;border-radius:50%;object-fit:cover;border:4px solid #0008;background:#2a3038}
.tv-ini{display:grid;place-items:center;font-weight:800;font-size:clamp(28px,3.4vw,54px);color:#fff}
.tv-num{position:absolute;bottom:-6px;right:-2px;width:38%;aspect-ratio:1;border-radius:50%;display:grid;place-items:center;background:var(--c);color:#111;font-weight:800;font-size:clamp(14px,1.6vw,24px);border:3px solid #0d0f12}
.tv-pnome{font-weight:800;font-size:clamp(14px,1.5vw,22px);text-transform:uppercase;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tv-pval{font-weight:700;font-size:clamp(14px,1.6vw,24px);color:var(--c);font-variant-numeric:tabular-nums}
.tv-premio{font-size:clamp(11px,1vw,14px);color:var(--tv-mut)}
.tv-degrau{width:100%;border-radius:10px 10px 0 0;background:linear-gradient(#3a414b,#22272e);display:grid;place-items:center;color:#fff9;font-weight:800;font-size:clamp(18px,2vw,30px);margin-top:6px}
.tv-pod.ouro .tv-degrau{height:clamp(70px,9vh,120px)}.tv-pod.prata .tv-degrau{height:clamp(50px,6vh,84px)}.tv-pod.bronze .tv-degrau{height:clamp(36px,4.5vh,64px)}
.tv-pod.vazio{opacity:.35}
.tv-meta{background:var(--tv-card);border:1px solid #2c333c;border-radius:14px;padding:16px 20px;display:grid;grid-template-columns:1fr auto;gap:6px 16px}
.tv-meta span{color:var(--tv-mut);font-size:13px;display:block}.tv-meta b{font-size:clamp(18px,2vw,28px);font-variant-numeric:tabular-nums}.tv-meta-r{text-align:right}
.tv-bar{grid-column:1/-1;height:14px;border-radius:8px;background:#2c333c;overflow:hidden}.tv-bar i{display:block;height:100%;background:linear-gradient(90deg,#5FB33C,#e8b931);border-radius:8px;transition:width 1s}
.tv-pct{grid-column:1/-1;color:var(--tv-mut);font-size:13px;font-weight:600}
.tv-lista{list-style:none;margin:0;padding:0;display:grid;gap:8px;align-content:start;overflow:auto;min-width:0}
.tv-lista li{display:grid;grid-template-columns:34px 46px minmax(0,1fr) auto;align-items:center;gap:12px;background:var(--tv-card);border:1px solid #2c333c;border-radius:12px;padding:8px 14px}
.tv-lista li.l1{background:linear-gradient(90deg,#e8b93155,var(--tv-card))}.tv-lista li.l2{background:linear-gradient(90deg,#c9ced640,var(--tv-card))}.tv-lista li.l3{background:linear-gradient(90deg,#c8814a50,var(--tv-card))}
.tv-lpos{font-weight:800;font-size:20px;text-align:center;color:var(--tv-mut)}
.tv-lfoto{width:46px;height:46px;border-radius:50%;object-fit:cover;background:#2a3038;font-size:16px}
.tv-lnome{font-weight:700;text-transform:uppercase;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tv-lnome small{display:block;font-weight:500;color:var(--tv-mut);text-transform:none;font-size:12px}
.tv-lval{font-weight:800;font-variant-numeric:tabular-nums;white-space:nowrap}
.tv-vazio{grid-template-columns:1fr!important;text-align:center;color:var(--tv-mut)}
@media (max-width:900px){.tv{grid-template-columns:1fr;padding:16px}.tv-lista{overflow:visible}}
/* tela cheia dentro do sistema */
.tvfull{position:fixed;inset:0;z-index:40;overflow:auto;background:#0d0f12}
.tvfull .tv{min-height:100vh}
