Aufgeklappt · Tempo (Klick auf das Tempo-Icon — nur Echtzeit-Sims)
+
Aufgeklappt · Tempo — öffnet LINKS vom Button, bleibt offen (nur Echtzeit-Sims) · 30 % transparent
@@ -339,7 +339,7 @@
Klick öffnet das Tempo-Panel und lässt es offen bis zum erneuten Klick (Toggle) — genauso beim Musik-Player. Der Button selbst zeigt jederzeit den Speed: 1×, 2×, 8× Auto (z. B. Logistik) oder ⏸ Pause. So bleibt der Zustand sichtbar, ohne dass das Panel offen bleiben muss.
-
Aufgeklappt · Musikplayer (Klick auf das Musik-Icon)
+
Aufgeklappt · Musikplayer — klappt nach UNTEN auf, schließt nach Song-Auswahl · 30 % transparent
Ruhige Klänge
@@ -348,7 +348,7 @@
- Aufbau: links die Pille Kreis-Logo · Titel · Level (gleiche Höhe) + Home — rechts Tempo (nur Echtzeit-Sims: Klima, Fluss, Tourismus, Logistik) · Musik · Ton · Neustart · Hilfe · Glossar (neuer Tab). Eigene SVG-Icons im App-Stil. Sim-eigene KPIs (Budget, Jahr …) bleiben in einer eigenen Unterzeile, nicht in der Markenzeile.
+ Aufbau: links die Pille Kreis-Logo · Titel · Level (gleiche Höhe) + Home — rechts Tempo (nur Echtzeit-Sims: Klima, Fluss, Tourismus, Logistik) · Musik · Ton · Neustart · Hilfe · Glossar (neuer Tab). Eigene SVG-Icons im App-Stil. Untermenüs: Tempo öffnet links vom Button und bleibt offen (Zustand steht ohnehin im Button); Musik klappt nach unten auf und schließt nach der Song-Auswahl; beide 30 % transparent hinterlegt als Untermenü-Signal, Toggle per Klick. Sim-eigene KPIs (Budget, Jahr …) bleiben in einer eigenen Unterzeile, nicht in der Markenzeile.
diff --git a/App/teacher.html b/App/teacher.html
index 6e449f1..b4e882d 100644
--- a/App/teacher.html
+++ b/App/teacher.html
@@ -891,6 +891,7 @@ var LIVE_PRIMARY_FIELDS = {
var done = v||0; var c = done>=t ? '#5a8a5e' : '#3d5165';
return ''+done+' / '+t+'';
}},
+ {k:'score', label:'🏆 Punkte', align:'center', fmt:function(v){ return v!=null ? ''+Number(v).toLocaleString('de-AT')+'' : '—'; }},
{k:'ingSolved', label:'Zutaten akt.', fmt:function(v, row){
var s = row.state||{}; var t = s.ingTotal||0;
if (!s.dishName || !t) return '—';
@@ -913,6 +914,7 @@ var LIVE_PRIMARY_FIELDS = {
{k:'lastCityTitle', label:'Letzte Stadt', align:'left'},
{k:'lastMargin', label:'Letzte Marge', unit:'€'},
{k:'quizFirstTry', label:'🧠 1.-Versuch', fmt:function(v, row){ var s=row.state||{}; var t = s.orderIndex || 0; return t ? v+' / '+t : '—'; }},
+ {k:'avgTapKm', label:'📍 Ø km', align:'center', fmt:function(v){ if (v==null) return '—'; var n=Math.round(v); var c = n<=50?'#5a8a5e':n<=150?'#c9913a':'#c07a6b'; return ''+n+' km'; }},
],
'fluggesellschaft': [
{k:'levelId', label:'Stufe', align:'center'},
@@ -991,6 +993,8 @@ var LIVE_PRIMARY_FIELDS = {
{k:'biodiv', label:'🌳 Biodiv.', fmt:function(v){ return _liveBar(v, 0, 100, 'high'); }},
{k:'economy', label:'💰 Wirtsch.', fmt:function(v){ return _liveBar(v, 0, 100, 'high'); }},
{k:'flood', label:'🛡️ Hochw.-Schutz', fmt:function(v){ return _liveBar(v, 0, 100, 'high'); }},
+ {k:'population', label:'👥 Einw.', align:'center', fmt:function(v){ return v!=null ? ''+v+'' : '—'; }},
+ {k:'food', label:'🌾 Ernte', fmt:function(v){ return _liveBar(v, 0, 100, 'high'); }},
{k:'settlementsLost', label:'🏚️ Verlust', align:'center', fmt:function(v){ if (!v) return '0'; var c = v>=3 ? '#c07a6b' : '#c9913a'; return ''+v+''; }},
],
'kofferdetektiv': [