'use strict';

(() => {
  let finished = false;

  function showStartupError(message) {
    if (finished) return;
    const app = document.getElementById('app');
    if (!app) return;

    app.innerHTML = `
      <div style="min-height:100vh;display:flex;align-items:center;justify-content:center;padding:32px;background:#111318;color:#f4f4f4;font-family:Segoe UI,Arial,sans-serif;box-sizing:border-box">
        <div style="width:min(680px,100%);padding:28px;border:1px solid #3b414b;border-radius:14px;background:#191d24;box-shadow:0 18px 60px rgba(0,0,0,.35)">
          <h1 style="margin:0 0 12px;font-size:28px">Não foi possível iniciar o jogo</h1>
          <p style="margin:0 0 14px;line-height:1.55;color:#cfd4dc">${String(message || 'Erro desconhecido.')}</p>
          <p style="margin:0;line-height:1.55;color:#9fa7b2">Fecha esta janela, extrai novamente a pasta completa do ZIP e executa <strong>INICIAR_JOGO.bat</strong>.</p>
        </div>
      </div>`;
  }

  window.realmBootReady = () => {
    finished = true;
    const app = document.getElementById('app');
    if (app) app.removeAttribute('data-starting');
  };

  window.addEventListener('error', event => {
    showStartupError(`Erro de arranque: ${event.message || 'erro de JavaScript'}`);
  });

  window.addEventListener('unhandledrejection', event => {
    const reason = event.reason?.message || event.reason || 'erro inesperado';
    showStartupError(`Erro de arranque: ${reason}`);
  });

  window.setTimeout(() => {
    const app = document.getElementById('app');
    if (!finished && app?.getAttribute('data-starting') === '1') {
      showStartupError('O carregamento demorou demasiado e foi interrompido.');
    }
  }, 8000);
})();
