.progress__vertical {
  height: 100%;
  padding: 30px;
}
.progress__vertical > div {
  display: flex;
  flex-direction: column;
}
.progress__vertical > div.left {
  padding-right: 20px;
  text-align: right;
}
.progress__vertical > div.left div:last-of-type:after {
  display: none;
}
.progress__vertical > div.left div:after {
  content: "";
  border-radius: 2px;
  position: absolute;
  right: -20px;
  top: 10px;
  height: 101%;
  width: 1px;
  transform: translateX(50%);
}
.progress__vertical > div.right {
  padding-left: 20px;
}
.progress__vertical > div.right div.prev:after {
  transition: none;
}
.progress__vertical > div.right div.current {
  font-weight: bold;
}
.progress__vertical > div.right div.current:before {
  background: #5c5c5c;
  padding: 10px;
  transition: all 0.2s 0.15s cubic-bezier(0.175, 0.885, 0.32, 2);
}
.progress__vertical > div.right div.current:after {
  height: 0%;
  transition: height 0.2s ease-out;
}
.progress__vertical > div.right div.current ~ div {
  color: #5c5c5c;
}
.progress__vertical > div.right div.current ~ div:before {
  background: #5c5c5c;
  padding: 2.5px;
}
.progress__vertical > div.right div.current ~ div:after {
  height: 0%;
  transition: none;
}
.progress__vertical > div.right div:before {
  content: "";
  background: #5c5c5c;
  padding: 5px;
  border-radius: 50%;
  position: absolute;
  left: -20px;
  top: 10px;
  transform: translateX(-50%) translateY(-50%);
  transition: padding 0.2s ease;
}
.progress__vertical > div.right div:after {
  content: "";
  background: #5c5c5c;
  border-radius: 2px;
  position: absolute;
  left: -20px;
  top: 10px;
  height: 101%;
  width: 2px;
  transform: translateX(-50%);
  transition: height 0.2s ease;
}
.progress__vertical > div div {
  flex: 1;
  position: relative;
  line-height: 20px;
  cursor: default;
  min-height: 30px;
  font-size: 12px;
  padding-bottom: 20px;
}
.progress__vertical > div div:last-of-type {
  flex: 0;
}
.progress__vertical.dark {
  background: #5c5c5c;
  display: inline-flex;
  height: 100%;
  width: 100%;
  padding: 5vh 10%;
}
.progress__vertical.dark > div {
  display: flex;
  flex-direction: column;
  color: #ccc;
}
.progress__vertical.dark > div.left {
  padding-right: 20px;
  text-align: right;
}
.progress__vertical.dark > div.left div:last-of-type:after {
  display: none;
}
.progress__vertical.dark > div.left div:after {
  content: "";
  background: rgba(211, 211, 211, 0.05);
  border-radius: 2px;
  position: absolute;
  right: -20px;
  top: 10px;
  height: 101%;
  width: 1px;
  transform: translateX(50%);
}
.progress__vertical.dark > div.right {
  padding-left: 20px;
}
.progress__vertical.dark > div.right div.prev:after {
  transition: none;
}
.progress__vertical.dark > div.right div.current {
  color: white;
  font-weight: bold;
}
.progress__vertical.dark > div.right div.current:before {
  background: white;
  padding: 10px;
  transition: all 0.2s 0.15s cubic-bezier(0.175, 0.885, 0.32, 2);
}
.progress__vertical.dark > div.right div.current:after {
  height: 0%;
  transition: height 0.2s ease-out;
}
.progress__vertical.dark > div.right div.current ~ div {
  color: #5c5c5c;
}
.progress__vertical.dark > div.right div.current ~ div:before {
  background: #5c5c5c;
  padding: 2.5px;
}
.progress__vertical.dark > div.right div.current ~ div:after {
  height: 0%;
  transition: none;
}
.progress__vertical.dark > div.right div:before {
  content: "";
  background: lightgray;
  padding: 5px;
  border-radius: 50%;
  position: absolute;
  left: -20px;
  top: 10px;
  transform: translateX(-50%) translateY(-50%);
  transition: padding 0.2s ease;
}
.progress__vertical.dark > div.right div:after {
  content: "";
  background: lightgray;
  border-radius: 2px;
  position: absolute;
  left: -20px;
  top: 10px;
  height: 101%;
  width: 2px;
  transform: translateX(-50%);
  transition: height 0.2s ease;
}
.progress__vertical.dark > div div {
  flex: 1;
  position: relative;
  line-height: 20px;
  cursor: default;
  min-height: 30px;
}
.progress__vertical.dark > div div:last-of-type {
  flex: 0;
}
.done.current {
  color: #62af0b !important;
}
.done.current:before {
  background: #62af0b !important;
}
.dark .done.current {
  color: lightgreen !important;
}
.dark .done.current:before {
  background: lightgreen !important;
}
