.progress_bar
{
  position: absolute;
  --hbw: min(50%, 200px) + 16px;
  left: calc(50% - var(--hbw));
  right: calc(50% - var(--hbw));
  bottom: 50%;
  height: 44px;
  z-index: 10001;
}

.progress_bar.splash
{
  bottom: 50px;
}

.progress_bar .message
{
  color: black;
  position:absolute;
  height: 24px;
  line-height: 24px;
  top:0;
  left:4px;
  right:4px;
  text-align: left;
  text-shadow: 0px 0px 6px white;
  overflow: hidden;
}

.progress_bar .bar
{
  background-color: white;
  position:absolute;
  height: 16px;
  bottom:4px;
  left:4px;
  right:4px;
  border: 1px solid #808080;
  line-height: 17px;
  color:black;
  text-align: center;
  box-shadow: 2px 2px 10px 0px rgba(50, 50, 50, 0.3);
}

.progress_bar .bar .progress
{
  background-color: #f0a0a0;
  position:absolute;
  height: 16px;
  left:0;
  top:0;
  border:none;
}

.progress_bar .bar .percent
{
  position:absolute;
  height: 16px;
  left:0;
  right:0;
}

/* undeterminate */

.progress_bar.undeterminate
{
  display: inline-block;
  left: 0;
  right: 0;
  top: 44%;
  text-align: center;
}

.progress_bar.undeterminate:after {
  content: " ";
  display: inline-block;
  width: 32px;
  height: 32px;
  margin: 24px;
  border-radius: 50%;
  border: 6px solid #fff;
  border-color: red rgb(240, 180, 180) red rgb(240, 180, 180);
  animation: progress_undeterminate 1.2s linear infinite;
}

.progress_bar.undeterminate .message
{
  text-align: center;
}

.progress_bar.undeterminate .bar
{
  display: none;
}

@keyframes progress_undeterminate
 {
  0% {
    transform: rotate(0deg);
  }
  100% {
    transform: rotate(360deg);
  }
}




