/* ============================================================
   AUTH.CSS — Estilos dedicados para las vistas de autenticación
   Temática: noche, auroras boreales, estrellas, conexión espiritual
   Proyecto: La Magia Inefable De Nosotros
   ============================================================ */

/* -----------------------------------------------
   VARIABLES CSS — Sistema de diseño centralizado
   Todos los colores, fuentes y efectos se definen
   aquí para facilitar el mantenimiento global.
   ----------------------------------------------- */
:root {
  --color-noche: rgba(2, 8, 30, 0.45);
  --color-card: rgba(5, 15, 45, 0.35);
  --color-borde: rgba(100, 160, 255, 0.2);
  --color-borde-focus: rgba(120, 200, 255, 0.7);
  --color-input: rgba(255, 255, 255, 0.07);
  --color-input-focus: rgba(255, 255, 255, 0.1);
  --color-texto: rgba(255, 255, 255, 0.9);
  --color-label: rgba(180, 210, 255, 0.8);
  --color-link: rgba(150, 200, 255, 0.7);
  --color-error: rgba(255, 150, 150, 0.9);
  --color-boton: linear-gradient(135deg, rgba(60, 120, 255, 0.7), rgba(100, 180, 255, 0.5));
  --color-boton-hover: linear-gradient(135deg, rgba(80, 140, 255, 0.9), rgba(120, 200, 255, 0.7));
  --font-titulo: 'Cormorant Garamond', serif;
  --font-cuerpo: 'Nunito', sans-serif;
  --blur-card: blur(18px) saturate(1.4);
  --radio-card: 20px;
  --sombra-card: 0 8px 48px rgba(0, 20, 80, 0.5), 0 0 0 1px rgba(255,255,255,0.05);
}

/* -----------------------------------------------
   FONDO PRINCIPAL — Imagen cinematográfica
   Se usa la imagen fondo_boody.jpg como fondo fijo
   con un overlay azul noche semitransparente para
   garantizar legibilidad del contenido.
   ----------------------------------------------- */
.auth-body {
  background-image: url('/assets/img/fondo_boody.jpg');
  background-size: cover;
  background-position: center;
  background-attachment: fixed;
  min-height: 100vh;
  position: relative;
  font-family: var(--font-cuerpo);
}

/* Overlay oscuro semitransparente */
.auth-body::before {
  content: '';
  position: fixed;
  inset: 0;
  background: var(--color-noche);
  z-index: 0;
  pointer-events: none;
}

/* -----------------------------------------------
   CARD GLASSMORPHISM — Tarjeta principal del form
   Efecto de vidrio esmerilado con blur y bordes
   sutiles. Animación de entrada suave al cargar.
   ----------------------------------------------- */
.auth-card {
  background: var(--color-card);
  backdrop-filter: var(--blur-card);
  -webkit-backdrop-filter: var(--blur-card);
  border: 1px solid var(--color-borde);
  border-radius: var(--radio-card);
  box-shadow: var(--sombra-card);
  padding: 2.5rem;
  max-width: 420px;
  width: 100%;
  position: relative;
  z-index: 10;
  animation: cardEntrance 0.8s cubic-bezier(0.16, 1, 0.3, 1) forwards;
}

/* Responsive — adaptación para pantallas pequeñas */
@media (max-width: 480px) {
  .auth-card {
    padding: 1.5rem;
    margin: 1rem;
    border-radius: 14px;
  }
}

/* -----------------------------------------------
   ANIMACIÓN DE ENTRADA — Efecto de aparición
   La tarjeta sube suavemente desde abajo con
   un ligero escalado para efecto cinematográfico.
   ----------------------------------------------- */
@keyframes cardEntrance {
  from {
    opacity: 0;
    transform: translateY(30px) scale(0.97);
  }
  to {
    opacity: 1;
    transform: translateY(0) scale(1);
  }
}

/* -----------------------------------------------
   LOGOTIPO — Imagen circular con glow azul
   Se muestra centrado arriba del formulario
   con una sombra luminosa azul sutil.
   ----------------------------------------------- */
.auth-logo {
  box-shadow: 0 0 20px rgba(100, 160, 255, 0.4);
  transition: box-shadow 0.3s ease;
}

.auth-logo:hover {
  box-shadow: 0 0 30px rgba(100, 160, 255, 0.6),
              0 0 60px rgba(100, 160, 255, 0.2);
}

/* -----------------------------------------------
   INPUTS — Campos de formulario con efecto glow
   Fondo semitransparente, borde sutil que brilla
   en :focus con una elevación mínima.
   ----------------------------------------------- */
.auth-input {
  background: var(--color-input) !important;
  border: 1px solid var(--color-borde) !important;
  color: var(--color-texto) !important;
  border-radius: 10px !important;
  padding: 0.75rem 1rem !important;
  width: 100%;
  font-family: var(--font-cuerpo);
  font-weight: 300;
  transition: all 0.35s ease !important;
  outline: none !important;
  box-shadow: none !important;
}

.auth-input::placeholder {
  color: rgba(150, 180, 255, 0.4);
}

.auth-input:focus {
  border-color: var(--color-borde-focus) !important;
  box-shadow: 0 0 0 3px rgba(80, 160, 255, 0.2),
              0 0 15px rgba(80, 160, 255, 0.15) !important;
  background: var(--color-input-focus) !important;
  transform: translateY(-1px);
  ring-color: transparent !important;
}

/* Eliminar estilos nativos de Tailwind en focus */
.auth-input:focus-visible {
  outline: none !important;
}

/* -----------------------------------------------
   LABELS — Etiquetas de los campos
   Color azul claro, uppercase y letra fina
   para un estilo elegante y minimalista.
   ----------------------------------------------- */
.auth-label {
  color: var(--color-label) !important;
  font-size: 0.8rem !important;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  font-family: var(--font-cuerpo);
  font-weight: 300;
  display: block;
  margin-bottom: 0.4rem;
}

/* -----------------------------------------------
   BOTÓN PRINCIPAL — Gradiente azul con hover
   Efecto de elevación al pasar el cursor y
   sombra luminosa para resaltar la acción.
   ----------------------------------------------- */
.auth-btn {
  background: var(--color-boton) !important;
  border: 1px solid rgba(120, 180, 255, 0.4) !important;
  color: white !important;
  border-radius: 10px !important;
  padding: 0.8rem 2rem !important;
  width: 100%;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  font-size: 0.85rem !important;
  font-family: var(--font-cuerpo);
  font-weight: 400;
  cursor: pointer;
  transition: all 0.3s ease !important;
  display: flex;
  align-items: center;
  justify-content: center;
}

.auth-btn:hover {
  background: var(--color-boton-hover) !important;
  transform: translateY(-2px);
  box-shadow: 0 8px 25px rgba(80, 140, 255, 0.4) !important;
}

.auth-btn:active {
  transform: translateY(0px);
}

/* -----------------------------------------------
   LINKS — Enlaces de navegación
   Color azul claro con transición suave
   al pasar el cursor.
   ----------------------------------------------- */
.auth-link {
  color: var(--color-link) !important;
  text-decoration: none !important;
  font-size: 0.85rem;
  transition: color 0.2s ease;
}

.auth-link:hover {
  color: rgba(200, 230, 255, 1) !important;
}

/* -----------------------------------------------
   CHECKBOX — Casilla de "Recordarme"
   Estilizado con acento azul y texto claro.
   ----------------------------------------------- */
input[type="checkbox"].auth-check {
  accent-color: #5b9eff;
  width: 1rem;
  height: 1rem;
  border-radius: 4px;
}

.auth-check-label {
  color: rgba(180, 210, 255, 0.7);
  font-size: 0.85rem;
  font-family: var(--font-cuerpo);
}

/* -----------------------------------------------
   MENSAJES DE ERROR — Validación de formulario
   Color rosado suave, tamaño pequeño para no
   interrumpir la estética del diseño.
   ----------------------------------------------- */
.auth-error {
  color: var(--color-error) !important;
  font-size: 0.8rem;
  margin-top: 0.3rem;
  font-family: var(--font-cuerpo);
}

.auth-error li {
  color: var(--color-error) !important;
}

/* -----------------------------------------------
   TÍTULO DE LA CARD — Texto decorativo
   Fuente serif elegante para dar un toque
   romântico al encabezado del formulario.
   ----------------------------------------------- */
.auth-title {
  font-family: var(--font-titulo);
  color: var(--color-texto);
  font-weight: 300;
  letter-spacing: 0.05em;
  text-align: center;
}

/* -----------------------------------------------
   PARTÍCULAS DE ESTRELLAS — Efecto ambiental
   Pequeños puntos blancos que flotan lentamente
   por la pantalla, simulando estrellas lejanas.
   ----------------------------------------------- */
@keyframes floatStar {
  0%, 100% {
    transform: translateY(0px) translateX(0px);
    opacity: 0.3;
  }
  33% {
    transform: translateY(-8px) translateX(3px);
    opacity: 0.6;
  }
  66% {
    transform: translateY(-4px) translateX(-3px);
    opacity: 0.4;
  }
}

.star-particle {
  position: fixed;
  border-radius: 50%;
  background: white;
  pointer-events: none;
  z-index: 1;
  animation: floatStar linear infinite;
}

/* -----------------------------------------------
   ESTADO DE SESIÓN — Mensaje de status
   Estilo para el componente auth-session-status.
   ----------------------------------------------- */
.auth-session-status {
  color: rgba(100, 220, 150, 0.9);
  font-size: 0.85rem;
  font-family: var(--font-cuerpo);
  text-align: center;
}
