# Manual resumido aplicado al ZIP Cloudflare

Este ZIP sigue el criterio del manual interno Rev. 01:

- InGe+ debe operar como ecosistema Web + Android + iOS, no como apps separadas.
- Supabase/Postgres es la fuente de verdad.
- No se inventan tablas ni campos nuevos para mobile.
- No se usan claves administrativas en cliente.
- El login debe validar Supabase Auth y luego `profiles.status = ACTIVO`.
- Proyectos y calicatas usan los mismos `id` que Web/Android.
- El modo offline no descarga toda la empresa: el usuario selecciona contenido disponible offline.
- Los cambios se guardan primero localmente y luego pasan a `syncQueue`.
- Los estados esperados son: `local_only`, `pending_upload`, `pending_download`, `synced`, `conflict`, `error`.
- Los archivos/fotos deben guardarse con metadata en tabla y binario en Storage.

Este prototipo sirve para probar en Safari iOS por link de Cloudflare. Para app instalada nativa se debe continuar con Capacitor/Codemagic o Swift nativo según decisión del equipo.
