/* 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; }
}

/* Practica de Universidad */
body.reactivos-universidad {
  color-scheme: light;
  --paper: #fff0dc;
  --card: #fff;
  --ink: #27211d;
  --muted: #675b53;
  --line: #dfd4c7;
  --stripe: #ef9200;
  --accent: #9f3600;
  --card-selected: #fffaf4;
  --choice-selected: #ffe8cf;
}

body.reactivos-universidad *, body.reactivos-universidad *::before, body.reactivos-universidad *::after { box-sizing: border-box; }
body.reactivos-universidad { margin: 0; background: var(--paper); color: var(--ink); font: 1rem/1.55 system-ui, sans-serif; }
.reactivos-universidad h1, .reactivos-universidad h2, .reactivos-universidad p { margin: 0; }
.reactivos-universidad .shell { width: min(740px, calc(100% - 28px)); margin: clamp(16px, 4vw, 44px) auto 26px; }
.reactivos-universidad .hero, .reactivos-universidad .question,
.reactivos-universidad .contexto-reactivos {
  padding: clamp(19px, 4vw, 30px);
  border: 1px solid var(--line);
  border-radius: 13px;
  background: var(--card);
}
.reactivos-universidad .hero { border-top: 9px solid var(--stripe); margin-bottom: 14px; }
.reactivos-universidad .eyebrow { color: var(--accent); font-size: .75rem; font-weight: 750; letter-spacing: .1em; text-transform: uppercase; }
.reactivos-universidad h1 { margin-block: .24em .3em; font: 500 clamp(2rem, 6vw, 3.3rem)/1.1 Georgia, serif; letter-spacing: -.028em; }
.reactivos-universidad .hero p:last-child { color: var(--muted); }
.reactivos-universidad .practice { display: grid; gap: 14px; }
.reactivos-universidad .question { min-inline-size: 0; }
.reactivos-universidad .question:has(input:checked) { background: var(--card-selected); border-color: #d59367; }
.reactivos-universidad .prompt { margin: 7px 0 14px; font-size: clamp(1.05rem, 2.6vw, 1.2rem); font-weight: 650; line-height: 1.4; }
.reactivos-universidad .reading { margin: 0 0 14px; padding: 10px 12px; border-left: 3px solid var(--stripe); background: var(--paper); }
.reactivos-universidad fieldset { padding: 0; margin: 0; border: 0; min-inline-size: 0; }
.reactivos-universidad .sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.reactivos-universidad .choice {
  display: grid;
  grid-template-columns: 28px minmax(0, 1fr);
  align-items: center;
  gap: 9px;
  min-height: 46px;
  padding: 7px 8px;
  border: 1px solid transparent;
  border-radius: 8px;
  cursor: pointer;
}
.reactivos-universidad .choice + .choice { margin-top: 3px; }
.reactivos-universidad .letter { display: grid; place-items: center; width: 28px; height: 28px; border: 1px solid #c9bfb6; border-radius: 6px; color: var(--muted); font-size: .84rem; font-weight: 750; }
.reactivos-universidad .choice:has(input:checked) { background: var(--choice-selected); border-color: #e0ab83; }
.reactivos-universidad .choice input:checked + .letter { background: var(--accent); border-color: var(--accent); color: white; }
.reactivos-universidad .choice:has(input:focus-visible) { outline: 2px solid var(--accent); outline-offset: 2px; }
@media (hover: hover) { .reactivos-universidad .choice:hover { border-color: #d59367; } }
.reactivos-universidad .practice-actions { display: flex; justify-content: flex-end; margin-top: 16px; }
.reactivos-universidad .action {
  min-height: 44px;
  padding: 8px 14px;
  border: 1px solid var(--accent);
  border-radius: 8px;
  background: var(--card);
  color: var(--accent);
  font: inherit;
  font-weight: 650;
  cursor: pointer;
}
.reactivos-universidad .action:focus-visible { outline: 2px solid var(--accent); outline-offset: 3px; }
.reactivos-universidad .action--primary { background: var(--accent); color: white; }
.reactivos-universidad dialog {
  width: min(420px, calc(100% - 32px));
  padding: 22px;
  border: 1px solid var(--line);
  border-radius: 13px;
  background: var(--card);
  color: var(--ink);
}
.reactivos-universidad dialog::backdrop { background: rgb(39 33 29 / 48%); }
.reactivos-universidad dialog h2 { font-size: 1.2rem; }
.reactivos-universidad dialog p { margin-top: 8px; color: var(--muted); }
.reactivos-universidad .dialog-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 10px; margin-top: 18px; }
.reactivos-universidad .vistas { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 14px; }
.reactivos-universidad [hidden] { display: none !important; }
.reactivos-universidad .vistas button[aria-pressed="true"] { background: var(--accent); color: white; }
.reactivos-universidad .aviso-docente { margin-top: 10px; padding: 12px; border-left: 3px solid var(--stripe); background: var(--paper); }
.reactivos-universidad .soluciones-lista { list-style: none; padding: 0; display: grid; gap: 8px; }
.reactivos-universidad .soluciones-lista li { display: flex; justify-content: space-between; flex-wrap: wrap; gap: 8px; padding: 10px 12px; border: 1px solid var(--line); border-radius: 8px; }
.reactivos-universidad .soluciones-lista strong { color: var(--accent); }
.reactivos-universidad .lectura-grupo h2 { margin: 5px 0 10px; }
.reactivos-universidad .lectura-grupo p + p { margin-top: 10px; }
.reactivos-universidad .lectura-grupo figure { margin: 0 0 14px; }
.reactivos-universidad .lectura-grupo img { display: block; max-width: 100%; height: auto; }
