/* Container scrollabile */

.timeline-container {
    height: 100%;
    overflow-y: auto;
    padding-right: 10px;
}

.timeline {
    display: flex;
    flex-direction: column;
    gap: 1.5rem;
    position: relative;
    padding-left: 40px; /* spazio per linea e cerchi */
}

.step {
    display: flex;
    align-items: flex-start;
    gap: 15px;
    position: relative;
}

/* Linea sopra e sotto ogni step */

.step::before,
.step::after {
    content: "";
    position: absolute;
    left: -31px;
    width: 2px;
    background: #ddd;
}

.step::after {
    top: 30%;
    bottom: -1.5rem;
}

.step:first-child::before { display: none; }

.step:last-child::after { display: none; }

/* Cerchio base */

.circle,
.in-progress {
    width: 20px;
    height: 20px;
    border-radius: 50%;
    display: flex;
    justify-content: center;
    align-items: center;
    flex-shrink: 0;
    z-index: 1;
    margin-left: -40px;
    background-color: var(--mud-palette-tertiary);
}

/* Stato skippato */

.skipped { background: #ccc; }

/* Stato completato */

.completed {
    background: var(--mud-palette-primary);
    color: white;
    font-weight: bold;
}

/* Stato in corso con spinner */

.in-progress {
    border: 2px solid var(--mud-palette-primary);
    border-top: 2px solid transparent;
    animation: spin 1s linear infinite;
}

@keyframes spin {
    0% { transform: rotate(0deg); }

    100% { transform: rotate(360deg); }
}

/* Label con titolo + sottotitolo */

.label {
    display: flex;
    flex-direction: column;
}

.titleStep {
    font-size: 1.1rem;
    font-weight: 600;
    color: #111;
    line-height: normal;
}

.subtitleStep {
    font-size: .90rem;
    color: #666;
    line-height: normal;
}

.timeline-container::-webkit-scrollbar { width: 6px; }

.timeline-container::-webkit-scrollbar-thumb {
    background: #bbb;
    border-radius: 3px;
}

/*--------------
    TabPanel
----------------*/

.box {
    display: flex;
    flex-direction: column;
    width: -webkit-fill-available;
    background: var(--light-card-background);
    border-radius: 16px;
    overflow: clip;
    margin-bottom: 1rem;
}

/* nascondo gli input */

.tab-toggle { display: none; }

.tab-list {
    margin: 0;
    padding: 0;
    list-style: none;
    display: flex;
    position: relative;
    z-index: 1;
}

/* la lineetta */

.tab-list::before {
    content: '';
    display: block;
    height: 3px;
    width: calc(100% / 3);
    position: absolute;
    bottom: 0;
    left: 0;
    background-color: var(--mud-palette-primary);
    transition: transform .3s;
}

.tab-item {
    flex: 1;
    text-align: center;
    transition: .3s;
    opacity: 0.5;
}

.tab-trigger {
    display: block;
    padding: 10px 0;
    cursor: pointer;
}

/* tab attivo */

#tab1:checked ~ .box .tab-list .tab-item:nth-child(1),
#tab2:checked ~ .box .tab-list .tab-item:nth-child(2),
#tab3:checked ~ .box .tab-list .tab-item:nth-child(3) {
    opacity: 1;
    font-weight: bold;
    display: block;
}

/* spostamento lineetta */

#tab1:checked ~ .box .tab-list::before { transform: translateX(0%); }

#tab2:checked ~ .box .tab-list::before { transform: translateX(100%); }

#tab3:checked ~ .box .tab-list::before { transform: translateX(200%); }

.tab-container {
    display: flex;
    flex-direction: column;
    overflow: hidden;
    width: -webkit-fill-available;
}

.tab-content {
    display: none;
    flex: 1;
    overflow-y: auto;
    animation: fade .3s ease;
    padding: .5rem;
}

.contentFlex {
    display: flex;
    flex-direction: column;
    gap: 1.25rem;
}

.tab-content::-webkit-scrollbar { width: 6px; }

.tab-content::-webkit-scrollbar-thumb {
    background: #bbb;
    border-radius: 3px;
}

.contentFlex ::deep > div:first-child:not(.activity-card) { display: none; }

#tab1:checked ~ .tab-container .tab-content:nth-child(1),
#tab2:checked ~ .tab-container .tab-content:nth-child(2),
#tab3:checked ~ .tab-container .tab-content:nth-child(3) { display: block; }

@keyframes fade {
    from {
        opacity: 0;
        transform: translateY(5px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}