// ─────────────────────────────────────────────────────────────────────────
// data.jsx — Banks, articles, FX rates, government programs, translations
// ─────────────────────────────────────────────────────────────────────────

const COUNTRIES = [
  { code: "pl", flag: "🇵🇱", name: "Polska",     currency: "PLN", rate: 5.86, rateName: "WIBOR 3M",   avg: 6.80, maxLtv: 90, hasProgram: true },
  { code: "de", flag: "🇩🇪", name: "Niemcy",     currency: "EUR", rate: 2.61, rateName: "EURIBOR 3M", avg: 3.85, maxLtv: 100, hasProgram: true },
  { code: "fr", flag: "🇫🇷", name: "Francja",    currency: "EUR", rate: 2.61, rateName: "EURIBOR 3M", avg: 3.45, maxLtv: 110, hasProgram: true },
  { code: "cz", flag: "🇨🇿", name: "Czechy",     currency: "CZK", rate: 3.50, rateName: "PRIBOR 3M",  avg: 5.10, maxLtv: 90, hasProgram: false },
  { code: "hu", flag: "🇭🇺", name: "Węgry",      currency: "HUF", rate: 6.50, rateName: "BUBOR 3M",   avg: 7.20, maxLtv: 80, hasProgram: true },
  { code: "sk", flag: "🇸🇰", name: "Słowacja",   currency: "EUR", rate: 2.61, rateName: "EURIBOR 3M", avg: 4.05, maxLtv: 90, hasProgram: false },
  { code: "nl", flag: "🇳🇱", name: "Holandia",   currency: "EUR", rate: 2.61, rateName: "EURIBOR 3M", avg: 3.95, maxLtv: 100, hasProgram: false },
  { code: "be", flag: "🇧🇪", name: "Belgia",     currency: "EUR", rate: 2.61, rateName: "EURIBOR 3M", avg: 3.55, maxLtv: 90, hasProgram: false },
  { code: "at", flag: "🇦🇹", name: "Austria",    currency: "EUR", rate: 2.61, rateName: "EURIBOR 3M", avg: 3.75, maxLtv: 80, hasProgram: false },
  { code: "lu", flag: "🇱🇺", name: "Luksemburg", currency: "EUR", rate: 2.61, rateName: "EURIBOR 3M", avg: 3.65, maxLtv: 80, hasProgram: false },
  { code: "es", flag: "🇪🇸", name: "Hiszpania",  currency: "EUR", rate: 2.61, rateName: "EURIBOR 3M", avg: 3.60, maxLtv: 80, hasProgram: true },
  { code: "it", flag: "🇮🇹", name: "Włochy",     currency: "EUR", rate: 2.61, rateName: "EURIBOR 3M", avg: 3.75, maxLtv: 80, hasProgram: false },
  { code: "pt", flag: "🇵🇹", name: "Portugalia", currency: "EUR", rate: 2.61, rateName: "EURIBOR 3M", avg: 3.85, maxLtv: 90, hasProgram: false },
  { code: "gr", flag: "🇬🇷", name: "Grecja",     currency: "EUR", rate: 2.61, rateName: "EURIBOR 3M", avg: 4.15, maxLtv: 75, hasProgram: false },
  { code: "ie", flag: "🇮🇪", name: "Irlandia",   currency: "EUR", rate: 2.61, rateName: "EURIBOR 3M", avg: 3.95, maxLtv: 90, hasProgram: true },
  { code: "fi", flag: "🇫🇮", name: "Finlandia",  currency: "EUR", rate: 2.61, rateName: "EURIBOR 3M", avg: 3.70, maxLtv: 85, hasProgram: false },
  { code: "se", flag: "🇸🇪", name: "Szwecja",    currency: "SEK", rate: 2.25, rateName: "STIBOR 3M",  avg: 4.20, maxLtv: 85, hasProgram: false },
  { code: "dk", flag: "🇩🇰", name: "Dania",      currency: "DKK", rate: 2.10, rateName: "CIBOR 3M",   avg: 4.00, maxLtv: 80, hasProgram: false },
  { code: "no", flag: "🇳🇴", name: "Norwegia",   currency: "NOK", rate: 4.50, rateName: "NIBOR 3M",   avg: 5.85, maxLtv: 85, hasProgram: false },
  { code: "ch", flag: "🇨🇭", name: "Szwajcaria", currency: "CHF", rate: 1.50, rateName: "SARON",      avg: 2.45, maxLtv: 80, hasProgram: false },
  { code: "uk", flag: "🇬🇧", name: "W. Brytania", currency: "GBP", rate: 4.50, rateName: "SONIA",     avg: 5.45, maxLtv: 95, hasProgram: true },
  { code: "ro", flag: "🇷🇴", name: "Rumunia",    currency: "RON", rate: 6.50, rateName: "ROBOR 3M",   avg: 7.85, maxLtv: 85, hasProgram: false },
  { code: "bg", flag: "🇧🇬", name: "Bułgaria",   currency: "BGN", rate: 3.20, rateName: "SOFIBOR",    avg: 4.85, maxLtv: 85, hasProgram: false },
  { code: "hr", flag: "🇭🇷", name: "Chorwacja",  currency: "EUR", rate: 2.61, rateName: "EURIBOR 3M", avg: 4.25, maxLtv: 85, hasProgram: false },
  { code: "si", flag: "🇸🇮", name: "Słowenia",   currency: "EUR", rate: 2.61, rateName: "EURIBOR 3M", avg: 3.95, maxLtv: 80, hasProgram: false },
  { code: "ee", flag: "🇪🇪", name: "Estonia",    currency: "EUR", rate: 2.61, rateName: "EURIBOR 3M", avg: 4.50, maxLtv: 85, hasProgram: false },
  { code: "lv", flag: "🇱🇻", name: "Łotwa",      currency: "EUR", rate: 2.61, rateName: "EURIBOR 3M", avg: 4.45, maxLtv: 85, hasProgram: false },
  { code: "lt", flag: "🇱🇹", name: "Litwa",      currency: "EUR", rate: 2.61, rateName: "EURIBOR 3M", avg: 4.35, maxLtv: 85, hasProgram: false },
  { code: "mt", flag: "🇲🇹", name: "Malta",      currency: "EUR", rate: 2.61, rateName: "EURIBOR 3M", avg: 3.55, maxLtv: 90, hasProgram: false },
  { code: "cy", flag: "🇨🇾", name: "Cypr",       currency: "EUR", rate: 2.61, rateName: "EURIBOR 3M", avg: 4.05, maxLtv: 80, hasProgram: false },
];

const BANKS = [
  // ─── Polska (10) ───
  { id: 1,  name: "PKO Bank Polski",       country: "pl", mortgage: 6.49, cash: 9.99,  rrso: 6.80, ltv: 90, prov: 2.0, trend: -0.10 },
  { id: 2,  name: "mBank",                  country: "pl", mortgage: 6.65, cash: 10.49, rrso: 7.05, ltv: 90, prov: 1.5, trend: 0.00 },
  { id: 3,  name: "ING Bank Śląski",        country: "pl", mortgage: 6.59, cash: 9.79,  rrso: 6.95, ltv: 90, prov: 0.0, trend: -0.05 },
  { id: 4,  name: "Santander Bank Polska",  country: "pl", mortgage: 6.79, cash: 10.99, rrso: 7.15, ltv: 80, prov: 2.5, trend: +0.10 },
  { id: 5,  name: "Bank Pekao",             country: "pl", mortgage: 6.55, cash: 9.89,  rrso: 6.92, ltv: 90, prov: 1.0, trend: -0.08 },
  { id: 6,  name: "Millennium",             country: "pl", mortgage: 6.85, cash: 11.20, rrso: 7.25, ltv: 80, prov: 2.0, trend: +0.15 },
  { id: 7,  name: "Citi Handlowy",          country: "pl", mortgage: 6.99, cash: 10.49, rrso: 7.40, ltv: 80, prov: 1.5, trend: 0.00 },
  { id: 8,  name: "Alior Bank",             country: "pl", mortgage: 6.95, cash: 12.49, rrso: 7.35, ltv: 80, prov: 2.0, trend: +0.05 },
  { id: 9,  name: "BNP Paribas Polska",     country: "pl", mortgage: 6.72, cash: 10.20, rrso: 7.10, ltv: 80, prov: 1.5, trend: -0.03 },
  { id: 10, name: "Credit Agricole",        country: "pl", mortgage: 6.69, cash: 10.59, rrso: 7.08, ltv: 80, prov: 1.0, trend: -0.05 },

  // ─── Niemcy (8) ───
  { id: 11, name: "Deutsche Bank",          country: "de", mortgage: 3.65, cash: 5.99,  rrso: 3.92, ltv: 100, prov: 1.0, trend: -0.10 },
  { id: 12, name: "Commerzbank",            country: "de", mortgage: 3.75, cash: 6.49,  rrso: 4.05, ltv: 100, prov: 1.0, trend: 0.00 },
  { id: 13, name: "Sparkasse",              country: "de", mortgage: 3.55, cash: 6.29,  rrso: 3.82, ltv: 100, prov: 0.5, trend: -0.05 },
  { id: 14, name: "DKB",                    country: "de", mortgage: 3.45, cash: 5.79,  rrso: 3.70, ltv: 100, prov: 0.0, trend: -0.08 },
  { id: 15, name: "ING Deutschland",        country: "de", mortgage: 3.59, cash: 5.99,  rrso: 3.85, ltv: 100, prov: 0.0, trend: -0.05 },
  { id: 16, name: "Hypovereinsbank",        country: "de", mortgage: 3.85, cash: 6.79,  rrso: 4.15, ltv: 100, prov: 1.0, trend: +0.05 },
  { id: 17, name: "Postbank",               country: "de", mortgage: 3.70, cash: 6.39,  rrso: 3.98, ltv: 100, prov: 0.5, trend: 0.00 },
  { id: 18, name: "Volksbank",              country: "de", mortgage: 3.79, cash: 6.59,  rrso: 4.05, ltv: 100, prov: 0.5, trend: -0.02 },

  // ─── Francja (8) ───
  { id: 19, name: "BNP Paribas",            country: "fr", mortgage: 3.45, cash: 5.49,  rrso: 3.78, ltv: 110, prov: 0.5, trend: -0.05 },
  { id: 20, name: "Société Générale",       country: "fr", mortgage: 3.55, cash: 5.79,  rrso: 3.85, ltv: 110, prov: 0.5, trend: -0.02 },
  { id: 21, name: "Crédit Agricole",        country: "fr", mortgage: 3.40, cash: 5.39,  rrso: 3.72, ltv: 110, prov: 0.5, trend: -0.08 },
  { id: 22, name: "LCL",                    country: "fr", mortgage: 3.50, cash: 5.69,  rrso: 3.80, ltv: 110, prov: 0.5, trend: -0.03 },
  { id: 23, name: "Banque Populaire",       country: "fr", mortgage: 3.48, cash: 5.59,  rrso: 3.78, ltv: 110, prov: 0.5, trend: -0.04 },
  { id: 24, name: "Caisse d'Épargne",       country: "fr", mortgage: 3.52, cash: 5.65,  rrso: 3.82, ltv: 110, prov: 0.5, trend: -0.02 },
  { id: 25, name: "Crédit Mutuel",          country: "fr", mortgage: 3.45, cash: 5.49,  rrso: 3.75, ltv: 110, prov: 0.5, trend: -0.05 },
  { id: 26, name: "La Banque Postale",      country: "fr", mortgage: 3.60, cash: 5.89,  rrso: 3.95, ltv: 110, prov: 0.5, trend: 0.00 },

  // ─── Czechy (6) ───
  { id: 27, name: "Česká spořitelna",       country: "cz", mortgage: 5.05, cash: 7.99,  rrso: 5.35, ltv: 90, prov: 1.5, trend: -0.15 },
  { id: 28, name: "ČSOB",                   country: "cz", mortgage: 5.15, cash: 8.29,  rrso: 5.48, ltv: 90, prov: 1.5, trend: -0.10 },
  { id: 29, name: "Komerční banka",         country: "cz", mortgage: 5.09, cash: 8.09,  rrso: 5.40, ltv: 90, prov: 1.0, trend: -0.12 },
  { id: 30, name: "Raiffeisenbank",         country: "cz", mortgage: 5.25, cash: 8.45,  rrso: 5.55, ltv: 90, prov: 1.5, trend: -0.08 },
  { id: 31, name: "UniCredit Bank",         country: "cz", mortgage: 5.19, cash: 8.39,  rrso: 5.50, ltv: 90, prov: 1.5, trend: -0.10 },
  { id: 32, name: "MONETA Money Bank",      country: "cz", mortgage: 5.29, cash: 8.49,  rrso: 5.62, ltv: 90, prov: 1.0, trend: -0.05 },

  // ─── Węgry (6) ───
  { id: 33, name: "OTP Bank",               country: "hu", mortgage: 7.15, cash: 11.99, rrso: 7.45, ltv: 80, prov: 1.0, trend: +0.05 },
  { id: 34, name: "K&H Bank",               country: "hu", mortgage: 7.25, cash: 12.29, rrso: 7.55, ltv: 80, prov: 1.5, trend: +0.08 },
  { id: 35, name: "Erste Bank Hungary",     country: "hu", mortgage: 7.19, cash: 12.09, rrso: 7.49, ltv: 80, prov: 1.0, trend: +0.05 },
  { id: 36, name: "CIB Bank",               country: "hu", mortgage: 7.29, cash: 12.39, rrso: 7.62, ltv: 80, prov: 1.5, trend: +0.10 },
  { id: 37, name: "Raiffeisen Hungary",     country: "hu", mortgage: 7.22, cash: 12.19, rrso: 7.52, ltv: 80, prov: 1.5, trend: +0.07 },
  { id: 38, name: "MBH Bank",               country: "hu", mortgage: 7.18, cash: 12.05, rrso: 7.48, ltv: 80, prov: 1.0, trend: +0.05 },

  // ─── Słowacja (5) ───
  { id: 39, name: "Slovenská sporiteľňa",   country: "sk", mortgage: 4.05, cash: 7.49,  rrso: 4.35, ltv: 90, prov: 0.8, trend: -0.05 },
  { id: 40, name: "VÚB banka",              country: "sk", mortgage: 4.15, cash: 7.69,  rrso: 4.42, ltv: 90, prov: 1.0, trend: -0.03 },
  { id: 41, name: "Tatra banka",            country: "sk", mortgage: 4.09, cash: 7.59,  rrso: 4.38, ltv: 90, prov: 0.8, trend: -0.04 },
  { id: 42, name: "ČSOB Slovensko",         country: "sk", mortgage: 4.19, cash: 7.79,  rrso: 4.45, ltv: 90, prov: 1.0, trend: -0.02 },
  { id: 43, name: "Poštová banka",          country: "sk", mortgage: 4.25, cash: 7.89,  rrso: 4.50, ltv: 90, prov: 1.0, trend: 0.00 },

  // ─── Holandia (6) ───
  { id: 44, name: "ING Nederland",          country: "nl", mortgage: 3.95, cash: 6.49,  rrso: 4.20, ltv: 100, prov: 0.0, trend: -0.05 },
  { id: 45, name: "ABN AMRO",               country: "nl", mortgage: 3.99, cash: 6.59,  rrso: 4.25, ltv: 100, prov: 0.5, trend: -0.03 },
  { id: 46, name: "Rabobank",               country: "nl", mortgage: 3.89, cash: 6.39,  rrso: 4.15, ltv: 100, prov: 0.0, trend: -0.05 },
  { id: 47, name: "SNS Bank",               country: "nl", mortgage: 4.05, cash: 6.69,  rrso: 4.30, ltv: 100, prov: 0.5, trend: -0.02 },
  { id: 48, name: "Triodos Bank",           country: "nl", mortgage: 3.95, cash: 6.49,  rrso: 4.18, ltv: 100, prov: 0.0, trend: -0.05 },
  { id: 49, name: "BNP Paribas Fortis",     country: "nl", mortgage: 4.09, cash: 6.79,  rrso: 4.35, ltv: 100, prov: 0.5, trend: 0.00 },

  // ─── Austria (5) ───
  { id: 50, name: "Erste Bank",             country: "at", mortgage: 3.75, cash: 6.29,  rrso: 4.00, ltv: 80, prov: 1.0, trend: -0.05 },
  { id: 51, name: "Raiffeisenbank Austria", country: "at", mortgage: 3.85, cash: 6.49,  rrso: 4.12, ltv: 80, prov: 1.0, trend: -0.02 },
  { id: 52, name: "Bank Austria",           country: "at", mortgage: 3.79, cash: 6.39,  rrso: 4.05, ltv: 80, prov: 1.0, trend: -0.03 },
  { id: 53, name: "BAWAG P.S.K.",           country: "at", mortgage: 3.89, cash: 6.59,  rrso: 4.18, ltv: 80, prov: 1.0, trend: 0.00 },
  { id: 54, name: "Volksbank Wien",         country: "at", mortgage: 3.95, cash: 6.69,  rrso: 4.25, ltv: 80, prov: 1.0, trend: +0.02 },

  // ─── Hiszpania (6) ───
  { id: 55, name: "Santander España",       country: "es", mortgage: 3.55, cash: 5.99,  rrso: 3.85, ltv: 80, prov: 0.5, trend: -0.05 },
  { id: 56, name: "BBVA",                   country: "es", mortgage: 3.60, cash: 6.09,  rrso: 3.90, ltv: 80, prov: 0.5, trend: -0.03 },
  { id: 57, name: "CaixaBank",              country: "es", mortgage: 3.50, cash: 5.89,  rrso: 3.80, ltv: 80, prov: 0.5, trend: -0.05 },
  { id: 58, name: "Bankinter",              country: "es", mortgage: 3.65, cash: 6.19,  rrso: 3.95, ltv: 80, prov: 0.5, trend: -0.02 },
  { id: 59, name: "Sabadell",               country: "es", mortgage: 3.69, cash: 6.29,  rrso: 4.00, ltv: 80, prov: 0.5, trend: 0.00 },
  { id: 60, name: "ING España",             country: "es", mortgage: 3.45, cash: 5.79,  rrso: 3.75, ltv: 80, prov: 0.0, trend: -0.08 },

  // ─── Włochy (6) ───
  { id: 61, name: "Intesa Sanpaolo",        country: "it", mortgage: 3.75, cash: 6.29,  rrso: 4.05, ltv: 80, prov: 0.5, trend: -0.03 },
  { id: 62, name: "UniCredit",              country: "it", mortgage: 3.79, cash: 6.39,  rrso: 4.10, ltv: 80, prov: 0.5, trend: -0.02 },
  { id: 63, name: "BPER Banca",             country: "it", mortgage: 3.85, cash: 6.49,  rrso: 4.15, ltv: 80, prov: 0.5, trend: 0.00 },
  { id: 64, name: "Banco BPM",              country: "it", mortgage: 3.69, cash: 6.19,  rrso: 3.98, ltv: 80, prov: 0.5, trend: -0.05 },
  { id: 65, name: "Crédit Agricole Italia", country: "it", mortgage: 3.72, cash: 6.25,  rrso: 4.02, ltv: 80, prov: 0.5, trend: -0.03 },
  { id: 66, name: "Monte dei Paschi",       country: "it", mortgage: 3.95, cash: 6.69,  rrso: 4.25, ltv: 80, prov: 1.0, trend: +0.02 },

  // ─── Portugalia (5) ───
  { id: 67, name: "Millennium BCP",         country: "pt", mortgage: 3.85, cash: 6.49,  rrso: 4.15, ltv: 90, prov: 0.5, trend: -0.03 },
  { id: 68, name: "Caixa Geral de Depósitos", country: "pt", mortgage: 3.75, cash: 6.29, rrso: 4.05, ltv: 90, prov: 0.5, trend: -0.05 },
  { id: 69, name: "Santander Totta",        country: "pt", mortgage: 3.79, cash: 6.39,  rrso: 4.10, ltv: 90, prov: 0.5, trend: -0.03 },
  { id: 70, name: "Novo Banco",             country: "pt", mortgage: 3.89, cash: 6.59,  rrso: 4.20, ltv: 90, prov: 0.5, trend: 0.00 },
  { id: 71, name: "Banco BPI",              country: "pt", mortgage: 3.82, cash: 6.45,  rrso: 4.12, ltv: 90, prov: 0.5, trend: -0.02 },

  // ─── W. Brytania (6) ───
  { id: 72, name: "HSBC UK",                country: "uk", mortgage: 5.25, cash: 8.99,  rrso: 5.55, ltv: 95, prov: 0.0, trend: -0.10 },
  { id: 73, name: "Barclays",               country: "uk", mortgage: 5.35, cash: 9.19,  rrso: 5.65, ltv: 95, prov: 0.0, trend: -0.05 },
  { id: 74, name: "Lloyds Bank",            country: "uk", mortgage: 5.29, cash: 9.09,  rrso: 5.60, ltv: 95, prov: 0.0, trend: -0.08 },
  { id: 75, name: "NatWest",                country: "uk", mortgage: 5.45, cash: 9.29,  rrso: 5.75, ltv: 95, prov: 0.0, trend: -0.05 },
  { id: 76, name: "Santander UK",           country: "uk", mortgage: 5.39, cash: 9.19,  rrso: 5.68, ltv: 95, prov: 0.0, trend: -0.06 },
  { id: 77, name: "Nationwide",             country: "uk", mortgage: 5.19, cash: 8.89,  rrso: 5.48, ltv: 95, prov: 0.0, trend: -0.10 },

  // ─── Belgia (4) ───
  { id: 78, name: "KBC",                    country: "be", mortgage: 3.55, cash: 5.99,  rrso: 3.85, ltv: 90, prov: 0.5, trend: -0.03 },
  { id: 79, name: "BNP Paribas Fortis",     country: "be", mortgage: 3.59, cash: 6.09,  rrso: 3.90, ltv: 90, prov: 0.5, trend: -0.02 },
  { id: 80, name: "ING Belgium",            country: "be", mortgage: 3.49, cash: 5.89,  rrso: 3.78, ltv: 90, prov: 0.0, trend: -0.05 },
  { id: 81, name: "Belfius",                country: "be", mortgage: 3.65, cash: 6.19,  rrso: 3.95, ltv: 90, prov: 0.5, trend: 0.00 },

  // ─── Skandynawia (Szwecja 4, Dania 4, Norwegia 4) ───
  { id: 82, name: "Swedbank",               country: "se", mortgage: 4.25, cash: 7.49,  rrso: 4.55, ltv: 85, prov: 0.5, trend: -0.05 },
  { id: 83, name: "Nordea Sverige",         country: "se", mortgage: 4.19, cash: 7.39,  rrso: 4.48, ltv: 85, prov: 0.5, trend: -0.08 },
  { id: 84, name: "SEB",                    country: "se", mortgage: 4.29, cash: 7.59,  rrso: 4.60, ltv: 85, prov: 0.5, trend: -0.03 },
  { id: 85, name: "Handelsbanken",          country: "se", mortgage: 4.15, cash: 7.29,  rrso: 4.45, ltv: 85, prov: 0.5, trend: -0.10 },
  { id: 86, name: "Danske Bank",            country: "dk", mortgage: 4.00, cash: 7.19,  rrso: 4.30, ltv: 80, prov: 0.5, trend: -0.05 },
  { id: 87, name: "Nordea Danmark",         country: "dk", mortgage: 4.05, cash: 7.29,  rrso: 4.35, ltv: 80, prov: 0.5, trend: -0.03 },
  { id: 88, name: "Jyske Bank",             country: "dk", mortgage: 4.10, cash: 7.39,  rrso: 4.40, ltv: 80, prov: 0.5, trend: 0.00 },
  { id: 89, name: "Sydbank",                country: "dk", mortgage: 4.09, cash: 7.35,  rrso: 4.38, ltv: 80, prov: 0.5, trend: -0.02 },
  { id: 90, name: "DNB",                    country: "no", mortgage: 5.85, cash: 9.49,  rrso: 6.15, ltv: 85, prov: 0.5, trend: -0.08 },
  { id: 91, name: "Nordea Norge",           country: "no", mortgage: 5.89, cash: 9.59,  rrso: 6.20, ltv: 85, prov: 0.5, trend: -0.05 },
  { id: 92, name: "SpareBank 1",            country: "no", mortgage: 5.79, cash: 9.39,  rrso: 6.10, ltv: 85, prov: 0.5, trend: -0.10 },
  { id: 93, name: "Handelsbanken Norge",    country: "no", mortgage: 5.95, cash: 9.69,  rrso: 6.28, ltv: 85, prov: 0.5, trend: -0.02 },

  // ─── Szwajcaria (4) ───
  { id: 94, name: "UBS",                    country: "ch", mortgage: 2.45, cash: 5.49,  rrso: 2.75, ltv: 80, prov: 0.5, trend: -0.05 },
  { id: 95, name: "Credit Suisse",          country: "ch", mortgage: 2.55, cash: 5.69,  rrso: 2.85, ltv: 80, prov: 0.5, trend: 0.00 },
  { id: 96, name: "Raiffeisen Schweiz",     country: "ch", mortgage: 2.39, cash: 5.39,  rrso: 2.68, ltv: 80, prov: 0.5, trend: -0.08 },
  { id: 97, name: "PostFinance",            country: "ch", mortgage: 2.49, cash: 5.59,  rrso: 2.78, ltv: 80, prov: 0.5, trend: -0.03 },

  // ─── Irlandia + Rumunia + Bułgaria (mix) ───
  { id: 98,  name: "AIB",                    country: "ie", mortgage: 3.95, cash: 6.99,  rrso: 4.25, ltv: 90, prov: 0.0, trend: -0.05 },
  { id: 99,  name: "Bank of Ireland",        country: "ie", mortgage: 4.05, cash: 7.19,  rrso: 4.35, ltv: 90, prov: 0.0, trend: -0.03 },
  { id: 100, name: "PTSB",                   country: "ie", mortgage: 4.15, cash: 7.29,  rrso: 4.45, ltv: 90, prov: 0.0, trend: 0.00 },
  { id: 101, name: "Banca Transilvania",     country: "ro", mortgage: 7.85, cash: 12.49, rrso: 8.15, ltv: 85, prov: 1.0, trend: +0.10 },
  { id: 102, name: "BCR (Erste)",            country: "ro", mortgage: 7.95, cash: 12.69, rrso: 8.25, ltv: 85, prov: 1.0, trend: +0.05 },
  { id: 103, name: "Raiffeisen Bank Romania",country: "ro", mortgage: 7.89, cash: 12.59, rrso: 8.20, ltv: 85, prov: 1.0, trend: +0.08 },
  { id: 104, name: "UniCredit Bulbank",      country: "bg", mortgage: 4.85, cash: 8.49,  rrso: 5.15, ltv: 85, prov: 0.5, trend: -0.05 },
  { id: 105, name: "DSK Bank",               country: "bg", mortgage: 4.79, cash: 8.39,  rrso: 5.10, ltv: 85, prov: 0.5, trend: -0.08 },
  { id: 106, name: "Postbank Bulgaria",      country: "bg", mortgage: 4.95, cash: 8.59,  rrso: 5.25, ltv: 85, prov: 0.5, trend: 0.00 },
];

const FX = [
  { pair: "EUR/PLN", value: 4.2648, d24: +0.31, d7: +0.18, source: "NBP" },
  { pair: "USD/PLN", value: 3.9812, d24: -0.15, d7: -0.22, source: "NBP" },
  { pair: "CHF/PLN", value: 4.4901, d24: +0.08, d7: +0.05, source: "NBP" },
  { pair: "GBP/PLN", value: 5.2240, d24: -0.12, d7: +0.04, source: "NBP" },
  { pair: "CZK/PLN", value: 0.1735, d24: +0.04, d7: -0.01, source: "NBP" },
  { pair: "SEK/PLN", value: 0.3815, d24: -0.05, d7: +0.12, source: "NBP" },
];

const REFERENCE_RATES = [
  { code: "WIBOR3M",   name: "WIBOR 3M",    value: 5.86, change: 0.00, trend: [5.95, 5.92, 5.90, 5.88, 5.87, 5.86, 5.86] },
  { code: "EURIBOR3M", name: "EURIBOR 3M",  value: 2.61, change: -0.04, trend: [2.75, 2.72, 2.68, 2.66, 2.64, 2.62, 2.61] },
  { code: "ECB",       name: "Stopa ECB",   value: 2.40, change: 0.00, trend: [2.65, 2.65, 2.50, 2.50, 2.40, 2.40, 2.40] },
  { code: "NBP",       name: "Stopa NBP",   value: 5.75, change: 0.00, trend: [5.75, 5.75, 5.75, 5.75, 5.75, 5.75, 5.75] },
  { code: "PRIBOR3M",  name: "PRIBOR 3M",   value: 3.50, change: -0.05, trend: [3.65, 3.62, 3.58, 3.55, 3.52, 3.50, 3.50] },
  { code: "SARON",     name: "SARON",       value: 1.50, change: 0.00, trend: [1.55, 1.55, 1.50, 1.50, 1.50, 1.50, 1.50] },
];

const PROGRAMS = [
  { id: "rkm",   country: "pl", icon: "🏠", name: "Rodzinny Kredyt Mieszkaniowy",
    short: "Dopłata BGK do raty kredytu hipotecznego dla rodzin.",
    benefit: "do 600 zł/mies. przez 10 lat",
    eligible: "Małżeństwa, rodzice samotnie wychowujący dzieci. Brak innej nieruchomości." },
  { id: "kfw",   country: "de", icon: "🏗️", name: "KfW Wohneigentumsprogramm",
    short: "Niskoprocentowy kredyt na pierwsze mieszkanie w Niemczech.",
    benefit: "do 100 000 € na 25 lat",
    eligible: "Rezydenci DE kupujący pierwsze własne mieszkanie." },
  { id: "ptz",   country: "fr", icon: "🇫🇷", name: "Prêt à Taux Zéro (PTZ)",
    short: "Kredyt bezodsetkowy dla pierwszego mieszkania we Francji.",
    benefit: "0% odsetek, do 40% wartości",
    eligible: "Pierwsze nabycie nieruchomości, limity dochodowe." },
  { id: "pierwsze", country: "pl", icon: "🔑", name: "Konto Mieszkaniowe — premia",
    short: "Premia rządowa do regularnych oszczędności na mieszkanie.",
    benefit: "do 15% odłożonych środków",
    eligible: "Osoby do 45 r.ż., brak własnej nieruchomości." },
  { id: "csok",  country: "hu", icon: "👨‍👩‍👧", name: "CSOK Plusz",
    short: "Subsydiowany kredyt na mieszkanie dla rodzin (HU).",
    benefit: "stała stopa 3% do 50 mln HUF",
    eligible: "Małżeństwa z dziećmi, planujący kolejne dziecko." },
  { id: "kapital", country: "pl", icon: "💎", name: "Bezpieczny Kredyt 2%",
    short: "Następca BK 2%. Stała stopa, dopłata do raty.",
    benefit: "stała stopa 2% przez 10 lat",
    eligible: "Osoby do 35 r.ż., pierwsze mieszkanie." },
];

const ARTICLES = [
  { id: 1, slug: "wibor-spada-jak-przeliczyc-rate",
    title: "WIBOR spada — czy warto teraz przeliczyć ratę kredytu?",
    cat: "Kredyt hipoteczny",
    excerpt: "Stawka WIBOR 3M ustabilizowała się na 5,86%. Sprawdzamy, co to znaczy dla obecnych kredytobiorców i kiedy ma sens przeliczenie raty.",
    date: "2026-05-12", read: 7, author: "Redakcja",
    img: "linear-gradient(135deg, oklch(0.55 0.18 248), oklch(0.40 0.20 270))",
    tag: "Analiza" },
  { id: 2, slug: "kredyt-w-euro-czy-w-zlotowkach",
    title: "Kredyt hipoteczny w EUR czy w PLN — co wybrać w 2026?",
    cat: "Kredyt w EUR",
    excerpt: "Różnica oprocentowania to dziś ponad 3 punkty procentowe. Ale ryzyko walutowe jest realne — pokazujemy na liczbach kiedy to się opłaca.",
    date: "2026-05-08", read: 9, author: "Redakcja",
    img: "linear-gradient(135deg, oklch(0.72 0.14 80), oklch(0.55 0.18 60))",
    tag: "Poradnik" },
  { id: 3, slug: "rodzinny-kredyt-mieszkaniowy-2026",
    title: "Rodzinny Kredyt Mieszkaniowy 2026 — kto może skorzystać?",
    cat: "Programy rządowe",
    excerpt: "Nowa wersja programu dopłat. Limity, warunki, co się zmieniło i jak złożyć wniosek krok po kroku.",
    date: "2026-05-04", read: 11, author: "Redakcja",
    img: "linear-gradient(135deg, oklch(0.65 0.15 155), oklch(0.45 0.18 175))",
    tag: "Programy" },
  { id: 4, slug: "bik-jak-poprawic-scoring",
    title: "Scoring BIK — 7 rzeczy, które realnie poprawiają wynik",
    cat: "Finanse osobiste",
    excerpt: "Bank patrzy na historię w BIK przed każdą decyzją. Co naprawdę wpływa na scoring, a co to mit?",
    date: "2026-04-28", read: 6, author: "Redakcja",
    img: "linear-gradient(135deg, oklch(0.65 0.18 25), oklch(0.45 0.20 350))",
    tag: "BIK" },
  { id: 5, slug: "rrso-vs-oprocentowanie",
    title: "RRSO vs oprocentowanie nominalne — gdzie banki ukrywają koszty",
    cat: "Poradnik",
    excerpt: "Porównujemy 10 ofert i pokazujemy, dlaczego niskie oprocentowanie nie zawsze oznacza tani kredyt.",
    date: "2026-04-22", read: 8, author: "Redakcja",
    img: "linear-gradient(135deg, oklch(0.50 0.20 248), oklch(0.65 0.16 220))",
    tag: "Poradnik" },
  { id: 6, slug: "kredyt-konsolidacyjny-kiedy-ma-sens",
    title: "Kredyt konsolidacyjny — kiedy faktycznie się opłaca?",
    cat: "Kredyt gotówkowy",
    excerpt: "Konsolidacja nie zawsze jest tańsza. Pokazujemy w jakich sytuacjach wydłużenie spłaty to pułapka.",
    date: "2026-04-18", read: 7, author: "Redakcja",
    img: "linear-gradient(135deg, oklch(0.55 0.20 350), oklch(0.45 0.22 320))",
    tag: "Analiza" },
];

// Extend article base to 18 entries and ensure all cards use photo assets.
[
  "https://picsum.photos/id/1011/1600/900",
  "https://picsum.photos/id/1015/1600/900",
  "https://picsum.photos/id/1024/1600/900",
  "https://picsum.photos/id/1033/1600/900",
  "https://picsum.photos/id/1043/1600/900",
  "https://picsum.photos/id/1050/1600/900",
].forEach((url, idx) => {
  if (ARTICLES[idx]) ARTICLES[idx].img = `center/cover no-repeat url('${url}')`;
});

ARTICLES.push(
  { id: 7, slug: "wkad-wlasny-10-vs-20-procent",
    title: "Wklad wlasny 10% vs 20%: jak zmienia rate i marze",
    cat: "Kredyt hipoteczny",
    excerpt: "Mniejszy wklad przyspiesza zakup, ale podnosi koszt finansowania i ryzyko LTV.",
    date: "2026-05-08", read: 9, author: "Redakcja",
    img: "center/cover no-repeat url('https://picsum.photos/id/1060/1600/900')",
    tag: "Poradnik" },
  { id: 8, slug: "nadplata-kredytu-czy-lokata",
    title: "Nadplata kredytu czy lokata: co bardziej sie oplaca",
    cat: "Finanse osobiste",
    excerpt: "Proste porownanie netto po podatku i inflacji dla kilku horyzontow czasowych.",
    date: "2026-05-06", read: 8, author: "Redakcja",
    img: "center/cover no-repeat url('https://picsum.photos/id/1067/1600/900')",
    tag: "Analiza" },
  { id: 9, slug: "stala-czy-zmienna-stopa-2026",
    title: "Stala czy zmienna stopa procentowa w 2026 roku",
    cat: "Kredyt hipoteczny",
    excerpt: "Jak wybrac model raty przy niepewnych decyzjach bankow centralnych w Europie.",
    date: "2026-05-04", read: 10, author: "Redakcja",
    img: "center/cover no-repeat url('https://picsum.photos/id/1076/1600/900')",
    tag: "Strategia" },
  { id: 10, slug: "zdolnosc-kredytowa-umowa-b2b",
    title: "Zdolnosc kredytowa na B2B: co bank liczy najscislej",
    cat: "Kredyt hipoteczny",
    excerpt: "Dochody, koszty i staz dzialalnosci: jak przygotowac dokumenty, by nie stracic punktow.",
    date: "2026-05-02", read: 9, author: "Redakcja",
    img: "center/cover no-repeat url('https://picsum.photos/id/1080/1600/900')",
    tag: "Praktyka" },
  { id: 11, slug: "jak-czytac-umowe-kredytowa",
    title: "Jak czytac umowe kredytowa bez bledow",
    cat: "Poradnik",
    excerpt: "Najwazniejsze zapisy: marza, prowizja, warunki dodatkowe i koszt wczesniejszej splaty.",
    date: "2026-04-30", read: 12, author: "Redakcja",
    img: "center/cover no-repeat url('https://picsum.photos/id/1084/1600/900')",
    tag: "Umowa" },
  { id: 12, slug: "hipoteka-dla-singla-vs-pary",
    title: "Hipoteka dla singla vs pary: roznice w punktacji",
    cat: "Kredyt hipoteczny",
    excerpt: "Jak gospodarstwo domowe i wspolwnioskodawca wplywaja na decyzje kredytowa.",
    date: "2026-04-28", read: 8, author: "Redakcja",
    img: "center/cover no-repeat url('https://picsum.photos/id/1081/1600/900')",
    tag: "Analiza" },
  { id: 13, slug: "kredyt-energooszczedny-eu",
    title: "Kredyt na dom energooszczedny: ulgi i bonusy w UE",
    cat: "Programy rzadowe",
    excerpt: "Przeglad doplat i ulg dla nieruchomosci o lepszej klasie energetycznej.",
    date: "2026-04-26", read: 9, author: "Redakcja",
    img: "center/cover no-repeat url('https://picsum.photos/id/1040/1600/900')",
    tag: "Programy" },
  { id: 14, slug: "kredyt-gotowkowy-na-firme-czy-prywatnie",
    title: "Kredyt gotowkowy na firme czy prywatnie",
    cat: "Kredyt gotowkowy",
    excerpt: "Raty, podatki i odpowiedzialnosc: kiedy lepiej finansowac zakup jako firma.",
    date: "2026-04-24", read: 7, author: "Redakcja",
    img: "center/cover no-repeat url('https://picsum.photos/id/1021/1600/900')",
    tag: "Poradnik" },
  { id: 15, slug: "jak-przygotowac-sie-do-rozmowy-z-doradca",
    title: "Jak przygotowac sie do rozmowy z doradca kredytowym",
    cat: "Poradnik",
    excerpt: "Lista pytan i dokumentow, ktore warto miec gotowe przed pierwszym spotkaniem.",
    date: "2026-04-22", read: 6, author: "Redakcja",
    img: "center/cover no-repeat url('https://picsum.photos/id/1027/1600/900')",
    tag: "Checklist" },
  { id: 16, slug: "refinansowanie-kiedy-oplaca-sie-zmienic-bank",
    title: "Refinansowanie: kiedy oplaca sie zmienic bank",
    cat: "Kredyt hipoteczny",
    excerpt: "Przeliczamy punkt oplacalnosci po uwzglednieniu prowizji i kosztow notarialnych.",
    date: "2026-04-20", read: 10, author: "Redakcja",
    img: "center/cover no-repeat url('https://picsum.photos/id/1038/1600/900')",
    tag: "Analiza" },
  { id: 17, slug: "euribor-i-ecb-co-to-znaczy-dla-rat",
    title: "EURIBOR i decyzje ECB: co to znaczy dla rat",
    cat: "Kredyt w EUR",
    excerpt: "Jak zmiany stopy depozytowej przechodza na marze i koszt kredytow walutowych.",
    date: "2026-04-18", read: 8, author: "Redakcja",
    img: "center/cover no-repeat url('https://picsum.photos/id/1048/1600/900')",
    tag: "Rynki" },
  { id: 18, slug: "budzet-domowy-przed-zaciagnieciem-kredytu",
    title: "Budzet domowy przed kredytem: plan 90 dni",
    cat: "Finanse osobiste",
    excerpt: "Prosty plan poprawy DTI i poduszki bezpieczenstwa przed zlozeniem wniosku.",
    date: "2026-04-16", read: 7, author: "Redakcja",
    img: "center/cover no-repeat url('https://picsum.photos/id/1059/1600/900')",
    tag: "Plan" }
);

const FAQS = [
  { q: "Czy KreditEU pobiera moje dane?",
    a: "Nie. Wszystkie obliczenia dzieją się w Twojej przeglądarce. Nie zapisujemy, nie przesyłamy danych z kalkulatora na żadne serwery, nie wymagamy logowania." },
  { q: "Czy to oferta kredytowa?",
    a: "Nie. KreditEU to bezpłatne narzędzie informacyjne. Wyniki mają charakter wyłącznie poglądowy i nie stanowią oferty w rozumieniu Kodeksu cywilnego." },
  { q: "Skąd bierzecie oprocentowanie banków?",
    a: "Z publicznie dostępnych cenników banków, aktualizowanych przez naszych redaktorów średnio raz w tygodniu. Datę ostatniej aktualizacji widzisz na liście banków." },
  { q: "Czy mogę porównać kredyty w różnych krajach?",
    a: "Tak. Wybierz kraj w prawym górnym rogu — kalkulator automatycznie podstawi lokalną walutę, stopę bazową i programy rządowe (jeśli istnieją)." },
  { q: "Co to jest analiza AI?",
    a: "To opcjonalna funkcja, która na podstawie wprowadzonych przez Ciebie wartości (kwota, dochód, zobowiązania) szacuje prawdopodobieństwo otrzymania kredytu. Przekazujemy do AI wyłącznie anonimowe liczby." },
  { q: "Jak liczona jest rata?",
    a: "Stosujemy wzór annuitetowy: R = K · (r·(1+r)^n) / ((1+r)^n − 1), gdzie K — kwota kredytu, r — miesięczna stopa, n — liczba rat. Dla rat malejących liczymy oddzielnie kapitał i odsetki." },
  { q: "Czy wartości w kalkulatorze obejmują wszystkie koszty?",
    a: "Pokazujemy ratę, prowizję i odsetki. Nie uwzględniamy automatycznie kosztu ubezpieczenia, opłat notarialnych ani podatku PCC — te pozycje warto skalkulować oddzielnie." },
  { q: "Czemu strona wyświetla reklamy?",
    a: "KreditEU jest w pełni bezpłatne, a reklamy Google AdSense pokrywają koszty utrzymania serwisu i pracy redakcji. Staramy się je projektować tak, aby nie przeszkadzały w korzystaniu." },
];

// ─────────────────────────────────────────────────────────────────────────
// Tiles configuration (editable via admin panel)
// ─────────────────────────────────────────────────────────────────────────

const DEFAULT_TILES = [
  { id: "calc",      kind: "calc",      size: "xl", title: "Oblicz ratę kredytu",        sub: "Hipoteczny • Gotówkowy • EUR vs PLN" },
  { id: "wibor",     kind: "rate",      size: "sm", title: "WIBOR 3M",  code: "WIBOR3M" },
  { id: "euribor",   kind: "rate",      size: "sm", title: "EURIBOR 3M", code: "EURIBOR3M" },
  { id: "fx",        kind: "fx",        size: "md", title: "Kursy walut",                sub: "NBP / ECB live" },
  { id: "banks",     kind: "banks",     size: "md", title: "Top 5 banków",               sub: "Najniższe oprocentowanie hipoteczne" },
  { id: "programs",  kind: "programs",  size: "md", title: "Programy rządowe",           sub: "Dopłaty i wsparcie w 7 krajach" },
  { id: "ai",        kind: "ai",        size: "md", title: "Analiza AI zdolności",       sub: "Sprawdź szanse na kredyt w 30 sek." },
  { id: "ad-mid",    kind: "ad",        size: "md", title: "Reklama (in-grid)" },
  { id: "compare",   kind: "compare",   size: "md", title: "EUR vs PLN",                 sub: "Porównaj koszt kredytu w dwóch walutach" },
  { id: "changes",   kind: "changes",   size: "md", title: "Ostatnie zmiany stóp",       sub: "Banki które obniżyły lub podniosły w tym tygodniu" },
  { id: "articles",  kind: "articles",  size: "full", title: "Świeże z bazy wiedzy",     sub: "Praktyczna wiedza i analizy aktualnych zmian rynkowych" },
];

// ─────────────────────────────────────────────────────────────────────────
// i18n — header & footer + key labels
// ─────────────────────────────────────────────────────────────────────────

const LANGS = [
  { code: "pl", flag: "🇵🇱", name: "Polski" },
  { code: "en", flag: "🇬🇧", name: "English" },
  { code: "de", flag: "🇩🇪", name: "Deutsch" },
  { code: "fr", flag: "🇫🇷", name: "Français" },
  { code: "cs", flag: "🇨🇿", name: "Čeština" },
  { code: "hu", flag: "🇭🇺", name: "Magyar" },
  { code: "nl", flag: "🇳🇱", name: "Nederlands" },
];

const I18N = {
  pl: {
    nav: { home: "Kalkulator", banks: "Banki", markets: "Rynki", programs: "Programy", articles: "Artykuły", faq: "FAQ", contact: "Kontakt" },
    cta: { calculate: "Oblicz ratę", explore: "Poznaj narzędzia", openAdmin: "Panel", openFull: "Otwórz pełny kalkulator", seeAll: "Wszystkie →" },
    hero: { kicker: "Kalkulator finansowy dla 30 krajów Europy",
            title1: "Oblicz ratę kredytu", title2: "w dowolnym kraju Europy.",
            sub: "Wybierz kraj, wypełnij formularz, porównaj 15+ banków. Bez logowania, bez wymuszania danych. Tylko liczby.",
            mortgageBtn: "Kalkulator hipoteczny", compareBtn: "Porównaj banki" },
    heroStats: { countries: "Krajów EU", free: "Bezpłatne", aiAnalysis: "Analiza zdolności", liveFx: "Kursy walut" },
    visitor: { already: "Już", visits: "odwiedzin" },
    common: { home: "Strona główna", all: "Wszystkie", live: "Live", update: "Ostatnia aktualizacja", weeklyUpdate: "Tygodniowa aktualizacja",
              loading: "Ładowanie…", search: "Szukaj…", searchPlaceholder: "Szukaj artykułów, banków, narzędzi…", noResults: "Brak wyników dla",
              top5banks: "Top 5 banków", lowestMortgage: "Najniższe oprocentowanie hipoteczne",
              countriesEu: "krajach Europy", inProgress: "W 7 krajach Europy", currencyLive: "NBP / ECB live",
              minutes: "min czytania", recommended: "Polecane", back: "← Wróć",
              startTyping: "Zacznij pisać, aby przeszukać artykuły, banki i sekcje.",
              sections: "Sekcje", articles: "Artykuły", banks: "Banki",
              cookieSettings: "Ustawienia cookies", glossary: "Słownik pojęć", bankNews: "Aktualności banków",
              singleInbox: "Jedna skrzynka dla wszystkich tematów", openForm: "Otwórz formularz",
              internalInbox: "Wewnętrzna skrzynka, bez klienta poczty", nextUpdate: "Następna aktualizacja: pon. 06:00",
              rodoSla: "Realizujemy w terminach RODO", betweenSections: "między sekcjami" },
    tiles: {
      calc:     { kicker: "💰 Kalkulator", title: "Oblicz ratę kredytu", sub: "Hipoteczny • Gotówkowy • EUR vs PLN" },
      wibor:    { title: "WIBOR 3M" },
      euribor:  { title: "EURIBOR 3M" },
      fx:       { title: "Kursy walut", sub: "NBP / ECB live" },
      banks:    { title: "Top 5 banków", sub: "Najniższe oprocentowanie hipoteczne", kicker: "🏦" },
      programs: { title: "Programy rządowe", sub: "Dopłaty i wsparcie w 7 krajach", kicker: "🏛️", footer: "7+ programów dopłat w Europie" },
      ai:       { title: "Analiza AI zdolności", sub: "Sprawdź szanse na kredyt w 30 sek.", kicker: "🤖",
                  body: "Wpisz kwotę i dochód — AI oszacuje Twoje szanse na kredyt na bazie 12 wskaźników.", cta: "Sprawdź szanse" },
      compare:  { title: "EUR vs PLN", sub: "Porównaj koszt kredytu w dwóch walutach", kicker: "⚖️",
                  diffNote: "≈ 2 100 PLN różnicy/mies. na 400k zł", pln: "śr. oprocent.", eur: "śr. oprocent." },
      changes:  { title: "Ostatnie zmiany stóp", sub: "Banki, które obniżyły lub podniosły w tym tygodniu", kicker: "📡" },
      articles: { title: "Świeże z bazy wiedzy", sub: "Praktyczna wiedza i analizy aktualnych zmian rynkowych", kicker: "📚 Wiedza" },
      ad:       { title: "Reklama (in-grid)" },
    },
    calc: {
      kicker: "Kalkulator", title: "Oblicz ratę kredytu",
      mortgage: "Hipoteczny", cash: "Gotówkowy", typeMortgage: "🏠 Hipoteczny", typeCash: "💳 Gotówkowy",
      amount: "Kwota kredytu", period: "Okres spłaty", years: "lat", months: "miesięcy",
      monthlyPayment: "Miesięczna rata", rate: "Oprocent.", provision: "Prowizja", totalCost: "Koszt całkowity",
      totalInterest: "Odsetki łącznie", toRepay: "Do spłaty",
      openFull: "Otwórz pełny kalkulator",
      bankRanking: "🏆 Ranking banków", allBanks: "Wszystkie →",
      aiTip: "🤖 Tip AI", aiTipText1: "Twoja rata to", aiTipText2: "% dochodu.",
      dti: "DTI (rata/dochód)", dtiHint: "Banki preferują DTI poniżej 50%",
      chances: "Szanse na uzyskanie",
      detailed: "🎯 Pełna analiza zdolności",
      detailedTitle: "Odpowiedz na pytania, jakie zadaje bank",
      detailedSubOpen: "Bank ocenia 8+ czynników — uzupełnij szczegółowy formularz",
      detailedSubClosed: "12 pytań, ~2 minuty. Pokażemy realny scoring.",
      factors: "📊 Czynniki scoringu", sumPoints: "Suma punktów",
      params: "Parametry kredytu", scheduleTitle: "Harmonogram spłaty kredytu",
    },
    impact: {
      kicker: "Bilans KreditEU",
      title1: "Już", title2: "osób", title3: "policzyło z nami swój kredyt.",
      sub: "Bezpłatnie, bez logowania, bez wymuszania danych. Liczby aktualizują się na żywo.",
      countries: "🌍 Krajów Europy", banks: "🏦 Banków w bazie", languages: "🌐 Języków",
      calculations: "📈 Kalkulacji", programs: "🏛️ Programów dopłat", visits: "👁 Odwiedzin",
      subCountries: "Polska, Niemcy, Francja, +27 innych", subBanks: "Aktualizacja co tydzień",
      subLanguages: "PL · EN · DE · FR · CZ · HU · NL", subCalculations: "Wykonanych w kalkulatorze",
      subPrograms: "W 7 krajach Europy", subVisits: "Od początku istnienia",
      chips: ["🇪🇺 30 krajów Europy", "💯 100% bezpłatne", "🚫 Bez logowania", "🤖 Analiza AI", "⚡ Live WIBOR & EURIBOR", "📱 Responsywne", "🔄 Aktualizacja co tydzień"],
    },
    pages: {
      markets:  { kicker: "📊 Dane rynkowe", title: "Wskaźniki referencyjne",
                  sub: "WIBOR, EURIBOR, kursy walut i inne wskaźniki finansowe istotne przy zaciąganiu kredytu.",
                  fxTitle: "Kursy walut (NBP / ECB)", fxNote: "Aktualizacja: 12.05.2026 · 10:00",
                  ratesNote: "Kursy mają charakter orientacyjny. Źródło: NBP / ECB.", crumb: "Rynki" },
      banks:    { kicker: "🏦 Aktualne oprocentowanie", title: "Porównaj oprocentowanie banków",
                  sub: "Aktualne stawki kredytów hipotecznych i gotówkowych w 30 krajach Europy. Aktualizacja co tydzień.",
                  lastUpdate: "Ostatnia aktualizacja: 12.05.2026",
                  th: { bank: "Bank", country: "Kraj", mortgage: "Hipot.", cash: "Gotówk.", rrso: "RRSO", maxLtv: "Max LTV", prov: "Prowizja", trend: "Trend (4 tyg.)" },
                  disclaimer: "* Dane orientacyjne. Rzeczywiste oprocentowanie zależy od indywidualnej oceny zdolności kredytowej.",
                  crumb: "Banki" },
      programs: { kicker: "🏛️ Programy rządowe", title: "Rządowe wsparcie przy zakupie mieszkania",
                  sub: "Programy dopłat i preferencyjnych kredytów dostępne w wybranych krajach Europy.",
                  benefit: "Korzyść", whoCan: "Kto może?", crumb: "Programy" },
      articles: { kicker: "📚 Baza wiedzy", title: "Poradniki kredytowe",
                  sub: "Praktyczna wiedza, która pomoże Ci podjąć lepszą decyzję finansową.",
                  catAll: "Wszystkie", crumb: "Artykuły" },
      article:  { recommended: "Polecane", readMore: "Otwórz kalkulator", calcCard: "📊 Przelicz to teraz",
                  calcCardSub: "Sprawdź w kalkulatorze, ile dziś zaoszczędzisz na własnych liczbach." },
      faq:      { kicker: "❓ Najczęstsze pytania", title: "Masz pytania? Mamy odpowiedzi.",
                  sub: "Wszystko, co musisz wiedzieć o kalkulatorze, danych i kredytach.", crumb: "FAQ" },
      contact:  { kicker: "📬 Kontakt", title: "Masz pytanie? Napisz do nas.",
                  sub: "Odpowiadamy w ciągu 24–48 godzin.",
                  name: "Imię i nazwisko", email: "Adres e-mail", topic: "Temat", message: "Wiadomość",
                  send: "📤 Wyślij wiadomość",
                  sent: "Wiadomość wysłana!", sentSub: "Trafiła do naszej wewnętrznej skrzynki. Odpiszemy w ciągu 24–48 godzin.",
                  emailTitle: "Email", emailSub: "Odpowiadamy w 24–48h",
                  bugTitle: "Zgłoś błąd", bugSub: "Błędy w danych, kalkulacjach, UI",
                  adsTitle: "Współpraca i reklama", adsSub: "Partnerstwo, banery, content",
                  topics: { general: "Pytanie ogólne", bug: "Zgłoszenie błędu", ads: "Reklama / partnerstwo", rodo: "Usunięcie danych (RODO)" },
                  crumb: "Kontakt" },
      mortgage: { kicker: "🏠 Kredyt hipoteczny", title: "Kalkulator hipoteczny",
                  sub: "Wprowadź parametry i zobacz dokładną ratę u 10+ polskich banków oraz w 30 krajach EU.",
                  tipsKicker: "Wskazówki", tipsTitle: "Zanim podpiszesz umowę", tipsSub: "4 zasady, dzięki którym oszczędzisz tysiące.",
                  tips: [["Sprawdź zdolność", "Zanim złożysz wniosek, oceń swoje możliwości w naszym kalkulatorze."],
                         ["Porównaj oferty", "Różnica 0.5% to tysiące w skali kredytu."],
                         ["RRSO to prawda", "Nie sam procent, ale RRSO pokazuje pełny koszt."],
                         ["Ryzyko walutowe", "Kredyt w EUR to niższe odsetki, ale kurs może zmienić ratę."]] },
      cash:     { kicker: "💳 Kredyt gotówkowy", title: "Kalkulator gotówkowy",
                  sub: "Sprawdź ratę pożyczki gotówkowej z prowizjami banków, RRSO i prawdziwym kosztem całkowitym." },
      legal:    { lastUpdate: "Ostatnia aktualizacja: 12 maja 2026", privacyTitle: "Polityka prywatności", termsTitle: "Regulamin serwisu" },
    },
    whyUs: {
      kicker: "Dlaczego KreditEU?", title: "Narzędzie zbudowane dla Europejczyków",
      sub: "30 krajów, programy rządowe, AI analiza, dane na żywo. Bez logowania, bez ukrytych kosztów.",
      features: [
        ["🌍", "30 krajów Europy", "Polska, Niemcy, Francja, Czechy i 26 innych krajów EU. Lokalne stopy, waluty, programy."],
        ["🤖", "Analiza AI",        "AI ocenia szanse na kredyt na bazie dochodów, zatrudnienia i zobowiązań — w 30 sekund."],
        ["🏛️", "Programy rządowe", "Rodzinny Kredyt, KfW, PTZ, CSOK. Sprawdź, czy kwalifikujesz się do dopłaty."],
        ["📈", "Live WIBOR & FX",   "Aktualne wskaźniki WIBOR, EURIBOR, kursy EUR/PLN, USD/PLN, CHF/PLN — z NBP i ECB."],
      ],
    },
    ctaStrip: { title: "Gotowy, żeby policzyć?",
                sub: "Wybierz typ kredytu i porównaj oferty 15+ banków w mniej niż minutę.",
                mortgage: "🏠 Hipoteczny", cash: "💳 Gotówkowy" },
    footer: { brand: "Bezpłatny kalkulator kredytowy dla 30 krajów Europy. Analiza AI, programy rządowe, aktualne oprocentowania.",
              tools: "Narzędzia", knowledge: "Wiedza", info: "Informacje",
              legal: "Zastrzeżenie: Kalkulator ma charakter wyłącznie informacyjny. Wyniki nie stanowią oferty w rozumieniu Kodeksu cywilnego ani doradztwa finansowego. Rzeczywiste warunki kredytu zależą od polityki banku, Twojej sytuacji finansowej i aktualnych stóp procentowych.",
              copyright: "© 2026 KreditEU.com — dla mieszkańców Europy",
              cookies: "Cookies", privacy: "Polityka prywatności", terms: "Regulamin", contact: "Kontakt", admin: "Panel admina",
              emailLabel: "Email", coopLabel: "Współpraca", bugLabel: "Zgłoś błąd", statusLabel: "Status danych", statusValue: "Aktualne · 12.05.2026" }
  },

  en: {
    nav: { home: "Calculator", banks: "Banks", markets: "Markets", programs: "Programs", articles: "Articles", faq: "FAQ", contact: "Contact" },
    cta: { calculate: "Calculate", explore: "Explore tools", openAdmin: "Admin", openFull: "Open full calculator", seeAll: "View all →" },
    hero: { kicker: "Financial calculator for 30 European countries",
            title1: "Calculate your loan", title2: "in any country in Europe.",
            sub: "Pick a country, fill the form, compare 15+ banks. No login, no forced data — just numbers.",
            mortgageBtn: "Mortgage calculator", compareBtn: "Compare banks" },
    heroStats: { countries: "EU countries", free: "Free forever", aiAnalysis: "AI scoring", liveFx: "Live FX rates" },
    visitor: { already: "Already", visits: "visits" },
    common: { home: "Home", all: "All", live: "Live", update: "Last update", weeklyUpdate: "Weekly update",
              loading: "Loading…", search: "Search…", searchPlaceholder: "Search articles, banks, tools…", noResults: "No results for",
              top5banks: "Top 5 banks", lowestMortgage: "Lowest mortgage rates",
              countriesEu: "countries in Europe", inProgress: "In 7 European countries", currencyLive: "NBP / ECB live",
              minutes: "min read", recommended: "Recommended", back: "← Back",
              startTyping: "Start typing to search articles, banks and sections.",
              sections: "Sections", articles: "Articles", banks: "Banks",
              cookieSettings: "Cookie Settings", glossary: "Glossary", bankNews: "Bank News",
              singleInbox: "One inbox for all topics", openForm: "Open form",
              internalInbox: "Internal inbox, no mail client needed", nextUpdate: "Next update: Mon 06:00",
              rodoSla: "Handled under GDPR time limits", betweenSections: "between sections" },
    tiles: {
      calc:     { kicker: "💰 Calculator", title: "Calculate your loan payment", sub: "Mortgage • Cash • EUR vs PLN" },
      wibor:    { title: "WIBOR 3M" },
      euribor:  { title: "EURIBOR 3M" },
      fx:       { title: "FX rates", sub: "NBP / ECB live" },
      banks:    { title: "Top 5 banks", sub: "Lowest mortgage rates", kicker: "🏦" },
      programs: { title: "Government programs", sub: "Subsidies & support in 7 countries", kicker: "🏛️", footer: "7+ subsidy programs in Europe" },
      ai:       { title: "AI scoring", sub: "Check your loan chances in 30 sec.", kicker: "🤖",
                  body: "Enter amount and income — AI estimates your chances based on 12 indicators.", cta: "Check chances" },
      compare:  { title: "EUR vs PLN", sub: "Compare loan cost in two currencies", kicker: "⚖️",
                  diffNote: "≈ 2 100 PLN/mo difference on a 400k loan", pln: "avg. rate", eur: "avg. rate" },
      changes:  { title: "Latest rate changes", sub: "Banks that raised or cut this week", kicker: "📡" },
      articles: { title: "Fresh from the knowledge base", sub: "Practical guides and analysis of current market changes", kicker: "📚 Knowledge" },
      ad:       { title: "Ad (in-grid)" },
    },
    calc: {
      kicker: "Calculator", title: "Calculate your loan payment",
      mortgage: "Mortgage", cash: "Cash loan", typeMortgage: "🏠 Mortgage", typeCash: "💳 Cash loan",
      amount: "Loan amount", period: "Term", years: "years", months: "months",
      monthlyPayment: "Monthly payment", rate: "Rate", provision: "Commission", totalCost: "Total cost",
      totalInterest: "Total interest", toRepay: "Total payable",
      openFull: "Open full calculator",
      bankRanking: "🏆 Bank ranking", allBanks: "View all →",
      aiTip: "🤖 AI tip", aiTipText1: "Your payment is", aiTipText2: "% of income.",
      dti: "DTI (payment / income)", dtiHint: "Banks prefer DTI below 50%",
      chances: "Approval chances",
      detailed: "🎯 Full credit assessment",
      detailedTitle: "Answer the questions banks really ask",
      detailedSubOpen: "Banks evaluate 8+ factors — fill the detailed form",
      detailedSubClosed: "12 questions, ~2 minutes. We'll show your real scoring.",
      factors: "📊 Scoring factors", sumPoints: "Total points",
      params: "Loan parameters", scheduleTitle: "Repayment schedule",
    },
    impact: {
      kicker: "KreditEU impact",
      title1: "Already", title2: "people", title3: "calculated their loan with us.",
      sub: "Free, no login, no forced data. Numbers update live.",
      countries: "🌍 European countries", banks: "🏦 Banks tracked", languages: "🌐 Languages",
      calculations: "📈 Calculations", programs: "🏛️ Subsidy programs", visits: "👁 Visits",
      subCountries: "Poland, Germany, France +27 more", subBanks: "Updated weekly",
      subLanguages: "PL · EN · DE · FR · CZ · HU · NL", subCalculations: "Run in the calculator",
      subPrograms: "In 7 European countries", subVisits: "Since launch",
      chips: ["🇪🇺 30 European countries", "💯 100% free", "🚫 No login", "🤖 AI analysis", "⚡ Live WIBOR & EURIBOR", "📱 Responsive", "🔄 Weekly updates"],
    },
    pages: {
      markets:  { kicker: "📊 Market data", title: "Reference indicators",
                  sub: "WIBOR, EURIBOR, FX rates and other key indicators when taking a loan.",
                  fxTitle: "FX rates (NBP / ECB)", fxNote: "Updated: 2026-05-12 · 10:00",
                  ratesNote: "Rates are indicative. Source: NBP / ECB.", crumb: "Markets" },
      banks:    { kicker: "🏦 Current rates", title: "Compare bank rates",
                  sub: "Current mortgage and cash-loan rates across 30 European countries. Updated weekly.",
                  lastUpdate: "Last update: 2026-05-12",
                  th: { bank: "Bank", country: "Country", mortgage: "Mortgage", cash: "Cash", rrso: "APR", maxLtv: "Max LTV", prov: "Commission", trend: "Trend (4 wks)" },
                  disclaimer: "* Indicative data. Actual rate depends on individual credit assessment.",
                  crumb: "Banks" },
      programs: { kicker: "🏛️ Government programs", title: "Government support for home buyers",
                  sub: "Subsidy and preferential-loan programs in selected European countries.",
                  benefit: "Benefit", whoCan: "Who qualifies?", crumb: "Programs" },
      articles: { kicker: "📚 Knowledge base", title: "Credit guides",
                  sub: "Practical knowledge to help you make better financial decisions.",
                  catAll: "All", crumb: "Articles" },
      article:  { recommended: "Recommended", readMore: "Open calculator", calcCard: "📊 Run the numbers",
                  calcCardSub: "Check in the calculator how much you'd save on your own figures." },
      faq:      { kicker: "❓ FAQ", title: "Got questions? We've got answers.",
                  sub: "Everything you need to know about the calculator, data and loans.", crumb: "FAQ" },
      contact:  { kicker: "📬 Contact", title: "Got a question? Drop us a line.",
                  sub: "We reply within 24–48 hours.",
                  name: "Full name", email: "Email", topic: "Topic", message: "Message",
                  send: "📤 Send message",
                  sent: "Message sent!", sentSub: "It landed in our internal inbox. We'll reply within 24–48 hours.",
                  emailTitle: "Email", emailSub: "We reply within 24–48h",
                  bugTitle: "Report a bug", bugSub: "Bugs in data, calculations, UI",
                  adsTitle: "Partnership & advertising", adsSub: "Partnership, banners, content",
                  topics: { general: "General question", bug: "Bug report", ads: "Advertising / partnership", rodo: "Data deletion (GDPR)" },
                  crumb: "Contact" },
      mortgage: { kicker: "🏠 Mortgage loan", title: "Mortgage calculator",
                  sub: "Enter parameters and see the exact instalment in 10+ Polish banks and 30 EU countries.",
                  tipsKicker: "Tips", tipsTitle: "Before you sign", tipsSub: "4 rules that save you thousands.",
                  tips: [["Check eligibility", "Assess your chances in our calculator before applying."],
                         ["Compare offers", "A 0.5% difference equals thousands over the loan term."],
                         ["APR is the truth", "Not the nominal rate — APR shows the real cost."],
                         ["FX risk", "EUR loans have lower interest but the rate can change."]] },
      cash:     { kicker: "💳 Cash loan", title: "Cash-loan calculator",
                  sub: "Check the cash-loan instalment with bank commission, APR and real total cost." },
      legal:    { lastUpdate: "Last update: May 12, 2026", privacyTitle: "Privacy policy", termsTitle: "Terms of service" },
    },
    whyUs: {
      kicker: "Why KreditEU?", title: "Built for Europeans",
      sub: "30 countries, government programs, AI analysis, live data. No login, no hidden fees.",
      features: [
        ["🌍", "30 European countries", "Poland, Germany, France, Czechia and 26 more EU countries. Local rates, currencies, programs."],
        ["🤖", "AI analysis",            "AI estimates your loan chances from income, employment and obligations — in 30 seconds."],
        ["🏛️", "Government programs",   "Rodzinny Kredyt, KfW, PTZ, CSOK. Check if you qualify for a subsidy."],
        ["📈", "Live WIBOR & FX",        "Current WIBOR, EURIBOR, EUR/PLN, USD/PLN, CHF/PLN rates — from NBP and ECB."],
      ],
    },
    ctaStrip: { title: "Ready to crunch numbers?",
                sub: "Pick a loan type and compare 15+ banks in under a minute.",
                mortgage: "🏠 Mortgage", cash: "💳 Cash loan" },
    footer: { brand: "Free credit calculator for 30 countries in Europe. AI analysis, government programs, live bank rates.",
              tools: "Tools", knowledge: "Knowledge", info: "Information",
              legal: "Disclaimer: The calculator is informational only. Results do not constitute a commercial offer or financial advice. Actual loan terms depend on bank policy and your situation.",
              copyright: "© 2026 KreditEU.com — for residents of Europe",
              cookies: "Cookies", privacy: "Privacy policy", terms: "Terms", contact: "Contact", admin: "Admin panel",
              emailLabel: "Email", coopLabel: "Partnership", bugLabel: "Report a bug", statusLabel: "Data status", statusValue: "Current · 2026-05-12" }
  },

  de: {
    nav: { home: "Rechner", banks: "Banken", markets: "Märkte", programs: "Programme", articles: "Artikel", faq: "FAQ", contact: "Kontakt" },
    cta: { calculate: "Rate berechnen", explore: "Tools entdecken", openAdmin: "Admin", openFull: "Vollständigen Rechner öffnen", seeAll: "Alle anzeigen →" },
    hero: { kicker: "Finanzrechner für 30 europäische Länder",
            title1: "Berechne deine Kreditrate", title2: "in jedem Land Europas.",
            sub: "Land wählen, Formular ausfüllen, 15+ Banken vergleichen. Ohne Anmeldung, ohne Datenzwang.",
            mortgageBtn: "Hypothekenrechner", compareBtn: "Banken vergleichen" },
    heroStats: { countries: "EU-Länder", free: "Kostenlos", aiAnalysis: "KI-Bewertung", liveFx: "Wechselkurse" },
    visitor: { already: "Bereits", visits: "Besuche" },
    common: { home: "Startseite", all: "Alle", live: "Live", update: "Letzte Aktualisierung", weeklyUpdate: "Wöchentliches Update",
              loading: "Laden…", search: "Suchen…", searchPlaceholder: "Artikel, Banken, Tools suchen…", noResults: "Keine Ergebnisse für",
              top5banks: "Top 5 Banken", lowestMortgage: "Niedrigste Hypothekenzinsen",
              countriesEu: "Länder in Europa", inProgress: "In 7 europäischen Ländern", currencyLive: "NBP / EZB live",
              minutes: "Min. Lesezeit", recommended: "Empfohlen", back: "← Zurück",
              startTyping: "Beginne zu tippen, um Artikel, Banken und Bereiche zu suchen.",
              sections: "Bereiche", articles: "Artikel", banks: "Banken",
              cookieSettings: "Cookie-Einstellungen", glossary: "Glossar", bankNews: "Bank-News",
              singleInbox: "Ein Posteingang für alle Themen", openForm: "Formular öffnen",
              internalInbox: "Interner Posteingang, ohne Mail-Client", nextUpdate: "Nächste Aktualisierung: Mo. 06:00",
              rodoSla: "Bearbeitung gemäß DSGVO-Fristen", betweenSections: "zwischen Bereichen" },
    tiles: {
      calc:     { kicker: "💰 Rechner", title: "Kreditrate berechnen", sub: "Hypothek • Bargeld • EUR vs PLN" },
      wibor:    { title: "WIBOR 3M" }, euribor: { title: "EURIBOR 3M" },
      fx:       { title: "Wechselkurse", sub: "NBP / EZB live" },
      banks:    { title: "Top 5 Banken", sub: "Niedrigste Hypothekenzinsen", kicker: "🏦" },
      programs: { title: "Förderprogramme", sub: "Zuschüsse in 7 Ländern", kicker: "🏛️", footer: "7+ Förderprogramme in Europa" },
      ai:       { title: "KI-Kreditprüfung", sub: "Chancen in 30 Sek. prüfen", kicker: "🤖",
                  body: "Betrag und Einkommen eingeben — KI schätzt deine Chancen anhand 12 Indikatoren.", cta: "Chancen prüfen" },
      compare:  { title: "EUR vs PLN", sub: "Vergleiche Kreditkosten in zwei Währungen", kicker: "⚖️",
                  diffNote: "≈ 2.100 PLN/Mo. Unterschied bei 400k Kredit", pln: "Durchschn. Zins", eur: "Durchschn. Zins" },
      changes:  { title: "Letzte Zinsänderungen", sub: "Banken, die diese Woche erhöht/gesenkt haben", kicker: "📡" },
      articles: { title: "Aus der Wissensdatenbank", sub: "Praktisches Wissen und Analysen aktueller Marktveränderungen", kicker: "📚 Wissen" },
      ad: { title: "Anzeige" },
    },
    calc: { kicker: "Rechner", title: "Kreditrate berechnen",
            mortgage: "Hypothek", cash: "Bargeld", typeMortgage: "🏠 Hypothek", typeCash: "💳 Bargeld",
            amount: "Kreditbetrag", period: "Laufzeit", years: "Jahre", months: "Monate",
            monthlyPayment: "Monatsrate", rate: "Zinssatz", provision: "Provision", totalCost: "Gesamtkosten",
            totalInterest: "Gesamtzinsen", toRepay: "Zu zahlen",
            openFull: "Vollständigen Rechner öffnen", bankRanking: "🏆 Bankenranking", allBanks: "Alle →",
            aiTip: "🤖 KI-Tipp", aiTipText1: "Deine Rate beträgt", aiTipText2: "% des Einkommens.",
            dti: "DTI (Rate/Einkommen)", dtiHint: "Banken bevorzugen DTI unter 50%",
            chances: "Genehmigungschancen",
            detailed: "🎯 Vollständige Bonitätsprüfung",
            detailedTitle: "Beantworte die Fragen, die Banken wirklich stellen",
            detailedSubOpen: "Banken bewerten 8+ Faktoren — fülle das detaillierte Formular aus",
            detailedSubClosed: "12 Fragen, ~2 Min. Wir zeigen dein echtes Scoring.",
            factors: "📊 Scoring-Faktoren", sumPoints: "Gesamtpunkte",
            params: "Kreditparameter", scheduleTitle: "Tilgungsplan" },
    impact: { kicker: "KreditEU Bilanz",
              title1: "Bereits", title2: "Menschen", title3: "haben mit uns ihren Kredit berechnet.",
              sub: "Kostenlos, ohne Anmeldung, ohne Datenzwang. Zahlen werden live aktualisiert.",
              countries: "🌍 Länder Europas", banks: "🏦 Banken erfasst", languages: "🌐 Sprachen",
              calculations: "📈 Berechnungen", programs: "🏛️ Förderprogramme", visits: "👁 Besuche",
              subCountries: "Polen, Deutschland, Frankreich +27 mehr", subBanks: "Wöchentlich aktualisiert",
              subLanguages: "PL · EN · DE · FR · CZ · HU · NL", subCalculations: "Im Rechner durchgeführt",
              subPrograms: "In 7 europäischen Ländern", subVisits: "Seit Start",
              chips: ["🇪🇺 30 Länder Europas", "💯 100% kostenlos", "🚫 Ohne Anmeldung", "🤖 KI-Analyse", "⚡ Live-Zinsen", "📱 Responsive", "🔄 Wöchentliche Updates"] },
    pages: {
      markets:  { kicker: "📊 Marktdaten", title: "Referenzindikatoren",
                  sub: "WIBOR, EURIBOR, Wechselkurse und andere wichtige Indikatoren bei der Kreditaufnahme.",
                  fxTitle: "Wechselkurse (NBP / EZB)", fxNote: "Aktualisiert: 12.05.2026 · 10:00",
                  ratesNote: "Kurse sind indikativ. Quelle: NBP / EZB.", crumb: "Märkte" },
      banks:    { kicker: "🏦 Aktuelle Zinsen", title: "Bankzinsen vergleichen",
                  sub: "Aktuelle Hypotheken- und Bargeldkreditzinsen in 30 europäischen Ländern. Wöchentlich aktualisiert.",
                  lastUpdate: "Letzte Aktualisierung: 12.05.2026",
                  th: { bank: "Bank", country: "Land", mortgage: "Hypothek", cash: "Bargeld", rrso: "Eff. Zins", maxLtv: "Max LTV", prov: "Provision", trend: "Trend (4 Wo.)" },
                  disclaimer: "* Indikative Daten. Der tatsächliche Zinssatz hängt von der individuellen Bonitätsprüfung ab.",
                  crumb: "Banken" },
      programs: { kicker: "🏛️ Förderprogramme", title: "Staatliche Unterstützung beim Wohnungskauf",
                  sub: "Zuschüsse und Vorzugskreditprogramme in ausgewählten europäischen Ländern.",
                  benefit: "Vorteil", whoCan: "Wer kann?", crumb: "Programme" },
      articles: { kicker: "📚 Wissensdatenbank", title: "Kreditratgeber",
                  sub: "Praktisches Wissen für bessere finanzielle Entscheidungen.",
                  catAll: "Alle", crumb: "Artikel" },
      article:  { recommended: "Empfohlen", readMore: "Rechner öffnen", calcCard: "📊 Jetzt rechnen",
                  calcCardSub: "Prüfe im Rechner, wie viel du sparen würdest." },
      faq:      { kicker: "❓ FAQ", title: "Fragen? Wir haben Antworten.",
                  sub: "Alles, was du über den Rechner, die Daten und Kredite wissen musst.", crumb: "FAQ" },
      contact:  { kicker: "📬 Kontakt", title: "Frage? Schreib uns.",
                  sub: "Wir antworten innerhalb von 24–48 Stunden.",
                  name: "Name", email: "E-Mail", topic: "Thema", message: "Nachricht",
                  send: "📤 Nachricht senden",
                  sent: "Nachricht gesendet!", sentSub: "Sie landete in unserem internen Postfach. Wir antworten innerhalb von 24–48 Stunden.",
                  emailTitle: "E-Mail", emailSub: "Antwort in 24–48h",
                  bugTitle: "Fehler melden", bugSub: "Fehler in Daten, Berechnungen, UI",
                  adsTitle: "Partnerschaft & Werbung", adsSub: "Partnerschaft, Banner, Content",
                  topics: { general: "Allgemeine Frage", bug: "Fehlermeldung", ads: "Werbung / Partnerschaft", rodo: "Datenlöschung (DSGVO)" },
                  crumb: "Kontakt" },
      mortgage: { kicker: "🏠 Hypothekenkredit", title: "Hypothekenrechner",
                  sub: "Parameter eingeben und exakte Rate in 10+ polnischen Banken und 30 EU-Ländern sehen.",
                  tipsKicker: "Tipps", tipsTitle: "Vor der Unterschrift", tipsSub: "4 Regeln, die Tausende sparen.",
                  tips: [["Bonität prüfen", "Bewerte deine Chancen vor dem Antrag."],
                         ["Angebote vergleichen", "0,5% Unterschied = Tausende über die Laufzeit."],
                         ["Eff. Zins zählt", "Nicht der Nominalzins, sondern der eff. Zins zeigt die Wahrheit."],
                         ["Wechselkursrisiko", "EUR-Kredite haben niedrigere Zinsen, aber der Kurs kann sich ändern."]] },
      cash:     { kicker: "💳 Bargeldkredit", title: "Bargeldkreditrechner",
                  sub: "Prüfe die Rate inkl. Provision, eff. Zins und Gesamtkosten." },
      legal:    { lastUpdate: "Letzte Aktualisierung: 12. Mai 2026", privacyTitle: "Datenschutz", termsTitle: "AGB" },
    },
    whyUs: { kicker: "Warum KreditEU?", title: "Für Europäer gebaut",
             sub: "30 Länder, Förderprogramme, KI-Analyse, Live-Daten. Ohne Anmeldung, ohne versteckte Kosten.",
             features: [["🌍", "30 europäische Länder", "Polen, Deutschland, Frankreich, Tschechien und 26 weitere EU-Länder."],
                        ["🤖", "KI-Analyse", "KI schätzt deine Kreditchancen in 30 Sekunden."],
                        ["🏛️", "Förderprogramme", "Rodzinny Kredyt, KfW, PTZ, CSOK. Prüfe, ob du Anspruch hast."],
                        ["📈", "Live WIBOR & FX", "Aktuelle Zinssätze und Wechselkurse — direkt von NBP und EZB."]] },
    ctaStrip: { title: "Bereit zu rechnen?",
                sub: "Wähle einen Kredittyp und vergleiche 15+ Banken in weniger als einer Minute.",
                mortgage: "🏠 Hypothek", cash: "💳 Bargeld" },
    footer: { brand: "Kostenloser Kreditrechner für 30 Länder Europas. KI-Analyse, Förderprogramme, aktuelle Bankzinsen.",
              tools: "Tools", knowledge: "Wissen", info: "Informationen",
              legal: "Hinweis: Der Rechner dient nur zu Informationszwecken. Ergebnisse stellen kein Angebot und keine Finanzberatung dar.",
              copyright: "© 2026 KreditEU.com — für Bewohner Europas",
              cookies: "Cookies", privacy: "Datenschutz", terms: "AGB", contact: "Kontakt", admin: "Admin",
              emailLabel: "E-Mail", coopLabel: "Partnerschaft", bugLabel: "Fehler melden", statusLabel: "Datenstatus", statusValue: "Aktuell · 12.05.2026" }
  },

  fr: {
    nav: { home: "Calculateur", banks: "Banques", markets: "Marchés", programs: "Programmes", articles: "Articles", faq: "FAQ", contact: "Contact" },
    cta: { calculate: "Calculer", explore: "Découvrir", openAdmin: "Admin", openFull: "Ouvrir le calculateur complet", seeAll: "Voir tout →" },
    hero: { kicker: "Calculateur financier pour 30 pays d'Europe",
            title1: "Calculez votre mensualité", title2: "dans n'importe quel pays d'Europe.",
            sub: "Choisissez un pays, remplissez le formulaire, comparez 15+ banques. Sans inscription, sans données forcées.",
            mortgageBtn: "Calculateur hypothécaire", compareBtn: "Comparer les banques" },
    heroStats: { countries: "Pays UE", free: "Gratuit", aiAnalysis: "Analyse IA", liveFx: "Taux de change" },
    visitor: { already: "Déjà", visits: "visites" },
    common: { home: "Accueil", all: "Tout", live: "Live", update: "Dernière mise à jour", weeklyUpdate: "Mise à jour hebdomadaire",
              loading: "Chargement…", search: "Rechercher…", searchPlaceholder: "Rechercher articles, banques, outils…", noResults: "Aucun résultat pour",
              top5banks: "Top 5 banques", lowestMortgage: "Taux hypothécaires les plus bas",
              countriesEu: "pays d'Europe", inProgress: "Dans 7 pays européens", currencyLive: "NBP / BCE live",
              minutes: "min de lecture", recommended: "Recommandés", back: "← Retour",
              startTyping: "Commencez à taper pour rechercher.",
              sections: "Sections", articles: "Articles", banks: "Banques",
              cookieSettings: "Paramètres cookies", glossary: "Glossaire", bankNews: "Actualités bancaires",
              singleInbox: "Une boîte pour tous les sujets", openForm: "Ouvrir le formulaire",
              internalInbox: "Boîte interne, sans client mail", nextUpdate: "Prochaine MAJ : lun. 06:00",
              rodoSla: "Traité dans les délais RGPD", betweenSections: "entre les sections" },
    tiles: {
      calc:     { kicker: "💰 Calculateur", title: "Calculer la mensualité", sub: "Hypothèque • Liquide • EUR vs PLN" },
      wibor:    { title: "WIBOR 3M" }, euribor: { title: "EURIBOR 3M" },
      fx:       { title: "Taux de change", sub: "NBP / BCE live" },
      banks:    { title: "Top 5 banques", sub: "Taux hypothécaires les plus bas", kicker: "🏦" },
      programs: { title: "Programmes gouv.", sub: "Aides dans 7 pays", kicker: "🏛️", footer: "7+ programmes d'aides en Europe" },
      ai:       { title: "Analyse IA crédit", sub: "Vérifiez vos chances en 30 sec.", kicker: "🤖",
                  body: "Entrez le montant et le revenu — l'IA estime vos chances selon 12 indicateurs.", cta: "Vérifier" },
      compare:  { title: "EUR vs PLN", sub: "Comparez le coût en deux devises", kicker: "⚖️",
                  diffNote: "≈ 2 100 PLN/mois de différence sur 400k", pln: "taux moyen", eur: "taux moyen" },
      changes:  { title: "Dernières évolutions", sub: "Banques qui ont changé leurs taux cette semaine", kicker: "📡" },
      articles: { title: "Frais de la base de connaissances", sub: "Guides pratiques et analyses", kicker: "📚 Connaissances" },
      ad: { title: "Publicité" },
    },
    calc: { kicker: "Calculateur", title: "Calculer la mensualité",
            mortgage: "Hypothécaire", cash: "Liquidités", typeMortgage: "🏠 Hypothécaire", typeCash: "💳 Liquidités",
            amount: "Montant du crédit", period: "Durée", years: "ans", months: "mois",
            monthlyPayment: "Mensualité", rate: "Taux", provision: "Commission", totalCost: "Coût total",
            totalInterest: "Intérêts totaux", toRepay: "À rembourser",
            openFull: "Ouvrir le calculateur complet", bankRanking: "🏆 Classement des banques", allBanks: "Toutes →",
            aiTip: "🤖 Astuce IA", aiTipText1: "Votre mensualité est", aiTipText2: "% du revenu.",
            dti: "DTI (mensualité / revenu)", dtiHint: "Les banques préfèrent un DTI sous 50%",
            chances: "Chances d'obtention",
            detailed: "🎯 Évaluation complète",
            detailedTitle: "Répondez aux vraies questions des banques",
            detailedSubOpen: "Les banques évaluent 8+ facteurs — remplissez le formulaire détaillé",
            detailedSubClosed: "12 questions, ~2 min. Nous montrerons votre vrai scoring.",
            factors: "📊 Facteurs de scoring", sumPoints: "Points totaux",
            params: "Paramètres du crédit", scheduleTitle: "Tableau d'amortissement" },
    impact: { kicker: "Bilan KreditEU",
              title1: "Déjà", title2: "personnes", title3: "ont calculé leur crédit avec nous.",
              sub: "Gratuit, sans inscription, sans données forcées. Chiffres mis à jour en direct.",
              countries: "🌍 Pays d'Europe", banks: "🏦 Banques", languages: "🌐 Langues",
              calculations: "📈 Calculs", programs: "🏛️ Programmes d'aide", visits: "👁 Visites",
              subCountries: "Pologne, Allemagne, France +27 autres", subBanks: "Mise à jour hebdomadaire",
              subLanguages: "PL · EN · DE · FR · CZ · HU · NL", subCalculations: "Effectués dans le calculateur",
              subPrograms: "Dans 7 pays européens", subVisits: "Depuis le lancement",
              chips: ["🇪🇺 30 pays d'Europe", "💯 100% gratuit", "🚫 Sans inscription", "🤖 Analyse IA", "⚡ Taux en direct", "📱 Responsive", "🔄 MAJ hebdo"] },
    pages: {
      markets:  { kicker: "📊 Données du marché", title: "Indicateurs de référence",
                  sub: "WIBOR, EURIBOR, taux de change et autres indicateurs clés pour un crédit.",
                  fxTitle: "Taux de change (NBP / BCE)", fxNote: "Mise à jour : 12/05/2026 · 10:00",
                  ratesNote: "Taux indicatifs. Source : NBP / BCE.", crumb: "Marchés" },
      banks:    { kicker: "🏦 Taux actuels", title: "Comparez les taux des banques",
                  sub: "Taux hypothécaires et de crédit liquide à jour dans 30 pays. MAJ hebdo.",
                  lastUpdate: "Dernière MAJ : 12/05/2026",
                  th: { bank: "Banque", country: "Pays", mortgage: "Hypoth.", cash: "Liquide", rrso: "TAEG", maxLtv: "Max LTV", prov: "Commission", trend: "Tendance (4 sem.)" },
                  disclaimer: "* Données indicatives. Le taux réel dépend de l'analyse individuelle.",
                  crumb: "Banques" },
      programs: { kicker: "🏛️ Programmes gouv.", title: "Aide gouvernementale à l'achat immobilier",
                  sub: "Programmes d'aide et de crédit préférentiel en Europe.",
                  benefit: "Avantage", whoCan: "Qui peut ?", crumb: "Programmes" },
      articles: { kicker: "📚 Base de connaissances", title: "Guides de crédit",
                  sub: "Savoir pratique pour de meilleures décisions financières.", catAll: "Tous", crumb: "Articles" },
      article:  { recommended: "Recommandés", readMore: "Ouvrir le calculateur", calcCard: "📊 Calculer maintenant",
                  calcCardSub: "Vérifiez combien vous économiseriez." },
      faq:      { kicker: "❓ FAQ", title: "Des questions ? Nous avons les réponses.",
                  sub: "Tout ce qu'il faut savoir sur le calculateur et les crédits.", crumb: "FAQ" },
      contact:  { kicker: "📬 Contact", title: "Une question ? Écrivez-nous.",
                  sub: "Nous répondons sous 24–48 heures.",
                  name: "Nom complet", email: "E-mail", topic: "Sujet", message: "Message",
                  send: "📤 Envoyer", sent: "Message envoyé !", sentSub: "Il est dans notre boîte interne. Réponse sous 24–48h.",
                  emailTitle: "E-mail", emailSub: "Réponse sous 24–48h",
                  bugTitle: "Signaler un bug", bugSub: "Erreurs de données, calculs, UI",
                  adsTitle: "Partenariat & pub", adsSub: "Partenariat, bannières, contenu",
                  topics: { general: "Question générale", bug: "Signaler un bug", ads: "Pub / partenariat", rodo: "Suppression de données (RGPD)" },
                  crumb: "Contact" },
      mortgage: { kicker: "🏠 Crédit hypothécaire", title: "Calculateur hypothécaire",
                  sub: "Entrez les paramètres et voyez la mensualité exacte.",
                  tipsKicker: "Conseils", tipsTitle: "Avant de signer", tipsSub: "4 règles pour économiser des milliers.",
                  tips: [["Vérifier l'éligibilité", "Évaluez vos chances avant la demande."],
                         ["Comparer les offres", "0,5% de différence = des milliers sur la durée."],
                         ["TAEG = vérité", "Pas le taux nominal, mais le TAEG montre le vrai coût."],
                         ["Risque de change", "Crédits EUR : taux plus bas mais le change peut bouger."]] },
      cash:     { kicker: "💳 Crédit liquide", title: "Calculateur de crédit liquide",
                  sub: "Vérifiez la mensualité avec commission, TAEG et coût total réel." },
      legal:    { lastUpdate: "Dernière mise à jour : 12 mai 2026", privacyTitle: "Politique de confidentialité", termsTitle: "CGU" },
    },
    whyUs: { kicker: "Pourquoi KreditEU ?", title: "Conçu pour les Européens",
             sub: "30 pays, programmes gouvernementaux, analyse IA, données en direct.",
             features: [["🌍", "30 pays d'Europe", "Pologne, Allemagne, France, Tchéquie et 26 autres pays UE."],
                        ["🤖", "Analyse IA", "L'IA estime vos chances de crédit en 30 secondes."],
                        ["🏛️", "Programmes gouv.", "Rodzinny Kredyt, KfW, PTZ, CSOK. Vérifiez si vous êtes éligible."],
                        ["📈", "Taux en direct", "Taux et changes actuels — directement de NBP et BCE."]] },
    ctaStrip: { title: "Prêt à calculer ?", sub: "Choisissez un type de crédit et comparez 15+ banques en moins d'une minute.",
                mortgage: "🏠 Hypothécaire", cash: "💳 Liquide" },
    footer: { brand: "Calculateur de crédit gratuit pour 30 pays d'Europe. Analyse IA, programmes gouv., taux actuels.",
              tools: "Outils", knowledge: "Connaissances", info: "Informations",
              legal: "Avertissement : Le calculateur est purement informatif. Les résultats ne constituent ni une offre ni un conseil financier.",
              copyright: "© 2026 KreditEU.com — pour les résidents d'Europe",
              cookies: "Cookies", privacy: "Confidentialité", terms: "CGU", contact: "Contact", admin: "Admin",
              emailLabel: "E-mail", coopLabel: "Partenariat", bugLabel: "Signaler un bug", statusLabel: "Statut des données", statusValue: "À jour · 12/05/2026" }
  },

  cs: {
    nav: { home: "Kalkulačka", banks: "Banky", markets: "Trhy", programs: "Programy", articles: "Články", faq: "FAQ", contact: "Kontakt" },
    cta: { calculate: "Spočítat splátku", explore: "Prozkoumat", openAdmin: "Admin", openFull: "Otevřít plnou kalkulačku", seeAll: "Vše →" },
    hero: { kicker: "Finanční kalkulačka pro 30 zemí Evropy",
            title1: "Spočítejte splátku úvěru", title2: "v kterékoli zemi Evropy.",
            sub: "Vyberte zemi, vyplňte formulář, porovnejte 15+ bank. Bez registrace, bez nucených údajů.",
            mortgageBtn: "Hypoteční kalkulačka", compareBtn: "Porovnat banky" },
    heroStats: { countries: "Zemí EU", free: "Zdarma", aiAnalysis: "AI analýza", liveFx: "Kurzy měn" },
    visitor: { already: "Již", visits: "návštěv" },
    common: { home: "Domů", all: "Vše", live: "Live", update: "Poslední aktualizace", weeklyUpdate: "Týdenní aktualizace",
              loading: "Načítání…", search: "Hledat…", searchPlaceholder: "Hledat články, banky, nástroje…", noResults: "Žádné výsledky pro",
              top5banks: "Top 5 bank", lowestMortgage: "Nejnižší hypoteční úroky",
              countriesEu: "zemích Evropy", inProgress: "V 7 evropských zemích", currencyLive: "NBP / ECB live",
              minutes: "min čtení", recommended: "Doporučené", back: "← Zpět",
              startTyping: "Začněte psát pro vyhledávání.",
              sections: "Sekce", articles: "Články", banks: "Banky",
              cookieSettings: "Nastavení cookies", glossary: "Slovník pojmů", bankNews: "Novinky bank",
              singleInbox: "Jedna schránka pro všechna témata", openForm: "Otevřít formulář",
              internalInbox: "Interní schránka, bez mail klienta", nextUpdate: "Další aktualizace: po. 06:00",
              rodoSla: "Zpracováno ve lhůtách GDPR", betweenSections: "mezi sekcemi" },
    tiles: { calc: { kicker: "💰 Kalkulačka", title: "Spočítat splátku", sub: "Hypotéka • Hotovost • EUR vs PLN" },
             wibor: { title: "WIBOR 3M" }, euribor: { title: "EURIBOR 3M" },
             fx: { title: "Kurzy měn", sub: "NBP / ECB live" },
             banks: { title: "Top 5 bank", sub: "Nejnižší hypoteční úroky", kicker: "🏦" },
             programs: { title: "Státní programy", sub: "Dotace v 7 zemích", kicker: "🏛️", footer: "7+ programů dotací v Evropě" },
             ai: { title: "AI analýza úvěru", sub: "Šance v 30 sec.", kicker: "🤖",
                   body: "Zadejte částku a příjem — AI odhadne vaše šance.", cta: "Zkontrolovat" },
             compare: { title: "EUR vs PLN", sub: "Porovnejte náklady v dvou měnách", kicker: "⚖️",
                        diffNote: "≈ 2 100 PLN/měs. rozdíl při 400k", pln: "prům. úrok", eur: "prům. úrok" },
             changes: { title: "Poslední změny sazeb", sub: "Banky, které tento týden změnily", kicker: "📡" },
             articles: { title: "Čerstvé z báze znalostí", sub: "Praktické znalosti", kicker: "📚 Znalosti" },
             ad: { title: "Reklama" } },
    calc: { kicker: "Kalkulačka", title: "Spočítat splátku",
            mortgage: "Hypotéka", cash: "Hotovost", typeMortgage: "🏠 Hypotéka", typeCash: "💳 Hotovost",
            amount: "Výše úvěru", period: "Doba splácení", years: "let", months: "měsíců",
            monthlyPayment: "Měsíční splátka", rate: "Úrok", provision: "Poplatek", totalCost: "Celkové náklady",
            totalInterest: "Celkový úrok", toRepay: "K zaplacení",
            openFull: "Otevřít plnou kalkulačku", bankRanking: "🏆 Žebříček bank", allBanks: "Všechny →",
            aiTip: "🤖 AI tip", aiTipText1: "Vaše splátka je", aiTipText2: "% příjmu.",
            dti: "DTI (splátka/příjem)", dtiHint: "Banky preferují DTI pod 50%",
            chances: "Šance na schválení",
            detailed: "🎯 Plné posouzení bonity",
            detailedTitle: "Odpovězte na otázky, které banky kladou",
            detailedSubOpen: "Banky hodnotí 8+ faktorů",
            detailedSubClosed: "12 otázek, ~2 min.",
            factors: "📊 Faktory skóringu", sumPoints: "Body celkem",
            params: "Parametry úvěru", scheduleTitle: "Splátkový kalendář" },
    impact: { kicker: "Bilance KreditEU",
              title1: "Již", title2: "lidí", title3: "spočítalo svůj úvěr s námi.",
              sub: "Zdarma, bez registrace. Čísla se aktualizují živě.",
              countries: "🌍 Zemí Evropy", banks: "🏦 Bank", languages: "🌐 Jazyků",
              calculations: "📈 Výpočtů", programs: "🏛️ Programů dotací", visits: "👁 Návštěv",
              subCountries: "Polsko, Německo, Francie +27 dalších", subBanks: "Aktualizace týdně",
              subLanguages: "PL · EN · DE · FR · CZ · HU · NL", subCalculations: "Provedených v kalkulačce",
              subPrograms: "V 7 zemích Evropy", subVisits: "Od spuštění",
              chips: ["🇪🇺 30 zemí Evropy", "💯 100% zdarma", "🚫 Bez registrace", "🤖 AI analýza", "⚡ Live kurzy", "📱 Responzivní", "🔄 Týdenní update"] },
    pages: {
      markets:  { kicker: "📊 Tržní data", title: "Referenční ukazatele", sub: "WIBOR, EURIBOR, kurzy měn.", fxTitle: "Kurzy měn", fxNote: "Aktualizace: 12.05.2026", ratesNote: "Indikativní. Zdroj: NBP / ECB.", crumb: "Trhy" },
      banks:    { kicker: "🏦 Aktuální úroky", title: "Porovnejte úroky bank", sub: "Aktuální úroky ve 30 zemích.", lastUpdate: "Poslední: 12.05.2026",
                  th: { bank: "Banka", country: "Země", mortgage: "Hypot.", cash: "Hotov.", rrso: "RPSN", maxLtv: "Max LTV", prov: "Poplatek", trend: "Trend" },
                  disclaimer: "* Indikativní data.", crumb: "Banky" },
      programs: { kicker: "🏛️ Programy", title: "Státní podpora", sub: "Programy dotací v Evropě.", benefit: "Výhoda", whoCan: "Kdo?", crumb: "Programy" },
      articles: { kicker: "📚 Báze znalostí", title: "Úvěrové průvodce", sub: "Praktické znalosti.", catAll: "Vše", crumb: "Články" },
      article:  { recommended: "Doporučené", readMore: "Otevřít kalkulačku", calcCard: "📊 Spočítat", calcCardSub: "Ověřte úspory ve vašich číslech." },
      faq:      { kicker: "❓ FAQ", title: "Máte otázky?", sub: "Vše o kalkulačce a úvěrech.", crumb: "FAQ" },
      contact:  { kicker: "📬 Kontakt", title: "Otázka? Napište nám.", sub: "Odpovídáme do 24-48h.",
                  name: "Jméno", email: "E-mail", topic: "Téma", message: "Zpráva", send: "📤 Odeslat",
                  sent: "Zpráva odeslána!", sentSub: "Dorazila do interní schránky.",
                  emailTitle: "E-mail", emailSub: "Odpověď do 24-48h",
                  bugTitle: "Nahlásit chybu", bugSub: "Chyby v datech, výpočtech, UI",
                  adsTitle: "Partnerství", adsSub: "Bannery, obsah",
                  topics: { general: "Obecná otázka", bug: "Nahlášení chyby", ads: "Reklama", rodo: "Vymazání dat (GDPR)" }, crumb: "Kontakt" },
      mortgage: { kicker: "🏠 Hypotéka", title: "Hypoteční kalkulačka", sub: "Zadejte parametry.", tipsKicker: "Tipy", tipsTitle: "Než podepíšete", tipsSub: "4 pravidla.",
                  tips: [["Ověřte bonitu", "Posuďte své šance."], ["Porovnejte nabídky", "0,5% = tisíce."], ["RPSN je pravda", "Ukáže skutečný náklad."], ["Riziko měny", "EUR má nižší úrok, ale kurz se mění."]] },
      cash:     { kicker: "💳 Hotovostní", title: "Hotovostní kalkulačka", sub: "Spočítejte splátku." },
      legal:    { lastUpdate: "Poslední aktualizace: 12. května 2026", privacyTitle: "Zásady ochrany soukromí", termsTitle: "Podmínky" },
    },
    whyUs: { kicker: "Proč KreditEU?", title: "Vytvořeno pro Evropany", sub: "30 zemí, dotace, AI analýza, živá data.",
             features: [["🌍", "30 zemí Evropy", "Polsko, Německo, Francie, Česko a 26 dalších."],
                        ["🤖", "AI analýza", "AI odhadne šance za 30 sekund."],
                        ["🏛️", "Státní programy", "Rodzinny Kredyt, KfW, PTZ, CSOK."],
                        ["📈", "Živé sazby", "Aktuální WIBOR, EURIBOR, kurzy měn."]] },
    ctaStrip: { title: "Připraveni počítat?", sub: "Vyberte typ úvěru a porovnejte 15+ bank.", mortgage: "🏠 Hypotéka", cash: "💳 Hotovost" },
    footer: { brand: "Bezplatná úvěrová kalkulačka pro 30 zemí Evropy.",
              tools: "Nástroje", knowledge: "Znalosti", info: "Informace",
              legal: "Upozornění: Kalkulačka má pouze informativní charakter.",
              copyright: "© 2026 KreditEU.com — pro obyvatele Evropy",
              cookies: "Cookies", privacy: "Soukromí", terms: "Podmínky", contact: "Kontakt", admin: "Admin",
              emailLabel: "E-mail", coopLabel: "Partnerství", bugLabel: "Chyba", statusLabel: "Stav dat", statusValue: "Aktuální · 12.05.2026" }
  },

  hu: {
    nav: { home: "Kalkulátor", banks: "Bankok", markets: "Piacok", programs: "Programok", articles: "Cikkek", faq: "GYIK", contact: "Kapcsolat" },
    cta: { calculate: "Számoljon", explore: "Eszközök", openAdmin: "Admin", openFull: "Teljes kalkulátor", seeAll: "Mind →" },
    hero: { kicker: "Pénzügyi kalkulátor 30 európai országhoz", title1: "Számítsd ki hiteltörlesztésed", title2: "bármelyik európai országban.",
            sub: "Válaszd az országot, töltsd ki, hasonlíts 15+ bankot.",
            mortgageBtn: "Jelzálog kalkulátor", compareBtn: "Bankok összehasonlítása" },
    heroStats: { countries: "EU országok", free: "Ingyenes", aiAnalysis: "AI elemzés", liveFx: "Élő árfolyamok" },
    visitor: { already: "Már", visits: "látogatás" },
    common: { home: "Főoldal", all: "Mind", live: "Élő", update: "Utolsó frissítés", weeklyUpdate: "Heti frissítés",
              loading: "Betöltés…", search: "Keresés…", searchPlaceholder: "Keresés…", noResults: "Nincs találat:",
              top5banks: "Top 5 bank", lowestMortgage: "Legalacsonyabb kamat",
              countriesEu: "ország Európában", inProgress: "7 európai országban", currencyLive: "MNB / EKB élő",
              minutes: "perces olvasás", recommended: "Ajánlott", back: "← Vissza",
              startTyping: "Kezdj el írni a kereséshez.", sections: "Részek", articles: "Cikkek", banks: "Bankok",
              cookieSettings: "Süti beállítások", glossary: "Fogalomtár", bankNews: "Banki hírek",
              singleInbox: "Egy postaláda minden témához", openForm: "Űrlap megnyitása",
              internalInbox: "Belső postaláda, nem kell mail kliens", nextUpdate: "Következő frissítés: hét. 06:00",
              rodoSla: "GDPR határidők szerint kezelve", betweenSections: "részek között" },
    tiles: { calc: { kicker: "💰 Kalkulátor", title: "Törlesztőrészlet kiszámítása", sub: "Jelzálog • Készpénz • EUR vs PLN" },
             wibor: { title: "WIBOR 3M" }, euribor: { title: "EURIBOR 3M" },
             fx: { title: "Árfolyamok", sub: "Élő MNB / EKB" }, banks: { title: "Top 5 bank", sub: "Legalacsonyabb kamatok", kicker: "🏦" },
             programs: { title: "Állami programok", sub: "Támogatások 7 országban", kicker: "🏛️", footer: "7+ támogatási program" },
             ai: { title: "AI hitelelemzés", sub: "Esélyek 30 mp alatt", kicker: "🤖", body: "Add meg az összeget és a jövedelmet.", cta: "Ellenőrzés" },
             compare: { title: "EUR vs PLN", sub: "Költségek összehasonlítása", kicker: "⚖️", diffNote: "≈ 2 100 PLN/hó különbség 400k-ra", pln: "átlag kamat", eur: "átlag kamat" },
             changes: { title: "Legutóbbi kamatváltozások", sub: "Ezen a héten változó bankok", kicker: "📡" },
             articles: { title: "Friss tudásbázis", sub: "Gyakorlati útmutatók", kicker: "📚 Tudás" }, ad: { title: "Hirdetés" } },
    calc: { kicker: "Kalkulátor", title: "Számold ki a részletet",
            mortgage: "Jelzálog", cash: "Készpénz", typeMortgage: "🏠 Jelzálog", typeCash: "💳 Készpénz",
            amount: "Hitel összege", period: "Futamidő", years: "év", months: "hónap",
            monthlyPayment: "Havi részlet", rate: "Kamat", provision: "Jutalék", totalCost: "Teljes költség",
            totalInterest: "Teljes kamat", toRepay: "Visszafizetendő",
            openFull: "Teljes kalkulátor", bankRanking: "🏆 Banki rangsor", allBanks: "Mind →",
            aiTip: "🤖 AI tipp", aiTipText1: "A részleted", aiTipText2: "% a jövedelmedből.",
            dti: "DTI (részlet/jövedelem)", dtiHint: "Bankok 50% alatt preferálnak",
            chances: "Esélyek a hitelre",
            detailed: "🎯 Teljes hitelképesség-vizsgálat",
            detailedTitle: "Válaszolj a bank kérdéseire",
            detailedSubOpen: "Bankok 8+ tényezőt vizsgálnak",
            detailedSubClosed: "12 kérdés, ~2 perc.",
            factors: "📊 Pontozási tényezők", sumPoints: "Összpontszám",
            params: "Hitel paraméterek", scheduleTitle: "Törlesztési ütemterv" },
    impact: { kicker: "KreditEU mérleg", title1: "Már", title2: "ember", title3: "számolt velünk hitelt.",
              sub: "Ingyenes, regisztráció nélkül. Számok élőben frissülnek.",
              countries: "🌍 Európai országok", banks: "🏦 Bankok", languages: "🌐 Nyelvek",
              calculations: "📈 Számítások", programs: "🏛️ Támogatási programok", visits: "👁 Látogatások",
              subCountries: "Lengyelország, Németország, Franciaország +27 más", subBanks: "Heti frissítés",
              subLanguages: "PL · EN · DE · FR · CZ · HU · NL", subCalculations: "Kalkulátorban végrehajtva",
              subPrograms: "7 európai országban", subVisits: "Indítás óta",
              chips: ["🇪🇺 30 európai ország", "💯 100% ingyenes", "🚫 Regisztráció nélkül", "🤖 AI elemzés", "⚡ Élő kamatok", "📱 Reszponzív", "🔄 Heti frissítés"] },
    pages: {
      markets:  { kicker: "📊 Piaci adatok", title: "Referenciamutatók", sub: "WIBOR, EURIBOR, árfolyamok.", fxTitle: "Árfolyamok", fxNote: "Frissítés: 2026.05.12", ratesNote: "Tájékoztató jellegű.", crumb: "Piacok" },
      banks:    { kicker: "🏦 Aktuális kamatok", title: "Hasonlíts banki kamatokat", sub: "Aktuális kamatok 30 országban.", lastUpdate: "Utolsó: 2026.05.12",
                  th: { bank: "Bank", country: "Ország", mortgage: "Jelzálog", cash: "Készpénz", rrso: "THM", maxLtv: "Max LTV", prov: "Jutalék", trend: "Trend" },
                  disclaimer: "* Tájékoztató adat.", crumb: "Bankok" },
      programs: { kicker: "🏛️ Programok", title: "Állami támogatás", sub: "Lakásvásárlási támogatások.", benefit: "Előny", whoCan: "Ki?", crumb: "Programok" },
      articles: { kicker: "📚 Tudásbázis", title: "Hitel útmutatók", sub: "Gyakorlati tudás.", catAll: "Mind", crumb: "Cikkek" },
      article:  { recommended: "Ajánlott", readMore: "Kalkulátor megnyitása", calcCard: "📊 Számold ki", calcCardSub: "Nézd meg a saját számaidat." },
      faq:      { kicker: "❓ GYIK", title: "Kérdésed van?", sub: "Minden a kalkulátorról és hitelekről.", crumb: "GYIK" },
      contact:  { kicker: "📬 Kapcsolat", title: "Kérdés? Írj nekünk.", sub: "24-48 órán belül válaszolunk.",
                  name: "Név", email: "E-mail", topic: "Téma", message: "Üzenet", send: "📤 Küldés",
                  sent: "Üzenet elküldve!", sentSub: "Belső postafiókba érkezett.",
                  emailTitle: "E-mail", emailSub: "Válasz 24-48h", bugTitle: "Hibajelzés", bugSub: "Adathiba, számítás, UI",
                  adsTitle: "Együttműködés", adsSub: "Bannerek, tartalom",
                  topics: { general: "Általános", bug: "Hibajelzés", ads: "Hirdetés", rodo: "Adattörlés (GDPR)" }, crumb: "Kapcsolat" },
      mortgage: { kicker: "🏠 Jelzáloghitel", title: "Jelzálog kalkulátor", sub: "Add meg a paramétereket.",
                  tipsKicker: "Tippek", tipsTitle: "Aláírás előtt", tipsSub: "4 szabály.",
                  tips: [["Ellenőrizd a hitelképességet", "Nézd meg az esélyeidet."], ["Hasonlíts ajánlatokat", "0,5% = ezrek."], ["A THM az igazság", "Nem a kamat, a THM mutatja."], ["Devizakockázat", "EUR alacsonyabb, de az árfolyam változhat."]] },
      cash:     { kicker: "💳 Készpénz", title: "Készpénz kalkulátor", sub: "Számold ki a részletet." },
      legal:    { lastUpdate: "Utolsó frissítés: 2026. május 12.", privacyTitle: "Adatvédelem", termsTitle: "Feltételek" },
    },
    whyUs: { kicker: "Miért KreditEU?", title: "Európaiaknak építve", sub: "30 ország, állami programok, AI elemzés.",
             features: [["🌍", "30 európai ország", "Lengyelország, Németország, Franciaország és 26 másik EU."],
                        ["🤖", "AI elemzés", "AI 30 másodperc alatt becsli."],
                        ["🏛️", "Állami programok", "Rodzinny Kredyt, KfW, PTZ, CSOK."],
                        ["📈", "Élő kamatok", "Aktuális WIBOR, EURIBOR, árfolyamok."]] },
    ctaStrip: { title: "Készen állsz számolni?", sub: "Válassz hiteltípust és hasonlíts 15+ bankot.", mortgage: "🏠 Jelzálog", cash: "💳 Készpénz" },
    footer: { brand: "Ingyenes hitelkalkulátor 30 európai országhoz.",
              tools: "Eszközök", knowledge: "Tudás", info: "Információ",
              legal: "Figyelmeztetés: tájékoztató jellegű kalkulátor.",
              copyright: "© 2026 KreditEU.com — Európa lakóinak",
              cookies: "Sütik", privacy: "Adatvédelem", terms: "Feltételek", contact: "Kapcsolat", admin: "Admin",
              emailLabel: "E-mail", coopLabel: "Együttműködés", bugLabel: "Hiba", statusLabel: "Adatok állapota", statusValue: "Aktuális · 2026.05.12" }
  },

  nl: {
    nav: { home: "Calculator", banks: "Banken", markets: "Markten", programs: "Programma's", articles: "Artikelen", faq: "FAQ", contact: "Contact" },
    cta: { calculate: "Bereken", explore: "Ontdek", openAdmin: "Beheer", openFull: "Volledige calculator", seeAll: "Alles →" },
    hero: { kicker: "Financiële rekenmachine voor 30 Europese landen",
            title1: "Bereken je leningstermijn", title2: "in elk land in Europa.",
            sub: "Kies een land, vul in, vergelijk 15+ banken.",
            mortgageBtn: "Hypotheekcalculator", compareBtn: "Banken vergelijken" },
    heroStats: { countries: "EU-landen", free: "Gratis", aiAnalysis: "AI-analyse", liveFx: "Wisselkoersen" },
    visitor: { already: "Al", visits: "bezoeken" },
    common: { home: "Home", all: "Alle", live: "Live", update: "Laatste update", weeklyUpdate: "Wekelijkse update",
              loading: "Laden…", search: "Zoeken…", searchPlaceholder: "Zoek artikelen, banken…", noResults: "Geen resultaten voor",
              top5banks: "Top 5 banken", lowestMortgage: "Laagste hypotheekrente",
              countriesEu: "landen in Europa", inProgress: "In 7 Europese landen", currencyLive: "NBP / ECB live",
              minutes: "min lezen", recommended: "Aanbevolen", back: "← Terug",
              startTyping: "Begin met typen om te zoeken.", sections: "Secties", articles: "Artikelen", banks: "Banken",
              cookieSettings: "Cookie-instellingen", glossary: "Begrippenlijst", bankNews: "Banknieuws",
              singleInbox: "Eén inbox voor alle onderwerpen", openForm: "Formulier openen",
              internalInbox: "Interne inbox, geen mail client nodig", nextUpdate: "Volgende update: ma. 06:00",
              rodoSla: "Behandeld binnen AVG-termijnen", betweenSections: "tussen secties" },
    tiles: { calc: { kicker: "💰 Calculator", title: "Bereken termijn", sub: "Hypotheek • Cash • EUR vs PLN" },
             wibor: { title: "WIBOR 3M" }, euribor: { title: "EURIBOR 3M" },
             fx: { title: "Wisselkoersen", sub: "NBP / ECB live" }, banks: { title: "Top 5 banken", sub: "Laagste hypotheekrente", kicker: "🏦" },
             programs: { title: "Overheidsprogramma's", sub: "Subsidies in 7 landen", kicker: "🏛️", footer: "7+ subsidieprogramma's in Europa" },
             ai: { title: "AI kredietanalyse", sub: "Kansen in 30 sec.", kicker: "🤖", body: "Voer bedrag en inkomen in.", cta: "Controleren" },
             compare: { title: "EUR vs PLN", sub: "Vergelijk in twee valuta", kicker: "⚖️", diffNote: "≈ 2.100 PLN/mnd verschil op 400k", pln: "gem. rente", eur: "gem. rente" },
             changes: { title: "Recente renteveranderingen", sub: "Banken die deze week wijzigden", kicker: "📡" },
             articles: { title: "Vers uit de kennisbank", sub: "Praktische gidsen", kicker: "📚 Kennis" }, ad: { title: "Advertentie" } },
    calc: { kicker: "Calculator", title: "Bereken termijn",
            mortgage: "Hypotheek", cash: "Cash", typeMortgage: "🏠 Hypotheek", typeCash: "💳 Cash",
            amount: "Leningbedrag", period: "Looptijd", years: "jaar", months: "maanden",
            monthlyPayment: "Maandtermijn", rate: "Rente", provision: "Commissie", totalCost: "Totale kosten",
            totalInterest: "Totale rente", toRepay: "Te betalen",
            openFull: "Volledige calculator", bankRanking: "🏆 Bankenranglijst", allBanks: "Alle →",
            aiTip: "🤖 AI-tip", aiTipText1: "Je termijn is", aiTipText2: "% van inkomen.",
            dti: "DTI (termijn/inkomen)", dtiHint: "Banken prefereren DTI onder 50%",
            chances: "Goedkeuringskansen",
            detailed: "🎯 Volledige beoordeling",
            detailedTitle: "Beantwoord de vragen die banken stellen",
            detailedSubOpen: "Banken beoordelen 8+ factoren",
            detailedSubClosed: "12 vragen, ~2 min.",
            factors: "📊 Scoringsfactoren", sumPoints: "Totaal punten",
            params: "Leenparameters", scheduleTitle: "Aflossingsschema" },
    impact: { kicker: "KreditEU balans", title1: "Reeds", title2: "mensen", title3: "berekenden hun lening bij ons.",
              sub: "Gratis, zonder login. Cijfers worden live bijgewerkt.",
              countries: "🌍 Europese landen", banks: "🏦 Banken", languages: "🌐 Talen",
              calculations: "📈 Berekeningen", programs: "🏛️ Subsidieprogramma's", visits: "👁 Bezoeken",
              subCountries: "Polen, Duitsland, Frankrijk +27 anderen", subBanks: "Wekelijks bijgewerkt",
              subLanguages: "PL · EN · DE · FR · CZ · HU · NL", subCalculations: "Uitgevoerd in calculator",
              subPrograms: "In 7 Europese landen", subVisits: "Sinds lancering",
              chips: ["🇪🇺 30 Europese landen", "💯 100% gratis", "🚫 Geen login", "🤖 AI-analyse", "⚡ Live tarieven", "📱 Responsief", "🔄 Wekelijkse update"] },
    pages: {
      markets:  { kicker: "📊 Marktgegevens", title: "Referentie-indicatoren", sub: "WIBOR, EURIBOR, wisselkoersen.", fxTitle: "Wisselkoersen", fxNote: "Update: 12-05-2026", ratesNote: "Indicatief.", crumb: "Markten" },
      banks:    { kicker: "🏦 Actuele rente", title: "Vergelijk bankrente", sub: "Actuele rentes in 30 landen.", lastUpdate: "Laatste: 12-05-2026",
                  th: { bank: "Bank", country: "Land", mortgage: "Hypotheek", cash: "Cash", rrso: "JKP", maxLtv: "Max LTV", prov: "Commissie", trend: "Trend" },
                  disclaimer: "* Indicatieve data.", crumb: "Banken" },
      programs: { kicker: "🏛️ Programma's", title: "Overheidssteun bij woningaankoop", sub: "Subsidieprogramma's.", benefit: "Voordeel", whoCan: "Wie?", crumb: "Programma's" },
      articles: { kicker: "📚 Kennisbank", title: "Kredietgidsen", sub: "Praktische kennis.", catAll: "Alle", crumb: "Artikelen" },
      article:  { recommended: "Aanbevolen", readMore: "Open calculator", calcCard: "📊 Bereken nu", calcCardSub: "Check je eigen cijfers." },
      faq:      { kicker: "❓ FAQ", title: "Vragen? Antwoorden hier.", sub: "Alles over de calculator en leningen.", crumb: "FAQ" },
      contact:  { kicker: "📬 Contact", title: "Vraag? Schrijf ons.", sub: "We reageren binnen 24-48 uur.",
                  name: "Naam", email: "E-mail", topic: "Onderwerp", message: "Bericht", send: "📤 Verstuur",
                  sent: "Bericht verzonden!", sentSub: "Het kwam aan in onze interne inbox.",
                  emailTitle: "E-mail", emailSub: "Reactie binnen 24-48h",
                  bugTitle: "Bug melden", bugSub: "Fouten in data, berekeningen, UI",
                  adsTitle: "Partnerschap", adsSub: "Banners, content",
                  topics: { general: "Algemene vraag", bug: "Bug melden", ads: "Adv / partnerschap", rodo: "Data verwijderen (AVG)" }, crumb: "Contact" },
      mortgage: { kicker: "🏠 Hypotheek", title: "Hypotheekcalculator", sub: "Voer parameters in.",
                  tipsKicker: "Tips", tipsTitle: "Voor je tekent", tipsSub: "4 regels.",
                  tips: [["Check kredietwaardigheid", "Beoordeel je kansen."], ["Vergelijk aanbiedingen", "0,5% = duizenden."], ["JKP is waarheid", "Niet rente, JKP toont kosten."], ["Wisselkoersrisico", "EUR-lening lager, maar kan veranderen."]] },
      cash:     { kicker: "💳 Cash", title: "Cash-calculator", sub: "Bereken de termijn." },
      legal:    { lastUpdate: "Laatste update: 12 mei 2026", privacyTitle: "Privacybeleid", termsTitle: "Voorwaarden" },
    },
    whyUs: { kicker: "Waarom KreditEU?", title: "Gebouwd voor Europeanen", sub: "30 landen, overheidsprogramma's, AI-analyse.",
             features: [["🌍", "30 Europese landen", "Polen, Duitsland, Frankrijk, Tsjechië en 26 andere EU."],
                        ["🤖", "AI-analyse", "AI schat kansen in 30 seconden."],
                        ["🏛️", "Overheidsprogramma's", "Rodzinny Kredyt, KfW, PTZ, CSOK."],
                        ["📈", "Live tarieven", "Actuele WIBOR, EURIBOR, wisselkoersen."]] },
    ctaStrip: { title: "Klaar om te rekenen?", sub: "Kies type en vergelijk 15+ banken.", mortgage: "🏠 Hypotheek", cash: "💳 Cash" },
    footer: { brand: "Gratis kredietrekenmachine voor 30 Europese landen.",
              tools: "Tools", knowledge: "Kennis", info: "Informatie",
              legal: "Disclaimer: De rekenmachine is uitsluitend informatief.",
              copyright: "© 2026 KreditEU.com — voor inwoners van Europa",
              cookies: "Cookies", privacy: "Privacybeleid", terms: "Voorwaarden", contact: "Contact", admin: "Beheer",
              emailLabel: "E-mail", coopLabel: "Partnerschap", bugLabel: "Bug melden", statusLabel: "Datastatus", statusValue: "Actueel · 12-05-2026" }
  },
};

// Translation helper — walks dotted path, falls back to PL, then to the provided fallback
function t(lang, path, fallback) {
  const walk = (root) => {
    let v = root;
    for (const p of (path || "").split(".")) {
      if (v && typeof v === "object" && p in v) v = v[p];
      else return undefined;
    }
    return v;
  };
  let v = walk(I18N[lang]);
  if (v === undefined && lang !== "pl") v = walk(I18N.pl);
  if (v === undefined) v = fallback;
  return v === undefined ? path : v;
}

// ─────────────────────────────────────────────────────────────────────────
// Helpers
// ─────────────────────────────────────────────────────────────────────────

function annuity(principal, annualRatePct, months) {
  const r = annualRatePct / 100 / 12;
  if (r === 0) return principal / months;
  return principal * (r * Math.pow(1 + r, months)) / (Math.pow(1 + r, months) - 1);
}

function formatMoney(value, currency = "PLN") {
  if (!isFinite(value)) return "—";
  const v = Math.round(value);
  return v.toLocaleString("pl-PL") + " " + currency;
}

function formatNumber(value, digits = 0) {
  if (!isFinite(value)) return "—";
  return Number(value).toLocaleString("pl-PL", { minimumFractionDigits: digits, maximumFractionDigits: digits });
}

function loadAdminCustomArticles() {
  try {
    const raw = localStorage.getItem("kr_admin_articles");
    if (!raw) return [];
    const parsed = JSON.parse(raw);
    return Array.isArray(parsed) ? parsed.filter(a => a && a.id && a.title) : [];
  } catch (err) {
    return [];
  }
}

const ADMIN_CUSTOM_ARTICLES = loadAdminCustomArticles();
const ADMIN_CUSTOM_IDS = new Set(ADMIN_CUSTOM_ARTICLES.map(a => a.id));
const ALL_ARTICLES = [
  ...ADMIN_CUSTOM_ARTICLES,
  ...ARTICLES.filter(a => !ADMIN_CUSTOM_IDS.has(a.id)),
];

// Expose globals
Object.assign(window, {
  COUNTRIES, BANKS, FX, REFERENCE_RATES, PROGRAMS, ARTICLES: ALL_ARTICLES, FAQS,
  DEFAULT_TILES, LANGS, I18N,
  annuity, formatMoney, formatNumber,
});
