/* ===== ISDE · Horarios por carrera ===== */
.isde-carrera-horarios{--gap:12px; --col-min:220px;}
.isde-carrera-horarios .hdr{margin:0 0 10px; font-weight:700;}
.isde-carrera-horarios .meta{margin:0 0 16px; opacity:.8; font-size:.95rem;}
.isde-carrera-horarios .grid{display:grid; gap:var(--gap);}
.isde-carrera-horarios .col{min-width:0; border:1px solid #e9eef5; border-radius:10px; padding:12px; background:#fff;}
.isde-carrera-horarios .col h4{margin:0 0 10px; font-size:1.05rem}
.isde-carrera-horarios ul.clases{list-style:none; padding:0; margin:0; display:flex; flex-direction:column; gap:10px;}
.isde-carrera-horarios li.clase{border:1px solid #edf2f7; border-radius:10px; padding:10px 12px; background:#fbfdff}
.isde-carrera-horarios .hora{font-weight:600; margin:0 0 2px}
.isde-carrera-horarios .materia a{text-decoration:none; color:#0f5b2a}
.isde-carrera-horarios .materia a:hover{text-decoration:underline}
.isde-carrera-horarios .sub{opacity:.8; font-size:.9rem}
.isde-carrera-horarios .reg{margin-top:6px; font-size:.75rem; opacity:.8}
.isde-carrera-horarios .pill{display:inline-block; font-size:.75rem; padding:.1rem .5rem; border-radius:999px; border:1px solid #cfe2ff; margin-left:.35rem}
.isde-carrera-horarios .sep{opacity:.5; padding:0 .25rem}

/* Grid adaptable */
@media (min-width: 769px){
  .isde-carrera-horarios .grid{ grid-template-columns: repeat(var(--cols, 3), 1fr); }
}
@media (max-width: 768px){
  .isde-carrera-horarios{--gap:10px}
  .isde-carrera-horarios .grid{grid-template-columns: 1fr}
  .isde-carrera-horarios .col{padding:10px}
  .isde-carrera-horarios li.clase{padding:10px}
}

/* ===== ISDE · Tabla Cuatri × Año ===== */
.isde-cuadricula-hor { --gap:14px; }
.isde-cuadricula-hor .tabla { width:100%; border-collapse:separate; border-spacing: var(--gap); }
.isde-cuadricula-hor .th, .isde-cuadricula-hor .td { vertical-align:top; }
.isde-cuadricula-hor .th-anio { font-weight:800; text-align:center; padding:10px 6px; background:#fff6cc; border:1px solid #f3e39c; border-radius:12px; }
.isde-cuadricula-hor .th-cuatri { writing-mode:vertical-rl; transform:rotate(180deg); background:#eef2f5; border:1px solid #dfe7f0; border-radius:10px; padding:18px 10px; text-align:center; font-weight:700; min-width:36px; }
.isde-cuadricula-hor .celda { border:1px solid #e6ecf2; border-radius:12px; padding:12px; background:#fff; }
.isde-cuadricula-hor .dia { margin:0 0 8px; font-weight:700; font-size:1.05rem }
.isde-cuadricula-hor ul { list-style:none; padding:0; margin:0; display:flex; flex-direction:column; gap:10px }
.isde-cuadricula-hor li { border:1px solid #edf2f7; border-radius:10px; padding:10px 12px; background:#fbfdff }
.isde-cuadricula-hor .hora { font-weight:700 }
.isde-cuadricula-hor .materia a { text-decoration:none; color:#0f5b2a }
.isde-cuadricula-hor .materia a:hover { text-decoration:underline }
.isde-cuadricula-hor .sub { opacity:.85; font-size:.9rem }
.isde-cuadricula-hor .pill { display:inline-block; font-size:.75rem; padding:.1rem .5rem; border-radius:999px; border:1px solid #cfe2ff; margin-left:.35rem }
.isde-cuadricula-hor .reg { margin-top:6px; font-size:.75rem; opacity:.8 }

@media (max-width:768px){
  .isde-cuadricula-hor .tabla{ border-spacing:10px }
  .isde-cuadricula-hor .th-cuatri{ writing-mode:horizontal-tb; transform:none; min-width:auto; padding:8px 10px; border-radius:8px; }
  .isde-cuadricula-hor .fila-mobile { display:block }
  .isde-cuadricula-hor .col-mobile { margin-top:10px }
}
