- pagos/add.php: nueva página que renderiza el formulario de alta con las
categorías ya cargadas desde PHP/SQLite, sin depender de un fetch
asíncrono a api/categorias.php tras cargar la página.
- pagos/js/add.js: quita cargarCategorias() y la llamada a apiFetch, ya
innecesarias con el nuevo flujo server-side.
- CLAUDE.md: documentar remote real (Gitea, no GitHub), stack técnico y
estructura del proyecto.
- login.html: página de acceso con diseño Quiet Wealth (sin popup del browser)
- api/login.php: endpoint POST para iniciar sesión, GET ?action=logout para cerrarla
- auth.php: valida sesión PHP ($_SESSION) en lugar de HTTP Basic Auth
- ui.js: apiFetch() intercepta 401 y redirige a login.html automáticamente
- Todos los fetch() en dashboard, add y historial migrados a apiFetch()
- Eliminado docker/htpasswd y auth_basic de NGINX
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Auth movida a NGINX (Basic Auth en htpasswd) para que fetch() del browser
incluya credenciales automáticamente — resuelve categorías sin cargar y POST fallido
- Tailwind CDN descargado al build del Docker y servido localmente — elimina
dependencia externa en cada carga de página
- Soporte de teclado físico en add.html (números, punto/coma, Backspace, Enter)
- Layout centrado en desktop con max-w-md mx-auto en las tres páginas
- Eliminada imagen decorativa externa y links de fonts duplicados
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Nueva pantalla historial.html con movimientos agrupados por mes
- Botón eliminar en cada movimiento con modal de confirmación
- js/ui.js: sistema de modales y toasts reutilizables (reemplaza alert/confirm nativos)
- API: endpoint GET ?view=historial y método DELETE en movimientos.php
- add.html: categorías cargadas dinámicamente desde la API
- index.html: "Ver todo" e ícono de nav apuntan a historial.html
- Docker: eliminado volumen nombrado db_data para evitar problemas de permisos
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>