<!--
Thanks for contributing to Sencho.

Keep this PR to one concern. Do not include secrets, tokens, credentials,
private keys, or real hostnames/IPs in the diff, commits, or this description.
Report security issues privately (see https://github.com/studio-saelix/sencho/blob/main/SECURITY.md),
not in a public pull request.
-->

## Summary

<!-- What changed, and why. A few sentences is enough. -->

## Type of change

- [ ] Bug fix
- [ ] New feature
- [ ] Documentation
- [ ] Tests
- [ ] Refactor, chore, or CI
- [ ] Breaking change

## Related issue

<!-- `Closes #123` if this fixes an issue. Optional, but preferred. -->

## Testing performed

<!--
What you ran or clicked, and what you observed.
Commands, UI paths, or both. CI passing is not a substitute for this.
-->

## Checklist

- [ ] CLA check must pass ([CLA.md](https://github.com/studio-saelix/sencho/blob/main/CLA.md); you will be prompted on your first PR)
- [ ] Tests added or updated, or this change does not need them
- [ ] Docs updated if user-facing behavior, labels, or defaults changed
- [ ] Lint and typecheck pass locally (`npm run lint` and `npx tsc --noEmit` in `backend/` and/or `frontend/` as applicable)
- [ ] Commit messages and the PR title follow [Conventional Commits](https://www.conventionalcommits.org/) (the CHANGELOG line comes from the subject; do not edit `CHANGELOG.md`)
- [ ] This PR stays on one concern and contains no secrets
