/* Estilos generales */
body {
    font-family: Arial, sans-serif;
    background-color: white;
    margin: 0;
    padding: 0;
}

/* Encabezado "Examen UNAM" */
.header {
    width: 100%;
    text-align: center;
    font-size: 14px;
    color: black;
    margin-top: 0;
    padding-top: calc(clamp(56px, 8vw, 112px) + env(safe-area-inset-top, 0px));
    padding-bottom: 10px;
    border-bottom: 2px solid black;
}

/* Contenedor principal del examen */
.examen-container {
    width: 90%;
    margin: auto;
    padding-top: 20px;
}

/* Estilos de las preguntas */
.pregunta {
    display: flex;
    align-items: flex-start;
    font-weight: bold;
    margin-bottom: 10px;
}

.num-pregunta {
    flex: 0 0 4%;
    text-align: right;
    font-weight: bold;
}

.texto-pregunta {
    flex: 1;
    padding-left: 8%;
    font-weight: bold;
}

/* Opciones de respuesta */
.opciones {
    display: flex;
    flex-direction: column;
    padding-left: 12%;
    margin-bottom: 20px;
}

.opcion {
    display: flex;
    align-items: center;
    margin-bottom: 5px;
}

.opcion input {
    margin-right: 10px;
    width: 16px;
    height: 16px;
}

/* Botón de envío */
.enviar-examen {
    display: block;
    width: 80%;
    margin: 20px auto;
    padding: 10px;
    background-color: black;
    color: white;
    border: none;
    font-size: 16px;
    text-align: center;
    cursor: pointer;
    border-radius: 5px;
}
/*
.enviar-examen:hover {
    background-color: gray;
}
*/

.resultado {
    text-align: center;
    font-size: 18px;
    font-weight: bold;
    margin-top: 20px;
}


/* Botom Bar */

.bottom-nav {
    position: fixed;                  /* Fija la barra en la pantalla sin importar el scroll */
    bottom: 0;                        /* La ancla en la parte inferior de la pantalla */
    left: 0;                          /* La extiende desde el borde izquierdo */
    right: 0;                         /* La extiende hasta el borde derecho */
    height: 45px;                     /* Establece la altura de la barra de navegación */
    background-color: rgba(0, 0, 0, 0.7); /* Aplica un fondo negro con transparencia del 70% */
    display: flex;                     /* Usa flexbox para organizar los elementos dentro de la barra */
    justify-content: space-around;     /* Distribuye los iconos de manera equitativa con espacios entre ellos */
    align-items: center;               /* Centra los iconos verticalmente dentro de la barra */
    z-index: 9999;                     /* Asegura que la barra esté por encima de otros elementos */
}

.bottom-nav .nav-item {
    display: inline-flex;              /* Permite que los elementos sean flexibles y se alineen horizontalmente */
    justify-content: center;           /* Centra los iconos horizontalmente dentro de cada enlace */
    align-items: center;               /* Centra los iconos verticalmente dentro de cada enlace */
    text-decoration: none;             /* Elimina el subrayado predeterminado de los enlaces */
    color: #ffffff;                    /* Establece el color blanco para los iconos y textos */
    flex: 1;                           /* Distribuye el ancho de manera uniforme entre los iconos */
}

.bottom-nav .nav-item svg {
    width: 24px;                        /* Define el ancho del icono SVG */
    height: 24px;                       /* Define la altura del icono SVG */
}

/* Soporte para icono en imagen (Copito) */
.bottom-nav .nav-item .nav-icon{
  width: 24px;
  height: 24px;
  object-fit: contain;
  display: block;
}

/* Copito un poco más pequeño */
.bottom-nav .nav-item-copito .nav-icon{
  width: 21px;   /* prueba 20, 19 o 18 */
  height: 21px;
}


.espaciador {
    height: 55px; /* el tamaño que quieras, 
                     más o menos la altura de la barra */
  }

  
/* ═══════════════  DISEÑO RESPONSIVE “EXAMEN UNAM”  ═══════════════ */

/* 1) ––– Dos columnas continuas a partir de 992 px ––– */
@media (min-width: 992px) {

  /* Contenedor principal del examen */
  .examen-container{
    max-width: 1100px;         /* ancho total del folio */
    margin: 60px auto 40px;
    column-count: 2;           /* ← flujo continuo */
    column-gap: 60px;          /* separación entre columnas */
    column-rule: 1.5px solid #000; /* línea divisoria */
    column-width: 200px;
  }

  /* Bloque indivisible: pregunta + opciones */
  .item-examen{
    break-inside: avoid;       /* no se parte entre columnas / páginas */
    margin-bottom: 20px;
  }

  /* Ajustes visuales finos */
  .num-pregunta{ flex: 0 0 14%; text-align: right; }
  .texto-pregunta{ padding-left: 4%; }
  .opciones{ padding-left: 6%; }
}

/* 2) ––– Botón Enviar centrado y full-width fuera de columnas ––– */
.enviar-examen{
  display: block;
  width: 300px;               /* ancho máximo deseado */
  max-width: 80%;             /* responde en móvil */
  margin: 40px auto;
  padding: 12px;
  background: #000;
  color: #fff;
  border: none;
  font-size: 17px;
  cursor: pointer;
  border-radius: 6px;
  column-span: all;           /* ocupa ambas columnas cuando existan */
}

/* 3) ––– Estilos de impresión (PDF) ––– */
@media print {

  body{ background: #fff !important; }
  .header{ margin-top: 0; padding-top: 0; }

  .examen-container{
    column-count: 2;
    column-gap: 60px;
    column-rule: 2px solid #000;
  }

  .bottom-nav,
  .espaciador{ display: none !important; }
}

/* ─────────────────────── ANIMACIONES DE ÉXITO Y FALLO ─────────────────────── */

/* Confeti */
.confetti{
  position:fixed;
  top:-10px;
  width:3px;height:3px;
  background-color:hsl(calc(var(--hue) * 360),100%,60%);
  border-radius:50%;
  animation:fall 3s linear forwards;
  pointer-events:none;
  z-index:9999;
}
@keyframes fall{
  0%   {transform:translateY(0)   rotate(0deg);   opacity:1;}
  100% {transform:translateY(100vh) rotate(360deg); opacity:0;}
}

/* Fuegos artificiales */
.firework{
  position:fixed;
  width:9px;height:9px;
  background-color:hsl(var(--h),100%,60%);
  border-radius:50%;
  animation:explotar 1.2s ease-out forwards;
  pointer-events:none;
  z-index:9999;
}
@keyframes explotar{
  0%   {transform:translate(0,0) scale(1); opacity:1;}
  100% {transform:translate(var(--x),var(--y)) scale(0.8); opacity:0;}
}

/* Estrellitas */
.star{
  position:fixed;
  font-size:20px;color:gold;
  animation:twinkle 2s ease-out forwards;
  pointer-events:none;
  z-index:9999;
}
@keyframes twinkle{
  0%   {transform:scale(0);   opacity:0;}
  50%  {transform:scale(1.5); opacity:1;}
  100% {transform:scale(0);   opacity:0;}
}

/* Humo (fallo) */
.humo{
  position:fixed;bottom:0;width:100vw;height:40vh;
  background:radial-gradient(circle,rgba(100,100,100,0.3) 0%,transparent 80%);
  animation:disiparHumo 2s ease-out forwards;
  pointer-events:none;
  z-index:9999;
}
@keyframes disiparHumo{
  0%   {transform:scale(1); opacity:1;}
  100% {transform:scale(2); opacity:0;}
}

/* Overlay oscurecedor (fallo) */
.pantalla-oscura{
  position:fixed;top:0;left:0;width:100vw;height:100vh;
  background:rgba(0,0,0,0.4);
  animation:desvanecerPantalla 1s ease-out forwards;
  z-index:9998;
}
@keyframes desvanecerPantalla{
  0%   {opacity:0;}
  50%  {opacity:1;}
  100% {opacity:0;}
}

/* Partículas rotas (fallo) */
.particula-rota{
  position:fixed;
  width:6px;height:6px;
  background-color:rgba(255,0,0,0.7);
  border-radius:50%;
  animation:caerRota 1.5s ease-out forwards;
  pointer-events:none;
  z-index:9999;
}
@keyframes caerRota{
  0%   {transform:translateY(0)   scale(1); opacity:1;}
  100% {transform:translateY(100vh) scale(0.3); opacity:0;}
}

/* Soporte del cuadernillo sin alterar el diseño original del examen. */
[hidden] { display: none !important; }
.saltar-examen { position: fixed; top: -100px; left: 12px; z-index: 10000; }
.saltar-examen:focus { top: 12px; padding: 10px; background: white; color: black; }
.pantalla-oscura { pointer-events: none; }
a.enviar-examen { text-decoration: none; }
.unidad-pendiente { width: 90%; max-width: 600px; margin: 40px auto; text-align: center; }
.unidad-pendiente h1 { font-size: 20px; }

/* Figuras y fórmulas de Matemáticas dentro del bloque de su reactivo. */
.texto-pregunta, .opcion-contenido { min-width: 0; }
.opcion-contenido { flex: 1; }
.opcion input { flex-shrink: 0; }
.reactivo-imagen { display: block; text-align: center; margin: 10px 0; }
.reactivo-imagen img { display: block; max-width: 100%; height: auto; margin: 0 auto; }
.imagen-pendiente, .estado-reactivo { color: #626262; font-size: 14px; font-weight: normal; }
.imagen-pendiente { display: block; padding: 16px 0; }
.estado-reactivo { margin: 8px 0 20px 12%; }
.continuacion-reactivo { margin: 10px 0 10px 12%; }
mjx-container[jax="SVG"] { max-width: 100%; overflow-x: auto; overflow-y: hidden; }
mjx-container[jax="SVG"]:not([display="true"]) { display: inline-block; vertical-align: middle; }
.texto-pregunta mjx-container, .opcion-contenido mjx-container { max-width: 100%; }

@media (prefers-reduced-motion: reduce) {
  .confetti, .firework, .star, .humo, .pantalla-oscura, .particula-rota { display: none; }
}

/* Legibilidad: letra más grande y más espacio entre reactivos.
   Estos ajustes se aplican a todas las páginas que usan este CSS. */
@media screen {
  .examen-container {
    font-size: 22px;
    line-height: 1.6;
  }

  .examen-container .item-examen {
    margin-bottom: 80px;
    break-inside: avoid;
  }

  .examen-container .pregunta {
    margin-bottom: 16px;
  }

  .examen-container .opciones {
    margin-bottom: 0;
  }

  .examen-container .opcion {
    align-items: flex-start;
    margin-bottom: 10px;
  }

  .examen-container .opcion:last-child {
    margin-bottom: 0;
  }

  .examen-container .opcion input[type="radio"] {
    margin-top: 0.35em;
  }

  .examen-container .contenido-reactivo,
  .examen-container .lectura-reactivo {
    line-height: inherit;
  }

  /* Mayor especificidad para superar el tamaño fijo de las tablas
     definido dentro de algunos HTML. */
  .examen-container .tabla-reactivo {
    font-size: 1em;
  }
}

@media screen and (min-width: 992px) {
  .examen-container {
    font-size: 20px;
  }
}
