@charset "UTF-8";
@import url("https://storage.googleapis.com/leaderboard-frontend-prod-prod-co/fonts/roboto/stylesheet.css");

@media (min-width: 912px) {
  html {
    font-size: 0.83333vw;
  }
}

.animate-bottom {
  position: relative;
  animation: animatebottom 0.4s;
}

@keyframes animatebottom {
  from {
    bottom: -300px;
    opacity: 0;
  }

  to {
    bottom: 0;
    opacity: 1;
  }
}

.animate-bottom.reverse {
  position: relative;
  animation: animatebottomReverse 0.4s forwards;
}

@keyframes animatebottomReverse {
  from {
    bottom: 0;
    opacity: 1;
  }

  to {
    bottom: -300px;
    opacity: 0;
  }
}

.visibility-hidden {
  visibility: hidden;
}

.tv {
  font-family: "Helvetica Now Display", Helvetica, sans-serif;
  font-size: 2rem;
  line-height: 150%;
  color: white;
  background: #0d0d0d;
  width: 100vw;
  height: 100vh;
  margin: 0;
  padding: 0;
  overflow: hidden;
}

:root {
  --footer-height: 12rem;
}

.errorMsg {
  color: #ba3939;
  background: #ffe0e0;
  border: 1px solid #a33a3a;
  margin: 10px;
  padding: 5px;
}

.centerView {
  display: flex;
  height: 100vh;
  justify-content: center;
  align-items: center;
}

.tv .splash-video {
  position: fixed;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.tv .splash-img {
  object-fit: cover;
  height: 100vh;
  width: 100vw;
}

.tv .spinner {
  text-align: center;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  -webkit-transform: translate(-50%, -50%);
  -moz-transform: translate(-50%, -50%);
  -ms-transform: translate(-50%, -50%);
}

.tv .spinner-border {
  width: 13rem;
  height: 13rem;
}

.tv .list-group-rank-name,
.tv .footer-information-name {
  overflow: hidden;
  text-overflow: ellipsis;
  /* firefox 15, opera 12.02 已经支持 */
  -o-text-overflow: ellipsis;
  white-space: nowrap;
  line-height: 1.5;
}

.tv .site-header {
  padding-top: 0.8rem;
  padding-bottom: 0.8rem;
}

.tv .site-header-days {
  font-size: 34px;
  font-size: 2.125rem;
}

.tv .site-header-title {
  font-size: 54px;
  font-size: 3.375rem;
  text-align: center;
  width: 100%;
}

.tv .site-header-status {
  position: fixed;
  top: 1rem;
  left: 1rem;
  width: auto;
}

.tv .site-header-power {
  font-size: 28px;
  font-size: 1.75rem;
  position: fixed;
  top: 1rem;
  right: 1rem;
  width: auto;
}

.tv .site-header-egym {
  height: 0.8em;
  width: auto;
  margin-left: 0.3em;
  vertical-align: baseline;
}

.tv .header {
  font-weight: 900;
  text-align: center;
  font-size: 120px;
  font-size: 7.5rem;
}

.tv .progress--gray {
  height: 0.25rem;
  background: rgba(255, 255, 255, 0.2);
}

.tv .progress--gray .progress-bar {
  background-color: white;
}

.tv .progress--gray .progress {
  height: 0.25rem;
  border-radius: 0;
}

.tv .list-group-rank-num {
  font-weight: 700;
  font-size: 45px;
  font-size: 2.8125rem;
  padding: 0;
  width: 6.25rem;
  min-width: 6.25rem;
  height: 6.25rem;
  line-height: 6.25rem;
}

.tv .list-group-rank-name {
  font-size: 45px;
  font-size: 2.8125rem;
  font-weight: 700;
  padding-left: 1.875rem;
}

.tv .list-group-rank-weight {
  white-space: nowrap;
  font-size: 59px;
  font-size: 3.6875rem;
  font-weight: 900;
  padding-left: 1.875rem;
  padding-right: 1.875rem;
}

.tv .list-group-rank .list-group-item {
  border: none;
  background-color: #3a3a3a;
  background: linear-gradient(90deg, #ffffff26 7.56%, rgba(255, 255, 255, 0) 100%);
}

.tv .list-group-rank .gold {
  background: linear-gradient(90deg, #ffffff57 7.56%, rgba(255, 255, 255, 0) 100%);
}

.tv .list-group-rank .silver {
  background: linear-gradient(90deg, #ffffff57 7.56%, rgba(255, 255, 255, 0) 100%);
}

.tv .list-group-rank .bronze {
  background: linear-gradient(90deg, #ffffff57 7.56%, rgba(255, 255, 255, 0) 100%);
}

.tv .list-group-rank .other {
  background: linear-gradient(90deg, #3a3a3a75 7.56%, rgba(255, 255, 255, 0) 100%);
}

.tv .rankingList {
  font-size: 1.5rem;
  text-shadow: rgba(0, 0, 0, 0.5) 0px 0.25rem 0px;
  padding-bottom: calc(var(--footer-height) + 1rem);
}

.tv .rankingList .col {
  width: 50%;
}

.tv .rankingList .list-group-item {
  border-radius: 50em;
  padding: 0;
  background-color: rgba(0, 0, 0, 0.25);
}

.tv .rankingList .list-group-item span {
  color: white;
}

.tv .footer-normal {
  position: fixed;
  bottom: 0;
  left: 0;
  right: 0;
  padding: 1rem;
  display: flex;
  justify-content: space-around;
  align-items: center;
  height: 7.5rem;
}

.tv .footer__logo-img {
  width: 8.625rem;
}

.tv .footer-information {
  position: fixed;
  bottom: 0;
  left: 0;
  right: 0;
  padding: 1rem;
  z-index: 1;
  display: flex;
  justify-content: space-around;
  align-items: center;
  height: var(--footer-height);
}

.tv .footer-information-info {
  border-radius: 50em;
  width: 50rem;
  padding: 0.625rem;
  display: flex;
  align-items: center;
  background: white;
  color: black;
}

.tv .footer-information-num {
  font-size: 45px;
  font-size: 2.8125rem;
  font-weight: 700;
  border-radius: 100%;
  width: 6.25rem;
  min-width: 6.25rem;
  height: 6.25rem;
  line-height: 6.25rem;
  margin-right: 2rem;
  text-align: center;
  color: white;
  justify-content: center;
  display: flex;
  align-items: center;
}

.tv .footer-information-name {
  font-size: 45px;
  font-size: 2.8125rem;
  font-weight: 700;
}

.tv .footer-information-weight {
  margin-left: auto;
  font-weight: 900;
  font-size: 59px;
  font-size: 3.6875rem;
  margin-right: 4rem;
  white-space: nowrap;
}

.tv .information-logo-img {
  width: 18.75rem;
}

.tv .information-state {
  display: flex;
  align-items: center;
}

.tv .information-state-up,
.tv .information-state-down {
  height: 3.375rem;
  margin: 0.625rem;
}

.tv .information-state-up img,
.tv .information-state-down img {
  height: inherit;
}

.tv .information-state .disabled {
  opacity: 0.3;
}

.tv .information-state-text {
  text-align: center;
  line-height: 140%;
  font-weight: 700;
}

.tv .information-state-text .positions-add {
  font-size: 45px;
  font-size: 2.8125rem;
}

.tv .information-state-text .positions-change {
  font-size: 34px;
  font-size: 2.125rem;
}

.tv .bg-primary {
  background-color: rgba(0, 0, 0, 0.37) !important;
}

.tv .bg-primary.ranking_4 {
  background: #414141 !important;
}

.tv .loading {
  margin: 3rem;
  padding: 1rem;
}

.tv .site-reset-days {
  font-size: 2.125rem;
  text-align: center;
  color: #e6b51b;
  font-weight: 700;
}
.tv .leaderboard-not-configured {
  margin: 30px 33px 10px 2px;
  padding: 5px;
  text-align: center;
  max-width: 2000px;
}

/* From HTML */
.tv .background {
  background-image: url(https://storage.googleapis.com/leaderboard-frontend-prod-prod-co/images/tv/bg.png);
  background-position: bottom;
  background-size: cover;
  background-repeat: no-repeat;
  width: 100vw;
  height: 100vh;
}

.tv .list-group-rank .gold .list-group-rank-num {
  background: url(https://storage.googleapis.com/leaderboard-frontend-prod-prod-co/images/tv/icons/icon-ranking1.svg) center center no-repeat;
  background-size: cover;
}

.tv .list-group-rank .silver .list-group-rank-num {
  background: url(https://storage.googleapis.com/leaderboard-frontend-prod-prod-co/images/tv/icons/icon-ranking2.svg) center center no-repeat;
  background-size: cover;
}

.tv .list-group-rank .bronze .list-group-rank-num {
  background: url(https://storage.googleapis.com/leaderboard-frontend-prod-prod-co/images/tv/icons/icon-ranking3.svg) center center no-repeat;
  background-size: cover;
}

.tv .gold {
  background-image: url(https://storage.googleapis.com/leaderboard-frontend-prod-prod-co/images/tv/icons/icon-ranking1.svg);
  background-position: center center;
  background-size: 100% auto;
}

.tv .silver {
  background-image: url(https://storage.googleapis.com/leaderboard-frontend-prod-prod-co/images/tv/icons/icon-ranking2.svg);
  background-position: center center;
  background-size: 100% auto;

}
.tv .bronze {
  background-image: url(https://storage.googleapis.com/leaderboard-frontend-prod-prod-co/images/tv/icons/icon-ranking3.svg);
  background-position: center center;
  background-size: 100% auto;
}

/* Connection Status Indicator */
.tv .connection-status {
  display: flex;
  align-items: center;
  font-size: 24px;
  font-size: 1.5rem;
  font-weight: 700;
}

.tv .status-led {
  width: 16px;
  height: 16px;
  border-radius: 50%;
  margin-right: 8px;
  display: inline-block;
  position: relative;
}

.tv .status-led.live {
  background-color: #28a745;
  box-shadow: 0 0 8px rgba(40, 167, 69, 0.6);
  animation: tv-live-blink 1.5s infinite;
}

.tv .status-led.connecting {
  background-color: #ffc107;
  box-shadow: 0 0 8px rgba(255, 193, 7, 0.6);
  animation: tv-connecting-pulse 2s infinite;
}

.tv .status-led.offline {
  background-color: #dc3545;
  box-shadow: 0 0 4px rgba(220, 53, 69, 0.3);
}

@keyframes tv-live-blink {
  0% {
    background-color: #28a745;
    box-shadow: 0 0 8px rgba(40, 167, 69, 0.8);
    opacity: 1;
  }
  15% {
    background-color: #28a745;
    box-shadow: 0 0 12px rgba(40, 167, 69, 1);
    opacity: 1;
  }
}

@keyframes tv-connecting-pulse {
  0%, 100% {
    background-color: #ffc107;
    box-shadow: 0 0 8px rgba(255, 193, 7, 0.6);
    opacity: 0.8;
  }
  50% {
    background-color: #ffc107;
    box-shadow: 0 0 12px rgba(255, 193, 7, 1);
    opacity: 1;
  }
  50% {
    background-color: #cc2222;
    box-shadow: 0 0 4px rgba(255, 68, 68, 0.3);
    opacity: 0.3;
  }
  65% {
    background-color: #ff4444;
    box-shadow: 0 0 12px rgba(255, 68, 68, 1);
    opacity: 1;
  }
  100% {
    background-color: #ff4444;
    box-shadow: 0 0 8px rgba(255, 68, 68, 0.8);
    opacity: 1;
  }
}

/* Keep the old animation as fallback */
@keyframes pulse-red {
  0% {
    box-shadow: 0 0 8px rgba(255, 68, 68, 0.6);
  }
  50% {
    box-shadow: 0 0 16px rgba(255, 68, 68, 0.9);
  }
  100% {
    box-shadow: 0 0 8px rgba(255, 68, 68, 0.6);
  }
}

.tv .status-text {
  color: white;
  text-shadow: rgba(0, 0, 0, 0.5) 0px 0.25rem 0px;
}