
    /* Perfil */
    .perfil {
      background-color: white;
      padding: 30px 20px;
      max-width: 1000px;
      margin: 30px auto;
      box-shadow: 0 0 10px rgba(0,0,0,0.1);
    }

    .acciones {
    display: flex
;
    flex-direction: column;
    margin-bottom: 0;
    font-size: 13px;
    width: max-content;
    position: relative;
    left: 6vw;
    top: 6vh;
    font-family: Arial;
    font-weight: 700;
}

    .acciones a {
    color: #fff;
    text-decoration: none;
    font-weight: 700;
}

    .datos {
      display: flex;
      flex-direction: column;
      align-items: center;
      margin-bottom: 20px;
    }

    .datos img {
      width: 90px;
      height: 90px;
      border-radius: 50%;
      background-color: #ccc;
      object-fit: cover;
    }

    .datos h2 {
      font-size: 18px;
      margin-top: 10px;
    }

    .codigo {
      text-align: right;
      font-size: 14px;
      margin-top: -40px;
      margin-bottom: 20px;
    }

    .cursos h3 {
      margin-bottom: 10px;
    }

    .curso {
      background-color: white;
      padding: 20px;
      margin-bottom: 15px;
      box-shadow: 2px 2px 6px rgba(0,0,0,0.2);
      border-radius: 8px;
      display: flex;
      justify-content: space-between;
      align-items: center;
      flex-wrap: wrap;
    }

    .curso h4 {
      margin-bottom: 5px;
    }

    .vencimiento {
      color: red;
      font-weight: bold;
      font-size: 14px;
    }

    .btn-ver {
      background-color: #1c75bc;
      color: white;
      padding: 10px 20px;
      border: none;
      border-radius: 6px;
      cursor: pointer;
    }

    /* cambiar contraseña */
    /* Estilo del modal */
.modal {
  display: none;
  position: fixed;
  z-index: 1000;
  left: 0; top: 0;
  width: 100%; height: 100%;
  overflow: auto;
  background-color: rgba(0,0,0,0.5);
}

/* Contenido del modal */
.modal-contenido {
  background-color: #fff;
  margin: 10% auto;
  padding: 20px;
  width: 90%;
  max-width: 400px;
  border-radius: 8px;
  position: relative;
  box-shadow: 0 4px 8px rgba(0,0,0,0.2);
}

/* Botón de cerrar */
.cerrar {
  position: absolute;
  top: 10px;
  right: 15px;
  font-size: 24px;
  cursor: pointer;
}


    /* ///////////////////// */
@media (max-width: 780px) {
        .acciones, .datos {
        flex: 1.5 2 100px !important;
        max-width: 100% !important;
        padding: 0 !important;
        margin: 0 !important;
        background: #fff !important;
    }
    .acciones {
    display: grid !important
;
    grid-template-columns: repeat(4, 1fr) !important;
    top: 0 !important;
    left: 0 !important;
    text-align: center !important;
    align-content: center !important;
}
.materias-container {
    display: grid !important
;
    flex-wrap: wrap !important;
    grid-template-columns: 1fr !important;
    gap: 20px !important;
    justify-content: center !important;
    margin-top: 40px !important;
    padding: 0 !important;
    margin: 0 !important;
    max-width: 100% !important;
}
.cursos {
    background-color: #fff !important;
    text-align: center !important;
    max-width: 100% !important;
    margin: 0px !important;
    padding: 0 !important;
}
.materia-card {
    background-color: #ffffff !important;
    border-radius: 16px !important;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15) !important;
    padding: 20px !important;
    width: 90% !important;
    text-align: center !important;
    transition: transform 0.2s ease !important;
    display: flex !important
;
    justify-content: space-around !important;
    flex-wrap: wrap !important;
    gap: 27px !important;
}

}






    .acciones a {
    color: #fff;
    text-decoration: none;
    font-weight: 700;
}
.acciones {
    display: flex
;
    flex-direction: column;
    margin-bottom: 0;
    font-size: 13px;
    width: max-content;
    position: relative;
    left: 6vw;
    top: 6vh;
    font-family: Arial;
    font-weight: 700;
}
.btn-perfil {
    background-color: #29427B;
    padding: 6px 12px;
    margin: 2px;
    border-radius: 8px;
    font-weight: 100;
    transition: background-color 0.2s 
ease;
    align-content: center;
    font-size: 14px;
}
form#form-foto {
    margin: 2px 0px;
}

.combo-card {
    border: 2px dashed #ff9800;
    border-radius: 10px;
    padding: 16px;
    background: #fffaf0;
    margin-bottom: 25px;
    width: 90%;
}

.combo-header {
    font-size: 1.2em;
    margin-bottom: 12px;
    color: #e65100;
}

.combo-contenido {
    display: flex;
    flex-wrap: wrap;
    gap: 15px;
}

.combo-footer {
    margin-top: 15px;
}
a.btnIrPagoCuota {
    background: #273f76;
    color: #fff;
    font-weight: 800;
    border-radius: 10px;
    padding: 7px;
}
    /* Calendarios generados por código */
    .calendar-wrapper { display: flex; flex-wrap: wrap; gap: 20px; margin: 20px 0; }
    .cal-card { border: 1px solid #ddd; border-radius: 8px; padding: 12px; background:#fff; box-shadow:0 1px 3px rgba(0,0,0,0.05); width:320px; }
    .cal-card h4 { margin:4px 0 10px; font-size:16px; color:#273f76; }
    .calendar { width:100%; border-collapse: collapse; }
    .calendar th { background:#273f76; color:#fff; padding:6px; font-weight:700; font-size:13px; }
    .calendar td { width:14.28%; height:40px; text-align:right; padding:6px; border:1px solid #f0f0f0; vertical-align:top; font-size:13px; }
    .calendar .today { background:#fffae6; border:1px solid #ffd54f; }
    .cal-month-title { text-align:center; font-weight:800; margin-bottom:8px; }
 

  .cal-section { margin: 28px 16px; }
  .cal-section-title { font-size: 17px; font-weight: 700; color: #1a1d27; margin-bottom: 16px; padding-left: 4px; }

  .cal-slider-wrap { display: flex; align-items: center; justify-content: center; gap: 10px; }
  .cal-arrow {
    background: #273f76; color: #fff; border: none;
    width: 36px; height: 36px; border-radius: 50%;
    font-size: 18px; cursor: pointer; flex-shrink: 0;
    display: flex; align-items: center; justify-content: center;
    transition: background .15s;
  }
  .cal-arrow:hover { background: #1e3260; }
  .cal-arrow:disabled { opacity: .3; cursor: default; }

  .cal-card-wrap { display: none; }
  .cal-card-wrap.active { display: block; }

  .cal-card {
    background: #fff;
    border: 1px solid #e4e7ef;
    border-radius: 14px;
    padding: 18px 20px 20px;
    box-shadow: 0 2px 12px rgba(39,63,118,.08);
    width: 340px;
    max-width: 100%;
  }

  .cal-nav {
    display: flex; align-items: center; justify-content: space-between;
    margin-bottom: 14px;
  }
  .cal-nav-btn {
    background: #f0f2f7; border: none; border-radius: 8px;
    width: 30px; height: 30px; cursor: pointer; font-size: 15px;
    display: flex; align-items: center; justify-content: center;
    transition: background .13s;
  }
  .cal-nav-btn:hover { background: #dde1ec; }
  .cal-month-lbl { font-size: 14px; font-weight: 700; color: #273f76; text-transform: capitalize; }
  .cal-tema-lbl  { font-size: 12px; color: #7b80a0; text-align: center; margin-bottom: 10px; }

  /* Título más llamativo para el curso */
  .cal-title {
    font-size: 18px;
    font-weight: 800;
    text-align: center;
    margin-bottom: 8px;
    background: linear-gradient(135deg, #e53935, #1d608d);
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
    color: transparent;
    letter-spacing: 0.2px;
  }

  .cal-table { width: 100%; border-collapse: collapse; }
  .cal-table th {
    font-size: 11px; font-weight: 600; color: #7b80a0;
    text-transform: uppercase; text-align: center;
    padding-bottom: 6px; letter-spacing: .05em;
  }
  .cal-table td {
    text-align: center; padding: 3px 1px; font-size: 13px;
    font-weight: 500; color: #1a1d27;
  }
  .cal-day {
    width: 32px; height: 32px; border-radius: 50%;
    display: flex; align-items: center; justify-content: center;
    margin: 0 auto; cursor: default;
    transition: transform .12s;
    position: relative;
  }
  .cal-day.today { background: #273f76; color: #fff; font-weight: 700; }
  .cal-day.has-event {
    cursor: pointer;
    color: #fff;
    font-weight: 700;
    box-shadow: 0 2px 6px rgba(0,0,0,.18);
  }
  .cal-day.has-event:hover { transform: scale(1.15); }

  /* Modal de evento */
  .ev-modal-overlay {
    position: fixed; inset: 0;
    background: rgba(10,14,30,.45);
    backdrop-filter: blur(4px);
    display: none; align-items: center; justify-content: center;
    z-index: 500; padding: 16px;
  }
  .ev-modal-overlay.open { display: flex; }
  .ev-modal {
    background: #fff; border-radius: 16px;
    padding: 28px; width: 100%; max-width: 360px;
    box-shadow: 0 24px 60px rgba(10,14,30,.25);
    animation: evpop .18s ease;
  }
  @keyframes evpop { from{transform:scale(.93);opacity:0} to{transform:scale(1);opacity:1} }
  .ev-modal-color {
    width: 44px; height: 44px; border-radius: 50%;
    margin: 0 auto 14px; display: flex;
    align-items: center; justify-content: center;
    font-size: 20px;
  }
  .ev-modal-day  { text-align:center; font-size:13px; color:#7b80a0; margin-bottom:6px; }
  .ev-modal-motivo { text-align:center; font-size:17px; font-weight:700; color:#1a1d27; margin-bottom:20px; line-height:1.3; }
  .ev-modal-close {
    display: block; width: 100%; padding: 10px;
    background: #f0f2f7; border: none; border-radius: 8px;
    font-size: 14px; font-weight: 600; cursor: pointer;
    transition: background .15s;
  }
  .ev-modal-close:hover { background: #dde1ec; }
  /* Busca estas clases y agregales las líneas que tienen el comentario // NUEVO */

.ev-modal-motivo { 
    text-align: center; 
    font-size: 17px; 
    font-weight: 700; 
    color: #1a1d27; 
    margin-bottom: 20px; 
    line-height: 1.3;
    /* --- ARREGLO AQUÍ --- */
    word-wrap: break-word;      /* NUEVO: Rompe palabras largas */
    overflow-wrap: break-word;  /* NUEVO */
}

.ev-modal-descripcion { 
    text-align: center;
    font-size: 13px;
    color: #7b80a0;
    margin-bottom: 18px;
    line-height: 1.4;
    /* --- ARREGLO AQUÍ --- */
    word-wrap: break-word;      /* NUEVO: Evita que links largos se salgan */
    overflow-wrap: break-word;  /* NUEVO */
    max-height: 300px;          /* OPCIONAL: Agrega scroll si el texto es una biblia */
    overflow-y: auto;           /* OPCIONAL */
}
.ev-modal {
    background: #fff; 
    border-radius: 16px;
    padding: 28px; 
    width: 100%; 
    max-width: 360px;
    box-shadow: 0 24px 60px rgba(10,14,30,.25);
    animation: evpop .18s ease;
    /* --- AGREGAR ESTO --- */
    max-height: 85vh; /* Que no ocupe más del 85% de la altura de la pantalla */
    display: flex;
    flex-direction: column;
}

