.timeline>li {
    position: relative;
    list-style: none
}

.timeline>li:before,
.timeline>li>a:after,
.timeline>li>div:after {
    position: absolute;
    left: -20px;
    display: block;
    width: 15px;
    height: 15px;
    content: ' ';
    border-radius: 50%
}

.timeline>li:before {
    top: 12px;
    left: -16px;
    z-index: 3;
    width: 7px;
    height: 7px;
    background-color: #c4c4c4;
    border: none;
    border: 1px solid #c4c4c4
}

.timeline>li>a:after,
.timeline>li>div:after {
    top: 11px;
    left: -17px;
    z-index: 3;
    width: 9px;
    height: 9px;
    background-color: #2e7fff;
    border-radius: 50%;
    opacity: 0
}

.timeline>li+li:after {
    position: absolute;
    top: -12px;
    bottom: 20px;
    left: -13px;
    z-index: 1;
    display: block;
    content: ' ';
    border-left: 1px solid #eee
}

.timeline>li.active>a:after,
.timeline>li.active>div:after {
    opacity: 1
}

.timeline>li.active:before {
    top: 8px;
    left: -20px;
    width: 15px;
    height: 15px;
    background-color: rgba(46, 127, 255, .2);
    border: none
}

.timeline>li>a,
.timeline>li>div {
    display: block;
    padding: 5px;
    line-height: 20px
}

.timeline>li.active>a {
    color: #313c52
}

.timeline-tag {
    position: absolute;
    top: 5px;
    left: -115px;
    font-size: 12px
}

.timeline-tag-left {
    padding-left: 115px
}

.timeline-sm {
    font-size: 12px
}

.timeline-sm>li:before,
.timeline-sm>li>a:after,
.timeline-sm>li>div:after {
    top: 10px;
    left: -20px;
    width: 11px;
    height: 11px
}

.timeline-sm>li.active:before,
.timeline-sm>li:before {
    top: 10px;
    left: -18px;
    width: 11px;
    height: 11px;
    background: 0 0;
    border: 1px solid #eee
}

.timeline-sm>li>a,
.timeline-sm>li>div {
    line-height: 20px
}

.timeline-sm>li>a:after,
.timeline-sm>li>div:after {
    top: 13px;
    left: -15px;
    width: 5px;
    height: 5px
}

ul.timeline+ul.timeline {
    margin-top: 20px;
}

ul.timeline>li.reviewer:before {
    width: 0px;
    height: 7px;
    left: -13px;
    border: none;
    border-left: 1px solid #eee;
}

ul.timeline>li.node:before {
    width: 10px;
    height: 10px;
    background-color: unset;
    left: -18px;
    content: ''
}

ul.timeline>li.node.pass:before {
    width: 0px;
    height: 0px;
    background-color: unset;
    left: -13px;
    border: none;
}

ul.timeline>li.node.pass>div:before {
    position: absolute;
    content: "\e92f";
    color: #00D293;
    left: -22px;
    top: 5px;
    font-size: 18px;
    font-family: ZentaoIcon;
    z-index: 50
}

ul.timeline>li.node.reverted:before {
    width: 0px;
    height: 0px;
    background-color: unset;
    left: -13px;
    border: none;
    content: ''
}

ul.timeline>li.node.reverted>div:before {
    position: absolute;
    content: "\e9d3";
    color: #313c52;
    left: -22px;
    top: 5px;
    font-size: 18px;
    font-family: ZentaoIcon;
    z-index: 50
}

ul.timeline>li.node.doing:before {
    width: 18px;
    height: 18px;
    background-color: #00B3FF;
    left: -21px;
    top: 5px;
    border-color: #00B3FF;
}

ul.timeline>li.node.doing>div:before {
    position: absolute;
    content: "...";
    color: #FFF;
    left: -19px;
    top: 0px;
    font-size: 18px;
    font-family: ZentaoIcon;
    z-index: 50
}

ul.timeline>li.node.fail:before {
    width: 18px;
    height: 18px;
    background-color: #FF4550;
    left: -21px;
    top: 5px;
    border-color: #FF4550
}

ul.timeline>li.node.fail>div:before {
    position: absolute;
    content: "\e936";
    color: #FFF;
    left: -18px;
    top: 3px;
    font-size: 12px;
    font-family: ZentaoIcon;
    z-index: 50
}

ul.timeline>li .timeline-text .result.reviewing {
    color: #00B3FF;
    padding-left: 3px;
    font-weight: bolder;
}

ul.timeline>li .timeline-text .result.pass {
    color: #00D293;
    padding-left: 3px;
    font-weight: bolder;
}

ul.timeline>li .timeline-text .result.fail {
    color: #FF4550;
    padding-left: 3px;
    font-weight: bolder;
}

ul.timeline>li .opinion {
    padding: 8px;
    background-color: #F5F5F5;
}
