div.modal-content:has(.stepper-container) {
    border-radius: 1rem; 
}

div.modal-content:has(.stepper-container) .modal-body {
    padding-top: 1.5rem;
}

.stepper-container {
    margin: -70px 35px 0 35px;
    /* padding: 2.25rem 0 1.75rem 0; */
    padding: 1.25rem 0;
    box-shadow: 0 10px 16px 0 rgba(0,0,0,0.2),0 6px 20px 0 rgba(0,0,0,0.19);
    border-radius: 1rem;
    background: linear-gradient(
        180deg, 
        rgb(var(--primary-light)),
        rgb(var(--primary))
    ) repeat-x;
}

.stepper-container h5 {
    margin-bottom: 1rem;
    text-align: center;
    color: rgb(var(--primary-font-color));
}

.stepper-container .steps {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(0, 1fr));
}

.stepper-container .steps .step {
    display: flex;
    flex-direction: column;
    align-items: center;
    padding-top: 30px;
    position: relative;
    cursor: pointer;
}

.stepper-container .steps .step:not(:first-child):before {
    content: '';
    position: absolute;
    width: 100%;
    height: 3px;
    /* background: rgba(var(--primary-font-color), 0.5); */
    background: color-mix(in srgb, rgb(var(--primary)) 50%, rgb(var(--primary-font-color)) 50%);
    top: 10px;
    right: 50%;
    transform: translateY(-50%);
}

.stepper-container .steps .step:not(:first-child):after {
    content: '';
    position: absolute;
    width: 100%;
    height: 3px;
    background: rgb(var(--primary-font-color));
    top: 10px;
    right: 50%;
    transform: translateY(-50%) scaleX(0);

    transition: transform 0.5s;
    transform-origin: left;
}

.stepper-container .steps .step.active:not(:first-child):after, .stepper-container .steps .step.completed:not(:first-child):after {
    transform: translateY(-50%) scaleX(1);
}

.stepper-container .steps .step.disabled {
    pointer-events: none;
}

.stepper-container .steps .step .step-indicator {
    position: absolute;
    min-width: 20px;
    min-height: 20px;
    border-radius: 50%;
    /* background: rgba(var(--primary-font-color), 0.5); */
    background: color-mix(in srgb, rgb(var(--primary)) 50%, rgb(var(--primary-font-color)) 50%);
    top: 0;
    z-index: 1;

    transition: padding 0.2s linear, border-radius 0.2s linear, top 0.1s linear;
}

.stepper-container .steps .step.active .step-indicator {
    padding: 0.15rem 0.75rem;
    border-radius: 1rem;
    top: -0.2rem;

    transition: padding 0.2s linear 0.3s, border-radius 0.2s linear 0.3s, top 0.1s linear 0.3s;
}

.stepper-container .steps .step.active .step-indicator, .stepper-container .steps .step.completed .step-indicator {
    background: rgb(var(--primary-font-color));
}

.stepper-container .steps .step .step-indicator span {
    /* display: none; */
    /* font-size: 12px; */
    color: rgb(var(--primary));
    display: block;
    opacity: 0;
    overflow: hidden;
    text-wrap: nowrap;
    max-width: 0;
    transition: opacity 0.2s linear, max-width 0.2s linear;
}

.stepper-container .steps .step.active .step-indicator span {
    /* display: block; */
    max-width: 64px;
    opacity: 1;

    transition: opacity 0.2s linear 0.3s, max-width 0.2s linear 0.3s;
}

.stepper-container .steps .step .step-label {
    margin-bottom: 0;
    /* color: rgba(var(--primary-font-color), 0.5); */
    color: color-mix(in srgb, rgb(var(--primary)) 50%, rgb(var(--primary-font-color)) 50%);
    pointer-events: none;

    transition: color 0.1s linear;
}

.stepper-container .steps .step.active .step-label, .stepper-container .steps .step.completed .step-label {
    color: rgb(var(--primary-font-color));

    transition: color 0.1s linear 0.3s;
}

/* Vertical Stepper */
div.modal-content:has(.vertical-stepper-container) {
    border-radius: 1rem;
    flex-direction: row;
}

.vertical-stepper-container {
    background: linear-gradient(
        180deg, 
        rgb(var(--primary-light)),
        rgb(var(--primary))
    ) repeat-x;
    border-radius: 1rem 0 0 1rem;
    flex: 0 0 250px;
    padding: 0 3rem;
    display: flex;
    align-items: center;
}

.vertical-stepper-container .steps {
    display: grid;
    /* grid-template-rows: repeat(auto-fit, minmax(0, 110px)); */
    grid-auto-rows: 110px;
    width: 100%;
    justify-items: flex-end;
}

.vertical-stepper-container .steps .step {
    display: flex;
    align-items: center;
    position: relative;
    cursor: pointer;
}

.vertical-stepper-container .steps .step:not(:first-child):before {
    content: '';
    position: absolute;
    width: 3px;
    height: 100%;
    background: color-mix(in srgb, rgb(var(--primary)) 50%, rgb(var(--primary-font-color)) 50%);
    bottom: 50%;
    right: 10px;
    transform: translateX(50%);
}

.vertical-stepper-container .steps .step:not(:first-child):after {
    content: '';
    position: absolute;
    width: 3px;
    height: 100%;
    background: rgb(var(--primary-font-color));
    bottom: 50%;
    right: 10px;
    transform: translateX(50%) scaleY(0);

    transition: transform 0.5s;
    transform-origin: top;
}

.vertical-stepper-container .steps .step.active:not(:first-child):after, 
.vertical-stepper-container .steps .step.completed:not(:first-child):after {
    transform: translateX(50%) scaleY(1);
}

.vertical-stepper-container .steps .step.disabled {
    pointer-events: none;
}

.vertical-stepper-container .steps .step .step-indicator {
    min-width: 20px;
    min-height: 20px;
    border-radius: 50%;
    background: color-mix(in srgb, rgb(var(--primary)) 50%, rgb(var(--primary-font-color)) 50%);
    z-index: 1;

    transition: background-color 0.1s linear;
}

.vertical-stepper-container .steps .step.active .step-indicator, 
.vertical-stepper-container .steps .step.completed .step-indicator {
    background: rgb(var(--primary-font-color));

    transition: background-color 0.1s linear 0.3s;
}

.vertical-stepper-container .steps .step .step-label {
    margin-right: 1rem;
    text-align: right;

    color: color-mix(in srgb, rgb(var(--primary)) 50%, rgb(var(--primary-font-color)) 50%);
    pointer-events: none;

    transition: color 0.1s linear;
}

.vertical-stepper-container .steps .step.active .step-label, .vertical-stepper-container .steps .step.completed .step-label {
    color: rgb(var(--primary-font-color));

    transition: color 0.1s linear 0.3s;
}

.vertical-stepper-container .steps .step .step-label label {
    display: block;
    margin-bottom: 0;
    font-size: 1rem;
    width: 100%;
}

.vertical-stepper-container .steps .step .step-label span {
    font-size: 12px;
    display: block;
    width: 100%;
}
/* End of Vertical Stepper */

/* Float Stepper */
div.modal-content:has(.float-stepper-container) {
    border-radius: 0.5rem;
}

div.modal-content:has(.float-stepper-container) .modal-body-container {
    display: flex; 
    flex-direction: column; 
    padding-left: 240px;
    padding-right: 0.5rem;

}

div.modal-content:has(.float-stepper-container) .dataTables_wrapper {
    padding: 0.8rem;
    border-radius: 0.5rem;
    box-shadow: 0 10px 16px 0 rgba(0,0,0,0.05),0 6px 20px 0 rgba(0,0,0,0.05);
}

.float-stepper-container {
    background: linear-gradient(
        180deg, 
        rgb(var(--primary-light)),
        rgb(var(--primary))
    ) repeat-x;
    border-radius: 1rem;
    /* flex: 0 0 250px; */
    padding: 0 2rem;
    /* display: flex;
    align-items: center; */
    position: absolute;
    width: 250px;
    left: -30px;
    top: 1.25rem;
    box-shadow: 3px 10px 16px 0 rgba(var(--primary),0.3),8px 6px 20px 0 rgba(var(--primary),0.3);
}

.float-stepper-container .steps {
    display: grid;
    /* grid-template-rows: repeat(auto-fit, minmax(0, 110px)); */
    grid-auto-rows: 100px;
    width: 100%;
    justify-items: flex-end;
}

.float-stepper-container .steps .step {
    display: flex;
    align-items: center;
    position: relative;
    cursor: pointer;
}

.float-stepper-container .steps .step:not(:first-child):before {
    content: '';
    position: absolute;
    width: 3px;
    height: 100%;
    background: color-mix(in srgb, rgb(var(--primary)) 50%, rgb(var(--primary-font-color)) 50%);
    bottom: 50%;
    right: 10px;
    transform: translateX(50%);
}

.float-stepper-container .steps .step:not(:first-child):after {
    content: '';
    position: absolute;
    width: 3px;
    height: 100%;
    background: rgb(var(--primary-font-color));
    bottom: 50%;
    right: 10px;
    transform: translateX(50%) scaleY(0);

    transition: transform 0.5s;
    transform-origin: top;
}

.float-stepper-container .steps .step.active:not(:first-child):after, 
.float-stepper-container .steps .step.completed:not(:first-child):after {
    transform: translateX(50%) scaleY(1);
}

.float-stepper-container .steps .step.disabled {
    pointer-events: none;
}

.float-stepper-container .steps .step .step-indicator {
    position: relative;
    min-width: 20px;
    min-height: 20px;
    border-radius: 50%;
    background: color-mix(in srgb, rgb(var(--primary)) 50%, rgb(var(--primary-font-color)) 50%);
    z-index: 1;

    transition: background-color 0.1s linear;
}

.float-stepper-container .steps .step.active .step-indicator, 
.float-stepper-container .steps .step.completed .step-indicator {
    background: rgb(var(--primary-font-color));

    transition: background-color 0.1s linear 0.3s;
}

.float-stepper-container .steps .step.active .step-indicator:after {
    content: '\F28A';
    position: absolute;
    font-weight: bold;
    font-family:'Bootstrap-icons';
    color: rgb(var(--primary));
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    /* animation: CompletedToActive 0.5s linear forwards; */
}

@keyframes CompletedToActive {
    /* 0% {
        content: '\F26E';
    } */
    /* 50% {
        opacity: 0;
    } */
    100% {
        content: "\F28A";
    }
}

.float-stepper-container .steps .step.completed .step-indicator:after {
    content: '\F26E';
    position: absolute;
    font-size: 1.2rem;
    font-family:'Bootstrap-icons';
    color: rgb(var(--primary));
    top: 50%;
    right: 50%;
    transform: translate(50%, -50%);
    /* animation: ActiveToCompleted 0.5s linear forwards; */
}

@keyframes ActiveToCompleted {
    /* 0% {
        content: '\F28A';
    } */
    /* 50% {
        opacity: 0;
    } */
    100% {
        content: "\F26E";
    }
}

.float-stepper-container .steps .step .step-label {
    margin-right: 1rem;
    text-align: right;

    color: color-mix(in srgb, rgb(var(--primary)) 50%, rgb(var(--primary-font-color)) 50%);
    pointer-events: none;

    transition: color 0.1s linear;
}

.float-stepper-container .steps .step.active .step-label, .float-stepper-container .steps .step.completed .step-label {
    color: rgb(var(--primary-font-color));

    transition: color 0.1s linear 0.3s;
}

.float-stepper-container .steps .step .step-label label {
    display: block;
    margin-bottom: 0;
    font-size: 1rem;
    width: 100%;
}

.float-stepper-container .steps .step .step-label span {
    font-size: 12px;
    display: block;
    width: 100%;
}

/* div.modal-content:has(.float-stepper-container) .modal-footer { */
div.modal-content .modal-footer {
    padding: 1.25rem;
    padding-top: 0;
    border-top: none;
}
/* End of Float Stepper */
