Introduce VPN validation and warning UI, plus related UX and wiring changes.
- Add validation logic and tests: src/utils/validation/vpn.ts and __tests__/vpn.test.ts implement VPN config validation and a compact warning helper (vpnConfigWarning).
- Integrate VPN validation into YAML pipeline (useYamlValidation.ts) so VPN errors are surfaced with other config checks.
- Expand VPN UI: VpnFields and VpnTab get new toggles, Tailscale "serve" controls (target service, ports, protocol, cert domain), network-attachment UI, and an inline configuration warning; styles for warning/serve grid added to styles.css.
- Pass named services/networks through VpnTab and wire up updateVpnNetworks; add Toggle helper component.
- Services UX and tests: hide the trash icon for unnamed/imageless placeholder rows in ServicesTab and add tests (ServicesTab.test.tsx) to cover behavior; adjust removeService in compose-builder to keep a default service row and update selection logic.
- Misc: ensure GHCR image/repo names are lowercased in the CI workflow (.github/workflows/docker-build-push.yml) and minor import/prop updates in compose-builder route.