Bottom Notification Widget (refator pra padrão topbar)
Substituição do InstallAppFloatingWidget por BottomNotification config-driven (app/components/layout/BottomNotification.tsx). O widget flutuante deixa de ser específico só pra "instalar app" e vira uma fila de tipos configuráveis, espelhando a arquitetura do topbar (types, store, handlers, definitions queue). O componente legado (InstallAppFloatingWidget.tsx, ~200 linhas) foi removido.
Seis tipos de notificação suportados:download_app, push_notify, rewards_available, referral, telegram e tournament. Cada brand define quais ficam habilitados e em qual ordem de prioridade — o primeiro que passa no shouldShow renderiza, igual à lógica do topbar.
Separação dados × runtime:app/config/bottom-notifications.config.ts carrega só dados puros (lista de enabled, rotationDelaySeconds, params por tipo) e é overrideable por brand. A lógica runtime (ícones Lucide, ctaHref/onCta, predicados shouldShow, estratégia de storage) fica em app/layouts/bottom-notification/handlers.ts — não overrideable, espelha 1:1 o buildTopbarDefinitions.
rotationDelaySeconds configurável: com 0 (default) o swap pro próximo widget elegível é instantâneo após dismiss, igual ao topbar. Valores maiores dão um "respiro" antes do próximo slide-up.
Revalidação reativa em auth/rewards: quando o usuário loga, desloga ou ganha um reward, a fila reavalia automaticamente (paridade com o topbar) — sem precisar navegar pra atualizar o estado do widget.
Semana 03–05/04 — Rede 7k chega à Nigéria e à Finlândia
Duas marcas novas nascem no mesmo dia:ng-7k-bet (7c7bcbe0a) e fi-7k-bet (e83078a76) ganham árvore de override completa em overrides/<brand>/app/config/ — tema, features.config.ts, menu.config.ts, sidebar.config.ts, linhas de home/cassino e itens de navegação. O acabamento veio na sequência: 224653ac7 fecha o branding da ng-7k-bet, 750fd7f5c ajusta features e cores da fi-7k-bet, e 0359f4e2e / f6b0ce82c trocam favicon e ícones PWA de cada uma. Como overrides/* é ignorado por padrão no .gitignore, cada marca só passa a ser versionada quando entra na lista de exceções (!overrides/<brand>/) — é esse commit que "cria" a marca aos olhos do git.
Manifest PWA passa a sair do tema (1dff5bffc): theme.config.ts ganha um bloco manifest com theme-color e background-color, e a rota app/routes/manifest[.]json.ts lê dali em vez de ter os valores fixos — o mesmo bloco foi propagado para todos os overrides.
Licenciamento por jurisdição:24d0b6ebf padroniza o texto de licença entre as configs, 7f46e5604 troca o texto da ng-7k-bet para inglês e 9a9a38be0 ajusta o textLicense do licenses.config.ts dessa mesma marca. Marca nova em jurisdição nova não reaproveita o rodapé regulatório brasileiro.
Suporte de país no core:@cactus-agents/country-config ganha suporte ao documento NIN e a localização da Nigéria (8a5d11d) — é dessa config que o registro tira qual documento pedir e como validá-lo.