Corrigi o erro movendo Navbar e Footer para o layout.tsx, garantindo que fiquem dentro do ThemeProvider. Removi as renderizações duplicadas de todas as páginas individuais, centralizando a estrutura no layout principal.
Corrigi o ThemeProvider para sempre fornecer o contexto, mesmo durante o SSR. O problema era que o provider retornava apenas os children sem o contexto quando não estava montado, causando o erro no ThemeToggle da Navbar.