/* Registration Multi-step Form */
.registration-container { position: relative; min-height: 400px; }
.form-step { display: none; animation: fadeIn 0.4s ease-out; }
.form-step.active { display: block; }

.progress-bar-bg { 
    content: ''; background-color: #e9ecef; position: absolute; 
    top: 50%; left: 0; transform: translateY(-50%); height: 4px; width: 100%; z-index: 0; border-radius: 4px; 
}
.progress-bar-fill { 
    position: absolute; background-color: var(--primary); height: 4px; 
    top: 50%; left: 0; transform: translateY(-50%); z-index: 0; transition: width 0.4s ease; width: 0%; border-radius: 4px; 
}
.steps { width: 100%; display: flex; justify-content: space-between; position: relative; z-index: 1; }
.step { 
    background-color: var(--surface); color: var(--muted); border: 2px solid #e9ecef; 
    border-radius: 50%; height: 35px; width: 35px; display: flex; align-items: center; 
    justify-content: center; font-weight: 700; transition: all 0.3s ease; font-size: 0.9rem;
}
.step.active { border-color: var(--primary); color: var(--primary); box-shadow: 0 0 0 4px rgba(45, 122, 79, 0.1); }
.step.completed { background-color: var(--primary); border-color: var(--primary); color: #fff; }

/* Card Radio Styles */
.card-radio-label { 
    border: 1px solid #dee2e6; background-color: var(--surface); color: var(--text); 
    transition: all 0.2s; padding: 0.75rem 0.5rem; border-radius: 12px;
}
.btn-check:checked + .card-radio-label { 
    background-color: rgba(45, 122, 79, 0.08); border-color: var(--primary); color: var(--primary); 
    box-shadow: 0 4px 12px rgba(45, 122, 79, 0.15); font-weight: 600;
}
.card-radio-label:hover { border-color: var(--primary); }

@keyframes fadeIn { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: translateY(0); } }

.form-step { display: none; animation: fadeIn 0.4s ease-out; }
.form-step.active { display: block; }

.progress-container { 
    display: flex; justify-content: space-between; position: relative; 
    margin-bottom: 1.2rem; margin-left: auto; margin-right: auto;
    width: 100%;
}
.progress-bar-bg { 
    content: ''; background-color: #e9ecef; position: absolute; 
    top: 50%; left: 0; transform: translateY(-50%); height: 4px; width: 100%; z-index: 0; border-radius: 4px; 
}
.progress-bar-fill { 
    position: absolute; background-color: var(--primary); height: 4px; 
    top: 50%; left: 0; transform: translateY(-50%); z-index: 0; transition: width 0.4s ease; width: 0%; border-radius: 4px; 
}
.steps { width: 100%; display: flex; justify-content: space-between; position: relative; z-index: 1; }
.step { 
    background-color: var(--surface); color: var(--muted); border: 2px solid #e9ecef; 
    border-radius: 50%; height: 35px; width: 35px; display: flex; align-items: center; 
    justify-content: center; font-weight: 700; transition: all 0.3s ease; font-size: 0.9rem;
}
.step.active { border-color: var(--primary); color: var(--primary); box-shadow: 0 0 0 4px rgba(45, 122, 79, 0.1); }
.step.completed { background-color: var(--primary); border-color: var(--primary); color: #fff; }

/* Card Radio Styles */
.card-radio-label { 
    border: 1px solid #dee2e6; background-color: var(--surface); color: var(--text); 
    transition: all 0.2s; padding: 0.75rem 0.5rem; border-radius: 12px;
}
.btn-check:checked + .card-radio-label { 
    background-color: rgba(45, 122, 79, 0.08); border-color: var(--primary); color: var(--primary); 
    box-shadow: 0 4px 12px rgba(45, 122, 79, 0.15); font-weight: 600;
}
.card-radio-label:hover { border-color: var(--primary); }

@keyframes fadeIn { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: translateY(0); } }