diff --git a/app/views/layouts/application.html.erb b/app/views/layouts/application.html.erb
index de35b91e947d8fb58095e0bfcc7c44c55b899b57..8834e7c0ec49e621cc8c0eb9cbc3cf81569270e5 100644
--- a/app/views/layouts/application.html.erb
+++ b/app/views/layouts/application.html.erb
@@ -18,6 +18,8 @@
           userTheme === 'dark' || ((userTheme === 'auto') && window.matchMedia('(prefers-color-scheme: dark)').matches)
         );
       }
+      const mediaQuery = window.matchMedia('(prefers-color-scheme: dark)');
+      mediaQuery.addEventListener('change', applyDarkmode);
     </script>
   </head>