<style>
.step {
    text-align: center;
    position: relative;
    flex: 1;
    margin-right: 10px;
}
.step .circle {
    width: 40px;
    height: 40px;
    border-radius: 50%;
    color: white;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 4px;
    font-weight: bold;
    background: #ccc;
    font-size: 1.1em;
    position: relative;
}
.step.active .circle { background: #198754; }
.step.completed .circle { background: #0d6efd; }
.step.remision .circle { background: #0d6efd; }
.step.noremi .circle { background: #6c757d; }

.step::after {
    content: '';
    position: absolute;
    top: 20px;
    right: -50%;
    width: 100%;
    height: 4px;
    background: #ccc;
    z-index: -1;
}
.step:last-child::after { display: none; }
.step.completed::after { background: #0d6efd; }

.step .remi-text {
    display: block;
    font-size: 0.8em;
    margin-top: 3px;
    font-weight: 600;
}
.step.remision .remi-text { color: #0d6efd; }
.step.noremi .remi-text { color: #6c757d; }

.step.remision .circle::after { content: "✔"; position: absolute; font-size: 0.8em; color: white; }
.step.noremi .circle::after { content: "⚠"; position: absolute; font-size: 0.8em; color: white; }

.card-graduado { margin-bottom: 1rem; border-left: 6px solid #0d6efd; }
.tomo-folio-numero {
    background: #f8f9fa;
    border-radius: 8px;
    padding: 8px 12px;
    margin-top: 5px;
    font-size: 0.9em;
    color: #333;
}
.tomo-folio-numero span {
    display: inline-block;
    margin-right: 12px;
}

.step.aprobado .circle,
.step.aprobado .remi-text,
.step.aprobado::after {
    background-color: #28a745;
    color: white;
}
.step.reprobado .circle,
.step.reprobado .remi-text,
.step.reprobado::after {
    background-color: #dc3545;
    color: white;
}
</style>