:root {
  --bg: #121212; /* Fondo más oscuro */
  --card-bg: #2a2a2a;
  --border: #444;
  --accent: #00FF00;
  --text: #FFFFFF;
  --error: #FF4D4F;
  --input-bg: #333;
  --input-border: #555;
  --input-text: #eee;
  --input-placeholder: #bbb;
}

html[data-theme="light"],
body[data-theme="light"] {
  --bg: #f5f6fb;
  --card-bg: #ffffff;
  --border: #d8dbe5;
  --accent: #0f7b37;
  --text: #1b1b1b;
  --input-bg: #f1f3f7;
  --input-border: #cdd3e0;
  --input-text: #1b1b1b;
  --input-placeholder: #6c7280;
}

body {
  margin: 0;
  padding: 0;
  background: var(--bg);
  background-color: var(--bg);
  font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
  color: var(--text);
}


/* --- Contenedor principal --- */
.auth-container {
  background: var(--card-bg);
  border: 1px solid var(--border);
  border-radius: 1rem;
  box-shadow: 0 4px 12px rgba(0,0,0,.6);
  max-width: 420px;
  width: 90%;
  padding: 2rem;
  box-sizing: border-box;
  position: relative;
  transition: border-color .3s, box-shadow .3s, height .6s ease;
  /* elimina cualquier height fijo */
  height: auto !important;
}

/* --- Logo --- */
.brand-logo {
  max-width: 280px;
  width: 100%;
  height: auto;
  display: inline-block;
}

/* --- Theme toggle --- */
.theme-toggle {
  position: absolute;
  top: 12px;
  right: 12px;
  background: transparent;
  color: var(--text);
  border: 1px solid var(--border);
  border-radius: 999px;
  padding: 0.35rem;
  font-size: 0.85rem;
  line-height: 1;
  cursor: pointer;
  transition: background .3s, color .3s, border-color .3s;
  z-index: 2;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
}
.theme-toggle:hover,
.theme-toggle:focus {
  background: var(--accent);
  color: #000;
  border-color: var(--accent);
  outline: none;
}

.theme-icon {
  display: none;
  width: 18px;
  height: 18px;
}
.theme-icon svg {
  width: 100%;
  height: 100%;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
}

html[data-theme="dark"] .theme-icon-moon,
body[data-theme="dark"] .theme-icon-moon {
  display: inline-flex;
}
html[data-theme="light"] .theme-icon-sun,
body[data-theme="light"] .theme-icon-sun {
  display: inline-flex;
}

/* --- Texto secundario blanco sotto "¿No tienes cuenta?" --- */
.auth-container .text-center.mt-3 p {
  color: var(--text);
}
.auth-container .text-center.mt-3 a {
  color: var(--accent);
}

/* --- Flipper 3D --- */
.auth-flipper {
  position: relative;
  overflow: hidden;            /* para que no se vea contenido "volteado" */
  transition: transform .6s ease, height .6s ease;
  transform-style: preserve-3d;
  perspective: 1000px;
}

/* Cada wrapper de formulario ocupa todo el espacio */
.auth-form-wrapper {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  backface-visibility: hidden;
  -webkit-backface-visibility: hidden;
  transform-style: preserve-3d;
  box-sizing: border-box;
  padding-bottom: 1rem;
  transition: opacity .6s ease, transform .6s ease;
  transform-origin: center center;
}

/* Estado inicial de cada formulario */
#login-form    { opacity: 1; pointer-events: auto; }
#register-form { opacity: 0; pointer-events: none; }
#forgot-password-form { opacity: 0; pointer-events: none; }

/* Flip: muestra registro, esconde login */
.auth-flipper.flipped #login-form {
  opacity: 0;
  pointer-events: none;
}
.auth-flipper.flipped #register-form {
  opacity: 1;
  pointer-events: auto;
}

.auth-flipper.show-forgot #login-form,
.auth-flipper.show-forgot #register-form {
  opacity: 0;
  pointer-events: none;
}

.auth-flipper.show-forgot #forgot-password-form {
  opacity: 1;
  pointer-events: auto;
}

/* --- Inputs y botones --- */
.form-control {
  background: var(--input-bg);
  border: 1px solid var(--input-border);
  border-radius: .5rem;
  color: var(--input-text);
  padding: .75rem 1rem;
  margin-bottom: 1rem;
  transition: border-color .3s, box-shadow .3s;
}
.form-control::placeholder {
  color: var(--input-placeholder); /* Placeholder más visible */
}
.form-control:focus {
  border-color: var(--accent);
  box-shadow: 0 0 0 3px rgba(0,255,0,.2);
  outline: none;
}

/* Botones transparentes con borde */
.btn-primary, .btn-success {
  background: transparent;
  color: var(--accent);
  border: 2px solid var(--accent);
  border-radius: .5rem;
  font-weight: bold;
  padding: .75rem;
  width: 100%;
  transition: background .3s, color .3s;
}
.btn-primary:hover, .btn-success:hover {
  background: var(--accent);
  color: #000;
}

/* --- Efecto ERROR / SUCCESS en toda la tarjeta --- */
.auth-container.error {
  border-color: var(--error);
  box-shadow: 0 0 10px rgba(255,0,0,.7);
}
.auth-container.error .form-control,
.auth-container.error .btn {
  border-color: var(--error) !important;
}

.auth-container.success {
  border-color: var(--accent);
  box-shadow: 0 0 10px rgba(0,255,0,.7);
}
.auth-container.success .form-control,
.auth-container.success .btn {
  border-color: var(--accent) !important;
}


#forgot-password-form .text-muted {
  color: var(--text) !important; /* --text is #FFFFFF */
}

/* --- Responsive ● abajo de 576px un poco más compacto --- */
@media (max-width:576px) {
  .auth-container { padding: 1rem; }
  .form-header h2 {
  font-size: 1.5rem;
  margin-bottom: 1rem;
  color: var(--text); /* Asegura que el título sea blanco */
  font-weight: 600;
}
}

/* Small phone adjustments: target 360px and 320px widths */
@media (max-width: 360px) {
  .auth-container { max-width: 340px; width: 96%; padding: 1rem; }
  .form-header h2 { font-size: 1.25rem; }
  .form-control { padding: .6rem .8rem; font-size: 14px; }
  .btn-primary, .btn-success { padding: .6rem; font-size: 14px; }
  .auth-flipper { perspective: 800px; }
}

@media (max-width: 320px) {
  .auth-container { max-width: 300px; width: 98%; padding: .8rem; }
  .form-header h2 { font-size: 1.1rem; }
  .form-control { padding: .5rem .7rem; font-size: 13px; }
  .btn-primary, .btn-success { padding: .5rem; font-size: 13px; }
}
