Qué convierte un input en controlado
Debe recibir su valor desde estado y notificar cambios vía `onChange`.
Si usas `value={estado}` pero no actualizas en `onChange`, el input queda bloqueado.
Si usas `defaultValue`, el input arranca con un valor pero deja de estar bajo control total de React.
Para flujos robustos de negocio, lo habitual es usar inputs controlados salvo casos concretos.