/* =============================================
   MEJORAS DE FUENTES Y CONTRASTE — EVIN
   ============================================= */

/* ── 1. Tamaño base de fuente ─────────────────────────────── */
html { font-size: 18px; }

body {
  font-size: 1rem;
  line-height: 1.6;
  letter-spacing: 0.01em;
}

/* ── 2. Textos de tarjetas ────────────────────────────────── */
.card p  { color: #3d3d3d; font-size: 1rem; }
.card h3 { font-size: 1.15rem; color: #1a2e4a; }

/* ── 3. Hints y textos secundarios ───────────────────────── */
.form-hint {
  color: #595959;
  font-size: 0.9rem;
}

.memoria-info,
.grid-info,
.radar-info,
.diferencias-info {
  font-size: 1rem;
  color: #2d2d2d;
  font-weight: 500;
}

/* ── 4. Menú de navegación ────────────────────────────────── */
.menu-btn.active {
  background-color: rgba(241, 250, 238, 0.35);
  border-color: rgba(241, 250, 238, 0.6);
  text-decoration: underline;
  text-underline-offset: 3px;
}

.menu-btn { font-size: 1rem; }

/* ── 5. Botones ───────────────────────────────────────────── */
.btn {
  font-size: 1rem;
  padding: 0.6rem 1.2rem;
  min-height: 48px;
  font-weight: 700;
}

.btn-secundario {
  font-size: 1rem;
  padding: 0.6rem 1.2rem;
  min-height: 48px;
  font-weight: 600;
}

.nav-toggle { width: 44px; height: 44px; }

/* ── 6. Formularios ───────────────────────────────────────── */
label {
  font-size: 1rem;
  font-weight: 600;
  color: #1a1a1a;
  display: block;
  margin-top: 0.75rem;
  margin-bottom: 0.25rem;
}

input[type="email"],
input[type="password"],
input[type="text"],
input[type="number"],
select {
  font-size: 1rem;
  padding: 0.6rem 0.75rem;
  border: 2px solid #767676;
  border-radius: 6px;
  width: 100%;
  color: #1a1a1a;
  background: #fff;
  min-height: 48px;
}

input:focus,
select:focus {
  border-color: #4361ee;
  outline: 3px solid rgba(67, 97, 238, 0.4);
  outline-offset: 2px;
}

/* ── 7. Badges ────────────────────────────────────────────── */
.badge         { font-size: 0.85rem; font-weight: 700; padding: 0.25rem 0.75rem; }
.badge-progreso { font-size: 0.9rem; font-weight: 700; }

.progreso-alto  { background: #d4edda; color: #0d4a1f; }
.progreso-medio { background: #fff3cd; color: #5c3d00; }
.progreso-bajo  { background: #f8d7da; color: #6b1117; }

/* ── 8. Modal ─────────────────────────────────────────────── */
.modal-content h2 { font-size: 1.4rem; color: #1a2e4a; }
#modalDesc        { font-size: 1.05rem; color: #2d2d2d; line-height: 1.7; }

/* ── 9. Footer ────────────────────────────────────────────── */
footer   { font-size: 1rem; }
footer a { color: #a8d8ea; text-decoration: underline; }

/* ── 10. Inicio ───────────────────────────────────────────── */
#inicio p      { font-size: 1.05rem; line-height: 1.7; color: #2d2d2d; max-width: 75ch; }
#inicio h2     { font-size: 1.6rem; color: #1a2e4a; }
#inicio ul li  { font-size: 1.05rem; line-height: 1.7; margin-bottom: 0.4rem; }

/* ── 11. Perfil de alumno ─────────────────────────────────── */
.perfil-stat-valor       { font-size: 1.8rem; }
.perfil-stat-label       { font-size: 0.9rem; color: #3d3d3d; }
.perfil-tabla th,
.perfil-tabla td         { font-size: 1rem; }

/* ── 12. Responsive ───────────────────────────────────────── */
@media (max-width: 768px) {
  html { font-size: 17px; }
  .card p { font-size: 1rem; }
  .btn, .btn-secundario { width: 100%; text-align: center; }
}

/* ── Celdas juego grid ────────────────────────────────────── */
.grid-celda-inner {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 100%;
}

.grid-celda-correcta   { background: #d4edda !important; border: 3px solid #2ecc71 !important; outline: 3px dashed #155d27 !important; }
.grid-celda-incorrecta { background: #f8d7da !important; border: 3px solid #e63946 !important; outline: 3px dashed #7a0c14 !important; }
.grid-celda-eracorrecta { background: #fff3cd !important; border: 3px solid #f4a261 !important; outline: 3px dashed #856404 !important; }

.grid-celda-objetivo {
  background: repeating-linear-gradient(45deg, #ffb703, #ffb703 6px, #ffd60a 6px, #ffd60a 12px) !important;
  outline: 3px dashed #1d3557 !important;
}

/* ── Celdas juego radar ───────────────────────────────────── */
.radar-cell             { position: relative; }
.radar-cell-correcta    { background: #d4edda !important; outline: 3px solid #2ecc71 !important; }
.radar-cell-incorrecta  { background: #f8d7da !important; outline: 3px solid #e63946 !important; }
.radar-cell-faltante    { background: #fff3cd !important; outline: 3px dashed #f4a261 !important; }
.radar-cell-seleccionada { outline: 3px solid #4361ee !important; background: #e8edff !important; }

.radar-svg-wrap         { display: flex; align-items: center; justify-content: center; width: 48px; height: 48px; }
.radar-svg-wrap svg     { width: 44px; height: 44px; filter: drop-shadow(2px 3px 2px rgba(0,0,0,0.2)); }
#radar-objetivo         { display: flex; align-items: center; gap: 0.5rem; }
#radar-objetivo svg     { width: 28px; height: 28px; vertical-align: middle; }

/* ── Juego memoria — cartas ───────────────────────────────── */
@keyframes memoria-error-flash {
  0%, 100% { transform: translateX(0); }
  25%       { transform: translateX(-5px); }
  75%       { transform: translateX(5px); }
}

.memoria-icono-ok {
  position: absolute;
  top: 4px; right: 6px;
  font-size: 1rem;
  font-weight: 900;
  color: #155d27;
  background: #d4edda;
  border-radius: 50%;
  width: 20px; height: 20px;
  display: flex;
  align-items: center;
  justify-content: center;
  line-height: 1;
}

.memoria-card {
  width: 90px !important;
  height: 90px !important;
  cursor: pointer;
  perspective: 800px !important;
  border-radius: 12px !important;
  display: inline-block !important;
}

.memoria-card-inner {
  width: 100% !important;
  height: 100% !important;
  position: relative !important;
  transform-style: preserve-3d !important;
  transition: transform 0.45s ease !important;
  border-radius: 12px !important;
}

.memoria-girada .memoria-card-inner {
  transform: rotateY(180deg) !important;
}

.memoria-card-front,
.memoria-card-back {
  position: absolute !important;
  top: 0 !important; left: 0 !important;
  width: 100% !important; height: 100% !important;
  border-radius: 12px !important;
  -webkit-backface-visibility: hidden !important;
  backface-visibility: hidden !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
}

.memoria-card-front {
  background: linear-gradient(135deg, #4361ee, #3a0ca3) !important;
  border: 3px solid #fff !important;
  box-shadow: 0 4px 12px rgba(0,0,0,0.2) !important;
  transform: rotateY(0deg) !important;
}

.memoria-card-dorso {
  font-size: 2.2rem !important;
  font-weight: 900 !important;
  color: rgba(255,255,255,0.7) !important;
}

.memoria-card-back {
  background: linear-gradient(135deg, #f0f4ff, #dde4ff) !important;
  border: 3px solid #4361ee !important;
  box-shadow: 0 4px 12px rgba(0,0,0,0.1) !important;
  transform: rotateY(180deg) !important;
}

.memoria-emoji {
  font-size: 3.2rem !important;
  line-height: 1 !important;
  user-select: none !important;
}

.memoria-acertada .memoria-card-back {
  background: #eaf7f5 !important;
  border: 3px solid #2ecc71 !important;
}

.memoria-acertada .memoria-emoji {
  filter: drop-shadow(0 0 6px rgba(46,204,113,0.6));
}

.memoria-error .memoria-card-back {
  background: #fdecea !important;
  border: 3px solid #e63946 !important;
  animation: memoria-error-flash 0.4s ease;
}

.memoria-girada:not(.memoria-acertada) .memoria-card-back {
  border: 3px solid #4361ee !important;
}

#memoria-grid {
  display: grid !important;
  grid-template-columns: repeat(4, 90px) !important;
  gap: 12px !important;
  justify-content: center !important;
  margin: 1rem auto !important;
}

/* ── Juego diferencias ────────────────────────────────────── */
.dif-icono {
  position: absolute;
  top: 4px; right: 4px;
  width: 24px; height: 24px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  pointer-events: none;
}

.dif-icono-ok  { background: #d4edda; border: 2px solid #2ecc71; }
.dif-icono-err { background: #f8d7da; border: 2px solid #e63946; }
.dif-celda     { position: relative; }

/* ── Juego memoria — cartas ───────────────────────────────── */
@keyframes memoria-error-flash {
  0%, 100% { transform: translateX(0); }
  25%       { transform: translateX(-5px); }
  75%       { transform: translateX(5px); }
}

.memoria-icono-ok {
  position: absolute;
  top: 4px; right: 6px;
  font-size: 1rem;
  font-weight: 900;
  color: #155d27;
  background: #d4edda;
  border-radius: 50%;
  width: 20px; height: 20px;
  display: flex;
  align-items: center;
  justify-content: center;
  line-height: 1;
}

/* Sistema unificado: padding-top trick */
.memoria-card {
  position: relative !important;
  width: 100% !important;
  padding-top: 100% !important;
  cursor: pointer !important;
  perspective: 700px !important;
  border-radius: 12px !important;
  display: block !important;
  height: auto !important;
}

.memoria-card-inner {
  position: absolute !important;
  inset: 0 !important;
  width: 100% !important;
  height: 100% !important;
  transform-style: preserve-3d !important;
  transition: transform 0.45s ease !important;
  border-radius: 12px !important;
}

.memoria-girada .memoria-card-inner,
.memoria-card.memoria-girada .memoria-card-inner,
.memoria-card.memoria-acertada .memoria-card-inner {
  transform: rotateY(180deg) !important;
}

.memoria-card-front,
.memoria-card-back {
  position: absolute !important;
  inset: 0 !important;
  border-radius: 12px !important;
  -webkit-backface-visibility: hidden !important;
  backface-visibility: hidden !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
}

.memoria-card-front {
  background: linear-gradient(135deg, #4361ee, #3a0ca3) !important;
  border: 3px solid #fff !important;
  box-shadow: 0 4px 12px rgba(0,0,0,0.2) !important;
  transform: rotateY(0deg) !important;
}

.memoria-card-dorso {
  font-size: 2.2rem !important;
  font-weight: 900 !important;
  color: rgba(255,255,255,0.7) !important;
}

.memoria-card-back {
  background: linear-gradient(135deg, #f0f4ff, #dde4ff) !important;
  border: 3px solid #4361ee !important;
  box-shadow: 0 4px 12px rgba(0,0,0,0.1) !important;
  transform: rotateY(180deg) !important;
  font-size: clamp(1.5rem, 5vw, 2.5rem) !important;
}

.memoria-emoji {
  font-size: clamp(1.5rem, 5vw, 2.5rem) !important;
  line-height: 1 !important;
  user-select: none !important;
}

.memoria-acertada .memoria-card-back {
  background: #eaf7f5 !important;
  border: 3px solid #2ecc71 !important;
}

.memoria-acertada .memoria-emoji {
  filter: drop-shadow(0 0 6px rgba(46,204,113,0.6));
}

.memoria-error .memoria-card-back {
  background: #fdecea !important;
  border: 3px solid #e63946 !important;
  animation: memoria-error-flash 0.4s ease;
}

.memoria-girada:not(.memoria-acertada) .memoria-card-back {
  border: 3px solid #4361ee !important;
}

#memoria-grid {
  display: grid !important;
  grid-template-columns: repeat(4, minmax(60px, 1fr)) !important;
  gap: 0.75rem !important;
  max-width: 480px !important;
  justify-content: center !important;
  margin: 1rem auto !important;
}

/* ── Juego diferencias ────────────────────────────────────── */
.dif-icono {
  position: absolute;
  top: 4px; right: 4px;
  width: 24px; height: 24px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  pointer-events: none;
}

.dif-icono-ok  { background: #d4edda; border: 2px solid #2ecc71; }
.dif-icono-err { background: #f8d7da; border: 2px solid #e63946; }
.dif-celda     { position: relative; }
