All sports
=0?'+':'-'; var abs = Math.abs(min); var hh = Math.floor(abs/60); var mm = abs%60; var label = 'GMT ' + sign + pad(hh) + ':' + pad(mm);
var opt = document.createElement('option'); opt.value = String(min); opt.textContent = label; if (min===preferred) opt.selected = true; frag.appendChild(opt);
});
if (tzSel) tzSel.appendChild(frag);
applyOffset(preferred);
}
function applyOffset(offsetMin){
var nodes = document.querySelectorAll('.schedule__time[data-time]');
nodes.forEach(function(node){
var src = node.getAttribute('data-time'); var t = parseHHMM(src);
if (!t) return; var base = toMinutes(t);
// Base schedule is GMT; add selected offset minutes
var adj = base + offsetMin; node.textContent = fromMinutes(adj);
});
}
if (tzSel) {
buildOptions();
tzSel.addEventListener('change', function(){ var v=parseInt(this.value,10)||0; localStorage.setItem('tzOffsetMin', String(v)); applyOffset(v); });
}
});