.mapArea {
  width: 100%;
  overflow-x: auto;
  overflow-y: hidden;
  // transition: all 0.2s linear;

  &::-webkit-scrollbar {
    height: 6px;
  }

  &::-webkit-scrollbar-track {
    background-color: rgba(255, 255, 255, 0);
    border-radius: 10px;
  }

  &::-webkit-scrollbar-thumb {
    background-color: #d7d8dd;
    border-radius: 100px;
  }
}

.end {
  position: absolute;
  right: 0;
  background-color: #fff;
  display: flex;
  justify-content: center;
  align-items: center;
  border-left: 1px solid #d7d8dd;
  padding-left: 16px;

  .node {
    position: relative;

    &::before {
      content: '';
      border: 1px solid #d7d8dd;
      border-top: none;
      border-left: none;
      width: 14px;
      height: 0px;
      position: absolute;
      left: -16px;
      top: 50%;
      // transform: translateY(-50%);
    }

    article {
      padding: 8px 16px;
      border-radius: 8px;
      border: 1px solid transparent;
      color: #3477eb;
      text-align: center;
      font-size: 14px;
      line-height: 24px;
      box-sizing: border-box;
      background: #e6f2ff;
    }
  }
}

.mindmap {
  position: relative;
  margin-right: 16px;

  article {
    padding: 6px 16px;
    border-radius: 8px;
    height: 38px;
    border: 1px solid transparent;
    background: #fff;
    color: #121316;
    text-align: center;
    font-size: 14px;
    line-height: 24px;
    position: relative;
    box-sizing: border-box;

    &.loading {
      line-height: 20px;
      border-radius: 8px;
      overflow: hidden;
      border: 1px solid transparent;
      padding: 4px;

      span {
        color: #2126c0;
        background-color: #fff;
        border-radius: 4px;
        line-height: 24px;
        padding: 2px 12px;
      }

      .looping {
        --border-width: 4px;
        --follow-panel-linear-border: linear-gradient(91deg, #5551ff 0.58%, #ff87de 100.36%);

        position: absolute;
        top: 0;
        left: 0;
        width: calc(100% + var(--border-width) * 2 - 8px);
        height: calc(100%);
        background: var(--follow-panel-linear-border);
        background-size: 300% 300%;
        background-position: 0 50%;
        animation: moveGradient 4s alternate infinite;
      }
    }

    &.disabled {
      border-radius: 8px;
      border: 1px solid #d7d8dd;
      color: rgba(18, 19, 22, 0.35);
    }

    &.finished {
      cursor: pointer;
      border: 1px solid #2126c0;

      .finishDot {
        position: absolute;
        top: 6px;
        right: 6px;
        width: 6px;
        height: 6px;
        background-color: #c9c0fe;
        border-radius: 50%;
      }
    }

    &.init {
      border: 1px solid transparent;
      cursor: auto;
    }

    span {
      display: block;
      white-space: nowrap;
      max-width: 160px;
      overflow: hidden;
      text-overflow: ellipsis;
      position: relative;
      z-index: 20;
    }

    span.status {
      color: #4082fe;
    }
  }

  // 第一个article，起始节点
  >li {
    >article {
      border-radius: 8px;
      background: #e6f2ff;
      color: #3477eb;
    }
  }

  li {
    list-style: none;
    display: flex;
    align-items: center;
    box-sizing: border-box;
    margin: 16px;
    line-height: 1;
    position: relative;

    &>ul.onlyone {
      &:before {
        opacity: 0;
      }

      >li {
        margin-left: 0px;
      }

      &>li:after {
        opacity: 0;
      }

      &>li:before {
        // left: 0;
      }
    }

    &>ul:before {
      content: '';
      border: 1px solid #d7d8dd;
      border-top: none;
      border-left: none;
      width: calc(16px - 2px);
      height: 0px;
      position: absolute;
      left: 0;
      top: 50%;
      // transform: translateY(-50%);
    }

    &:before {
      content: '';
      border: 1px solid #d7d8dd;
      border-top: none;
      border-left: none;
      width: 16px;
      height: 0px;
      position: absolute;
      left: calc(-16px - 1px);
    }

    &:after {
      content: '';
      border: 1px solid #d7d8dd;
      border-top: none;
      border-left: none;
      width: 0px;
      height: calc(100% / 2 + 33px);
      position: absolute;
      left: calc(-16px - 2px);
    }

    &:first-of-type:after {
      top: 50%;
    }

    &:last-of-type:after {
      bottom: 50%;
    }

    ul {
      padding: 0 0 0 16px;
      position: relative;
      margin-bottom: 0;
    }
  }

  &>li {

    &:after,
    &:before {
      display: none;
    }
  }

  .endLine {
    border-bottom: 1px solid #d7d8dd;
    width: 3000px;
    transition: width 1s ease-in-out;
  }
}

@keyframes moveGradient {
  50% {
    background-position: 100% 50%;
  }
}