diff --git a/src/public/index.html b/src/public/index.html
index e9b4547..81d2d50 100644
--- a/src/public/index.html
+++ b/src/public/index.html
@@ -177,6 +177,12 @@
onclick="this.select()" />
SEC
+
diff --git a/src/public/script.js b/src/public/script.js
index ffe5ae2..f8f266d 100644
--- a/src/public/script.js
+++ b/src/public/script.js
@@ -303,11 +303,13 @@ function modTimerToggle(){
if(modTimerRunning){
clearInterval(modTimerInterval);modTimerRunning=false;
document.getElementById('btn-timer-ss').textContent='START';
+ document.getElementById('timer-tog').checked=false;
broadcastTimerToPlayers(modTimerRemaining,false);
} else {
if(modTimerRemaining<=0)modTimerLoad();
modTimerRunning=true;
document.getElementById('btn-timer-ss').textContent='PAUSE';
+ document.getElementById('timer-tog').checked=true;
broadcastTimerToPlayers(modTimerRemaining,true);
modTimerInterval=setInterval(()=>{
modTimerRemaining--;
@@ -316,6 +318,7 @@ function modTimerToggle(){
if(modTimerRemaining<=0){
clearInterval(modTimerInterval);modTimerRunning=false;
document.getElementById('btn-timer-ss').textContent='START';
+ document.getElementById('timer-tog').checked=false;
ws_send({type:'close_round'});
toast('TIME UP — round closed','warn');
if(typeof gsap!=='undefined'){
@@ -326,11 +329,35 @@ function modTimerToggle(){
}
}
+function toggleTimerFromSwitch(){
+ modTimerToggle();
+}
+
function renderModTimerDisplay(){
const el=document.getElementById('mod-timer-disp');
const s=modTimerRemaining;
el.textContent=fmtTime(s);
el.className='timer-digits'+(s<=5?' danger':s<=10?' warn':'');
+ const tog=document.getElementById('timer-tog');
+ if(tog)tog.checked=modTimerRunning;
+}
+
+function modTimerLoad(){
+ modTimerRemaining=Math.max(5,parseInt(document.getElementById('mod-timer-set').value)||30);
+ modTimerRunning=false;
+ clearInterval(modTimerInterval);
+ document.getElementById('btn-timer-ss').textContent='START';
+ document.getElementById('timer-tog').checked=false;
+ renderModTimerDisplay();
+}
+
+function modTimerReset(){
+ clearInterval(modTimerInterval);
+ modTimerRunning=false;
+ document.getElementById('timer-tog').checked=false;
+ modTimerRemaining=Math.max(5,parseInt(document.getElementById('mod-timer-set').value)||30);
+ renderModTimerDisplay();
+ broadcastTimerToPlayers(modTimerRemaining,false);
}
function broadcastTimerToPlayers(sec,running){
@@ -396,6 +423,11 @@ function renderMod(){
renderModTeams();
renderRoundButtons();
}
+ renderModBuzz(null);
+ renderModPlayerList();
+ renderModTeams();
+ renderRoundButtons();
+}
function renderModBuzz(evt){
const order=room?.buzzerState?.buzzOrder??[];
@@ -498,6 +530,7 @@ function renderModSettings(){
segActivate('ls-seg-mode',s.mode);
renderLiveTeamNames();
renderRoundButtons();
+ renderModTimerDisplay();
}
function segActivate(groupId,val){