/* Gestor Académico v4.0 */
:root{
  --ga-primary:#4f46e5;--ga-primary-h:#4338ca;
  --ga-azul:#2563eb;--ga-morado:#7c3aed;--ga-naranja:#ea580c;--ga-gris:#6b7280;
  --ga-verde:#16a34a;--ga-rojo:#dc2626;
  --ga-borde:#e5e7eb;--ga-bg:#f9fafb;
  --ga-radio:12px;--ga-sombra:0 4px 20px rgba(0,0,0,.08);--ga-sombra-h:0 8px 32px rgba(0,0,0,.15);
}

/* Filtros */
.ga-filtros{background:var(--ga-bg);border:1px solid var(--ga-borde);border-radius:var(--ga-radio);padding:14px 18px;margin-bottom:24px}
.ga-fi{display:flex;flex-wrap:wrap;align-items:center;gap:8px}
.ga-fi-label{font-weight:700;color:var(--ga-gris);font-size:.82rem;white-space:nowrap}
.ga-fi-grupo{display:flex;flex-wrap:wrap;gap:5px;align-items:center}
.ga-fi-grupo+.ga-fi-grupo::before{content:'';width:1px;height:18px;background:var(--ga-borde);margin:0 2px}
.ga-fi-total{margin-left:auto;font-size:.8rem;color:var(--ga-gris);white-space:nowrap}

.ga-chip{display:inline-block;padding:5px 13px;border-radius:20px;font-size:.78rem;font-weight:600;
  text-decoration:none;border:1.5px solid var(--ga-borde);color:var(--ga-gris);background:#fff;transition:.2s}
.ga-chip:hover,.ga-chip.active{background:var(--ga-primary);border-color:var(--ga-primary);color:#fff;text-decoration:none}
.ga-chip-curso.active{background:var(--ga-azul);border-color:var(--ga-azul)}
.ga-chip-diplomado.active{background:var(--ga-morado);border-color:var(--ga-morado)}
.ga-chip-especialidad.active{background:var(--ga-naranja);border-color:var(--ga-naranja)}
.ga-select-mes{padding:5px 10px;border:1.5px solid var(--ga-borde);border-radius:20px;font-size:.78rem;
  font-weight:600;color:var(--ga-gris);background:#fff;cursor:pointer}

/* Grid */
.ga-grid{display:grid;gap:22px}
.ga-cols-1{grid-template-columns:1fr}
.ga-cols-2{grid-template-columns:repeat(2,1fr)}
.ga-cols-3{grid-template-columns:repeat(3,1fr)}
.ga-cols-4{grid-template-columns:repeat(4,1fr)}

/* Card */
.ga-card{background:#fff;border-radius:var(--ga-radio);box-shadow:var(--ga-sombra);
  overflow:hidden;display:flex;flex-direction:column;position:relative;
  transition:transform .25s,box-shadow .25s}
.ga-card:hover{transform:translateY(-4px);box-shadow:var(--ga-sombra-h)}
.ga-card-agotado{opacity:.55;pointer-events:none}

.ga-ribbon{position:absolute;top:12px;right:-6px;background:var(--ga-naranja);color:#fff;
  font-size:.7rem;font-weight:700;padding:4px 12px 4px 8px;border-radius:4px 0 0 4px;
  z-index:2;box-shadow:-2px 2px 5px rgba(0,0,0,.2)}
.ga-urgente{background:var(--ga-rojo);animation:gaPulse 1.4s infinite}
@keyframes gaPulse{0%,100%{opacity:1}50%{opacity:.7}}

.ga-card-img{height:155px;background:linear-gradient(135deg,#667eea,#764ba2);
  background-size:cover;background-position:center;
  display:flex;align-items:center;justify-content:center;position:relative}
.ga-card-icon{font-size:3.2rem}
.ga-badge-tipo{position:absolute;bottom:8px;left:8px;padding:3px 9px;border-radius:20px;
  font-size:.7rem;font-weight:700;color:#fff;backdrop-filter:blur(4px)}
.ga-badge-azul{background:rgba(37,99,235,.85)}
.ga-badge-morado{background:rgba(124,58,237,.85)}
.ga-badge-naranja{background:rgba(234,88,12,.85)}
.ga-badge-gris{background:rgba(107,114,128,.85)}

.ga-card-body{padding:16px;flex:1;display:flex;flex-direction:column}
.ga-card-titulo{margin:0 0 7px;font-size:.97rem;font-weight:700;line-height:1.35;color:#111}
.ga-card-desc{margin:0 0 10px;font-size:.82rem;color:var(--ga-gris);line-height:1.5;flex:1}
.ga-card-meta{list-style:none;margin:0 0 10px;padding:0;display:flex;flex-direction:column;gap:4px}
.ga-card-meta li{font-size:.79rem;color:#374151}

.ga-barra-wrap{height:4px;background:#e5e7eb;border-radius:4px;margin-bottom:10px;overflow:hidden}
.ga-barra{height:100%;background:linear-gradient(90deg,var(--ga-verde),#86efac);border-radius:4px;transition:width .5s}

.ga-card-footer{display:flex;align-items:center;justify-content:space-between;
  padding-top:10px;border-top:1px solid var(--ga-borde);margin-top:auto}
.ga-precio-desde{font-size:1.15rem;font-weight:800;color:#111;line-height:1.2}
.ga-precio-desde span{display:block;font-size:.7rem;color:var(--ga-gris);font-weight:400}
.ga-btn-ver{background:var(--ga-primary);color:#fff;border:none;border-radius:8px;
  padding:7px 14px;font-size:.8rem;font-weight:700;cursor:pointer;transition:.2s}
.ga-btn-ver:hover{background:var(--ga-primary-h)}
.ga-agotado{font-size:.78rem;color:var(--ga-gris);font-weight:600}

.ga-vacio{text-align:center;padding:60px 20px;color:var(--ga-gris)}
.ga-vacio-icon{font-size:4rem;margin-bottom:12px}
.ga-btn-reset{display:inline-block;margin-top:10px;padding:8px 20px;
  background:var(--ga-primary);color:#fff;border-radius:8px;text-decoration:none;font-weight:700}

/* Modal */
.ga-overlay{position:fixed;inset:0;background:rgba(0,0,0,.6);z-index:99999;
  display:flex;align-items:center;justify-content:center;padding:20px;
  backdrop-filter:blur(3px);animation:gaFade .2s}
@keyframes gaFade{from{opacity:0}to{opacity:1}}
.ga-modal-box{background:#fff;border-radius:16px;width:100%;max-width:720px;
  max-height:90vh;overflow-y:auto;position:relative;animation:gaUp .22s}
@keyframes gaUp{from{transform:translateY(28px);opacity:0}to{transform:none;opacity:1}}
.ga-modal-x{position:sticky;top:0;float:right;margin:12px 12px 0 0;
  background:#f3f4f6;border:none;border-radius:50%;width:30px;height:30px;
  font-size:.95rem;cursor:pointer;z-index:2;display:flex;align-items:center;justify-content:center}
.ga-modal-x:hover{background:#e5e7eb}
.ga-modal-body{padding:22px 26px 26px;clear:both}

.ga-modal-header{display:flex;gap:14px;align-items:flex-start;margin-bottom:14px}
.ga-modal-icon{font-size:2.4rem}
.ga-modal-header h2{margin:0 0 6px;font-size:1.2rem}
.ga-modal-badges{display:flex;gap:5px;flex-wrap:wrap}
.ga-badge-tipo{display:inline-block;padding:3px 9px;border-radius:12px;font-size:.72rem;
  font-weight:700;background:#e0e7ff;color:var(--ga-primary)}
.ga-badge-mod{display:inline-block;padding:3px 9px;border-radius:12px;font-size:.72rem;
  font-weight:700;background:#d1fae5;color:var(--ga-verde)}
.ga-badge-inst{display:inline-block;padding:3px 9px;border-radius:12px;font-size:.72rem;
  font-weight:700;background:#fef3c7;color:#92400e}
.ga-modal-desc{color:#4b5563;font-size:.88rem;line-height:1.6;margin:0 0 18px}

/* Horarios */
.ga-horarios-wrap{margin-bottom:18px}
.ga-horarios-wrap h4{margin:0 0 10px;font-size:.92rem;color:#374151}
.ga-horarios-grid{display:flex;flex-wrap:wrap;gap:8px}
.ga-horario-badge{
  background:linear-gradient(135deg,#667eea,#764ba2);
  color:#fff;padding:8px 14px;border-radius:10px;
  display:flex;flex-direction:column;align-items:center;
  min-width:100px;box-shadow:0 2px 8px rgba(0,0,0,.1)
}
.ga-h-dia{font-size:.8rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;margin-bottom:2px}
.ga-h-hora{font-size:.85rem;font-weight:600;opacity:.9}

/* Datos */
.ga-modal-datos{
  display:grid;grid-template-columns:repeat(4,1fr);gap:8px;
  background:var(--ga-bg);border-radius:9px;padding:12px;margin-bottom:18px
}
.ga-modal-datos div{display:flex;flex-direction:column;gap:3px}
.ga-modal-datos strong{font-size:.8rem;color:var(--ga-gris);text-transform:uppercase;letter-spacing:.02em;font-weight:600}
.ga-modal-datos span{font-size:.95rem;font-weight:700;color:#111}

/* TABLA DE PRECIOS EN MODAL */
.ga-precios-tabla{
  background:#fff;border:2px solid var(--ga-primary);border-radius:10px;
  padding:16px 20px;margin-bottom:18px
}
.ga-precios-tabla h4{margin:0 0 12px;font-size:1rem;color:var(--ga-primary)}
.ga-precios-tabla table{width:100%;border-collapse:collapse}
.ga-precios-tabla tr{border-bottom:1px solid var(--ga-borde)}
.ga-precios-tabla tr:last-child{border-bottom:none}
.ga-precios-tabla td{padding:10px 0;font-size:.92rem}
.ga-precios-tabla td:first-child{color:#374151;font-weight:500}
.ga-precio-valor{text-align:right;font-size:1.1rem;font-weight:800;color:var(--ga-primary)}

/* TEMARIO EN MODAL */
.ga-modal-temario{margin-bottom:18px}
.ga-modal-temario h4{margin:0 0 10px;font-size:.92rem;color:#374151}
.ga-temario-contenido{
  background:var(--ga-bg);padding:16px;border-radius:8px;
  border-left:4px solid var(--ga-primary);
  font-size:.88rem;line-height:1.8;color:#374151
}
.ga-temario-contenido div{margin-bottom:8px}
.ga-temario-contenido ul,.ga-temario-contenido ol{margin:8px 0 8px 20px}
.ga-temario-contenido li{margin-bottom:4px}

/* Temario standalone */
.ga-temario-standalone{
  background:#fff;border:1px solid var(--ga-borde);border-radius:10px;padding:24px;margin:20px 0
}
.ga-temario-titulo{margin:0 0 16px;font-size:1.2rem;color:#111;
  border-bottom:2px solid var(--ga-primary);padding-bottom:10px}

/* Materias */
.ga-modal-materias{margin-bottom:18px}
.ga-modal-materias h4{margin:0 0 8px;font-size:.9rem}
.ga-modal-materias ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:5px;max-height:200px;overflow-y:auto}
.ga-modal-materias li{display:flex;align-items:center;gap:7px;padding:7px 10px;
  background:var(--ga-bg);border-radius:7px;font-size:.8rem;flex-wrap:wrap}
.ga-m-fecha{font-weight:700;color:var(--ga-primary);min-width:34px}
.ga-m-nombre{flex:1;font-weight:600;color:#111}
.ga-m-instructor{color:var(--ga-gris)}
.ga-m-hora{margin-left:auto;color:var(--ga-gris);white-space:nowrap}

/* CTA */
.ga-modal-cta{display:flex;justify-content:center;
  padding-top:14px;border-top:2px solid var(--ga-borde)}
.ga-btn-inscribir{background:linear-gradient(135deg,var(--ga-primary),var(--ga-morado));
  color:#fff;text-decoration:none;padding:12px 32px;border-radius:9px;font-weight:800;
  font-size:1rem;display:inline-block;transition:.2s;text-align:center}
.ga-btn-inscribir:hover{opacity:.88;transform:translateY(-1px);color:#fff;text-decoration:none}

.ga-spin{width:38px;height:38px;border:4px solid #e5e7eb;border-top-color:var(--ga-primary);
  border-radius:50%;animation:gaSpin .8s linear infinite;margin:40px auto}
@keyframes gaSpin{to{transform:rotate(360deg)}}

/* Formulario inscripción */
.ga-inscripcion-wrap{max-width:680px;margin:0 auto}
.ga-resumen{display:flex;align-items:center;gap:14px;
  background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;
  border-radius:var(--ga-radio);padding:18px 22px;margin-bottom:24px}
.ga-resumen-icon{font-size:2.4rem}
.ga-resumen-info{flex:1}
.ga-resumen-info h2{margin:0 0 6px;color:#fff;font-size:1.15rem}
.ga-resumen-meta{display:flex;gap:10px;flex-wrap:wrap;font-size:.8rem;opacity:.9}
.ga-badge-inline{background:rgba(255,255,255,.25);color:#fff;padding:2px 8px;border-radius:9px;font-size:.7rem;font-weight:700}

/* TABLA PRECIOS INSCRIPCIÓN */
.ga-precios-inscripcion{
  background:#fff;border:2px solid var(--ga-primary);border-radius:10px;
  padding:20px;margin-bottom:24px
}
.ga-precios-inscripcion h3{margin:0 0 14px;font-size:1.1rem;color:var(--ga-primary)}
.ga-precios-inscripcion table{width:100%;border-collapse:collapse}
.ga-precios-inscripcion tr{border-bottom:1px solid var(--ga-borde)}
.ga-precios-inscripcion tr:last-child{border-bottom:none}
.ga-precios-inscripcion td{padding:12px 0;font-size:.95rem}
.ga-precios-inscripcion td:first-child{color:#374151;font-weight:500}
.ga-precios-inscripcion td.precio{text-align:right;font-size:1.15rem;font-weight:800;color:var(--ga-primary)}

.ga-form{background:#fff;border:1px solid var(--ga-borde);border-radius:var(--ga-radio);padding:26px}
.ga-form-titulo{margin:0 0 18px;font-size:1rem}
.ga-field{margin-bottom:16px}
.ga-field label{display:block;margin-bottom:5px;font-weight:600;font-size:.85rem;color:#374151}
.ga-field input{width:100%;padding:10px 13px;border:1.5px solid var(--ga-borde);border-radius:7px;
  font-size:.88rem;box-sizing:border-box;transition:.2s}
.ga-field input:focus{outline:none;border-color:var(--ga-primary);box-shadow:0 0 0 3px rgba(79,70,229,.1)}
.ga-fila{display:grid;grid-template-columns:1fr 1fr;gap:14px}

.ga-pago-aviso{display:flex;justify-content:space-between;flex-wrap:wrap;gap:6px;
  background:#f0fdf4;border:1px solid #bbf7d0;border-radius:7px;
  padding:11px 14px;margin:18px 0;font-size:.82rem}
.ga-pago-aviso span:first-child{font-weight:700;color:var(--ga-verde)}
.ga-pago-aviso span:last-child{color:var(--ga-gris)}

.ga-btn-pagar{width:100%;padding:13px;background:linear-gradient(135deg,var(--ga-primary),var(--ga-morado));
  color:#fff;border:none;border-radius:9px;font-size:1rem;font-weight:800;cursor:pointer;transition:.2s}
.ga-btn-pagar:hover{opacity:.9;transform:translateY(-1px)}
.ga-nota-pago{text-align:center;font-size:.76rem;color:var(--ga-gris);margin:8px 0 0}

/* Éxito */
.ga-exito{text-align:center;padding:60px 20px;max-width:480px;margin:0 auto}
.ga-exito-icono{font-size:5rem;margin-bottom:16px}
.ga-exito h2{font-size:1.8rem;margin-bottom:10px}
.ga-exito p{color:var(--ga-gris);line-height:1.7}
.ga-btn-home{display:inline-block;margin-top:22px;padding:11px 26px;
  background:var(--ga-primary);color:#fff;border-radius:9px;text-decoration:none;font-weight:700}
.ga-btn-home:hover{background:var(--ga-primary-h);color:#fff;text-decoration:none}

/* Responsive */
@media(max-width:900px){
  .ga-cols-4{grid-template-columns:repeat(2,1fr)}
  .ga-cols-3{grid-template-columns:repeat(2,1fr)}
  .ga-modal-datos{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:600px){
  .ga-cols-2,.ga-cols-3,.ga-cols-4{grid-template-columns:1fr}
  .ga-fi{flex-direction:column;align-items:flex-start}
  .ga-fi-grupo+.ga-fi-grupo::before{display:none}
  .ga-resumen{flex-direction:column;text-align:center}
  .ga-fila{grid-template-columns:1fr}
  .ga-modal-datos{grid-template-columns:1fr 1fr}
  .ga-modal-box{max-width:95%}
}
