const { useState: useStateF, useEffect: useEffectF } = React;

const FAQ_T = {
  tr: {
    metaTitle: "SSS · OBDThink",
    nav: { features: "Özellikler", chassis: "Uyumluluk", howitworks: "Nasıl Çalışır", pricing: "Fiyatlandırma", adapters: "Adaptörler", blog: "Blog", faq: "SSS", download: "İndir" },
    hero: { eyebrow: "SIKÇA SORULAN SORULAR", title1: "Aklındaki her şeyin", title2: "net cevabı.", sub: "Kurulum, özellikler, bağlantı sorunları ve güvenlik. Burada yoksa doğrudan bize yaz — chatbot değil, insan cevaplıyor.", contact: "Destek e-posta" },
    legal: "Tüm hakları saklıdır",
    all: "Hepsi",
    cats: { general: "Genel", adapter: "Adaptör & Bağlantı", coding: "Kodlama & Güvenlik", pricing: "Fiyat & Lisans" },
    items: [
      { cat: "general", q: "Hata kodlarını okuyup silebilir miyim?", a: "Evet — tüm ECU'lar için. Kapsamlı diyagnostik, hata önem seviyesi göstergeleri ve dahili hata kodu veritabanı mevcut." },
      { cat: "general", q: "Canlı veri takip edebilir miyim?", a: "Kesinlikle. Motor devri (RPM), soğutma sıvısı sıcaklığı, batarya sağlığı gibi gerçek zamanlı metrikler eksiksiz mevcut." },
      { cat: "general", q: "OBDThink'i diğerlerinden ayıran ne?", a: "Gerçek bir hepsi-bir-arada uygulama: Diyagnostik, canlı veri izleme ve ECU kodlama tek bir platformda. Artı, rakiplerine kıyasla çok daha esnek ve bütçe dostu bir fiyatlandırma sunar." },
      { cat: "general", q: "Destek nasıl işliyor?", a: "Dokümantasyonda kurulum, sorun giderme ve özellikler baştan sona açıklanır. Çözülemeyen durumlarda destek ekibimizle doğrudan temasa geç — sinir bozucu chatbot yok." },
      { cat: "adapter", q: "Hangi adaptörler uyumlu?", a: "Kodlama ve diyagnostik için test edilmiş popüler ENET ve OBD-II Wi-Fi / Bluetooth adaptörleri desteklenir. Detaylı liste için Adaptörler sayfamıza bak." },
      { cat: "adapter", q: "ENET / kablolu adaptörle neden bağlanamıyorum?", a: "Cihazında Airplane Mode'u aç, Wi-Fi ve Bluetooth'u kapat. Statik IP elle ayarla (örn. 169.254.250.250 / 255.255.0.0), sonra adaptörü tekrar bağla. Sorun devam ederse aracı 20-30 dk uyumaya bırak veya aküyü resetlemek için toprak kablosunu kısa süreli sök." },
      { cat: "adapter", q: "Bluetooth veya Wi-Fi adaptörü sürekli bağlantı kopartıyor, ne yapmalıyım?", a: "CarPlay veya araç içi Bluetooth bağlantılarını kapat. Telefonunun otomatik Wi-Fi / ağ geçişini devre dışı bırak. Bazı cihazlar OBD bağlantısına müdahale eder — kullanım sırasında onları kapalı tut." },
      { cat: "adapter", q: "ENET kabloda 'Connection Error' hatası alıyorum, nasıl çözerim?", a: "Genellikle kablo veya konnektör tam oturmamıştır. Her iki ucu çıkar ve sıkıca geri tak. Portta kir varsa temizle." },
      { cat: "coding", q: "Kullanması güvenli mi?", a: "Evet — her kodlama değişikliğinin otomatik yedeği alınır ve geri yüklenebilir. Gerekirse her zaman fabrika ayarlarına dönebilirsin. Yine de dikkatli ol: küçük bir hata bile ECU'da beklenmedik davranışa veya hata kodlarına yol açabilir. Değişiklikten önce şablonunu iki kez kontrol et ve doğrulanmış bir yedeğin olduğundan emin ol." },
      { cat: "coding", q: "Yazılım güncellemeleri nasıl?", a: "Ömür boyu güncelleme ve otomatik ECU veritabanı yenilenmesi — her zaman en güncel protokol ve özelliklere sahip olursun." },
      { cat: "pricing", q: "Almadan önce deneyebilir miyim?", a: "Evet. Ücretsiz 'Lite' sürüm temel diyagnostik ve canlı veri özelliklerini sunar. ECU kodlama ve gelişmiş araçlar için ücretli lisans gerekir — haftalık, aylık, yıllık veya ömür boyu seçenekler mevcut." },
    ],
    cta: { title: "Hâlâ cevabını bulamadın mı?", sub: "Destek ekibimize doğrudan yaz — 24 saat içinde dönüş yaparız.", btn: "Destek ile iletişime geç", home: "Ana sayfa" },
  },
  en: {
    metaTitle: "FAQ · OBDThink",
    nav: { features: "Features", chassis: "Compatibility", howitworks: "How it works", pricing: "Pricing", adapters: "Adapters", blog: "Blog", faq: "FAQ", download: "Download" },
    hero: { eyebrow: "FREQUENTLY ASKED QUESTIONS", title1: "Clear answers to", title2: "everything on your mind.", sub: "Setup, features, connection troubleshooting, and safety. If it's not here, reach out to us directly — a human replies, not a chatbot.", contact: "Support email" },
    legal: "All rights reserved",
    all: "All",
    cats: { general: "General", adapter: "Adapter & Connection", coding: "Coding & Safety", pricing: "Pricing & License" },
    items: [
      { cat: "general", q: "Can I read and clear fault codes?", a: "Yes — for all ECUs. Includes full diagnostics, fault severity indicators, and access to a built-in fault code database." },
      { cat: "general", q: "Can I track live vehicle data?", a: "Absolutely. Real-time metrics such as engine RPM, coolant temperature, battery health, and more." },
      { cat: "general", q: "What makes OBDThink unique?", a: "OBDThink is a true all-in-one app — offering diagnostics, live data monitoring, and ECU coding within a single platform — plus it provides more flexible and budget-friendly pricing compared to competitors." },
      { cat: "general", q: "How is support handled?", a: "Documentation covers setup, troubleshooting, and features. For unresolved issues, contact our support team directly — no frustrating chatbots." },
      { cat: "adapter", q: "What adapters are compatible?", a: "Supports popular ENET and OBD-II Wi-Fi / Bluetooth adapters tested for coding and diagnostics. See our Adapters page for the full list." },
      { cat: "adapter", q: "Why can't I connect with my ENET / wired adapter?", a: "Ensure Airplane Mode is on and Wi-Fi / Bluetooth are off on your device. Manually set a static IP (e.g. 169.254.250.250 / 255.255.0.0), then reconnect the adapter. If issues persist, allow the car to sleep for 20–30 minutes or briefly disconnect the battery ground for a reset." },
      { cat: "adapter", q: "Bluetooth or Wi-Fi adapter keeps disconnecting — what do I do?", a: "Turn off CarPlay or any in-car Bluetooth links, and disable automatic Wi-Fi / network switching on your phone. Some devices interfere with OBD connections, so disable them during use." },
      { cat: "adapter", q: "The app shows 'Connection Error' on ENET cable — how to fix?", a: "This often happens when the device or cable isn't fully seated. Unplug and firmly reconnect everything. Clean the port if dusty." },
      { cat: "coding", q: "Is it safe to use?", a: "Yes — every coding change can be backed up and restored. You can always revert to factory settings if needed. However, proceed with caution: even small errors during coding can lead to unexpected ECU behavior or fault codes. Always double-check your templates and have a verified backup before applying any changes." },
      { cat: "coding", q: "What about software updates?", a: "Lifetime updates and automatic ECU database refreshes ensure you always have the latest protocols and features." },
      { cat: "pricing", q: "Can I try it before buying?", a: "Yes — a free 'Lite' version provides basic diagnostics and live data features. ECU coding and advanced tools require a paid license with weekly, monthly, yearly or lifetime options." },
    ],
    cta: { title: "Still can't find your answer?", sub: "Write to our support team directly — we reply within 24 hours.", btn: "Contact support", home: "Home" },
  },

  de: {
    metaTitle: "FAQ · OBDThink",
    nav: { features: "Funktionen", chassis: "Kompatibilität", howitworks: "Funktionsweise", pricing: "Preise", adapters: "Adapter", blog: "Blog", faq: "FAQ", download: "Herunterladen" },
    hero: { eyebrow: "HÄUFIGE FRAGEN", title1: "Klare Antworten auf", title2: "alles, was dich beschäftigt.", sub: "Einrichtung, Funktionen, Verbindungsprobleme und Sicherheit. Fehlt etwas? Schreib uns direkt — ein Mensch antwortet, kein Bot.", contact: "Support-E-Mail" },
    legal: "Alle Rechte vorbehalten",
    all: "Alle",
    cats: { general: "Allgemein", adapter: "Adapter & Verbindung", coding: "Codierung & Sicherheit", pricing: "Preise & Lizenz" },
    items: [
      { cat: "general", q: "Kann ich Fehlercodes lesen und löschen?", a: "Ja — für alle Steuergeräte. Mit vollständiger Diagnose, Schweregrad-Anzeige und integrierter Fehlercode-Datenbank." },
      { cat: "general", q: "Kann ich Live-Fahrzeugdaten verfolgen?", a: "Auf jeden Fall. Echtzeit-Werte wie Drehzahl, Kühlmitteltemperatur, Batteriezustand und mehr." },
      { cat: "general", q: "Was macht OBDThink besonders?", a: "OBDThink ist eine echte All-in-One-App — Diagnose, Live-Daten und Codierung in einer Plattform — mit flexiblerem und günstigerem Preismodell als die Konkurrenz." },
      { cat: "general", q: "Wie funktioniert der Support?", a: "Die Dokumentation deckt Einrichtung, Fehlerbehebung und Funktionen ab. Bei ungelösten Problemen schreibst du direkt unserem Team — keine frustrierenden Chatbots." },
      { cat: "adapter", q: "Welche Adapter sind kompatibel?", a: "Unterstützt populäre ENET- und OBD-II-Wi-Fi-/Bluetooth-Adapter, getestet für Codierung und Diagnose. Vollständige Liste auf der Adapter-Seite." },
      { cat: "adapter", q: "Warum verbindet mein ENET- / Kabel-Adapter nicht?", a: "Stelle sicher, dass Flugmodus aktiviert ist und Wi-Fi / Bluetooth deaktiviert sind. Setze manuell eine statische IP (z. B. 169.254.250.250 / 255.255.0.0) und verbinde erneut. Hält das Problem an, lasse das Auto 20–30 Min. schlafen oder trenne kurz das Massekabel der Batterie." },
      { cat: "adapter", q: "Bluetooth- oder Wi-Fi-Adapter trennt sich ständig — was tun?", a: "Deaktiviere CarPlay oder Bluetooth-Bordverbindungen und das automatische Netzwechseln am Handy. Manche Geräte stören die OBD-Verbindung — während der Nutzung deaktivieren." },
      { cat: "adapter", q: "Die App zeigt 'Connection Error' am ENET-Kabel — wie beheben?", a: "Meist sitzt das Kabel nicht richtig. Beide Enden abziehen und fest wieder einstecken. Bei Staub den Port reinigen." },
      { cat: "coding", q: "Ist es sicher?", a: "Ja — vor jeder Codierung wird automatisch eine Sicherung erstellt, jederzeit wiederherstellbar. Du kannst immer auf Werkseinstellungen zurück. Trotzdem Vorsicht: schon kleine Fehler können zu unerwartetem Verhalten oder Fehlercodes führen. Templates doppelt prüfen und ein bestätigtes Backup haben." },
      { cat: "coding", q: "Wie sieht es mit Software-Updates aus?", a: "Lebenslange Updates und automatische ECU-Datenbank-Aktualisierungen — du hast immer die neuesten Protokolle und Funktionen." },
      { cat: "pricing", q: "Kann ich es vor dem Kauf testen?", a: "Ja — eine kostenlose 'Lite'-Version bietet grundlegende Diagnose und Live-Daten. ECU-Codierung und erweiterte Tools brauchen eine Lizenz: Woche / Monat / Jahr / lebenslang." },
    ],
    cta: { title: "Deine Antwort doch nicht dabei?", sub: "Schreib direkt unserem Support — Antwort innerhalb von 24 Stunden.", btn: "Support kontaktieren", home: "Startseite" },
  },

  fr: {
    metaTitle: "FAQ · OBDThink",
    nav: { features: "Fonctionnalités", chassis: "Compatibilité", howitworks: "Fonctionnement", pricing: "Tarifs", adapters: "Adaptateurs", blog: "Blog", faq: "FAQ", download: "Télécharger" },
    hero: { eyebrow: "QUESTIONS FRÉQUENTES", title1: "Des réponses claires à", title2: "tout ce qui te trotte en tête.", sub: "Installation, fonctionnalités, soucis de connexion et sécurité. Si la réponse n'est pas ici, écris-nous — un humain répond, pas un bot.", contact: "E-mail support" },
    legal: "Tous droits réservés",
    all: "Tout",
    cats: { general: "Général", adapter: "Adaptateur & Connexion", coding: "Codage & Sécurité", pricing: "Tarifs & Licence" },
    items: [
      { cat: "general", q: "Puis-je lire et effacer les codes défauts ?", a: "Oui — sur tous les calculateurs. Diagnostic complet, indicateurs de gravité et base de codes intégrée." },
      { cat: "general", q: "Puis-je suivre les données live ?", a: "Bien sûr. Régime moteur, température de liquide, état de batterie et plus, en temps réel." },
      { cat: "general", q: "Qu'est-ce qui distingue OBDThink ?", a: "Une vraie app tout-en-un : diagnostic, données en direct et codage ECU sur une seule plateforme — avec une tarification plus flexible et abordable que la concurrence." },
      { cat: "general", q: "Comment fonctionne le support ?", a: "La documentation couvre installation, dépannage et fonctions. En cas de blocage, contacte directement notre équipe — sans chatbot frustrant." },
      { cat: "adapter", q: "Quels adaptateurs sont compatibles ?", a: "Compatible avec les adaptateurs ENET et OBD-II Wi-Fi/Bluetooth populaires, testés pour le codage et le diagnostic. Liste complète sur la page Adaptateurs." },
      { cat: "adapter", q: "Pourquoi mon adaptateur ENET / filaire ne se connecte pas ?", a: "Active le mode Avion et désactive Wi-Fi/Bluetooth. Configure manuellement une IP statique (ex. 169.254.250.250 / 255.255.0.0), puis reconnecte. Si ça persiste, laisse la voiture dormir 20–30 min, ou débranche brièvement la masse de la batterie." },
      { cat: "adapter", q: "L'adaptateur Bluetooth/Wi-Fi se déconnecte tout le temps — que faire ?", a: "Désactive CarPlay ou Bluetooth voiture, et le basculement automatique de réseaux sur ton téléphone. Certains appareils gênent la connexion OBD — désactive-les pendant l'usage." },
      { cat: "adapter", q: "L'app affiche 'Connection Error' avec le câble ENET — comment résoudre ?", a: "Souvent le câble n'est pas bien enfoncé. Débranche et rebranche fermement les deux extrémités. Nettoie le port s'il est poussiéreux." },
      { cat: "coding", q: "Est-ce sûr ?", a: "Oui — chaque codage est sauvegardé automatiquement et restaurable. Retour aux paramètres d'origine à tout moment. Mais sois prudent : une petite erreur peut entraîner un comportement inattendu ou des codes défauts. Vérifie tes templates deux fois et garde un backup validé." },
      { cat: "coding", q: "Et les mises à jour logicielles ?", a: "Mises à jour à vie et rafraîchissement automatique de la base ECU — toujours les derniers protocoles et fonctions." },
      { cat: "pricing", q: "Puis-je essayer avant d'acheter ?", a: "Oui — une version 'Lite' gratuite offre diagnostic basique et données en direct. Le codage ECU et les outils avancés nécessitent une licence : semaine / mois / an / à vie." },
    ],
    cta: { title: "Toujours pas de réponse ?", sub: "Écris à notre support — réponse sous 24h.", btn: "Contacter le support", home: "Accueil" },
  },

  es: {
    metaTitle: "FAQ · OBDThink",
    nav: { features: "Funciones", chassis: "Compatibilidad", howitworks: "Cómo funciona", pricing: "Precios", adapters: "Adaptadores", blog: "Blog", faq: "FAQ", download: "Descargar" },
    hero: { eyebrow: "PREGUNTAS FRECUENTES", title1: "Respuestas claras a", title2: "todo lo que te ronda.", sub: "Instalación, funciones, problemas de conexión y seguridad. Si no está aquí, escríbenos — responde un humano, no un bot.", contact: "Email de soporte" },
    legal: "Todos los derechos reservados",
    all: "Todo",
    cats: { general: "General", adapter: "Adaptador & Conexión", coding: "Codificación & Seguridad", pricing: "Precio & Licencia" },
    items: [
      { cat: "general", q: "¿Puedo leer y borrar códigos de fallo?", a: "Sí — en todas las ECUs. Diagnóstico completo, indicadores de gravedad y base de códigos integrada." },
      { cat: "general", q: "¿Puedo seguir datos en vivo?", a: "Por supuesto. Métricas en tiempo real: RPM, temperatura de refrigerante, estado de batería y más." },
      { cat: "general", q: "¿Qué hace única a OBDThink?", a: "Una verdadera app todo-en-uno: diagnóstico, datos en vivo y codificación ECU en una sola plataforma — con precios más flexibles y asequibles que la competencia." },
      { cat: "general", q: "¿Cómo funciona el soporte?", a: "La documentación cubre instalación, resolución de problemas y funciones. Para casos no resueltos, contacta directamente con nuestro equipo — sin chatbots frustrantes." },
      { cat: "adapter", q: "¿Qué adaptadores son compatibles?", a: "Compatible con adaptadores ENET y OBD-II Wi-Fi/Bluetooth populares, probados para codificación y diagnóstico. Lista completa en la página de Adaptadores." },
      { cat: "adapter", q: "¿Por qué no conecta mi adaptador ENET/cableado?", a: "Activa Modo avión y desactiva Wi-Fi/Bluetooth. Configura IP estática manualmente (p. ej. 169.254.250.250 / 255.255.0.0), luego reconecta. Si persiste, deja dormir el coche 20–30 min, o desconecta brevemente la masa de la batería." },
      { cat: "adapter", q: "El adaptador Bluetooth/Wi-Fi se desconecta — ¿qué hago?", a: "Apaga CarPlay o conexiones Bluetooth del coche y el cambio automático de red en el teléfono. Algunos dispositivos interfieren con OBD — desactívalos durante el uso." },
      { cat: "adapter", q: "La app muestra 'Connection Error' con cable ENET — ¿cómo lo arreglo?", a: "Suele ser que el cable no está bien encajado. Desconecta y reconecta firmemente ambos extremos. Limpia el puerto si hay polvo." },
      { cat: "coding", q: "¿Es seguro usarlo?", a: "Sí — cada cambio se respalda automáticamente y se puede restaurar. Vuelta a valores de fábrica cuando quieras. Aun así, ten cuidado: pequeños errores pueden causar comportamientos inesperados o códigos de fallo. Revisa tus plantillas dos veces y mantén un backup verificado." },
      { cat: "coding", q: "¿Y las actualizaciones?", a: "Actualizaciones de por vida y refresco automático de la base ECU — siempre con los últimos protocolos y funciones." },
      { cat: "pricing", q: "¿Puedo probarlo antes de comprar?", a: "Sí — la versión 'Lite' gratuita ofrece diagnóstico básico y datos en vivo. Codificación ECU y herramientas avanzadas requieren licencia: semanal / mensual / anual / de por vida." },
    ],
    cta: { title: "¿Aún sin tu respuesta?", sub: "Escríbenos directamente — respondemos en 24 horas.", btn: "Contactar soporte", home: "Inicio" },
  },

  ru: {
    metaTitle: "Вопросы · OBDThink",
    nav: { features: "Возможности", chassis: "Совместимость", howitworks: "Как это работает", pricing: "Цены", adapters: "Адаптеры", blog: "Блог", faq: "Вопросы", download: "Скачать" },
    hero: { eyebrow: "ЧАСТЫЕ ВОПРОСЫ", title1: "Чёткие ответы на всё,", title2: "что тебя волнует.", sub: "Установка, функции, проблемы соединения и безопасность. Если ответа нет — напиши нам напрямую, отвечает человек, а не бот.", contact: "Email поддержки" },
    legal: "Все права защищены",
    all: "Все",
    cats: { general: "Общее", adapter: "Адаптер и соединение", coding: "Кодирование и безопасность", pricing: "Цены и лицензия" },
    items: [
      { cat: "general", q: "Можно ли читать и сбрасывать коды?", a: "Да — по всем ECU. Полная диагностика, индикаторы серьёзности и встроенная база кодов." },
      { cat: "general", q: "Можно отслеживать живые данные?", a: "Конечно. Обороты, температура ОЖ, состояние АКБ и многое другое в реальном времени." },
      { cat: "general", q: "Чем OBDThink уникален?", a: "Это настоящее всё-в-одном: диагностика, живые данные и кодирование ECU на одной платформе — с гибкими и доступными ценами в сравнении с конкурентами." },
      { cat: "general", q: "Как устроена поддержка?", a: "В документации — установка, диагностика проблем и функции. Если не помогло — пиши напрямую команде, без раздражающих ботов." },
      { cat: "adapter", q: "Какие адаптеры совместимы?", a: "Поддерживаются популярные ENET- и OBD-II Wi-Fi/Bluetooth-адаптеры, протестированные на кодирование и диагностику. Полный список — в разделе Адаптеры." },
      { cat: "adapter", q: "Почему не подключается ENET/проводной адаптер?", a: "Включи режим полёта, отключи Wi-Fi/Bluetooth. Назначь статический IP вручную (например 169.254.250.250 / 255.255.0.0), подключи заново. Если не помогло — оставь машину спать 20–30 мин, или ненадолго отсоедини массу АКБ." },
      { cat: "adapter", q: "Bluetooth/Wi-Fi-адаптер постоянно отваливается — что делать?", a: "Выключи CarPlay или Bluetooth-связь в машине и автопереключение сетей на телефоне. Некоторые устройства мешают OBD-связи — отключай их во время работы." },
      { cat: "adapter", q: "Приложение пишет 'Connection Error' с ENET-кабелем — как починить?", a: "Чаще всего кабель просто не до конца вставлен. Отсоедини и плотно подключи оба конца. Очисти порт от пыли." },
      { cat: "coding", q: "Это безопасно?", a: "Да — перед каждой кодировкой автоматически создаётся бэкап, можно откатиться в любой момент. Возврат к заводу — всегда доступен. Но осторожность нужна: даже маленькая ошибка может вызвать неожиданное поведение или ошибки. Проверяй шаблоны дважды, держи подтверждённый бэкап." },
      { cat: "coding", q: "А обновления?", a: "Пожизненные обновления и автоматическое обновление базы ECU — у тебя всегда последние протоколы и функции." },
      { cat: "pricing", q: "Можно попробовать до покупки?", a: "Да — бесплатная версия 'Lite' даёт базовую диагностику и живые данные. Кодирование ECU и продвинутые инструменты — по лицензии: неделя / месяц / год / навсегда." },
    ],
    cta: { title: "Ответ всё ещё не найден?", sub: "Напиши нам — ответим в течение 24 часов.", btn: "Связаться с поддержкой", home: "Главная" },
  },

  pl: {
    metaTitle: "FAQ · OBDThink",
    nav: { features: "Funkcje", chassis: "Kompatybilność", howitworks: "Jak to działa", pricing: "Cennik", adapters: "Adaptery", blog: "Blog", faq: "FAQ", download: "Pobierz" },
    hero: { eyebrow: "CZĘSTE PYTANIA", title1: "Jasne odpowiedzi na", title2: "wszystko, co chodzi ci po głowie.", sub: "Instalacja, funkcje, problemy z połączeniem i bezpieczeństwo. Jeśli odpowiedzi tu nie ma — napisz do nas, odpowiada człowiek, nie bot.", contact: "Email wsparcia" },
    legal: "Wszelkie prawa zastrzeżone",
    all: "Wszystkie",
    cats: { general: "Ogólne", adapter: "Adapter i połączenie", coding: "Kodowanie i bezpieczeństwo", pricing: "Cena i licencja" },
    items: [
      { cat: "general", q: "Czy mogę czytać i kasować błędy?", a: "Tak — we wszystkich ECU. Pełna diagnostyka, wskaźniki ważności i wbudowana baza kodów." },
      { cat: "general", q: "Czy mogę śledzić dane na żywo?", a: "Oczywiście. W czasie rzeczywistym: obroty silnika, temperatura płynu, stan akumulatora i więcej." },
      { cat: "general", q: "Co wyróżnia OBDThink?", a: "Prawdziwa aplikacja all-in-one — diagnostyka, dane na żywo i kodowanie ECU w jednej platformie — z bardziej elastyczną i przystępną ceną niż konkurencja." },
      { cat: "general", q: "Jak działa wsparcie?", a: "Dokumentacja obejmuje instalację, rozwiązywanie problemów i funkcje. Nieprzewidziane sytuacje — pisz bezpośrednio do zespołu wsparcia, bez frustrujących botów." },
      { cat: "adapter", q: "Jakie adaptery są kompatybilne?", a: "Wspieramy popularne adaptery ENET i OBD-II Wi-Fi/Bluetooth, testowane pod kodowanie i diagnostykę. Pełna lista na stronie Adaptery." },
      { cat: "adapter", q: "Dlaczego mój adapter ENET/przewodowy się nie łączy?", a: "Włącz tryb samolotowy i wyłącz Wi-Fi/Bluetooth. Ustaw ręcznie statyczne IP (np. 169.254.250.250 / 255.255.0.0), połącz ponownie. Jeśli problem trwa — pozwól autu zasnąć 20–30 min lub odłącz na chwilę masę akumulatora." },
      { cat: "adapter", q: "Adapter Bluetooth/Wi-Fi ciągle się rozłącza — co zrobić?", a: "Wyłącz CarPlay lub łączność Bluetooth z autem oraz automatyczne przełączanie sieci w telefonie. Niektóre urządzenia zakłócają połączenie OBD — wyłączaj je podczas użytkowania." },
      { cat: "adapter", q: "Aplikacja pokazuje 'Connection Error' z kablem ENET — jak naprawić?", a: "Zwykle kabel nie jest do końca wpięty. Wyjmij i mocno wepnij oba końce. Wyczyść port, jeśli zakurzony." },
      { cat: "coding", q: "Czy to bezpieczne?", a: "Tak — każde kodowanie ma automatyczną kopię, można cofnąć. Powrót do ustawień fabrycznych zawsze możliwy. Mimo to ostrożność: nawet drobny błąd może prowadzić do nieoczekiwanego zachowania lub kodów błędów. Sprawdź szablony dwa razy i miej zweryfikowaną kopię." },
      { cat: "coding", q: "A aktualizacje?", a: "Dożywotnie aktualizacje i automatyczne odświeżanie bazy ECU — zawsze najnowsze protokoły i funkcje." },
      { cat: "pricing", q: "Mogę spróbować przed zakupem?", a: "Tak — bezpłatna wersja 'Lite' daje podstawową diagnostykę i dane na żywo. Kodowanie ECU i zaawansowane narzędzia wymagają licencji: tygodniowej / miesięcznej / rocznej / dożywotniej." },
    ],
    cta: { title: "Wciąż nie ma odpowiedzi?", sub: "Napisz do naszego wsparcia — odpowiadamy w 24 godziny.", btn: "Skontaktuj się ze wsparciem", home: "Strona główna" },
  },

  ar: {
    metaTitle: "الأسئلة · OBDThink",
    nav: { features: "الميزات", chassis: "التوافق", howitworks: "كيف يعمل", pricing: "الأسعار", adapters: "المحوّلات", blog: "المدوّنة", faq: "الأسئلة", download: "تنزيل" },
    hero: { eyebrow: "الأسئلة الشائعة", title1: "إجابات واضحة عن", title2: "كل ما يخطر ببالك.", sub: "التثبيت، الميزات، مشاكل الاتّصال والسلامة. إن لم تجد ما تبحث عنه، راسلنا — يردّ إنسان لا روبوت.", contact: "بريد الدعم" },
    legal: "جميع الحقوق محفوظة",
    all: "الكل",
    cats: { general: "عام", adapter: "المحوّل والاتّصال", coding: "البرمجة والسلامة", pricing: "السعر والترخيص" },
    items: [
      { cat: "general", q: "هل أستطيع قراءة الأكواد ومسحها؟", a: "نعم — لكل وحدات التحكّم. تشخيص كامل، مؤشّرات لخطورة العطل، وقاعدة بيانات أكواد مدمجة." },
      { cat: "general", q: "هل يمكنني متابعة البيانات الحيّة؟", a: "بالتأكيد. قيم مباشرة كدورات المحرّك، حرارة المبرّد، حالة البطّارية وأكثر." },
      { cat: "general", q: "ما الذي يميّز OBDThink؟", a: "تطبيق متكامل فعلاً: تشخيص، بيانات حيّة، وبرمجة ECU في منصّة واحدة — وبتسعير أكثر مرونة وملاءمة للميزانية من المنافسين." },
      { cat: "general", q: "كيف يعمل الدعم؟", a: "التوثيق يغطّي التثبيت، حل المشكلات والميزات. للأمور غير المحلولة، تواصل مع فريق الدعم مباشرة — بلا روبوتات مزعجة." },
      { cat: "adapter", q: "ما المحوّلات المتوافقة؟", a: "يدعم محوّلات ENET و OBD-II بـ Wi-Fi/Bluetooth الشهيرة، مختبرة للبرمجة والتشخيص. القائمة الكاملة في صفحة المحوّلات." },
      { cat: "adapter", q: "لماذا لا يتّصل محوّل ENET/سلكي؟", a: "فعّل وضع الطيران، أوقف Wi-Fi/Bluetooth. اضبط IP ثابت يدوياً (مثلاً 169.254.250.250 / 255.255.0.0)، ثم أعد الاتّصال. إن استمرّ، اترك السيارة تنام 20–30 دقيقة أو افصل أرضي البطّارية لحظات." },
      { cat: "adapter", q: "محوّل Bluetooth/Wi-Fi ينقطع باستمرار — ماذا أفعل؟", a: "أوقف CarPlay أو روابط Bluetooth الداخلية في السيارة، وأوقف التبديل التلقائي للشبكات في الهاتف. بعض الأجهزة تتداخل مع اتّصال OBD — أوقفها أثناء الاستخدام." },
      { cat: "adapter", q: "التطبيق يعرض 'Connection Error' مع كابل ENET — كيف الحل؟", a: "غالباً الكابل غير مركّب جيداً. افصل كلا الطرفين وأعدهما بإحكام. نظّف المنفذ إن كان مغبراً." },
      { cat: "coding", q: "هل استخدامه آمن؟", a: "نعم — كل تعديل برمجي يُحفظ تلقائياً ويمكن استرجاعه. العودة إلى إعدادات المصنع متاحة دائماً. مع ذلك توخّ الحذر: أخطاء صغيرة قد تتسبّب بسلوك غير متوقع أو أكواد أعطال. راجع القوالب جيّداً واحتفظ بنسخة مؤكّدة." },
      { cat: "coding", q: "ماذا عن تحديثات البرنامج؟", a: "تحديثات مدى الحياة وتجديد تلقائي لقاعدة ECU — لديك دائماً أحدث البروتوكولات والميزات." },
      { cat: "pricing", q: "هل أستطيع التجربة قبل الشراء؟", a: "نعم — نسخة 'Lite' مجانية بتشخيص أساسي وبيانات حيّة. برمجة ECU والأدوات المتقدّمة تتطلّب ترخيصاً: أسبوعي / شهري / سنوي / مدى الحياة." },
    ],
    cta: { title: "ما زلت لم تجد إجابتك؟", sub: "راسل فريق الدعم مباشرة — نردّ خلال 24 ساعة.", btn: "تواصل مع الدعم", home: "الرئيسية" },
  },
};

const FAQIcons = {
  Arrow: ({size=16}) => (<svg width={size} height={size} viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="2"><path d="M5 12h14M13 6l6 6-6 6"/></svg>),
  Plus: ({size=18}) => (<svg width={size} height={size} viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="2" strokeLinecap="round"><path d="M12 5v14M5 12h14"/></svg>),
  Mail: ({size=16}) => (<svg width={size} height={size} viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="2" strokeLinecap="round" strokeLinejoin="round"><rect x="2" y="4" width="20" height="16" rx="2"/><path d="M22 7 12 13 2 7"/></svg>),
};

function FAQLogo({size=40}) {
  return (<a href="/" style={{display:"flex",alignItems:"center",gap:10}}>
    <img src="/assets/obdthink-logo.png" alt="OBDThink" width={size} height={size} style={{height:size,width:size,display:"block",borderRadius:size*0.22}}/>
  </a>);
}

function FAQNav({ t, lang, setLang }) {
  const [menuOpen, setMenuOpen] = useStateF(false);
  const links = Object.entries(t.nav).filter(([k]) => k !== "download").map(([k,v]) => {
    const href = k === "adapters" ? `/${lang}/adapters` : k === "faq" ? `/${lang}/faq` : k === "blog" ? `/${lang}/blog` : `/#${k}`;
    return { k, v, href, active: k === "faq" };
  });
  return (<nav className="site-nav" style={{position:"sticky",top:0,zIndex:100,background:"color-mix(in oklab, var(--bg) 80%, transparent)",backdropFilter:"blur(16px)",borderBottom:"1px solid var(--line)"}}>
    <div className="container site-nav-row" style={{display:"flex",alignItems:"center",justifyContent:"space-between",padding:"18px 28px"}}>
      <div className="site-nav-left" style={{display:"flex",alignItems:"center",gap:40}}>
        <FAQLogo />
        <div className="site-nav-links" style={{display:"flex",gap:28}}>
          {links.map(({k,v,href,active}) => (<a key={k} href={href} style={{fontSize:13,color:active?"var(--fg)":"var(--fg-dim)",fontWeight:active?600:500}}>{v}</a>))}
        </div>
      </div>
      <div className="site-nav-right" style={{display:"flex",alignItems:"center",gap:10}}>
        <LanguageMenu lang={lang} setLang={setLang}/>
        <a href="/#download" className="btn btn-primary site-nav-cta" style={{padding:"10px 16px",fontSize:13}}>{t.nav.download} <FAQIcons.Arrow size={14}/></a>
        <button className="site-nav-hamburger" aria-label="menu" aria-expanded={menuOpen} onClick={() => setMenuOpen(o => !o)}>
          <span style={{transform: menuOpen ? "translateY(6px) rotate(45deg)" : "none"}}/>
          <span style={{opacity: menuOpen ? 0 : 1}}/>
          <span style={{transform: menuOpen ? "translateY(-6px) rotate(-45deg)" : "none"}}/>
        </button>
      </div>
    </div>
    {menuOpen && (
      <div className="site-nav-mobile-panel">
        {links.map(({k,v,href,active}) => (<a key={k} href={href} style={{color: active ? "var(--accent)" : undefined}} onClick={() => setMenuOpen(false)}>{v}</a>))}
        <a href="/#download" className="btn btn-primary" style={{justifyContent:"center"}} onClick={() => setMenuOpen(false)}>{t.nav.download} <FAQIcons.Arrow size={14}/></a>
      </div>
    )}
  </nav>);
}

function FAQHero({ t }) {
  return (<section className="carbon-bg" style={{position:"relative",padding:"100px 0 80px",overflow:"hidden"}}>
    <div className="container">
      <div style={{maxWidth:860}}>
        <div className="eyebrow" style={{marginBottom:24}}><span className="dot"/> {t.hero.eyebrow}</div>
        <h1 className="display" style={{fontSize:"clamp(48px, 7vw, 92px)",lineHeight:0.98,margin:0,fontWeight:600}}>
          {t.hero.title1}<br/><span style={{color:"var(--accent)"}}>{t.hero.title2}</span>
        </h1>
        <p style={{fontSize:19,color:"var(--fg-dim)",lineHeight:1.5,marginTop:28,maxWidth:720}}>{t.hero.sub}</p>
        <a href="mailto:support@obdthink.com" style={{marginTop:28,display:"inline-flex",alignItems:"center",gap:10,color:"var(--accent)",fontSize:14,fontFamily:"'JetBrains Mono', monospace"}}>
          <FAQIcons.Mail size={15}/> support@obdthink.com
        </a>
      </div>
    </div>
  </section>);
}

function FAQItem({ item, i, isOpen, onToggle }) {
  return (<div style={{borderBottom:"1px solid var(--line)"}}>
    <button onClick={onToggle} style={{width:"100%",padding:"26px 0",display:"flex",justifyContent:"space-between",alignItems:"center",gap:20,textAlign:"left"}}>
      <div style={{display:"flex",alignItems:"baseline",gap:18,flex:1}}>
        <span className="mono" style={{fontSize:12,color:"var(--fg-mute)",letterSpacing:".1em",minWidth:28}}>{String(i+1).padStart(2,"0")}</span>
        <span className="display" style={{fontSize:19,fontWeight:500,color:isOpen?"var(--accent)":"var(--fg)",transition:"color .15s ease"}}>{item.q}</span>
      </div>
      <span style={{width:32,height:32,borderRadius:8,border:"1px solid var(--line-2)",display:"flex",alignItems:"center",justifyContent:"center",color:isOpen?"var(--accent)":"var(--fg-dim)",transform:isOpen?"rotate(45deg)":"rotate(0)",transition:"transform .2s ease, color .15s ease",flexShrink:0}}>
        <FAQIcons.Plus size={16}/>
      </span>
    </button>
    <div style={{maxHeight:isOpen?600:0,overflow:"hidden",transition:"max-height .3s ease"}}>
      <div style={{padding:"0 0 26px 46px",fontSize:15,color:"var(--fg-dim)",lineHeight:1.65,maxWidth:780}}>{item.a}</div>
    </div>
  </div>);
}

function FAQList({ t }) {
  const [activeCat, setActiveCat] = useStateF("all");
  const [openIdx, setOpenIdx] = useStateF(0);
  const filtered = activeCat === "all" ? t.items : t.items.filter(i => i.cat === activeCat);
  const cats = [["all", t.all], ...Object.entries(t.cats)];
  return (<section style={{padding:"40px 0 100px"}}>
    <div className="container">
      <div style={{display:"flex",gap:10,flexWrap:"wrap",marginBottom:40}}>
        {cats.map(([id,label]) => (<button key={id} onClick={() => { setActiveCat(id); setOpenIdx(0); }} className={`filter-chip ${activeCat===id?"active":""}`}>{label}</button>))}
      </div>
      <div>
        {filtered.map((item,i) => (<FAQItem key={i} item={item} i={i} isOpen={openIdx===i} onToggle={() => setOpenIdx(openIdx===i?-1:i)}/>))}
      </div>
    </div>
  </section>);
}

function FAQCta({ t }) {
  return (<section style={{padding:"100px 0",borderTop:"1px solid var(--line)",textAlign:"center"}}>
    <div className="container">
      <h2 className="display" style={{fontSize:"clamp(36px, 5vw, 56px)",margin:0,fontWeight:600,lineHeight:1.05}}>{t.cta.title}</h2>
      <p style={{fontSize:18,color:"var(--fg-dim)",margin:"18px auto 32px",maxWidth:560,lineHeight:1.5}}>{t.cta.sub}</p>
      <div style={{display:"inline-flex",gap:12}}>
        <a href="mailto:support@obdthink.com" className="btn btn-primary"><FAQIcons.Mail size={15}/> {t.cta.btn}</a>
        <a href="/" className="btn btn-ghost">← {t.cta.home}</a>
      </div>
    </div>
  </section>);
}

function FAQFooter({ t, lang }) {
  return (<footer style={{borderTop:"1px solid var(--line)",padding:"48px 0 32px",background:"var(--bg-2)"}}>
    <div className="container" style={{display:"flex",alignItems:"center",justifyContent:"space-between",flexWrap:"wrap",gap:20}}>
      <div style={{display:"flex",alignItems:"center",gap:16}}>
        <FAQLogo size={36}/>
        <div style={{fontSize:12,color:"var(--fg-mute)",fontFamily:"'JetBrains Mono', monospace"}}>© {new Date().getFullYear()} OBDThink · {t.legal}</div>
      </div>
      <div style={{display:"flex",gap:24,fontSize:13,color:"var(--fg-dim)",flexWrap:"wrap"}}>
        <a href="/">{t.cta.home}</a>
        <a href={`/${lang}/adapters`}>{t.nav.adapters}</a>
        <a href={`/${lang}/blog`}>{t.nav.blog}</a>
        <a href={`/${lang}/faq`} style={{color:"var(--fg)"}}>{t.nav.faq}</a>
        <a href="/privacy-policy">Privacy</a>
        <a href="/#download">{t.nav.download}</a>
      </div>
    </div>
  </footer>);
}

function FAQApp() {
  const [lang, setLang] = useStateF(() => {
    if (typeof window.__INITIAL_LANG__ === "string" && window.__INITIAL_LANG__) return window.__INITIAL_LANG__;
    return typeof readSharedLang === "function" ? readSharedLang() : "tr";
  });
  useEffectF(() => {
    if (typeof writeSharedLang === "function") writeSharedLang(lang);
    document.documentElement.lang = lang;
    const tt = FAQ_T[lang]?.metaTitle;
    if (tt) document.title = tt;
  }, [lang]);
  const t = FAQ_T[lang];
  return (<>
    <FAQNav t={t} lang={lang} setLang={setLang}/>
    <FAQHero t={t}/>
    <FAQList t={t}/>
    <FAQCta t={t}/>
    <FAQFooter t={t} lang={lang}/>
  </>);
}

ReactDOM.createRoot(document.getElementById("root")).render(<FAQApp/>);
