/* ══════════════════════════════════════════════════════════
   MAPA CURRICULAR — Visual curriculum map
   ══════════════════════════════════════════════════════════ */
.mapa-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-6);flex-wrap:wrap;gap:var(--space-4)}
.mapa-student-info{display:flex;align-items:center;gap:var(--space-4)}
.mapa-student-avatar{width:48px;height:48px;border-radius:var(--radius-full);background:var(--gradient-purple);display:flex;align-items:center;justify-content:center;font-weight:var(--font-weight-bold);color:#fff;font-size:var(--font-size-lg)}
.mapa-student-name{font-weight:var(--font-weight-semibold);font-size:var(--font-size-lg)}
.mapa-student-career{font-size:var(--font-size-sm);color:var(--text-secondary)}

.mapa-progress{margin-bottom:var(--space-8)}
.mapa-progress-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-3)}
.mapa-progress-label{font-size:var(--font-size-sm);color:var(--text-secondary)}
.mapa-progress-value{font-size:var(--font-size-xl);font-weight:var(--font-weight-bold);color:var(--accent-blue)}
.mapa-progress .progress-bar{height:10px}

.mapa-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--space-4);margin-bottom:var(--space-8)}
@media(max-width:900px){.mapa-stats{grid-template-columns:repeat(2,1fr)}}
.mapa-stat{padding:var(--space-4);background:var(--bg-surface);border:1px solid var(--border-default);border-radius:var(--radius-lg);text-align:center}
.mapa-stat-value{font-size:var(--font-size-2xl);font-weight:var(--font-weight-bold);margin-bottom:2px}
.mapa-stat-label{font-size:var(--font-size-xs);color:var(--text-secondary)}
.mapa-stat.aprobada .mapa-stat-value{color:var(--status-aprobada)}
.mapa-stat.cursando .mapa-stat-value{color:var(--status-cursando)}
.mapa-stat.disponible .mapa-stat-value{color:var(--status-disponible)}
.mapa-stat.bloqueada .mapa-stat-value{color:var(--status-bloqueada)}

.mapa-legend{display:flex;gap:var(--space-5);margin-bottom:var(--space-6);flex-wrap:wrap}
.mapa-legend-item{display:flex;align-items:center;gap:var(--space-2);font-size:var(--font-size-xs);color:var(--text-secondary)}
.mapa-legend-dot{width:10px;height:10px;border-radius:var(--radius-full)}
.mapa-legend-dot.aprobada{background:var(--status-aprobada)}
.mapa-legend-dot.cursando{background:var(--status-cursando)}
.mapa-legend-dot.disponible{background:var(--status-disponible)}
.mapa-legend-dot.no_disponible{background:var(--status-bloqueada)}

.mapa-semesters{display:flex;gap:var(--space-5);overflow-x:auto;padding-bottom:var(--space-4);width:100%;max-width:100%;padding-right:80px}
.mapa-semester{min-width:220px;flex:1}
.mapa-semester-header{padding:var(--space-3);text-align:center;font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--text-primary);background:rgba(255,255,255,0.03);border-radius:var(--radius-lg) var(--radius-lg) 0 0;border:1px solid var(--border-default);border-bottom:none}
.mapa-semester-body{display:flex;flex-direction:column;gap:var(--space-3);padding:var(--space-3);border:1px solid var(--border-default);border-radius:0 0 var(--radius-lg) var(--radius-lg);min-height:200px}

.mapa-materia{padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);border:1px solid var(--border-default);background:var(--bg-surface);cursor:pointer;transition:all var(--transition-fast);position:relative}
.mapa-materia:hover{transform:translateY(-1px);box-shadow:var(--shadow-md)}
.mapa-materia .materia-clave{font-size:var(--font-size-2xs);font-weight:var(--font-weight-semibold);text-transform:uppercase;letter-spacing:0.04em;margin-bottom:2px}
.mapa-materia .materia-nombre{font-size:var(--font-size-xs);color:var(--text-primary);font-weight:var(--font-weight-medium);line-height:1.3;margin-bottom:var(--space-2)}
.mapa-materia .materia-info{display:flex;align-items:center;justify-content:space-between;font-size:10px;color:var(--text-muted)}
.mapa-materia .materia-cal{font-weight:var(--font-weight-bold);font-size:var(--font-size-xs)}

.mapa-materia.aprobada{border-color:rgba(16,185,129,0.3);background:rgba(16,185,129,0.06)}
.mapa-materia.aprobada .materia-clave{color:var(--status-aprobada)}
.mapa-materia.aprobada .materia-cal{color:var(--status-aprobada)}
.mapa-materia.cursando{border-color:rgba(59,130,246,0.3);background:rgba(59,130,246,0.06);animation:glowPulse 3s infinite}
.mapa-materia.cursando .materia-clave{color:var(--status-cursando)}
.mapa-materia.disponible{border-color:rgba(245,158,11,0.3);background:rgba(245,158,11,0.04)}
.mapa-materia.disponible .materia-clave{color:var(--status-disponible)}
.mapa-materia.no_disponible{opacity:.45;filter:grayscale(0.3)}
.mapa-materia.no_disponible .materia-clave{color:var(--text-muted)}

.mapa-materia .prereq-tag{display:inline-flex;align-items:center;gap:2px;font-size:9px;color:var(--text-muted);margin-top:var(--space-1)}
.mapa-materia .prereq-tag i{width:10px;height:10px}
