/* =========================================
   ESTILOS EXCLUSIVOS DEL QUIZ WCAG
   (Sin conflictos con el CSS base)
   ========================================= */

/* Reset solo para el contenedor del quiz */
.game-container * {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

/* Variables del tema */
:root {
  --color-white: rgba(255, 255, 255, 1);
  --color-black: rgba(0, 0, 0, 1);
  --color-cream-50: rgba(252, 252, 249, 1);
  --color-cream-100: rgba(255, 255, 253, 1);
  --color-gray-200: rgba(245, 245, 245, 1);
  --color-gray-300: rgba(167, 169, 169, 1);
  --color-gray-400: rgba(119, 124, 124, 1);
  --color-slate-500: rgba(98, 108, 113, 1);
  --color-brown-600: rgba(94, 82, 64, 1);
  --color-charcoal-700: rgba(31, 33, 33, 1);
  --color-charcoal-800: rgba(38, 40, 40, 1);
  --color-slate-900: rgba(19, 52, 59, 1);
  --color-teal-300: rgba(50, 184, 198, 1);
  --color-teal-400: rgba(45, 166, 178, 1);
  --color-teal-500: rgba(33, 128, 141, 1);
  --color-teal-600: rgba(29, 116, 128, 1);
  --color-teal-700: rgba(26, 104, 115, 1);
  --color-teal-800: rgba(41, 150, 161, 1);
  --color-red-400: rgba(255, 84, 89, 1);
  --color-red-500: rgba(192, 21, 47, 1);
  --color-orange-400: rgba(230, 129, 97, 1);
  --color-orange-500: rgba(168, 75, 47, 1);
  
  --color-bg-1: rgba(59, 130, 246, 0.08);
  --color-bg-2: rgba(245, 158, 11, 0.08);
  --color-bg-3: rgba(34, 197, 94, 0.08);
  
  --color-background: var(--color-cream-50);
  --color-surface: var(--color-cream-100);
  --color-text: var(--color-slate-900);
  --color-text-secondary: var(--color-slate-500);
  --color-primary: var(--color-teal-500);
  --color-primary-hover: var(--color-teal-600);
  --color-primary-active: var(--color-teal-700);
  --color-secondary: rgba(94, 82, 64, 0.12);
  --color-secondary-hover: rgba(94, 82, 64, 0.2);
  --color-border: rgba(94, 82, 64, 0.2);
  --color-btn-primary-text: var(--color-cream-50);
  --color-card-border: rgba(94, 82, 64, 0.12);
  
  --font-family-base: "FKGroteskNeue", "Geist", "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
  --font-size-sm: 12px;
  --font-size-base: 14px;
  --font-size-lg: 16px;
  --font-size-xl: 18px;
  --font-size-2xl: 20px;
  --font-size-3xl: 24px;
  --font-size-4xl: 30px;
  --font-weight-bold: 600;
  
  --space-8: 8px;
  --space-12: 12px;
  --space-16: 16px;
  --space-20: 20px;
  --space-24: 24px;
  --space-32: 32px;
  
  --radius-base: 8px;
  --radius-lg: 12px;
  --radius-full: 9999px;
  
  --shadow-sm: 0 1px 3px rgba(0, 0, 0, 0.04);
  --shadow-md: 0 4px 6px -1px rgba(0, 0, 0, 0.04);
  --shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, 0.04);
  
  --focus-outline: 2px solid var(--color-primary);
  --focus-ring: 0 0 0 3px rgba(33, 128, 141, 0.4);
}

@media (prefers-color-scheme: dark) {
  :root {
    --color-background: var(--color-charcoal-700);
    --color-surface: var(--color-charcoal-800);
    --color-text: var(--color-gray-200);
    --color-text-secondary: rgba(167, 169, 169, 0.7);
    --color-primary: var(--color-teal-300);
    --color-primary-hover: var(--color-teal-400);
    --color-secondary: rgba(119, 124, 124, 0.15);
    --color-secondary-hover: rgba(119, 124, 124, 0.25);
    --color-border: rgba(119, 124, 124, 0.3);
    --color-btn-primary-text: var(--color-slate-900);
    --color-card-border: rgba(119, 124, 124, 0.2);
  }
}

/* =========================================
   ESTRUCTURA PRINCIPAL DEL JUEGO
   ========================================= */

.game-container {
  max-width: 900px;
  margin: 0 auto;
  padding: var(--space-20);
  font-family: var(--font-family-base);
  background: var(--color-background);
  color: var(--color-text);
  line-height: 1.5;
  transition: background 0.3s ease;
  width: 100%;
  box-sizing: border-box;
}

/* Header del juego */
.game-header {
  text-align: center;
  margin-bottom: var(--space-32);
  animation: slideDown 0.6s ease;
}

.game-title {
  font-size: var(--font-size-4xl);
  font-weight: var(--font-weight-bold);
  color: var(--color-primary);
  margin-bottom: var(--space-8);
}

.game-subtitle {
  font-size: var(--font-size-lg);
  color: var(--color-text-secondary);
}

/* Pantallas inicial y final */
.start-screen, .final-report {
  background: var(--color-surface);
  border: 1px solid var(--color-card-border);
  border-radius: var(--radius-lg);
  padding: var(--space-32);
  box-shadow: var(--shadow-lg);
  width: 100%;
  max-width: 800px;
  margin: 0 auto;
}

.start-screen h2, .final-report h2 {
  font-size: var(--font-size-3xl);
  margin-bottom: var(--space-16);
  color: var(--color-text);
  text-align: center;
}

.start-screen p {
  font-size: var(--font-size-lg);
  color: var(--color-text-secondary);
  margin-bottom: var(--space-24);
  line-height: 1.6;
}

/* Selectores de Dificultad (MODIFICADO PARA SOPORTAR CLASE) */
.difficulty-selector { margin: var(--space-24) 0; }

.difficulty-selector label, 
.difficulty-selector .difficulty-label { 
  display: block; 
  font-weight: 500; 
  margin-bottom: var(--space-12); 
  font-size: var(--font-size-lg); 
}

.difficulty-buttons { display: flex; gap: var(--space-12); justify-content: center; flex-wrap: wrap; }

.difficulty-btn {
  padding: var(--space-12) var(--space-24);
  border: 2px solid var(--color-border);
  background: var(--color-surface);
  color: var(--color-text);
  border-radius: var(--radius-base);
  cursor: pointer;
  font-size: var(--font-size-base);
  font-weight: 500;
  transition: all 0.2s ease;
}

.difficulty-btn:hover { background: var(--color-secondary-hover); transform: translateY(-2px); }
.difficulty-btn.selected { background: var(--color-primary); color: var(--color-btn-primary-text); border-color: var(--color-primary); }

.start-btn {
  display: block;
  width: 100%;
  max-width: 300px;
  margin: var(--space-24) auto 0;
  padding: var(--space-16) var(--space-32);
  background: var(--color-primary);
  color: var(--color-btn-primary-text);
  border: none;
  border-radius: var(--radius-base);
  font-size: var(--font-size-xl);
  font-weight: var(--font-weight-bold);
  cursor: pointer;
  transition: all 0.3s ease;
  box-shadow: var(--shadow-md);
}

.start-btn:hover { background: var(--color-primary-hover); transform: scale(1.05); }

/* =========================================
   BARRA DE PROGRESO Y NIVEL
   ========================================= */

.progress-container { margin-bottom: var(--space-24); }
.progress-info { display: flex; justify-content: space-between; margin-bottom: var(--space-8); font-size: var(--font-size-sm); color: var(--color-text-secondary); }
.progress-bar { height: 12px; background: var(--color-secondary); border-radius: var(--radius-full); overflow: hidden; }
.progress-fill { height: 100%; background: var(--color-primary); transition: width 0.5s ease; border-radius: var(--radius-full); }

.level-indicator {
  display: flex; align-items: center; justify-content: center;
  gap: var(--space-12); margin-bottom: var(--space-24); padding: var(--space-12);
  background: var(--color-bg-1); border-radius: var(--radius-base);
  border: 1px solid var(--color-card-border);
}
.level-badge {
  padding: 6px 16px; border-radius: var(--radius-full);
  font-weight: var(--font-weight-bold); font-size: var(--font-size-sm);
  color: white; text-transform: uppercase; letter-spacing: 0.05em;
}

/* =========================================
   TARJETA DE PREGUNTA (DESKTOP)
   ========================================= */

.quiz-card {
  position: relative;
  animation: fadeIn 0.5s ease;
  width: 100%;
  max-width: 800px;
  /* Altura fija solo en escritorio para evitar saltos de layout */
  min-height: 580px;
  max-height: 580px;
  margin: 0 auto;
  background: var(--color-surface); /* Asegurar fondo */
  border-radius: var(--radius-lg); /* Asegurar bordes redondeados */
  
  /* Grid Layout para Escritorio */
  display: grid;
  grid-template-rows: auto auto 1fr 120px;
  grid-template-areas: 
    "header"
    "question"
    "options"
    "feedback";
  gap: var(--space-20);
  padding: 0; /* El padding lo manejan los hijos o media queries */
  overflow: hidden; /* Mantener contenido dentro en desktop */
}

.question-header {
  grid-area: header;
  display: flex; justify-content: space-between; align-items: center;
  flex-wrap: wrap; gap: var(--space-12);
}

.question-text {
  grid-area: question;
  font-size: var(--font-size-2xl);
  font-weight: 600;
  color: var(--color-text);
  line-height: 1.4;
  min-height: 90px;
  max-height: 120px;
  overflow-y: auto; /* Scroll interno en desktop si es muy largo */
  padding-right: 8px;
}

.answer-options {
  grid-area: options;
  display: flex; flex-direction: column; gap: var(--space-12);
  overflow-y: auto; /* Scroll interno en desktop */
  min-height: 180px;
  padding-right: 8px;
}

/* =========================================
   OPCIONES DE RESPUESTA
   ========================================= */

.answer-btn {
  padding: var(--space-16);
  background: var(--color-surface);
  border: 2px solid var(--color-border);
  border-radius: var(--radius-base);
  text-align: left;
  font-size: var(--font-size-lg);
  color: var(--color-text);
  cursor: pointer;
  transition: all 0.2s ease;
  position: relative;
  width: 100%;
  
  /* Propiedades CLAVE para que el texto se adapte */
  white-space: normal;
  word-wrap: break-word;
  display: flex;
  align-items: center;
  min-height: 50px; /* Altura mínima táctil */
  line-height: 1.4;
}

.answer-btn:hover:not(:disabled) { background: var(--color-secondary-hover); border-color: var(--color-primary); transform: translateX(4px); }
.answer-btn:disabled { cursor: not-allowed; opacity: 0.6; }

.answer-btn.correct { background: rgba(16, 185, 129, 0.15); border-color: #10b981; color: var(--color-text); }
.answer-btn.incorrect { background: rgba(239, 68, 68, 0.15); border-color: #ef4444; color: var(--color-text); }

/* =========================================
   FEEDBACK (DESKTOP)
   ========================================= */

#feedbackArea {
  grid-area: feedback;
  position: absolute;
  bottom: var(--space-32);
  left: var(--space-32);
  right: var(--space-32);
  max-height: 100px;
  overflow-y: auto;
  padding: var(--space-16);
  border-radius: var(--radius-base);
  font-size: var(--font-size-base);
  animation: slideUp 0.3s ease;
  z-index: 10;
  background: var(--color-surface);
  border: 2px solid var(--color-primary);
  box-shadow: var(--shadow-md);
  
  /* Gestión de visibilidad */
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.3s ease, visibility 0.3s ease;
}

#feedbackArea:not(.hidden) {
  opacity: 1;
  visibility: visible;
}

.feedback.correct { border-color: #10b981; background: rgba(16, 185, 129, 0.1); }
.feedback.incorrect { border-color: #ef4444; background: rgba(239, 68, 68, 0.1); }

/* =========================================
   BARRA DE ESTADÍSTICAS
   ========================================= */

.stats-bar {
  display: flex; justify-content: space-around; align-items: center;
  background: var(--color-surface);
  border: 1px solid var(--color-card-border);
  border-radius: var(--radius-base);
  padding: var(--space-16);
  margin-top: var(--space-24);
  box-shadow: var(--shadow-sm);
  flex-wrap: wrap; gap: var(--space-16);
}
.stat-item { text-align: center; }
.stat-label { font-size: var(--font-size-sm); color: var(--color-text-secondary); margin-bottom: 4px; }
.stat-value { font-size: var(--font-size-2xl); font-weight: bold; color: var(--color-primary); }

/* =========================================
   REPORT FINAL (Estilos internos)
   ========================================= */
.performance-badge { text-align: center; padding: var(--space-24); margin-bottom: var(--space-24); border-radius: var(--radius-base); background: var(--color-bg-3); }
.badge-icon { font-size: 64px; margin-bottom: var(--space-12); }
.badge-title { font-size: var(--font-size-3xl); font-weight: bold; margin-bottom: 8px; color: var(--color-text); }
.final-stats { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: var(--space-16); margin-bottom: var(--space-24); }
.final-stat-card { background: var(--color-bg-1); padding: var(--space-16); border-radius: var(--radius-base); text-align: center; border: 1px solid var(--color-card-border); }
.final-stat-value { font-size: var(--font-size-3xl); font-weight: bold; color: var(--color-primary); margin-bottom: 4px; }
.category-breakdown { margin-bottom: var(--space-24); }
.category-item { display: flex; justify-content: space-between; padding: 12px; margin-bottom: 8px; background: var(--color-bg-2); border-radius: var(--radius-base); }
.action-buttons { display: flex; gap: 12px; justify-content: center; flex-wrap: wrap; }
.action-btn { padding: 12px 24px; border-radius: var(--radius-base); font-weight: 500; cursor: pointer; border: none; font-size: 14px; }
.action-btn.primary { background: var(--color-primary); color: var(--color-btn-primary-text); }
.action-btn.secondary { background: var(--color-secondary); color: var(--color-text); border: 1px solid var(--color-border); }

/* =========================================
   ANIMACIONES
   ========================================= */
@keyframes fadeIn { from { opacity: 0; transform: translateY(20px); } to { opacity: 1; transform: translateY(0); } }
@keyframes slideDown { from { opacity: 0; transform: translateY(-30px); } to { opacity: 1; transform: translateY(0); } }
@keyframes slideUp { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: translateY(0); } }

/* =========================================
   MEDIA QUERY PARA MÓVIL (SOLUCIÓN CRÍTICA)
   ========================================= */

@media (max-width: 768px) {
  .game-container {
    padding: var(--space-12);
  }

  /* 1. Resetear el Layout de Grid a Flex */
  .quiz-card {
    display: flex;          
    flex-direction: column;
    /* Quitar la altura fija para que crezca con el texto */
    min-height: auto;       
    max-height: none;       
    height: auto;           
    /* Permitir overflow visible para que nada se corte */
    overflow: visible;      
    padding: 0;
    gap: var(--space-16);
    background: transparent; /* Opcional: quitar fondo del contenedor si se desea */
    border: none;
    box-shadow: none;
  }

  /* 2. Ajustar texto de pregunta */
  .question-text {
    font-size: var(--font-size-xl);
    min-height: auto;
    max-height: none;
    overflow: visible;
    margin-bottom: var(--space-12);
  }

  /* 3. Ajustar contenedor de opciones */
  .answer-options {
    min-height: auto;
    max-height: none;
    overflow-y: visible; /* Usar el scroll de la página */
    flex: 0 0 auto;
    padding-right: 0;
  }

  /* 4. Ajustar botones para texto largo */
  .answer-btn {
    padding: var(--space-12);
    font-size: var(--font-size-base);
    height: auto;           /* Crecer según contenido */
    min-height: 50px;
    white-space: normal;    /* Asegurar salto de línea */
    word-break: break-word; 
  }

  /* 5. Feedback relativo (debajo, no encima) */
  #feedbackArea {
    position: relative;
    bottom: auto; left: auto; right: auto;
    max-height: none;
    margin-top: var(--space-12);
    width: 100%;
    /* Asegurarnos de que se vea si tiene contenido */
    opacity: 1;
    visibility: visible;
    transform: none;
    animation: none;
  }
  
  /* Ajustes varios móvil */
  .game-title { font-size: var(--font-size-3xl); }
  .stats-bar { gap: 8px; }
  .stat-item { flex: 1 1 40%; }
}

/* =========================================
   UTILIDADES (MANTENER SIEMPRE AL FINAL)
   Esta clase es la que asegura que el Reporte Final
   no se muestre si tiene la clase "hidden"
   ========================================= */

.hidden {
  display: none !important;
  visibility: hidden !important;
  opacity: 0 !important;
  pointer-events: none !important;
}

.sr-only {
  position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border-width: 0;
}