BUILD 129 – CÁMARA PC / MÓVIL CON FALLBACK AUTOMÁTICO

Base:
- BUILD 128.

Problema observado:
- El visor de cámara abría, pero mostraba:
  "No se encontró una cámara disponible en este dispositivo."

Corrección:
- Escritorio/PC:
  1. Primer intento: video=true (cualquier webcam disponible).
  2. Segundo intento: video=true genérico de compatibilidad.
  3. Si falla, enumerateDevices() busca todas las entradas videoinput.
  4. Se intenta abrir cada cámara detectada mediante deviceId.

- Móvil:
  1. Primer intento: cámara trasera preferida con facingMode=environment.
  2. Si falla, video=true.
  3. Si falla, se recorren cámaras detectadas por deviceId.

Diagnóstico:
- Si no existe videoinput, el mensaje indica que el navegador no detecta cámara.
- Si hay cámaras pero ninguna abre, el mensaje indica revisar dispositivo/permisos.
- NotAllowedError informa bloqueo de permiso.
- NotReadableError informa cámara ocupada/no iniciable.
- Se valida HTTPS mediante window.isSecureContext.

No se abre el explorador desde el botón "Tomar foto con la cámara".
El selector de archivos normal permanece independiente.

Cache:
- serintsa-ticket-paste.js?v=20260815-129
- serintsa-premium.css?v=20260815-129

Validación:
- PHP revisados: 634
- Errores PHP: 0
- JavaScript: node --check OK
