Index: src/routes/ward.js
===================================================================
--- src/routes/ward.js	(revision 39dab6b0c3b5fd70bb2f06743430f0014384b3b7)
+++ src/routes/ward.js	(revision 5e0fea7c8a7ddd0a79c47ddf9be36e014aa2d5ed)
@@ -484,4 +484,7 @@
 // De hemel is een eigen module, zodat model en renderer los staan van de rest.
 router.get('/sky.js', pwaAsset('js/ward-sky.js', 'application/javascript'));
+// De themamodule (SkyPalette): app.js importeert hem, dus zonder deze route
+// valt de hele module om op een 404.
+router.get('/theme.js', pwaAsset('js/ward-theme.js', 'application/javascript'));
 router.get('/app.css', pwaAsset('css/ward.css', 'text/css'));
 
Index: test/ward-pwa.test.js
===================================================================
--- test/ward-pwa.test.js	(revision 39dab6b0c3b5fd70bb2f06743430f0014384b3b7)
+++ test/ward-pwa.test.js	(revision 5e0fea7c8a7ddd0a79c47ddf9be36e014aa2d5ed)
@@ -311,2 +311,21 @@
   } finally { server.close(); }
 });
+
+test('elke ge-importeerde module wordt ook geserveerd', async () => {
+  // app.js importeert sky.js en theme.js. Zonder een route valt de hele module
+  // stil op een 404 en doet de pagina niets (Robins dev-check, 12-8: theme.js
+  // gaf 404). Dit bewaakt de koppeling die je aan een screenshot niet ziet.
+  const fs = await import('node:fs');
+  const app = fs.readFileSync(new URL('../src/assets/js/ward.js', import.meta.url), 'utf8');
+  const imports = [...app.matchAll(/from '\/ward\/([\w.-]+)'/g)].map((m) => m[1]);
+  assert.ok(imports.includes('sky.js') && imports.includes('theme.js'), 'verwachtte sky.js + theme.js imports');
+
+  const { server, port } = await listen(appWith({ user: { id: 'u1' } }));
+  try {
+    for (const asset of imports) {
+      const r = await fetch(`http://127.0.0.1:${port}/ward/${asset}`);
+      assert.equal(r.status, 200, `/ward/${asset} werd niet geserveerd`);
+      assert.match(r.headers.get('content-type') || '', /javascript/);
+    }
+  } finally { server.close(); }
+});
