diff --git a/public/admin.html b/public/admin.html
index b05ef1c..aebbcd2 100644
--- a/public/admin.html
+++ b/public/admin.html
@@ -8,7 +8,7 @@
body { margin:0; background:var(--bg); color:var(--text); font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif; }
a { color:var(--pink); }
h1 { color:var(--pink); margin:0; font-size:22px; }
- .wrap { max-width:1000px; margin:0 auto; padding:18px; }
+ .wrap { max-width:1240px; margin:0 auto; padding:18px; }
input, button, select { font:inherit; }
input[type=password], input[type=text], input[type=number] {
background:var(--panel2); border:1px solid var(--border); color:var(--text);
diff --git a/public/js/app.js b/public/js/app.js
index 2caf1b7..7214a81 100644
--- a/public/js/app.js
+++ b/public/js/app.js
@@ -165,6 +165,12 @@ function stopModeWatch() {
}
}
+// Anti-Cheat: Tab-Wechsel/Verstecken beendet den laufenden Lauf sofort (sonst pausiert
+// der Browser die Spielschleife im Hintergrund -> man koennte in Ruhe "spicken").
+document.addEventListener('visibilitychange', () => {
+ if (document.hidden && state && state.running) gameOver();
+});
+
function fieldSize() {
const r = $('field').getBoundingClientRect();
return { w: r.width, h: r.height };