Build a single web application that serves as a multi-sport scoreboard and match reporting system with two views: (1) Control (operador) and (2) TV (tela/LED). All UI labels must be Portuguese (pt-BR). A) Sports & Presets Provide a top selector: Esporte: Vôlei | Basquete | Futsal | Futebol | Handebol. Loading a sport applies a preset (rules/config), but operators can edit. Preset rules (defaults): Vôlei Formato: Sets; Melhor de 5; sets a 25 (vantagem de 2); 5º set = 15. Tempo técnico/Tempo de pedido: 2 por set por equipe. Cronômetro principal: desligado (apenas set/placar). Placar de sets no centro “SET: A × B”. Basquete 4 períodos × 10:00; prorrogação 5:00. 24s de posse (Shot Clock) com controle/reset (24/14). Faltas por período: contar por equipe; após 5 entra Lance Livre/Bônus (flag). Timeouts: 2 no 1º tempo, 3 no 2º tempo (bloquear no último 2:00 conforme regra FIBA opcional toggle). Alternância de posse (seta) no jump ball. Futsal 2 tempos × 20:00 cronometrados; prorrogação 2×5:00. Faltas acumuladas por tempo: após 5 virar Tiro Livre Direto (mostrar contador). Cartões: Amarelo e Vermelho por atleta/equipe (contador simples). Possível tiro livre sem barreira flag quando >5 faltas. Futebol 2 tempos × 45:00; acréscimos (campo “+min”). Cartões: Amarelo e Vermelho; Impedimento (evento). Pênaltis: série configurável (exibir marcador de cobranças A/B). Handebol 2 tempos × 30:00; prorrogação 2×5:00. Exclusões 2 min (contador de penalidade por atleta/equipe simples). Cartões: Amarelo, Vermelho. B) UI (Portuguese) Tabs: Placar, Relatórios, Configurações. Placar (Controle) contém: Time A | Time B (nome editável, cor e logo). Placar grande por equipe (botões + e −). Cronômetro principal: HH:MM:SS com Iniciar / Pausar / Zerar / Ajustar. Período/Tempo/Set atual (Período, Tempo, Set) com + / −. Centrais por esporte: Vôlei: painel SET A × B, Tempo de Pedido A/B, botão Encerrar Set. Basquete: Posse 24s, botões Start/Pause, Reset 24 / Reset 14, Faltas do Time A/B (0–5+), Timeouts. Futsal: Faltas Acumuladas (0–6+) por tempo, Timeout (1 por tempo), Cartões A/B. Futebol: Acréscimos +min, Cartões A/B, Série de Pênaltis com bolinhas clicáveis. Handebol: Exclusões 2:00 por equipe (lista com contagem regressiva), Cartões. Botões gerais: Zerar, Modo TV, Inverter Lados, Som de Pontos (on/off). Linha de eventos rápida: Adicionar Nota, Gol/Ponto/Falta/Cartão/Timeout (gera evento com timestamp). Placar (TV): tela limpa, full screen, sem botões; apresenta nomes dos times, placares grandes, período/tempo/set, cronômetro, e elementos do esporte (ex.: SET A×B; posse/24s; faltas acumuladas; cartões indicadores mínimos). Estilo: fundo laranja, caixas de pontuação azul com dígitos brancos com glow (futurista, como as referências). C) Configurações Esporte (selector) + Preset. Parâmetros editáveis por esporte: duração de períodos/tempos/sets, quantidade de períodos/sets, critério de vitória (vantagem de 2 no vôlei), limites de faltas, timeouts, shot clock (24/14), prorrogação. Árbitros/Anotador, Local, Competição, Data/Hora, Observações. Cores e Logos por time; Fonte digital. Salvar como Preset (cria preset custom). D) Relatórios (integrado a todos os esportes) Fluxo de Partida: Iniciar Partida / Pausar / Retomar / Encerrar Partida. Registrar automaticamente eventos (ponto/gol, faltas, cartões, timeouts, posse/24s reset, início/fim de períodos/sets, pênaltis cobrados). Após encerrar, calcular e salvar: Placar final; Vencedor; Tempo total. Vôlei: sets vencidos, placar por set, maior sequência de pontos por time. Basquete: pontuação por período, faltas por período, timeouts, posse final, aplicação do bônus. Futsal: gols por tempo, faltas acumuladas, cartões. Futebol: gols por tempo, cartões, pênaltis (série). Handebol: gols por tempo, exclusões 2:00, cartões. Relatórios tab: Lista de Partidas (Data/Hora, Esporte, Competição, Time A/B, Placar, Vencedor). Ações: Ver, Exportar, Excluir. Detalhes: cabeçalho (logos, competição, fase, local, árbitros), tabela por período/set, estatísticas, linha do tempo de eventos, observações. Exportar: PDF (A4, estilo do app), CSV (plano) e JSON (completo). Compartilhar: link local (JSON base64) + QR Code. E) Persistência Usar localStorage (multiesporte.partidas e multiesporte.estadoAtual). Restaurar partida em andamento após reload. Backup (download JSON de tudo) e Importar JSON (merge por id). F) Modelo de Dados (genérico) { "id":"uuid","esporte":"volei|basquete|futsal|futebol|handebol", "competicao":"","fase":"","data":"YYYY-MM-DD","hora":"HH:MM","local":"", "arbitro1":"","arbitro2":"","anotador":"", "timeA":{"nome":"TIME A","cor":"#","logo":""}, "timeB":{"nome":"TIME B","cor":"#","logo":""}, "config":{"periodos":4,"duracaoPeriodoSec":600,"sets":0,"pontosSet":25,"vantagem2":true, "shotClockSec":24,"shotClockAltSec":14,"faltasLimite":5,"timeoutsPorTempo":2, "usaProrrogacao":true,"duracaoProrrogacaoSec":300,"regrasEspecificas":{}}, "tempo":{"periodoAtual":1,"setAtual":1,"cronometroSeg":0,"status":"rodando|pausado"}, "placar":{"A":0,"B":0}, "sets":[{"set":1,"pontosA":0,"pontosB":0,"inicio":"HH:MM:SS","fim":"HH:MM:SS"}], "periodos":[{"periodo":1,"golsA":0,"golsB":0,"faltasA":0,"faltasB":0}], "disciplinar":{"cartoesA":{"amarelo":0,"vermelho":0},"cartoesB":{"amarelo":0,"vermelho":0}}, "acumuladas":{"A":0,"B":0}, "posse":{"time":"A|B","shotClock":24}, "penaltis":{"A":[],"B":[]}, "eventos":[{"t":"ISO","tipo":"ponto|gol|falta|cartao|timeout|inicioPeriodo|fimPeriodo|inicioSet|fimSet|penalti","meta":{}}], "totais":{"A":0,"B":0,"setsA":0,"setsB":0}, "vencedor":"A|B|null","duracao":"HH:MM","status":"em_andamento|finalizada","observacoes":"" } G) Técnica & Estilo HTML/CSS/JS puro (sem backend). Responsivo (desktop/tablet) e pronto para LED. Sincronização em tempo real entre Controle e TV (mesmo estado). Estética: fundo laranja, caixas azuis, dígitos brancos com glow, fonte digital/futurista. Hotkeys úteis (opcional): A/Z +/− Time A; K/M +/− Time B; Space start/pause cronômetro; R reset shot clock. H) QA (mínimo) Trocar de esporte aplica preset sem perder partida em andamento (somente se confirmar). Cronômetros, shot clock, faltas/tempo/sets atualizam os relatórios. Exports (PDF/CSV/JSON) funcionam; Import/Backup sem duplicar (dedupe por id). TV reflete mudanças instantaneamente; Zerar não apaga partidas salvas. - Initial Deployment