Port do SEO legado (PR #352): infraestrutura completa de SEO com verificação, JSON-LD e helpers no base, descrições ricas por jogo (games-seo.server.ts) com templating de {brand_name}, conteúdo SEO + JSON-LD por liga em sports-seo.config.ts, e correções de gênero feminino nos artigos (A/Da/Na/Pela/À) para brands com nomes femininos como "vera". Bump de @cactus-agents/i18n para 0.69.0 para consumir as chaves do core ao invés de tabelas de locale inline.
Sistema estruturado de FAQ (mesmo PR #352): rotas, componentes e helpers para FAQs, com bloco GameFaqPreview na página de detalhe do jogo e redirect do FAQ legado. FAQs populadas para 7k-bet-br, cassino-bet-br, vera-bet-br e betpontobet-bet-br (≈725-790 entradas cada em faq.server.ts).
Sino de notificações dinâmico no header (PR #354): novo componente HeaderNotificationBell com badge de notificações pendentes, helper notification-badge.ts (com testes) e topbar rewards_available. Feature flags propagadas para todos os 13 brand overrides; tailwind.config.js recebeu tokens de cor para o badge.
Contraste do sino corrigido (PR #356): em brands onde primary === header-bg, o ícone do sino sumia. Ajuste em HeaderNotificationBell.tsx força token de cor compatível com o fundo do header.
Página de preferências em /user/config (PR #357): nova seção PreferencesSection gated por feature flag userPreferences, com componente reutilizável RadioField, endpoint interno POST /api/user/update-preferences e redirect pós-login para a landing preferida do usuário (landing-preference.ts). Bump de @cactus-agents/accounts para 0.18.0 e @cactus-agents/i18n para 0.70.1.
Stack das opções no mobile (PR #358): PreferencesSection ajustada para empilhar opções verticalmente em telas pequenas ao invés de quebrar layout em flex-row.
Recently-played semeado pela API no login (PR #355): novo endpoint /api/user/last-casino-games autenticado via accounts service, util recently-played.client.ts (118 linhas) com live updates, gate de visibilidade e play-trigger. Feature flag recentlyPlayedSeed propagada para todos os 13 brand overrides. Bump de @cactus-agents/games para 0.21.0.
Suporte a moedas sem decimais (Nigeria) (PR #365): CurrencyInput agora aceita prop obrigatória displayDecimalDigits (vinda de useCountry()) e ajusta display + matemática via centsScale = 10 ** (2 - displayDecimalDigits). Para NGN, digitar "1000" armazena 100000 kobo e exibe ₦ 1,000; contrato do BFF (kobo/centavos) preservado. Free-form rejeita separadores decimais quando displayDecimalDigits=0.
Colapso do formatMoney duplicado: app/utils/money.ts virou adapter fino que delega ao coreFormatMoney de @cactus-agents/accounts. Os 6 consumers React (GameCard, GameIframe, GameStats, GameWinners, WinsCarousel, WinsCombinedWidget, RightPanelWinners) migraram para o hook useFormatMoney() que auto-resolve locale + currency + displayDecimalDigits da AccountsConfig, eliminando prop drilling. AccountsBootstrap propaga displayDecimalDigits da CountryConfig. AmountShortcuts mantém override explícito para 0 decimais (UX de shortcuts limpos cross-brand).
GamesCacheService com displayDecimalDigits: payouts pré-formatados do cache server-side (top-games widget) agora resolvem o número de decimais via getCountryConfig(BRAND_COUNTRY). Sem isso, a home da Nigeria mostraria ₦1,000.00 no top-games e ₦1,000 em todo o resto.
viewport-fit=cover no <meta viewport> (PR #363): correção de gap entre o bottom-nav e a borda inferior no Chrome iOS, principalmente em iPhones com home indicator.
vera-bet-br: nova landing SEO em /lp/apostas-esportivas (PR #361) — config em lps.config.ts + componente dedicado apostas-esportivas.tsx (≈540 linhas). Tipo LpDefinition recebeu campos novos para suportar conteúdo rich.
vera-bet-br: afiliado Clever Advertising ativado (PR #360) via flag affiliateClever. Nova rota /clever (resource route loader-only) que escreve cookie lastclick a partir do utm_source da URL para os scripts 3rd-party da Clever atribuírem conversões. Resposta inclui X-Robots-Tag: noindex, nofollow e Cache-Control: no-store. Brands sem contrato Clever retornam 404. Doc em docs/features/clever/overview.md.
vera-bet-br: novo asset PWA pwa-512x512.png adicionado.
Múltiplas brands: página de empty-state ganhou imagem assets/images/empty.jpg no base e em 7k-bet-br, cassino-bet-br, betpontobet-bet-br e vera-bet-br.
@cactus-agents/games — getUserLastCasinoGames (PR #148): novo método em GamesService, LegacyGamesService e CustomGamesService para buscar últimos jogos do usuário no cassino via BFF. Tipos correspondentes adicionados em types.ts. Consumido pelo endpoint /api/user/last-casino-games do base para semear o recently-played.
Nova doc externa customization/user-preferences e nova doc interna template/user-preferences explicando como configurar o landing-preference e a PreferencesSection.
country-config documentação atualizada com o campo displayDecimalDigits e regras de exibição monetária (zero-decimal para NGN/CLP, 2 decimais default).
Bump de Docusaurus para 3.10.0 e Biome para 2.4.13.