/* Painel de controle e campeã — revisão de transmissão */
.control-panel {
  width: min(100%, 680px);
  padding: 28px 30px 54px;
  overflow-y: auto;
}

body.control-mode .overlay { right: 680px; }

.control-head {
  position: sticky;
  top: 0;
  z-index: 8;
  margin: -28px -30px 18px;
  padding: 24px 30px 18px;
  background: rgba(12, 9, 12, .94);
  border-bottom: 1px solid rgba(255, 255, 255, .08);
  backdrop-filter: blur(16px);
}

.control-head h1 { font-size: 30px; }

.uploads {
  grid-template-columns: 1fr;
  gap: 8px;
}

.upload {
  grid-template-columns: 48px minmax(0, 1fr) auto;
  align-items: center;
  gap: 12px;
  min-height: 68px;
  padding: 10px 13px;
  border-style: solid;
  background: linear-gradient(90deg, rgba(226,59,120,.1), rgba(255,255,255,.025));
}

.upload:hover {
  border-color: var(--rose);
  background: linear-gradient(90deg, rgba(226,59,120,.2), rgba(255,255,255,.04));
}

.upload > strong {
  display: grid;
  place-items: center;
  width: 42px;
  height: 42px;
  border-radius: 10px;
  background: var(--rose);
  color: #fff;
  font-family: Impact, sans-serif;
  font-size: 23px;
  font-weight: 400;
}

.upload > div { display: grid; gap: 4px; min-width: 0; }
.upload > div b { font-size: 14px; }
.upload > div span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.upload em { color: var(--rose); font-size: 10px; font-style: normal; font-weight: 900; letter-spacing: .13em; }
.upload.loaded { border-color: rgba(95, 220, 145, .38); background: rgba(95, 220, 145, .055); }
.upload.loaded > strong { background: #267f51; }
.upload.loaded em { color: #6ee09d; }

.champion-scene { padding: 54px 80px 48px; }
.champion-scene::before { width: 12px; }

.champion-rays {
  width: 1150px;
  height: 1150px;
  opacity: .55;
  background: repeating-conic-gradient(from 10deg, rgba(226,59,120,.09) 0 3deg, transparent 3deg 16deg);
  mask-image: radial-gradient(circle, black 0, transparent 67%);
}

.champion-copy { top: 52px; }
.champion-copy h2 { font-size: 100px; line-height: .9; }
.champion-copy p { margin-top: 11px; color: #d6c2cb; }

.champion-stage {
  position: relative;
  z-index: 2;
  display: grid;
  place-items: center;
  width: 560px;
  height: 390px;
  margin-top: 62px;
  border: 1px solid rgba(255,255,255,.15);
  border-top: 4px solid var(--rose);
  background: radial-gradient(circle at 50% 45%, #cf5a86 0, #a32e5b 47%, #3b1423 100%);
  box-shadow: 0 32px 100px rgba(0,0,0,.55), inset 0 0 90px rgba(255,255,255,.1);
  clip-path: polygon(24px 0, 100% 0, 100% calc(100% - 24px), calc(100% - 24px) 100%, 0 100%, 0 24px);
}

.champion-stage::before,
.champion-stage::after {
  content: "";
  position: absolute;
  top: 50%;
  width: 210px;
  height: 2px;
  background: linear-gradient(90deg, transparent, var(--rose));
}
.champion-stage::before { right: 100%; }
.champion-stage::after { left: 100%; transform: scaleX(-1); }

.champion-stage img {
  width: 82%;
  height: 82%;
  object-fit: contain;
  filter: drop-shadow(0 0 2px rgba(255,255,255,.9)) drop-shadow(0 10px 12px rgba(0,0,0,.48)) drop-shadow(0 25px 32px rgba(0,0,0,.66));
}

.champion-label {
  position: absolute;
  top: -16px;
  padding: 8px 25px;
  background: var(--rose);
  color: #fff;
  font-size: 11px;
  font-weight: 900;
  letter-spacing: .28em;
}

.champion-identity { position: relative; z-index: 2; margin-top: 16px; }
.champion-identity span { color: var(--rose); font-size: 11px; font-weight: 900; letter-spacing: .34em; }
.champion-identity h3 { margin: 4px 0 0; font-family: Impact, sans-serif; font-size: 70px; line-height: 1; letter-spacing: .055em; }
.champion-stats { margin-top: 12px; }
.champion-stats span { min-width: 150px; background: rgba(7,5,7,.65); border-color: rgba(226,59,120,.3); }
.champion-line { bottom: 34px; }

@media(max-width:1200px) {
  .control-panel { width: 100%; }
}

/* MVP em lista — leitura rápida na transmissão */
.mvp-grid {
  height: 700px;
  margin-top: 24px;
  grid-template-columns: 1fr;
  grid-template-rows: repeat(5, 132px);
  gap: 8px;
}

.mvp-card,
.mvp-card:first-child {
  grid-row: auto;
  display: grid;
  grid-template-columns: 105px 142px minmax(0, 1fr);
  align-items: center;
  gap: 28px;
  padding: 3px 48px 3px 24px;
  text-align: left;
  background: linear-gradient(90deg, rgba(255,255,255,.075), rgba(255,255,255,.025));
  border: 1px solid rgba(255,255,255,.1);
  border-left: 4px solid rgba(226,59,120,.45);
  border-bottom-width: 1px;
  clip-path: polygon(0 0, calc(100% - 16px) 0, 100% 16px, 100% 100%, 0 100%);
}

.mvp-card:first-child {
  border-left-color: var(--rose);
  background: linear-gradient(90deg, rgba(226,59,120,.32), rgba(226,59,120,.07) 55%, rgba(255,255,255,.025));
  box-shadow: 0 18px 46px rgba(103,12,47,.18);
}

.mvp-card .place,
.mvp-card:first-child .place {
  position: static;
  color: rgba(255,255,255,.36);
  font-family: Impact, sans-serif;
  font-size: 56px;
  line-height: 1;
  text-align: center;
}

.mvp-card:first-child .place { color: #fff; font-size: 64px; }

.mvp-card .logo-shell,
.mvp-card:first-child .logo-shell {
  width: 126px;
  height: 126px;
  max-width: 126px;
  max-height: 126px;
  border-radius: 14px;
  border-color: rgba(255,255,255,.14);
  background: rgba(7,5,7,.48);
}

.mvp-copy {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  grid-template-rows: 1fr;
  align-items: center;
  column-gap: 35px;
}

.mvp-copy h3,
.mvp-card:first-child h3 {
  grid-column: 1;
  grid-row: 1;
  margin: 0;
  font-size: 68px;
  line-height: 1;
}

.mvp-numbers {
  grid-column: 2;
  grid-row: 1;
}

.mvp-numbers span {
  min-width: 170px;
  padding: 13px 28px;
  border-left: 1px solid rgba(255,255,255,.1);
  text-align: center;
}

.mvp-numbers b { font-size: 48px; }

/* Tabela geral: marcas e nomes maiores sem invadir os números. */
.ranking-list .logo-shell {
  width: calc(78px * var(--logo-scale));
  height: calc(78px * var(--logo-scale));
  max-width: 84px;
  max-height: 84px;
  border-radius: 14px;
}

.ranking-list .team-cell { gap: 17px; }

.ranking-list .team-text b {
  display: flex;
  align-items: center;
  gap: 9px;
  font-size: calc(25px * var(--text-scale));
  font-weight: 900;
}

.team-flag { width: 38px; height: 25px; flex: 0 0 auto; object-fit: cover; border-radius: 3px; box-shadow: 0 3px 8px rgba(0,0,0,.5); }
.mvp-flag { width: 52px; height: 35px; margin-right: 20px; object-fit: cover; border-radius: 4px; box-shadow: 0 5px 12px rgba(0,0,0,.55); vertical-align: .12em; }

.ranking-list .rank-pos { font-size: calc(42px * var(--text-scale)); }
.ranking-list .rank-stat { font-size: calc(31px * var(--text-scale)); }
.ranking-list .rank-stat.points { font-size: calc(37px * var(--text-scale)); }

.ranking-list { grid-template-rows: repeat(6, calc(116px * var(--row-scale))); }

.ranking-list .logo-shell {
  width: calc(92px * var(--logo-scale));
  height: calc(92px * var(--logo-scale));
  max-width: 96px;
  max-height: 96px;
}

.ranking-scene { padding-right: 46px; padding-left: 46px; }
.ranking-columns { gap: 20px; }
.ranking-head,
.ranking-list .rank-row { grid-template-columns: 74px minmax(0, 1fr) 64px 64px 80px; }
.ranking-head { height: 48px; font-size: 14px; }
.ranking-list { grid-template-rows: repeat(6, calc(118px * var(--row-scale))); }
.ranking-list .team-text b { gap: 11px; font-size: calc(33px * var(--text-scale)); }
.ranking-list .rank-pos { font-size: calc(51px * var(--text-scale)); }
.ranking-list .rank-stat { font-size: calc(40px * var(--text-scale)); }
.ranking-list .rank-stat.points { font-size: calc(47px * var(--text-scale)); }
.ranking-scene .scene-footer { right: 46px; left: 46px; }

.rank-trend {
  display: inline-grid;
  place-items: center;
  width: 28px;
  flex: 0 0 28px;
  font-family: Arial, sans-serif;
  font-size: 20px;
  line-height: 1;
}
.rank-trend.up { color: #50e69a; text-shadow: 0 0 14px rgba(80,230,154,.35); }
.rank-trend.down { color: #ff596c; text-shadow: 0 0 14px rgba(255,89,108,.35); }
.rank-trend.same { color: #77656d; }

/* Pódio final — três equipes usando toda a tela */
.champion-scene { justify-content: flex-start; padding: 42px 62px 38px; }
.champion-copy { position: relative; top: auto; z-index: 3; }
.champion-copy h2 { font-size: 86px; line-height: .82; }
.champion-copy p { margin-top: 10px; }

.champion-podium {
  position: relative;
  z-index: 3;
  display: grid;
  grid-template-columns: 1fr 1.18fr 1fr;
  align-items: end;
  gap: 20px;
  width: 100%;
  height: 720px;
  margin-top: 18px;
}

.podium-card {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-end;
  min-width: 0;
  height: 600px;
  padding: 30px 28px 24px;
  border: 1px solid rgba(255,255,255,.13);
  border-top: 5px solid #a06f82;
  background: linear-gradient(180deg, rgba(255,255,255,.07), rgba(10,7,10,.78));
  box-shadow: 0 28px 80px rgba(0,0,0,.48);
  clip-path: polygon(22px 0, 100% 0, 100% calc(100% - 22px), calc(100% - 22px) 100%, 0 100%, 0 22px);
}

.podium-card.place-1 {
  height: 690px;
  border-top-color: var(--rose);
  background: radial-gradient(circle at 50% 34%, rgba(226,59,120,.42), rgba(70,16,38,.55) 48%, rgba(10,7,10,.86) 78%);
  box-shadow: 0 30px 100px rgba(134,18,63,.34);
}

.podium-card.place-3 { border-top-color: #775366; }

.podium-rank {
  position: absolute;
  top: 18px;
  left: 24px;
  display: flex;
  align-items: baseline;
  gap: 7px;
  color: #bda7b1;
}
.podium-rank small { font-size: 11px; font-weight: 900; letter-spacing: .2em; }
.podium-rank b { font-family: Impact, sans-serif; font-size: 55px; line-height: 1; color: #fff; }
.place-1 .podium-rank b { color: #ff5d9a; font-size: 66px; }

.podium-logo {
  display: grid;
  place-items: center;
  width: 330px;
  height: 330px;
  margin-bottom: 16px;
}
.place-1 .podium-logo { width: 400px; height: 400px; }
.podium-logo img { width: 92%; height: 92%; object-fit: contain; filter: drop-shadow(0 20px 28px rgba(0,0,0,.7)); }
.podium-card[data-team="go"] .podium-logo img { filter: brightness(0) invert(1) drop-shadow(0 20px 28px rgba(0,0,0,.7)); }

.podium-label { color: var(--rose); font-size: 12px; font-weight: 900; letter-spacing: .3em; }
.podium-card h3 { margin: 7px 0 14px; font-family: Impact, sans-serif; font-size: 48px; line-height: 1; letter-spacing: .04em; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 100%; }
.place-1 h3 { font-size: 62px; }

.podium-stats { display: grid; grid-template-columns: repeat(3, minmax(90px, 1fr)); width: 100%; border-top: 1px solid rgba(255,255,255,.1); }
.podium-stats span { padding-top: 11px; color: #9d8992; font-size: 11px; font-weight: 900; letter-spacing: .13em; text-align: center; }
.podium-stats b { display: block; margin-top: 2px; color: #fff; font-family: Impact, sans-serif; font-size: 30px; letter-spacing: 0; }
.place-1 .podium-stats b { font-size: 37px; }
.champion-line { bottom: 24px; }

/* A marca da GO é escura; permanece branca em todas as telas de transmissão. */
.team-ribbon img[data-team="go"],
.mvp-card[data-team="go"] .logo-shell img,
.thumb-logos [data-team="go"] img,
.champion-scene[data-team="go"] .champion-stage img {
  filter: brightness(0) invert(1) drop-shadow(0 10px 14px rgba(0,0,0,.68));
}
