tr.progressbar {
  height: 80px;
  padding: 5px;
}
.meter {
  height: 10px; /* Can be anything */
  position: relative;

  -moz-border-radius: 20px;
  -webkit-border-radius: 20px;
  border-radius: 20px;

  box-shadow: inset 0 -1px 1px rgba(255, 255, 255, 0.3);
}

.meter > span {
  display: block;
  height: 100%;
  -moz-border-radius: 20px;
  -webkit-border-radius: 20px;
  border-radius: 20px;
  background-color: rgb(43, 194, 83);
  position: relative;
  overflow: hidden;
}
.meter > span:after {
  content: "";
  position: absolute;
  top: 0;
  right: 0;
  z-index: 1;
  height: 10px;
  width: 10px;
  background: darkgreen;
  -moz-border-radius: 20px;
  -webkit-border-radius: 20px;
  border-radius: 20px;
  overflow: hidden;
}

.meter:after {
  content: "";
  position: absolute;
  top: 0;
  right: 0;
  z-index: 1;
  height: 10px;
  width: 10px;
  background: transparent;
  -moz-border-radius: 20px;
  -webkit-border-radius: 20px;
  border-radius: 20px;
  border: 2px solid darkgreen;
  overflow: hidden;
  box-sizing: border-box;
}

/* themes */
/* Stripes */
.meter.stripes span {
  background-size: 30px 30px;
  background-image: linear-gradient(
    135deg,
    rgba(255, 255, 255, 0.15) 25%,
    transparent 25%,
    transparent 50%,
    rgba(255, 255, 255, 0.15) 50%,
    rgba(255, 255, 255, 0.15) 75%,
    transparent 75%,
    transparent
  );

  animation: animate-stripes 3s linear infinite;
}

@keyframes animate-stripes {
  0% {
    background-position: 0 0;
  }
  100% {
    background-position: 60px 0;
  }
}
/* Stripes Large*/
.meter.stripes-lg span {
  background-size: 150px 150px;
  background-image: linear-gradient(
    57.5deg,
    rgba(255, 255, 255, 0.15) 25%,
    transparent 25%,
    transparent 50%,
    rgba(255, 255, 255, 0.15) 50%,
    rgba(255, 255, 255, 0.15) 75%,
    transparent 75%,
    transparent
  );

  animation: animate-stripes-lg 5s linear infinite;
}
@keyframes animate-stripes-lg {
  0% {
    background-position: 0 0;
  }
  100% {
    background-position: 300px 0;
  }
}

/* Shine */
.meter.shine span {
  position: relative;
}

.meter.shine span::after {
  content: "";
  opacity: 0;
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  background: #fff;
  border-radius: 3px;
  animation: animate-shine 2s ease-out infinite;
}

@keyframes animate-shine {
  0% {
    opacity: 0;
    width: 0;
  }
  50% {
    opacity: 0.5;
  }
  100% {
    opacity: 0;
    width: 95%;
  }
}

/* Glow */
.meter.glow span {
  box-shadow: 0 5px 5px rgba(255, 255, 255, 0.7) inset,
    0 -5px 5px rgba(255, 255, 255, 0.7) inset;
  animation: animate-glow 1s ease-out infinite;
}
@keyframes animate-glow {
  0% {
    box-shadow: 0 5px 5px rgba(255, 255, 255, 0.7) inset,
      0 -5px 5px rgba(255, 255, 255, 0.7) inset;
  }
  50% {
    box-shadow: 0 5px 5px rgba(255, 255, 255, 0.3) inset,
      0 -5px 5px rgba(255, 255, 255, 0.3) inset;
  }
  100% {
    box-shadow: 0 5px 5px rgba(255, 255, 255, 0.7) inset,
      0 -5px 5px rgba(255, 255, 255, 0.7) inset;
  }
}

.meter.blinds span {
    background: linear-gradient(90deg,rgba(255, 255, 255, 0.25) 0%,transparent 0) 100%/ 5em;
    animation: blinds 1s ease-in-out infinite alternate;

}
@keyframes blinds {
  to {
    background-image: linear-gradient(90deg,rgba(255, 255, 255, 0.25) 100%,transparent 0);
  }
}

/* Rainbow */
.meter.rainbow span {
  background-image: linear-gradient(
    90deg,
   
    rgba(255, 255, 255, 0.25) 0%,
    rgba(255, 255, 255, 0.25) 20%,
    #03a9f4 20%,
    #03a9f4 40%,
    #8bc34a 40%,
    #8bc34a 60%,
    rgba(255, 255, 255, 0.25) 60%,
    rgba(255, 255, 255, 0.25) 80%,
    #ff5722 80%,
    #ff5722 100%
    
  );
  background-position: 0 0;
  background-repeat: repeat-x;
  -webkit-animation: rainbow 5s ease-in-out infinite alternate;
  animation: rainbow 5s ease-in-out infinite alternate;
}

@-webkit-keyframes rainbow {
  from {
    background-position: 0 0;
  }
  to {
    background-position: 400px 0;
  }
}
@keyframes rainbow {
  from {
    background-position: 0 0;
  }
  to {
    background-position: 400px 0;
  }
}

.stage_names span {
  font-size: 10px;
  font-weight: bold;
  white-space: nowrap;
  position: absolute;
  /*transform: translate(-100%,0);*/
}
.stage_names span:first-child {
  /*transform: translate(0,0);*/
  left: 0px !important;
  right: auto !important;
}
.stage_names {
  margin-top: 5px;
  position: relative;
}

/** Fixes */
.meter{box-sizing: content-box !important;}


@media only screen and (max-width: 600px) {
  /* For mobile phones: */
  .stage_names span {
    display: none;
  }
  .stage_names span:first-child,
  .stage_names span:last-child,
  .stage_names span.current {
    display: inline;
  }

  .stage_names span.current {
    bottom: 35px;
  }
  .stage_names span:last-child {
    top: 0px !important;
  }
}
