# Dependencies
node_modules/
__pycache__/
*.pyc
.venv/
venv/

# Build
.next/
out/
dist/
build/
*.egg-info/

# Environment
.env
.env.local
.env.production

# IDE
.vscode/
.idea/
*.swp
*.swo

# OS
.DS_Store
Thumbs.db

# Data
*.mmdb
postgres_data/
redis_data/

# Generated artefacts. services/report_generator.py writes PDF reports; none has ever
# been committed, and this keeps it that way.
*.pdf

# next-sitemap output. Regenerated at every `next build` via the postbuild hook, and
# next-sitemap.config.js IS committed, so Vercel produces both at deploy time. Tracking them
# only dirtied the tree after every local build with a lastmod timestamp diff carrying no
# information — and worse, a stale committed sitemap would silently override the config's
# authenticated-route exclusions with whatever the routes were when it was last generated.
frontend/public/sitemap.xml
frontend/public/sitemap-*.xml
frontend/public/robots.txt

# Logs
*.log
celerybeat-schedule

.package-lock.json
.md