diff --git a/pygitweb/main.py b/pygitweb/main.py
index 8396ac9..b301254 100644
--- a/pygitweb/main.py
+++ b/pygitweb/main.py
@@ -188,7 +188,7 @@ def git_project_list(
             pr.get('descr') or pr.get('path', "")]
              for pr in list_[:50]]
     )
-    pre = PREAMBLE.render(title=f'{esc_html(config.SITE_NAME)} - Projects')
+    pre = PREAMBLE.render(title=f'{esc_html(config.SITE_NAME)} - Projects', theme="dark")
     return HTMLResponse(f"{pre}<h1>Project List</h1>{table}{POSTAMBLE}")
 
 
@@ -287,7 +287,7 @@ def dispatch(
     if action == "history":
         return git_history(proj, hash_param, file_name)
     # Stub others with minimal response
-    pre = PREAMBLE.render(title=f"{esc_html(action)} - {esc_html(proj)}")
+    pre = PREAMBLE.render(title=f"{esc_html(action)} - {esc_html(proj)}", theme="dark")
     return HTMLResponse(
         f"{pre}<p>Action: {esc_html(action)}</p><p>Project: {esc_html(proj)}</p>{POSTAMBLE}"
     )
@@ -315,7 +315,7 @@ def git_summary(project: str) -> HTMLResponse:
             [esc_html("tree"), f"<a href='/{project}?a=tree&h={head or ''}'>browse</a>"],
         ]
     )
-    pre = PREAMBLE.render(title=f"{esc_html(config.SITE_NAME)} - {project}")
+    pre = PREAMBLE.render(title=f"{esc_html(config.SITE_NAME)} - {project}", theme="dark")
     return HTMLResponse(f"{pre}<h1>{esc_html(project)}</h1>{table}{POSTAMBLE}")
 
 
@@ -350,7 +350,7 @@ def git_blob(project: str, h: str | None, f: str | None, *, raw: bool = False) -
     # HTML view: raw content, escaped for safe display
     text = to_utf8(data) or ""
     body = sanitize(text) or ""
-    pre = PREAMBLE.render(title=f"{esc_html(f)} - {esc_html(project)}")
+    pre = PREAMBLE.render(title=f"{esc_html(f)} - {esc_html(project)}", theme="dark")
     return HTMLResponse(
         f"{pre}<pre class='blob-content'>{body}</pre>{POSTAMBLE}")
 
@@ -392,7 +392,7 @@ def git_tree(project: str, h: str | None, f: str | None) -> HTMLResponse:
             [f'<a href="{link}">{esc_html(name)}</a>', "blob"]
         )
     title_path = f" / {f}" if f else ""
-    pre = PREAMBLE.render(title=f"{esc_html(project)}{esc_html(title_path)} - Tree")
+    pre = PREAMBLE.render(title=f"{esc_html(project)}{esc_html(title_path)} - Tree", theme="dark")
     table = env.get_template("table.html").render(
         cols=["Name", "Type"],
         rows=rows
@@ -413,7 +413,7 @@ def git_forks(project: str, request: Request) -> HTMLResponse:
     for pr in list_:
         path = pr.get("path", "")
         rows.append(f"<tr><td><a href='/{path}'>{esc_html(path)}</a></td></tr>")
-    pre = PREAMBLE.render(title=f"{esc_html(project)} - Forks")
+    pre = PREAMBLE.render(title=f"{esc_html(project)} - Forks", theme="dark")
     return HTMLResponse(
         f"{pre}<h1>Forks of {esc_html(project)}</h1><table>{"".join(rows)}</table>{POSTAMBLE}"
     )
@@ -492,7 +492,7 @@ def git_log(project: str, h: str | None) -> HTMLResponse:
     ref_display = h[:7] if h else "HEAD"
     title = f"Log - {esc_html(project)} @ {esc_html(ref_display)}"
 
-    pre = PREAMBLE.render(title=title)
+    pre = PREAMBLE.render(title=title, theme="dark")
     table = env.get_template("table.html").render(
         cols=["Commit", "Subject", "Author", "Date", "Age"],
         rows=rows
@@ -515,7 +515,7 @@ def git_shortlog(project: str, h: str | None) -> HTMLResponse:
     ref_display = h[:7] if h else "HEAD"
     title = f"Shortlog - {esc_html(project)} @ {esc_html(ref_display)}"
     
-    pre = PREAMBLE.render(title=title)
+    pre = PREAMBLE.render(title=title, theme="dark")
     table = env.get_template("table.html").render(
         cols=["Commit", "Subject", "Author", "Age"],
         rows=rows
@@ -542,7 +542,7 @@ def git_history(project: str, h: str | None, f: str | None) -> HTMLResponse:
 
     ref_display = h[:7] if h else "HEAD"    
     title=f"History - {esc_html(f)} - {esc_html(project)} @ {esc_html(ref_display)}"
-    pre = PREAMBLE.render(title=title)
+    pre = PREAMBLE.render(title=title, theme="dark")
     table = env.get_template("table.html").render(
         cols=["Commit", "Subject", "Author", "Date", "Age"],
         rows=rows
diff --git a/pygitweb/static/main.css b/pygitweb/static/main.css
index ce4d00a..2536d7a 100644
--- a/pygitweb/static/main.css
+++ b/pygitweb/static/main.css
@@ -1,4 +1,6 @@
 @import "./themes/light.css";
+@import "./themes/dark.css";
+@import "./themes/solarized.css";
 
 html {
 	box-sizing: border-box;
diff --git a/pygitweb/static/themes/dark.css b/pygitweb/static/themes/dark.css
index 2fd8805..543df13 100644
--- a/pygitweb/static/themes/dark.css
+++ b/pygitweb/static/themes/dark.css
@@ -1,4 +1,4 @@
-:root, .theme-dark {
+.theme-dark {
 	/* Surfaces */
 	--pgw-bg: #1a1a1e;
 	--pgw-bg-raised: #25252c;
diff --git a/pygitweb/static/themes/light.css b/pygitweb/static/themes/light.css
index 93f97f5..01074df 100644
--- a/pygitweb/static/themes/light.css
+++ b/pygitweb/static/themes/light.css
@@ -1,4 +1,4 @@
-:root, .theme-light {
+.theme-light {
 	--pgw-bg: #fafafa;
 	--pgw-bg-raised: #ffffff;
 	--pgw-bg-muted: #f4f4f5;
diff --git a/pygitweb/static/themes/solarized.css b/pygitweb/static/themes/solarized.css
index 6469376..4186c84 100644
--- a/pygitweb/static/themes/solarized.css
+++ b/pygitweb/static/themes/solarized.css
@@ -1,4 +1,4 @@
-:root, .theme-solarized {
+.theme-solarized {
 	--pgw-bg: #002b36;
 	--pgw-bg-raised: #073642;
 	--pgw-bg-muted: #0d3d4a;
diff --git a/pygitweb/templates/preamble.html b/pygitweb/templates/preamble.html
index 7574ae3..49dfe43 100644
--- a/pygitweb/templates/preamble.html
+++ b/pygitweb/templates/preamble.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html class="theme-dark"><head><title>{{title}}</title>
+<!DOCTYPE html><html class="theme-{{theme}}"><head><title>{{title}}</title>
 <script id="Highlight-script" async src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/highlight.min.js"></script>
 <script id="MathJax-script" async src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/3.2.2/es5/tex-chtml.min.js"></script>
 <script id="GraphViz-script" async src="https://cdnjs.cloudflare.com/ajax/libs/viz.js/1.8.2/viz.js"></script>
