## What does this PR do? ## Related Issue ## Checklist - [ ] Tests added/updated (if applicable) - [ ] Documentation updated (if applicable) - [ ] ESLint passes (`npm run lint` in backend/ and frontend/) - [ ] Commit messages follow Conventional Commits - [ ] CHANGELOG.md updated under `## [Unreleased]` (for user-facing changes)