Use uv sync --frozen so Docker builds consume the pinned uv.lock instead
of resolving issue-core from Forgejo PyPI before that package is mirrored.
Align image.yaml with the canonical container-build template.
Add image.yaml workflow targeting forgejo.coulomb.social; update Dockerfile
for Forgejo PyPI secret names. Point pyproject issue-core index at Forgejo
(uv.lock regen blocked until issue-core is published there).
The Dockerfile asset stage copied only static/src + vite.config.js, never
the HTML templates. Tailwind v4 generates CSS by scanning source files for
class usage, so with no templates present it emitted a stripped CSS with
zero utility classes — breaking layout and ballooning SVG icons (w-5/h-5
no longer applied) on deployed builds.
- main.css: add explicit @source directive for the templates dir so content
detection no longer depends on the build CWD.
- Dockerfile: copy vergabe_teilnahme/templates into the assets stage so the
@source path resolves at build time.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>