## Summary
Closes#1.
- Adds real Django unit tests in `schasite/tests.py` (public pages, membership form + form validation, model helpers, calendar helpers, Stripe endpoints with mocks, auth/login_required behavior).
- Includes the dockerize + Gitea Actions CI/CD base so PRs run tests and deploy only after Unit Tests succeed on a `master` push (company_site pattern).
## Test plan
- [x] `DJANGO_ENV=dev DJANGO_SECRET_KEY=test-secret-key uv run python manage.py test schasite` — 30 tests OK
- [ ] Open this PR and confirm Unit Tests / CI workflows run on the self-hosted runner
- [ ] After merge to `master`, confirm Unit Tests run on push and deploy only proceeds when they pass
Reviewed-on: #22
## Summary
- Remove unused `.top-head` / `.top-body` CSS rules that referenced missing GIF files (`top-head.gif`, `top-body.gif`), which caused `whitenoise.storage.MissingFileError` and crashed the prod container at collectstatic/startup.
- Drop a stray `{% load static %}` tag from `style.css` (not a Django template).
- Branch rebased onto current `master` (dockerize already merged via #21); this PR is the CSS-only fix.
## Test plan
- [ ] Merge and let deploy run (or redeploy scha prod).
- [ ] Confirm web container stays up (no WhiteNoise `MissingFileError`).
- [ ] Spot-check site CSS still looks fine on public pages.
- [ ] Separately: if Compose still warns about unset `$…` vars, escape `$` as `$$` in `~/Documents/secrets/scha/scha_prod.env` password/`DATABASE_URL`.
Reviewed-on: #23