diff --git a/index.php b/index.php
index 831ccd4..b85c237 100644
--- a/index.php
+++ b/index.php
@@ -18,6 +18,7 @@ $m3u_url = htmlspecialchars($config["m3u_url"] ?? "");
GridTV — = $group_name ?>
+
@@ -642,6 +670,12 @@ $m3u_url = htmlspecialchars($config["m3u_url"] ?? "");
+
LIVE
@@ -1007,6 +1041,20 @@ function moveTooltip(e) {
}
function hideTooltip() { document.getElementById('tooltip').classList.remove('visible'); }
+
+// ── THÈMES ────────────────────────────────────────────────────────────────────
+function setTheme(theme) {
+ document.getElementById('themeStylesheet').href = 'themes/' + theme + '.css';
+ localStorage.setItem('gridtv-theme', theme);
+ document.getElementById('themeSelect').value = theme;
+}
+
+function initTheme() {
+ const saved = localStorage.getItem('gridtv-theme') || 'default';
+ setTheme(saved);
+}
+initTheme();
+
// ── LIVE UPDATES ──────────────────────────────────────────────────────────────
function startLiveUpdates() {
setInterval(() => { if (!isMobile()) positionNowLine(); }, 30000);
diff --git a/themes/cyberpunk.css b/themes/cyberpunk.css
new file mode 100644
index 0000000..b31d462
--- /dev/null
+++ b/themes/cyberpunk.css
@@ -0,0 +1,26 @@
+/*
+ * GridTV Theme — Cyberpunk
+ * Néons rose/cyan sur noir absolu. Blade Runner.
+ */
+
+@import url('https://fonts.googleapis.com/css2?family=Rajdhani:wght@400;600;700&display=swap');
+
+:root {
+ --bg: #000008;
+ --surface: #080010;
+ --surface2: #100020;
+ --border: #300050;
+ --border-bright: #6000a0;
+ --accent: #ff00cc;
+ --accent2: #00ffee;
+ --accent-live: #ff0040;
+ --text: #dd88ff;
+ --text-dim: #7700bb;
+ --text-bright: #ffddff;
+ --prog-bg: #0a0018;
+ --prog-border: #400070;
+ --prog-live-bg: #180030;
+ --prog-live-border: #ff00cc;
+ --font-ui: 'Rajdhani', sans-serif;
+ --font-mono: 'Share Tech Mono', monospace;
+}
diff --git a/themes/default.css b/themes/default.css
new file mode 100644
index 0000000..068f64b
--- /dev/null
+++ b/themes/default.css
@@ -0,0 +1,26 @@
+/*
+ * GridTV Theme — Default (Dark Studio)
+ * Salle de régie sombre, la base.
+ */
+
+@import url('https://fonts.googleapis.com/css2?family=Share+Tech+Mono&family=Barlow+Condensed:wght@300;400;600;700&display=swap');
+
+:root {
+ --bg: #0a0b0d;
+ --surface: #111318;
+ --surface2: #181b22;
+ --border: #232733;
+ --border-bright: #2e3444;
+ --accent: #e8c842;
+ --accent2: #4a9eff;
+ --accent-live: #ff4444;
+ --text: #c8cdd8;
+ --text-dim: #5a6070;
+ --text-bright: #eef0f5;
+ --prog-bg: #141820;
+ --prog-border: #1e2a3a;
+ --prog-live-bg: #0d2040;
+ --prog-live-border: #4a9eff;
+ --font-ui: 'Barlow Condensed', sans-serif;
+ --font-mono: 'Share Tech Mono', monospace;
+}
diff --git a/themes/magazine.css b/themes/magazine.css
new file mode 100644
index 0000000..95f6d81
--- /dev/null
+++ b/themes/magazine.css
@@ -0,0 +1,26 @@
+/*
+ * GridTV Theme — Magazine (Vieux TV Guide années 60)
+ * Papier jauni, encre rouge et bleue, machine à écrire.
+ */
+
+@import url('https://fonts.googleapis.com/css2?family=Special+Elite&display=swap');
+
+:root {
+ --bg: #f2e8c8;
+ --surface: #ede0b0;
+ --surface2: #e4d49a;
+ --border: #b8a070;
+ --border-bright: #8a7040;
+ --accent: #b01020;
+ --accent2: #1a4a8a;
+ --accent-live: #b01020;
+ --text: #1a0e06;
+ --text-dim: #6a4a20;
+ --text-bright: #0a0602;
+ --prog-bg: #ede0b0;
+ --prog-border: #b8a070;
+ --prog-live-bg: #fff0e0;
+ --prog-live-border: #b01020;
+ --font-ui: 'Special Elite', serif;
+ --font-mono: 'Special Elite', serif;
+}
diff --git a/themes/steampunk.css b/themes/steampunk.css
new file mode 100644
index 0000000..39e029f
--- /dev/null
+++ b/themes/steampunk.css
@@ -0,0 +1,26 @@
+/*
+ * GridTV Theme — Steampunk (Cuivre victorien)
+ * Brun chaud, cuivre, laiton. Très 1880.
+ */
+
+@import url('https://fonts.googleapis.com/css2?family=IM+Fell+English:ital@0;1&display=swap');
+
+:root {
+ --bg: #160e04;
+ --surface: #201408;
+ --surface2: #2c1e0c;
+ --border: #4a2e0a;
+ --border-bright: #7a4e18;
+ --accent: #c87808;
+ --accent2: #e0a020;
+ --accent-live: #cc3000;
+ --text: #d4a050;
+ --text-dim: #7a5428;
+ --text-bright: #f0cc80;
+ --prog-bg: #1c1206;
+ --prog-border: #5a380c;
+ --prog-live-bg: #281800;
+ --prog-live-border: #c87808;
+ --font-ui: 'IM Fell English', serif;
+ --font-mono: 'Share Tech Mono', monospace;
+}