.ff-pipeline {
    width: 100%;
    border: 1px solid $ff-grey-300;
    border-radius: 6px;
    .ff-pipeline-banner {
        height: 46px;
    }
    .ff-pipeline-banner,
    .ff-pipeline-stage-banner {
        padding: 0px 18px;
        display: flex;
        justify-content: space-between;
        align-items: center;
        border-bottom: 1px solid $ff-grey-300;
        background-color: $ff-grey-100;
        border-top-left-radius: 6px;
        border-top-right-radius: 6px;
        gap: 48px;
    }
    .ff-pipeline-stage-banner {
        height: 54px;
        background-color: $ff-grey-50;
        label {
            font-weight: 500;
        }
    }
    .ff-pipelines-stage-banner-error {
        color: $ff-red-600;
        font-size: 0.725rem;
        font-weight: 500;
        display: flex;
        align-items: center;
        gap: 2px;
    }
    .ff-pipeline-actions {
        display: flex;
        gap: 6px;
    }
    .ff-pipeline-stages {
        padding: 24px;
        border-bottom-left-radius: 6px;
        border-bottom-right-radius: 6px;
        display: flex;
        align-items: stretch;
        gap: 16px;
        overflow-x: auto;
    }
}

.ff-pipeline-stage {
    border-radius: 6px;
    border: 1px solid $ff-grey-400;
    min-width: 275px;
    background-color: white;
    a:hover,
    a:hover .ff-icon {
        color: $ff-blue-600;
    }
    &.ff-pipeline-stage-ghost {
        border-style: dashed;
        padding: 48px 64px;
        gap: 6px;
        display: flex;
        flex-direction: column;
        justify-content: center;
        align-items: center;
        color: $ff-grey-400;
        &:hover {
            border-style: solid;
            cursor: pointer;
            color: $ff-blue-600;
            border-color: $ff-blue-600;
        }
    }
    .ff-pipeline-stage-row {
        padding: 9px 18px;
        display: flex;
        justify-content: space-between;
        gap: 24px;
        font-size: 0.9rem;    
        label {
            color: $ff-grey-500;
        }
        a.ff-link {
            text-overflow: ellipsis;
            overflow-x: hidden;
        }
    }
    .ff-pipeline-stage-type {
        padding: 9px 0px 0.75rem;
        margin: 0 18px 0.75rem;
        border-bottom: 1px solid $ff-grey-300;
        display: flex;
        align-items: flex-start;
        gap: 6px;
        font-size: 0.9rem;    
        label {
            color: $ff-grey-500;
            font-size: 0.75em;
            line-height: 0.825em;
        }
    }
}

.ff-pipeline-stage--error {
    border-color: $ff-red-600;
    .ff-pipeline-stage-banner {
        background-color: $ff-red-50;
        border-bottom: 1px solid $ff-red-600;
    }
}

.animate-deploying {
    animation-name: left-to-right;
    animation-duration: 1s;
    animation-iteration-count: infinite;
    color: $ff-blue-600;
}

@keyframes left-to-right {
    0% {
        transform: translate(-24px, 0);
        opacity: 0;
    }
    40% {
        opacity: 1;
    }
    75% {
        opacity: 0;
    }
    100% {
        transform: translate(24px, 0);
        opacity: 0;
    }
}