body {
  margin: 0;
  font-family: Arial, sans-serif;
  background-color: #f4f4f4;
  padding-bottom: 70px;
}
.principal {
    font-size:1.0em;
}

/* Encabezado */
.encabezado {
  background-color: #1F4E35;
  color: white;
  position: sticky;
  top: 0;
  z-index: 10;
  transition: transform 0.3s ease;
  box-shadow: 0px 2px 6px rgba(0, 0, 0, 0.4);
}

.encabezado.oculto {
  transform: translateY(-100%);
}

.encabezado-superior {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 10px 15px 5px 15px;
}

.perfil {
  display: flex;
  align-items: center;
  gap: 10px;
}

.foto {
    width: 60px;
    height: 60px;
    border: 3px solid rgba(255, 255, 255, 0.1);
    border-radius: 50%;
    object-fit: cover; 
    object-position: center;
}

.datos h2 {
  margin: 0;
  font-weight:bold;
  font-size: 18px;
}

.datos p {
  margin: 0;
  padding-top: 4px;
  color: #e9f1ea;
  font-size: 15px;
}

.superior-iconos {
  display: flex;
  align-items: center;
  gap: 15px;
}

.icono {
  width: 28px;
  margin: 0px 0px 0px 12px;
  height: 24px;
  cursor: pointer;
}

.recuadros {
  display: flex;
  gap: 15px;
  padding: 10px 15px 15px 15px;
}

.bloque {
  background-color: rgba(255, 255, 255, 0.1);
  color: white;
  flex: 1;
  padding: 10px;
  text-align: left;
}

.bloque:last-child {
  border-right: none;
}

.bloque p {
  margin: 4px 0 0 0;
  font-weight: bold;
  font-size: 18px;
}

.bloque h3 {
  font-weight: 300;
  color: #e9f1ea;
  margin: 0;
}

/* Contenido para casi todas las páginas */
.principal {
  padding: 20px;
}

.contenedor {
  background: white;
  padding: 20px;
  margin-bottom: 15px;
}

.TituloySubtitulo {
  text-align: center;
}

.TituloySubtitulo h3{
  font-weight:normal;
  margin-top: 0;
  margin-bottom: 40px;
  color: gray;
}
.TituloySubtitulo h2{
  margin-bottom: 8px;
}

.SubtituloDatos{
  margin-top: 5px;
  margin-bottom: 20px !important;
  font-size: 20px;
  color: #333;
}

.contenedor h3 {
  margin-top: 5px;
  margin-bottom: 0px;
  font-size: 1.2em;
  color: #333;
}

/* Contenido de la página Inicio  */
.clase {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 15px 25px;
  margin-top: 14px;
  background-color: #F5F5F7;
}

.clase-info {
  display: flex;
  align-items: center;
  gap: 8px;
}

.clase-texto > strong,
.clase-texto > p,
.hora > h4,
.hora > p {
  margin: 0;
}

.clase-texto > p,
.hora > p {
  margin-top: 4px;
  font-size: 13px;
  color: #555;
}

.hora > p {
text-align: center;
}

.punto {
  width: 10px;
  height: 10px;
  background-color: #2b77e2;
  border-radius: 50%;
}

.hora {
  text-align: right;
}

.dia-libre {
  text-align: center;
  padding: 40px 20px;
  margin-top: 20px;
}

.dia-libre p {
  font-size: 18px;
  color: #777;
  font-weight: 500;
  margin: 0;
}

/* --- Página: Datos --- */
.dato-item {
  margin-bottom: 18px;
}

.dato-item:last-child {
  margin-bottom: 5px;
}

.dato-item .etiqueta {
  display: block;
  font-size: 1.2em;
  font-weight: bold;
  color: gray;
  margin-bottom: 3px;
}

.dato-item .valor {
  display: block;
  font-size: 1.0em;
  color: black;
  font-weight: bold;
}

/* Contenido de la página Horario */
.dia-grupo {
  margin-bottom: 0;
}

.dia-titulo {
  font-size: 16px;
  font-weight: 600;
  color: #333;
  margin: 0 0 15px 0;
  padding-bottom: 15px;
  border-bottom: 1px solid #f0f0f0;
}

.horario-clase {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 18px 20px;
  background-color: #F5F5F7;
  margin-bottom: 12px;
  border-bottom: none;
}

.horario-clase:last-child {
  margin-bottom: 0;
  padding-bottom: 18px;
}

.horario-info {
  display: flex;
  align-items: center;
  gap: 12px;
}

.horario-linea {
  width: 4px;
  height: 42px;
}

.horario-texto > strong,
.horario-texto > p {
  margin: 0;
  display: block;
}

.horario-texto > strong {
  font-size:1.2em;
  font-weight: 600;
  color: #333;
}

.horario-texto > p {
  font-size: 0.8em;
  color: #777;
  margin-top: 4px;
}

.horario-profesor {
  text-align: right;
  padding-left: 10px;
  font-weight: bold;
}

.horario-profesor span {
  font-size: 0.9em;
  color: #777;
  white-space: nowrap;
}

/* Contenido de la página Kardex */
.progreso-header {
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  margin-bottom: 8px;
}

.progreso-header h4 {
  margin: 0;
  font-size: 20px;
  font-weight: 600;
  color: #333;
  line-height: 0;
}

.progreso-header span {
  font-size: 1em;
  color: #555;
  font-weight: 600;
  line-height: 1;
}

.barra-progreso-fondo {
  width: 100%;
  height: 6px;
  background-color: #f0f0f0;
  border-radius: 3px;
  overflow: hidden;
}

.barra-progreso-relleno {
  height: 100%;
  background-color: #1F4E35;
  border-radius: 3px;
  transition: width 0.5s ease;
}

.progreso-footer {
  text-align: right;
  margin-bottom: 8px;
}

.progreso-footer span {
  font-size: 0.8em;
  color: #777;
}

.kardex-titulo {
  font-size: 20px;
  font-weight: 600;
  color: #333;
  margin-top: 10px;
  margin-bottom: 15px;
}

.tabla-responsivo-contenedor + .kardex-titulo {
  margin-top: 35px;
}

.tabla-responsivo-contenedor {
  width: 100%;
  overflow-x: auto;
}

.tabla-kardex {
  width: 100%;
  min-width: 800px;
  border-collapse: collapse;
  font-size: 1em;
}

.tabla-kardex th,
.tabla-kardex td {
  padding: 12px 10px;
  border-bottom: 1px solid #f0f0f0;
  white-space: nowrap;
}

.tabla-kardex th {
  text-align: left;
  font-weight: 600;
  color: #555;
  font-size: 1em;
  border-bottom-width: 2px;
}

.tabla-kardex td {
  color: #333;
}

.tabla-kardex th:first-child,
.tabla-kardex td:first-child {
  padding-left: 0;
  width: 30%;
}

.tabla-kardex th:last-child,
.tabla-kardex td:last-child {
  padding-right: 0;
}

.tabla-kardex th.centro,
.tabla-kardex td.centro {
  text-align: center;
}

/* Menú */
.menu {
  background-color: #ffffff;
  box-shadow: 0 -1px 6px rgba(0, 0, 0, 0.1);
  display: flex;
  align-items: center;
  position: fixed;
  bottom: -1px;
  width: 100%;
  z-index: 15;
  padding: 0; 
}

.menu button {
  background: none;
  border: none;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 3px;
  font-size: 12px;
  color: #555;
  cursor: pointer;
  flex: 1; 
  padding: 23px 0;
  margin: 0;
  font-weight: bold;
}

.menu button p {
  margin: 0px;
  white-space: nowrap;
}

.menu button img {
  width: 23px;
  height: 23px;
}

.menu button.activo {
  color: #1f4b2c;
  background-color: #E8F5E9; 
  font-weight: bold;
}

/* Modal para Notificaciones */
.modal-fondo {
  display: none;
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: rgba(0, 0, 0, 0.3);
  z-index: 1000;
  align-items: center;
  justify-content: center;
}

.modal-fondo.modal-activo {
  display: flex;
}

.modal-notificaciones {
  background-color: #ffffff;
  border-radius: 12px;
  width: 90%;
  max-width: 450px;
  box-shadow: 0 5px 15px rgba(0, 0, 0, 0.2);
  display: flex;
  flex-direction: column;
  overflow: hidden;
}

.modal-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 15px 20px;
  border-bottom: 1px solid #eeeeee;
  background-color: #ffffff;
}

.modal-header h2 {
  margin: 0;
  font-size: 18px;
  font-weight: 600;
  color: #333;
}

.modal-cerrar {
  background: none;
  border: none;
  font-size: 28px;
  font-weight: 300;
  color: #888;
  cursor: pointer;
  padding: 0;
  line-height: 1;
}

.modal-contenido {
  max-height: 400px;
  overflow-y: auto;
  padding: 15px 20px;
}

.modal-contenido {
  scrollbar-width: none;
  -ms-overflow-style: none;
}

.modal-contenido::-webkit-scrollbar {
  display: none;
}

.notificacion {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  padding: 15px;
  background-color: #f4f4f4;
  border-radius: 8px;
  margin-bottom: 6px;
  border: 1px solid #f0f0f0;
}

.notificacion:last-child {
  margin-bottom: 0;
}

.notificacion-info {
  display: flex;
  flex-direction: column;
  gap: 3px;
  padding-right: 10px;
}

.notificacion-info strong {
  font-size: 15px;
  font-weight: 600;
  color: #333;
}

.notificacion-info span {
  font-size: 14px;
  color: #555;
}

.notificacion-info em {
  font-size: 12px;
  color: #999;
  font-style: normal;
}

.notificacion-calif {
  background-color: #E0F2E3;
  color: #29773A;
  font-size: 14px;
  font-weight: bold;
  padding: 5px 10px;
  border-radius: 5px;
  white-space: nowrap;
}

.no-notificaciones {
  text-align: center;
  color: #777;
  padding: 40px 20px;
  font-size: 16px;
}

.modal-footer {
  padding: 15px 20px;
  border-top: 1px solid #eeeeee;
  text-align: left;
  background-color: #ffffff;
}

.modal-borrar {
  background: none;
  border: none;
  color: gray;
  font-size: 14px;
  font-weight: bold;
  cursor: pointer;
  padding: 0;
}

/* Responsivo, solo es para que Materias y Datos se hagan chikios */
.menu-texto-corto {
  display: none;
}


/* Vista materias */

.tabla-materias {
    width: 100%;
    color: rgba(0, 0, 0, 0.7);
    text-align: center;
    border-collapse: collapse;
    min-width: 800px;
}

    .tabla-materias thead tr:first-child th {
        border-bottom: 1px solid black;
        padding: 6px 0;
    }

    .tabla-materias th:nth-of-type(1),
    .unidades td:nth-of-type(1) {
        text-align: left;
    }

.unidades td:nth-of-type(2) {
    font-weight: normal;
}

.unidades td {
    padding: 10px 0;
    font-weight: bold;
}

.sin-unidad {
    background-color: rgba(211, 211, 211, 0.445);
    /* box-shadow: inset 0 0 0px 2px white; 
  /*para q se vea tipo separado */
}

/*MEDIA*/
@media(max-width:951px){
    .principal{
        font-size:1em;
    }
}
@media(max-width:860px) {
    /*.principal{
        font-size:100%;
    }*/
    .tabla-materias{
        font-size:0.9em;
        max-width:100%;
        min-width:300px;
    }
        .tabla-materias td {
            padding: 5px;
        }

    .contenedor{
        padding:10px;
    }
}
@media (max-width: 599px) {
    .principal {
        font-size: 0.95em;
    }
    .principal .tabla-materias{
        font-size:85%;
    }
    .menu-texto-largo {
        display: none;
    }

    .menu-texto-corto {
        display: inline;
    }

    .horario-clase {
        padding: 15px;
    }

    .horario-info {
        gap: 8px;
    }

    .horario-texto > strong {
        font-size: 14px;
    }

    .horario-texto > p {
        font-size: 12px;
    }

    .horario-profesor span {
        font-size: 12px;
        white-space: normal;
        word-break: break-word;
    }
}
@media(max-width:460px) {

    .tabla-materias{
        font-size:0.7em;
    }
        .tabla-materias td {
            padding: 4px;
        }
        .tabla-materias thead tr:first-child th:first-child {
            min-width:50px;
            max-width:80px;
        }
}


/*Diseño de tabla kardex en cel (AMPLIA)*/
@media (max-width: 480px) {

    .tabla-kardex {
        width: 100% !important;
        table-layout: fixed !important;
        border-collapse: collapse !important;
        border-spacing: 0 !important;
        font-size: 12px !important;
    }

        .tabla-kardex th,
        .tabla-kardex td {
            padding: 3px 4px !important;
            margin: 0 !important;
            font-size: 12px !important;
            line-height: 1.2 !important;
            white-space: normal !important;
            word-wrap: break-word !important;
            min-width: 0 !important;
        }

        .tabla-kardex th {
            font-size: 11px !important;
            font-weight: 600;
        }

            .tabla-kardex td:first-child,
            .tabla-kardex th:first-child {
                width: 70px !important;
                max-width: 95px !important;
            }

            .tabla-kardex td:nth-child(2),
            .tabla-kardex th:nth-child(2) {
                width: 33px !important;
                max-width: 30px !important;
                text-align: left !important;
            }

            .tabla-kardex td:nth-child(3),
            .tabla-kardex td:nth-child(4),
            .tabla-kardex td:nth-child(5),
            .tabla-kardex td:nth-child(7),
            .tabla-kardex th:nth-child(3),
            .tabla-kardex th:nth-child(4),
            .tabla-kardex th:nth-child(5),
            .tabla-kardex th:nth-child(7) {
                width: 20px !important;
                max-width: 35px !important;
                text-align: center !important;
                padding: 3px !important;
            }

            .tabla-kardex td:nth-child(6),
            .tabla-kardex td:nth-child(8),
            .tabla-kardex th:nth-child(6),
            .tabla-kardex th:nth-child(8) {
                width: 75px !important;
                max-width: 75px !important;
                text-align: center !important;
            }
}

