.adm-step {
  --line-to-next-color: #e5e5e5;
  --icon-color: #e5e5e5;
}

.adm-step .adm-step-indicator {
  position: relative;
}

.adm-step .adm-step-indicator::after {
  content: '';
  position: absolute;
  z-index: 0;
  background-color: var(--line-to-next-color);
}

.adm-step .adm-step-indicator .adm-step-icon-container {
  position: absolute;
  z-index: 1;
  background: var(--adm-color-white);
  color: var(--icon-color);
}

.adm-step .adm-step-indicator .adm-step-icon-container > .antd-mobile-icon {
  display: block;
}

.adm-step:last-child .adm-step-indicator::after {
  display: none;
}

.adm-step-status-finish {
  --line-to-next-color: var(--adm-color-primary);
}

.adm-step-status-wait {
  --icon-color: #e5e5e5;
}

.adm-step-status-wait .adm-step-title {
  color: var(--adm-color-weak);
}

.adm-step-status-process {
  --icon-color: var(--adm-color-primary);
}

.adm-step-status-process .adm-step-title {
  color: var(--adm-color-primary);
}

.adm-step-status-finish {
  --icon-color: var(--adm-color-primary);
}

.adm-step-status-error {
  --icon-color: var(--adm-color-danger);
}

.adm-step-status-error .adm-step-title {
  color: var(--adm-color-danger);
}

.adm-steps {
  --title-font-size: var(--adm-font-size-main);
  --description-font-size: var(--adm-font-size-4);
  --indicator-margin-right: 0;
  --icon-size: 36px;
  width: 100%;
  box-sizing: border-box;
}

.adm-steps-horizontal {
  display: flex;
  justify-content: space-around;
  padding: 16px 0;
}

.adm-steps-horizontal .adm-step {
  flex: 1;
}

.adm-steps-horizontal .adm-step .adm-step-indicator {
  width: 100%;
  height: 48px;
}

.adm-steps-horizontal .adm-step .adm-step-indicator::after {
  left: 50%;
  top: 50%;
  height: 2px;
  transform: translateY(-50%);
  width: 100%;
}

.adm-steps-horizontal .adm-step .adm-step-indicator .adm-step-icon-container {
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
}

.adm-steps-horizontal .adm-step-content {
  text-align: center;
  font-size: var(--description-font-size);
  padding: 4px 16px 0;
}

.adm-steps-horizontal .adm-step-content .adm-step-title {
  font-size: var(--title-font-size);
}

.adm-steps-horizontal .adm-step-content .adm-step-description {
  margin-top: 8px;
  color: var(--adm-color-weak);
}

.adm-steps-vertical {
  padding: 16px 32px;
}

.adm-steps-vertical .adm-step {
  display: flex;
  align-items: stretch;
}

.adm-steps-vertical .adm-step .adm-step-indicator {
  flex: none;
  width: 48px;
  margin-right: var(--indicator-margin-right);
}

.adm-steps-vertical .adm-step .adm-step-indicator::after {
  left: 50%;
  top: calc(var(--title-font-size) * 1.5 / 2);
  width: 2px;
  transform: translateX(-50%);
  height: 100%;
}

.adm-steps-vertical .adm-step .adm-step-indicator .adm-step-icon-container {
  top: calc(var(--title-font-size) * 1.5 / 2);
  left: 50%;
  transform: translate(-50%, -50%);
}

.adm-steps-vertical .adm-step:last-child .adm-step-content {
  padding-bottom: 0;
}

.adm-steps-vertical .adm-step .adm-step-content {
  flex: auto;
  padding-bottom: 48px;
}

.adm-steps-vertical .adm-step .adm-step-content .adm-step-title {
  font-size: var(--title-font-size);
  line-height: 1.5;
}

.adm-steps-vertical .adm-step .adm-step-content .adm-step-description {
  padding-top: 8px;
  font-size: var(--description-font-size);
  color: var(--adm-color-weak);
}

.adm-step-icon-container {
  font-size: var(--icon-size);
}

.adm-step-icon-dot {
  display: block;
  width: 16px;
  height: 16px;
  background: currentColor;
  border-radius: 8px;
}