/*
|--------------------------------------------------------------------------
| TechPackHub Client Portal v2
| Progress Styles
|--------------------------------------------------------------------------
*/

/* ==========================================================
   Progress Wrapper
========================================================== */

.tph-progress-wrapper{
    display:flex;
    flex-direction:column;
    gap:32px;
}

/* ==========================================================
   Progress Bar
========================================================== */

.tph-progress{
    width:100%;
    height:12px;
    background:#edf2f7;
    border-radius:999px;
    overflow:hidden;
    position:relative;
}

.tph-progress-bar{
    height:100%;
    width:0;
    border-radius:999px;
    background:linear-gradient(
        90deg,
        #2563eb,
        #3b82f6
    );
    transition:width .8s ease;
    position:relative;
}

.tph-progress-bar::after{
    content:"";
    position:absolute;
    right:0;
    top:0;
    width:40px;
    height:100%;
    background:rgba(255,255,255,.25);
}

/* ==========================================================
   Percentage
========================================================== */

.tph-progress-info{
    display:flex;
    justify-content:space-between;
    align-items:center;
    margin-bottom:14px;
}

.tph-progress-label{
    font-size:15px;
    font-weight:600;
    color:var(--tph-heading);
}

.tph-progress-value{
    padding:6px 14px;
    border-radius:30px;
    background:#eef4ff;
    color:var(--tph-primary);
    font-weight:700;
    font-size:14px;
}

/* ==========================================================
   Stepper
========================================================== */

.tph-stepper{
    display:flex;
    justify-content:space-between;
    position:relative;
    gap:12px;
    margin-top:20px;
}

.tph-stepper::before{
    content:"";
    position:absolute;
    left:0;
    right:0;
    top:18px;
    height:3px;
    background:#e5e7eb;
    z-index:1;
}

/* ==========================================================
   Step
========================================================== */

.tph-step{
    flex:1;
    position:relative;
    text-align:center;
    z-index:2;
}

.tph-step-circle{

    width:38px;
    height:38px;

    margin:0 auto 12px;

    border-radius:50%;

    display:flex;
    align-items:center;
    justify-content:center;

    background:#fff;

    border:3px solid #d1d5db;

    font-size:15px;
    font-weight:700;

    transition:.3s;

}

/* ==========================================================
   Completed
========================================================== */

.tph-step.completed .tph-step-circle{

    background:#16a34a;

    border-color:#16a34a;

    color:#fff;

}

/* ==========================================================
   Active
========================================================== */

.tph-step.active .tph-step-circle{

    background:var(--tph-primary);

    border-color:var(--tph-primary);

    color:#fff;

    transform:scale(1.08);

    box-shadow:0 0 0 8px rgba(37,99,235,.10);

}

/* ==========================================================
   Upcoming
========================================================== */

.tph-step.upcoming .tph-step-circle{

    background:#fff;

    border-color:#d1d5db;

    color:#9ca3af;

}

.tph-step-title{

    font-size:14px;

    font-weight:600;

    color:var(--tph-heading);

}

.tph-step-subtitle{

    margin-top:4px;

    font-size:12px;

    color:var(--tph-text-light);

}

/* ==========================================================
   Current Stage Card
========================================================== */

.tph-current-stage{

    padding:20px;

    border-radius:14px;

    background:#f8fbff;

    border:1px solid #dbeafe;

}

.tph-current-stage strong{

    display:block;

    margin-bottom:8px;

    font-size:16px;

    color:var(--tph-heading);

}

.tph-current-stage p{

    margin:0;

    color:var(--tph-text-light);

    line-height:1.7;

}

/* ==========================================================
   Progress Legend
========================================================== */

.tph-progress-legend{

    display:flex;

    gap:24px;

    flex-wrap:wrap;

}

.tph-progress-legend span{

    display:flex;

    align-items:center;

    gap:8px;

    font-size:14px;

    color:var(--tph-text-light);

}

.tph-progress-dot{

    width:12px;

    height:12px;

    border-radius:50%;

}

.tph-progress-dot.completed{

    background:#16a34a;

}

.tph-progress-dot.active{

    background:var(--tph-primary);

}

.tph-progress-dot.pending{

    background:#d1d5db;

}

/* ==========================================================
   Animation
========================================================== */

@keyframes tphPulse{

    0%{
        transform:scale(1);
    }

    50%{
        transform:scale(1.08);
    }

    100%{
        transform:scale(1);
    }

}

.tph-step.active .tph-step-circle{

    animation:tphPulse 2s infinite;

}

/* ==========================================================
   Responsive
========================================================== */

@media(max-width:992px){

    .tph-step-title{

        font-size:13px;

    }

}

@media(max-width:768px){

    .tph-stepper{

        flex-direction:column;

        gap:28px;

    }

    .tph-stepper::before{

        display:none;

    }

    .tph-step{

        display:flex;

        align-items:center;

        text-align:left;

        gap:16px;

    }

    .tph-step-circle{

        margin:0;

    }

    .tph-progress-legend{

        flex-direction:column;

        gap:12px;

    }

}