/* Calendario institucional en modo oscuro: línea de tiempo con tarjetas. Sobrescribe los estilos inline de calendario.html. */
body { background-color: #0b1120 !important; color: #f8fafc; }
.cal-leyenda { display: flex; flex-wrap: wrap; gap: 1rem; justify-content: center; margin: 0 auto 1.5rem; padding: 0; font-size: .88rem; color: #e2e8f0; }
.cal-leyenda i { display: inline-block; width: 12px; height: 12px; border-radius: 50%; background: var(--c); margin-right: .4rem; }
.cal-timeline { position: relative; max-width: 900px; margin: 0 auto; padding: 1.5rem 1.5rem 1.5rem 3rem; }
.cal-timeline::before { content: ""; position: absolute; left: 1.6rem; top: 0; bottom: 0; width: 3px; border-radius: 3px;
    background: linear-gradient(180deg, #e84393, #2ecc71 55%, #f1c40f); }
.cal-timeline .mes-titulo { position: relative; background: transparent; color: #f1f5f9; padding: 0; margin: 2rem 0 1rem; font-size: 1.25rem; font-weight: 700; }
.cal-timeline .mes-titulo::before { content: ""; position: absolute; left: -1.9rem; top: 50%; width: 17px; height: 17px; transform: translateY(-50%);
    border-radius: 50%; background: #0b1120; border: 3px solid #e84393; }
.cal-timeline .evento-item { background: #1e293b; color: #f8fafc; border: 1px solid #334155; border-left: 4px solid #2ecc71; border-radius: 12px;
    box-shadow: 0 4px 12px rgba(0,0,0,.35); padding: 1rem 1.25rem; margin-bottom: 1rem; transition: transform .18s ease, box-shadow .18s ease; }
.cal-timeline .evento-item:hover { transform: translateY(-2px); box-shadow: 0 10px 22px rgba(0,0,0,.5); }
.cal-timeline .evento-item.finales { border-left-color: #e84393; }
.cal-timeline .evento-item.receso { border-left-color: #f1c40f; }
.cal-timeline .evento-item.inscripcion { border-left-color: #38bdf8; }
.cal-timeline .fecha-badge { padding: .15rem .8rem; margin-bottom: .4rem; font-size: .8rem; background: #2ecc71; color: #06260f; }
.cal-timeline .finales .fecha-badge { background: #e84393; color: #fff; }
.cal-timeline .receso .fecha-badge { background: #f1c40f; color: #3d3200; }
.cal-timeline .inscripcion .fecha-badge { background: #38bdf8; color: #082f49; }
.cal-timeline h5 { font-size: 1rem; font-weight: 700; margin: 0; color: #f8fafc; }
.cal-timeline p, .cal-timeline .text-muted { margin: .2rem 0 0; font-size: .88rem; color: #cbd5e1 !important; }
@media (max-width: 576px) { .cal-timeline { padding: 1rem .5rem 1rem 2.25rem; } .cal-timeline::before { left: .9rem; } .cal-timeline .mes-titulo::before { left: -1.9rem; } }
