const $ = (selector) => document.querySelector(selector); async function request(url, options = {}) { const response = await fetch(url, { headers: { 'Content-Type': 'application/json' }, ...options }); const data = await response.json(); if (!response.ok) throw new Error(data.error || 'Something went wrong.'); return data; } function escapeHtml(value) { return String(value).replace(/[&<>'"]/g, (character) => ({ '&': '&', '<': '<', '>': '>', "'": ''', '"': '"' }[character])); } function toast(message) { const element = $('#toast'); element.textContent = message; element.classList.add('show'); setTimeout(() => element.classList.remove('show'), 2500); } async function loadUsers() { const users = await request('/api/users'); $('#userCount').textContent = `${users.length} ${users.length === 1 ? 'user' : 'users'}`; $('#usersList').innerHTML = users.map((user) => `