:root{
  --fondo:#16222F;
  --texto:#FFFFFF;
  --texto-suave:#ABB6C2;
  --azul:#2196F3;
  --azul-hover:#1B7FD4;
  --blanco:#FFFFFF;
  --gris-input:#9AA4AF;
  --error:#FF6B6B;
  --ok:#4CD98A;
}
*{margin:0;padding:0;box-sizing:border-box;font-family:'Segoe UI',system-ui,-apple-system,sans-serif}
body{
  min-height:100vh;background:var(--fondo);color:var(--texto);
  display:flex;align-items:center;justify-content:center;padding:40px 16px;
}
.contenedor{width:100%;max-width:380px;text-align:center}

/* ---------- Logo ---------- */
.logo{display:flex;align-items:center;justify-content:center;gap:10px;margin-bottom:40px}
.logo span{font-size:26px;font-weight:700;color:var(--azul);letter-spacing:.3px}

/* ---------- Encabezado ---------- */
h1{font-size:27px;font-weight:700;line-height:1.3;margin-bottom:14px}
.subtitulo{color:var(--texto-suave);font-size:15.5px;line-height:1.5;margin-bottom:34px}

/* ---------- Pantallas (para páginas con más de una vista, ej: index) ---------- */
.pantalla{display:none}
.pantalla.activa{display:block;animation:aparecer .3s ease}
@keyframes aparecer{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}

/* ---------- Campos ---------- */
.campo{position:relative;margin-bottom:16px;text-align:left}
.campo input{
  width:100%;padding:15px 16px;border:none;border-radius:6px;
  background:var(--blanco);font-size:15px;color:#2B3440;outline:none;
}
.campo input::placeholder{color:var(--gris-input)}
.campo input.invalido{box-shadow:0 0 0 2px var(--error)}
.campo .toggle-pass{
  position:absolute;right:14px;top:50%;transform:translateY(-50%);
  background:none;border:none;cursor:pointer;color:var(--gris-input);font-size:16px;padding:4px;
}
.campo .toggle-pass:hover{color:#2B3440}
.campo.con-ojo input{padding-right:46px}
.msg-error{font-size:12.5px;color:var(--error);margin-top:6px;display:none}
.msg-error.visible{display:block}

/* ---------- Botón + enlaces ---------- */
.fila-accion{display:flex;align-items:center;justify-content:center;gap:22px;margin-top:6px}
.btn{
  padding:11px 30px;border:none;border-radius:6px;cursor:pointer;
  background:var(--azul);color:var(--blanco);font-size:15px;font-weight:600;
  transition:background .2s;
}
.btn:hover{background:var(--azul-hover)}
.btn-bloque{width:100%;padding:14px}
a.enlace{
  color:var(--texto);font-size:14px;font-weight:600;cursor:pointer;
  text-decoration:underline;text-underline-offset:3px;background:none;border:none;
}
a.enlace:hover{color:var(--azul)}
.enlaces-secundarios{margin-top:22px;display:flex;flex-direction:column;gap:12px;align-items:center}
.enlaces-secundarios a{font-weight:500;font-size:13.5px;color:var(--texto-suave)}
.enlaces-secundarios a:hover{color:var(--azul)}

/* ---------- Alertas ---------- */
.alerta{
  padding:11px 14px;border-radius:6px;font-size:13.5px;margin-bottom:18px;
  display:none;line-height:1.45;text-align:left;
}
.alerta.visible{display:block}
.alerta.error{background:rgba(255,107,107,.12);color:var(--error)}
.alerta.exito{background:rgba(76,217,138,.12);color:var(--ok)}
.alerta.info{background:rgba(33,150,243,.12);color:#7FC3F7}

/* ---------- 2FA ---------- */
.codigos-2fa{display:flex;gap:10px;justify-content:center;margin:26px 0}
.codigos-2fa input{
  width:48px;height:56px;text-align:center;font-size:22px;font-weight:700;
  border:none;border-radius:6px;background:var(--blanco);color:#2B3440;outline:none;
}
.codigos-2fa input:focus{box-shadow:0 0 0 2px var(--azul)}
.codigo-demo{
  background:rgba(33,150,243,.12);border-radius:6px;padding:10px;
  font-size:13px;color:#7FC3F7;margin-bottom:6px;
}
.codigo-demo strong{font-size:18px;letter-spacing:5px;display:block;margin-top:4px;color:var(--blanco)}

/* ---------- Fuerza de contraseña ---------- */
.barra-fuerza{height:5px;border-radius:4px;background:rgba(255,255,255,.15);margin-top:8px;overflow:hidden}
.barra-fuerza span{display:block;height:100%;width:0;border-radius:4px;transition:width .25s,background .25s}
.txt-fuerza{font-size:12px;color:var(--texto-suave);margin-top:5px}

/* ---------- Éxito ---------- */
.icono-exito{
  width:76px;height:76px;border-radius:50%;background:rgba(76,217,138,.12);
  display:flex;align-items:center;justify-content:center;margin:0 auto 22px;
  color:var(--ok);font-size:32px;
}
