// i18n: TR + EN translations, language switcher
const { useState: useStateI, useEffect: useEffectI, createContext: createContextI, useContext: useContextI } = React;

const LANGS = ['tr', 'en'];
const DEFAULT_LANG = 'tr';


// URL is the source of truth for language
function langFromPath(pathname) {
  if (pathname === '/en' || pathname === '/en/' || pathname.startsWith('/en/')) return 'en';
  return 'tr';
}

// Bidirectional URL map: TR (canonical) → EN equivalent.
// Slugs are localized so each language has discoverable URLs (SEO).
const PATH_MAP_TR_EN = {
  '/': '/en',
  '/noctavia': '/en/noctavia',
  '/noctavia/sesli-yorum': '/en/noctavia/voice-interpretation',
  '/noctavia/ruya-sozlugu': '/en/noctavia/dream-dictionary',
  '/noctavia/tema-analizi': '/en/noctavia/theme-analysis',
  '/noctavia/premium': '/en/noctavia/premium',
  '/noctavia/ruya-gunlugu': '/en/noctavia/dream-journal',
  '/zikirmatik': '/en/zikirmatik',
  '/ramazan': '/en/ramadan',
  '/kelime-bul': '/en/word-find',
  '/hesap-vakti': '/en/bill-time',
  '/tenax': '/en/tenax',
  '/patisstray': '/en/patisstray',
  '/gizlilik': '/en/privacy',
  '/kullanim-sartlari': '/en/terms',
  // Veri silme: mağaza formuna uygulama başına TEK adres giriliyor, o yüzden
  // her uygulamanın kendi yolu var. Hub yalnızca yol gösterici.
  '/veri-silme': '/en/data-deletion',
  '/veri-silme/zikirmatik': '/en/data-deletion/zikirmatik',
  '/veri-silme/noctavia': '/en/data-deletion/noctavia',
  '/veri-silme/kelime-bul': '/en/data-deletion/word-find',
  '/veri-silme/tenax': '/en/data-deletion/tenax',
  '/veri-silme/patisstray': '/en/data-deletion/patisstray',
};
const PATH_MAP_EN_TR = (() => {
  const r = {};
  for (const k in PATH_MAP_TR_EN) r[PATH_MAP_TR_EN[k]] = k;
  return r;
})();

// Canonicalize any URL path to its TR (canonical) form.
// Handles: known TR slug, known EN slug (via reverse map), or unknown
// /en/-prefixed path (fallback strip).
function toTrCanonical(pathname) {
  if (PATH_MAP_EN_TR[pathname]) return PATH_MAP_EN_TR[pathname];
  if (pathname === '/en' || pathname === '/en/') return '/';
  if (pathname.startsWith('/en/')) return pathname.slice(3);
  return pathname;
}

// Return the equivalent path in `targetLang`. Idempotent for any input
// (both '/foo' and '/en/foo' produce the same canonical target).
function pathForLang(currentPath, targetLang) {
  const tr = toTrCanonical(currentPath);
  if (targetLang === 'tr') return tr;
  // targetLang === 'en'
  if (PATH_MAP_TR_EN[tr]) return PATH_MAP_TR_EN[tr];
  if (tr === '/' || tr === '') return '/en';
  return '/en' + tr;  // unknown TR path → prefix fallback
}

const LangContext = createContextI({ lang: DEFAULT_LANG, setLang: () => {} });

function LangProvider({ children }) {
  const [lang, setLangState] = useStateI(() => langFromPath(window.location.pathname));

  // Keep state in sync with URL (popstate, programmatic nav)
  useEffectI(() => {
    const sync = () => setLangState(langFromPath(window.location.pathname));
    window.addEventListener('popstate', sync);
    window.addEventListener('kolabs:navigate', sync);
    return () => {
      window.removeEventListener('popstate', sync);
      window.removeEventListener('kolabs:navigate', sync);
    };
  }, []);

  const setLang = (l) => {
    if (!LANGS.includes(l)) return;
    if (lang === l) return;
    const target = pathForLang(window.location.pathname, l);
    if (target !== window.location.pathname) {
      window.history.pushState({}, '', target);
      window.dispatchEvent(new Event('kolabs:navigate'));
      window.scrollTo({ top: 0, behavior: 'instant' });
    }
    setLangState(l);
  };

  useEffectI(() => {
    document.documentElement.lang = lang;
    try { localStorage.setItem('kolabs-lang', lang); } catch (e) {}
    // Update og:locale, meta description per language
    const meta = document.querySelector('meta[name="description"]');
    const ogLocale = document.querySelector('meta[property="og:locale"]');
    const ogDesc = document.querySelector('meta[property="og:description"]');
    const ogTitle = document.querySelector('meta[property="og:title"]');
    if (lang === 'en') {
      if (meta) meta.setAttribute('content', 'kolabs — Android and iOS app studio. Noctavia, Zikirmatik, Vakit, Word Find, Bill Time and Tenax.');
      if (ogLocale) ogLocale.setAttribute('content', 'en_US');
      if (ogDesc) ogDesc.setAttribute('content', 'Mobile apps for the meaningful moments of everyday life — designed in Türkiye, used worldwide.');
      if (ogTitle) ogTitle.setAttribute('content', 'kolabs. — Android apps');
    } else {
      if (meta) meta.setAttribute('content', 'Kolabs — Android ve iOS uygulama geliştirme markası. Noctavia, Zikirmatik, Vakit, Kelime Bul, Hesap Vakti ve Tenax.');
      if (ogLocale) ogLocale.setAttribute('content', 'tr_TR');
      if (ogDesc) ogDesc.setAttribute('content', 'Günlük hayatın anlamlı anları için mobil uygulamalar — Türkiye\'de tasarlanır, dünyada kullanılır.');
      if (ogTitle) ogTitle.setAttribute('content', 'kolabs. — Android uygulamaları');
    }
  }, [lang]);
  return React.createElement(LangContext.Provider, { value: { lang, setLang } }, children);
}

function useLang() {
  return useContextI(LangContext);
}

function useT() {
  const { lang } = useLang();
  return TRANSLATIONS[lang] || TRANSLATIONS.tr;
}

// ─── Translations ─────────────────────────────────────────────────
const TR = {
  // Chrome
  nav: {
    home: 'Anasayfa',
    apps: 'Uygulamalar',
    manifesto: 'Manifesto',
    contact: 'İletişim',
    playStore: 'Play Store',
    appStore: 'App Store',
    menu: 'Menü',
  },
  ticker: {
    sys: 'operational',
    version: 'v 1.4.0 · build 2026.04',
    apps: '6 uygulama · TR yapımı',
  },
  footer: {
    intro: 'kolabs, günlük hayatı kolaylaştıran mobil uygulamalar geliştiren bağımsız bir stüdyodur. Her ürünümüzde hız, özen ve gizlilik aynı önceliği taşır.',
    appsTitle: 'Uygulamalar',
    noctaviaTitle: 'Noctavia',
    legalTitle: 'Yasal',
    privacy: 'Gizlilik Politikası',
    terms: 'Kullanım Şartları',
    dataDeletion: 'Veri Silme',
    rights: '© 2026 kolabs',
    tagline: 'Made with care · Designed in TR',
    sesliYorum: 'Sesli Yorum',
    ruyaSozlugu: 'Rüya Sözlüğü',
    temaAnalizi: 'Tema Analizi',
    ruyaGunlugu: 'Rüya Günlüğü',
    premium: 'Premium',
  },
  // App descriptions used in nav dropdown + footer
  appsMeta: {
    noctavia: { name: 'Noctavia', desc: 'AI rüya tabircin', tag: 'AI' },
    zikirmatik: { name: 'Zikirmatik', desc: 'Dijital tesbih', tag: 'İslami' },
    ramazan: { name: 'Vakit', desc: 'Ezan, namaz & kıble', tag: 'İslami' },
    kelimebul: { name: 'Kelime Bul', desc: 'Türkçe kelime oyunu', tag: 'Oyun' },
    hesapvakti: { name: 'Hesap Vakti', desc: 'Hesabı kim ödeyecek?', tag: 'Oyun' },
    tenax: { name: 'Tenax', desc: 'Yapay zekâ antrenman koçu', tag: 'Fitness' },
    patisstray: { name: 'PatissTray', desc: 'Pastane–kafe sipariş sistemi', tag: 'İşletme' },
  },
  // Home
  home: {
    title: 'Anasayfa',
    heroEyebrow: 'K-001 · 2023\'ten beri aktif',
    heroBrandDot: '.',
    heroTagline: 'Günlük hayatın anlamlı anları için mobil uygulamalar — Türkiye\'de tasarlanır, dünyada kullanılır.',
    metaApps: 'uygulama yayında',
    metaLangs: 'dil desteği',
    metaRating: 'ortalama puan',
    portfolioNum: '[ 01 ] Portfolio',
    portfolioTitle: 'Uygulamalar',
    portfolioDesc: 'Her biri belirli bir günlük rutine adanmış, özenle inşa edilmiş.',
    apps: {
      noctavia: {
        name: 'Noctavia',
        tagline: 'Yapay zeka destekli rüya tabircin. Sesli anlat, AI yorumlasın. 6 dilde sembol sözlüğü ve tema analizi.',
        category: 'AI · Rüya',
      },
      zikirmatik: {
        name: 'Zikirmatik',
        tagline: 'Modern, sade dijital tesbih. Sayaç, hedefler, çoklu set. Titreşim ve ses ile.',
        category: 'İslami',
      },
      ramazan: {
        name: 'Vakit: Ezan, Namaz & Kıble',
        tagline: 'Ezan ve namaz vakitleri, kıble yönü, imsak ve iftar. Konum bazlı uyarılar — Türkiye ve dünya genelinde.',
        category: 'İslami',
      },
      kelimebul: {
        name: 'Kelime Bul',
        tagline: 'Türkçe kelime bulmaca. 10.000+ kelime, 200+ seviye, günlük zorluk.',
        category: 'Oyun',
      },
      hesapvakti: {
        name: 'Hesap Vakti',
        tagline: 'Hesabı kim ödeyecek? Parmaklar ekrana, geri sayım başlasın. Eğlenceli parti oyunu.',
        category: 'Parti Oyunu',
      },
      tenax: {
        name: 'Tenax',
        tagline: 'Sakatlığını ve ekipmanını soran, programını sana göre yazan yapay zekâ antrenör.',
        category: 'Fitness',
      },
      patisstray: {
        name: 'PatissTray',
        tagline: 'Pastane ile kafe arasındaki toptan siparişi, üretimi ve dağıtımı tek uygulamaya alan işletme sistemi.',
        category: 'İşletme',
      },
    },
    statusLive: 'Live',
    statusSoon: 'Yakında',
    featuredEyebrow: '★ Yeni — vol. 04 · Q3 2026',
    featuredTitle1: 'Tenax',
    featuredTitle2: 'programını yazsın',
    featuredText: 'Sakatlığını, ekipmanını ve hedefini sorar, 12 haftalık programını ona göre yazar. 412 hareketin tamamı videolu; kendi programın, set kaydı ve geçmişinin tamamı ücretsiz.',
    featuredCtaPrimary: 'Keşfet',
    featuredCtaSecondary: 'App Store',
    manifestoNum: '[ 02 ] Manifesto',
    manifestoTitle: 'Ne yapıyoruz?',
    manifestoDesc: 'Bizi yönlendiren üç ilke.',
    principles: [
      { num: 'İLKE 01', tag: 'Odak', title: 'Tek ihtiyaç, tam çözüm.', desc: 'Her uygulama belirli bir ihtiyaç için tasarlanır. Özellik eklemek yerine var olanı kusursuzlaştırırız; açtığın anda ne yapacağını bilirsin.' },
      { num: 'İLKE 02', tag: 'Şeffaflık', title: 'Şeffaf veri.', desc: 'Yalnızca uygulamanın çalışması için gerekeni işleriz. Hangi verinin neden kullanıldığı gizlilik politikamızda uygulama bazında açıkça yazar; kişisel verileri satmayız.' },
      { num: 'İLKE 03', tag: 'Yerel', title: 'Yerelden küresele.', desc: 'Türkçe düşünür, dünya için tasarlarız. Uygulamalarımız birden fazla dilde, yerel alışkanlıkları gözeten bir anlayışla sunulur.' },
    ],
  },
  // 404
  notFound: {
    crumb: '404',
    h1: 'Bulunamadı.',
    h2: 'Aradığın sayfa burada değil. Belki başka bir rüyada.',
    cta: 'Ana sayfa →',
  },
  // Common
  common: {
    download: 'Play Store\'dan İndir',
    downloadShort: 'Play Store ↗',
    downloadAppStore: 'App Store\'dan İndir',
    features: 'Özellikler',
    faq: 'Sıkça Sorulanlar',
    featuresQ: 'Ne yapabilir?',
    featuresDesc: 'Tek odakta, özenle inşa edilmiş.',
    faqDesc: 'En çok merak edilenler.',
    detail: 'Detay',
    back: 'Geri',
    allFeatures: 'Tüm özellikler →',
  },
  // Yeni tasarımın arayüz metinleri (hero, bölüm başlıkları, butonlar).
  // Geçici — metinler sonra elden geçirilecek.
  ui: {
    studio: 'Android & iOS uygulama stüdyosu',
    appsCount: 'uygulama',
    scroll: 'Kaydır ↓',
    explore: 'Uygulamayı incele →',
    goTo: (name) => `${name} sayfasına git`,
    replay: 'Tekrar oynat',
    themeToggle: 'Tema değiştir',
    manifestoText: 'Her uygulama tek bir ihtiyaca odaklanır. Gereksiz ekran yok, dikkat dağıtan özellik yok. Açtığın anda işini görür; zamanına ve verine saygı duyar.',
    storesLabel: 'Mağazalar',
    storesTitle: <>Tüm uygulamalarımız,<br />tek adreste.</>,
    storesText: 'Uygulamalarımızı Google Play ve App Store\'dan indirebilirsin.',
    devPlay: 'Google Play',
    devApple: 'App Store',
    apps: 'Uygulamalar',
    screens: 'Ekranlar',
    screensTitle: 'Yakından bak.',
    screensSoon: 'Ekran görüntüleri yakında',
    soonBig: 'Yakında.',
    nextApp: 'Sonraki uygulama',
    support: 'Destek',
    badgePlaySmall: 'Google Play’den',
    badgePlay: 'İndir',
    badgeAppleSmall: 'App Store’dan',
    badgeApple: 'İndir',
    rec: 'Canlı kayıt',
    results: (n) => `${n} sonuç`,
    all: 'Tümü',
    records: (n) => `${n} kayıt`,
  },
  // Uygulama sayfalarındaki rakam şeridi. Rakamlar mevcut metinlerden türetildi.
  appStats: {
    noctavia: [['1000+', 'sembollük rüya sözlüğü'], ['6', 'dil: TR · EN · AR · DE · FR · ES'], ['3', 'bölümlü AI yorumu'], ['30', 'günlük tema analizi']],
    zikirmatik: [['1', 'dokunuşla sayaç'], ['33 · 99', 'hazır hedefler ve özel hedef'], ['0', 'toplanan veri'], ['%100', 'çevrimdışı']],
    ramazan: [['81', 'il ve tüm ilçeler'], ['5', 'vakit + imsak & iftar'], ['Dünya', 'geneli şehir desteği'], ['Canlı', 'geri sayım']],
    kelimebul: [['10.000+', 'Türkçe kelime'], ['200+', 'seviye'], ['1', 'yeni zorluk, her gün'], ['0', 'internet gereksinimi']],
    hesapvakti: [['2–10', 'oyuncu aynı ekranda'], ['3·2·1', 'geri sayım'], ['1', 'kaybeden hesabı öder'], ['0', 'internet gereksinimi']],
    tenax: [['412', 'videolu hareket'], ['12', 'haftalık program'], ['5', 'ücretsiz program yuvası'], ['50', 'Pro ile program yuvası']],
    patisstray: [['3', 'rol: kafe · imalatçı · şoför'], ['1', 'uygulama, tek sipariş hattı'], ['0', 'uygulama içi ödeme'], ['Offline', 'sipariş kuyruğu']],
  },
  // App detail pages
  apps: {
    zikirmatik: {
      crumb: 'Zikirmatik',
      eyebrow: 'İslami · Tesbih',
      h1: 'Zikirmatik — modern dijital tesbih',
      h2: 'Sade, hızlı, sessiz. Cep telefonun bir tesbihe dönüşür.',
      lead: <>Zikirmatik, klasik tesbihin sadeliğini cebine taşır. <strong>Tek dokunuşla sayaç</strong>, hedef belirleme, çoklu zikir setleri ve isteğe bağlı titreşim/ses geri bildirimi sunar. Karanlık modda tek elle kullanım için optimize edilmiş — gece namazından sonra ya da yolda, gözünü ekrandan ayırmadan zikrini tamamla. <strong>Çevrimdışı, gizliliğe saygılı, ücretsiz.</strong></>,
      features: [
        { title: 'Tek dokunuş sayaç', desc: 'Ekranın herhangi bir yerine dokun, sayaç artar. Yan tuşlarla da çalışır.' },
        { title: 'Hedef ayarı', desc: '33, 99, 100 ya da özel hedef. Hedefe ulaşınca uyarı.' },
        { title: 'Çoklu set', desc: 'Subhanallah, Elhamdülillah, Allahuekber gibi birden fazla zikir setini paralel takip et.' },
        { title: 'Titreşim & ses', desc: 'Her zikrede hafif titreşim ya da klik sesi — tamamen isteğe bağlı.' },
      ],
      faq: [
        { q: 'Çevrimdışı çalışır mı?', a: 'Evet, internet bağlantısı gerekmez. Tüm sayım ve setler cihazda saklanır.' },
        { q: 'Ücretsiz mi?', a: 'Evet, ücretsizdir. Uygulamada reklamlar görüntülenebilir.' },
        { q: 'Verilerim nereye gidiyor?', a: 'Hiçbir veri toplamıyoruz. Sayım sadece cihazında kalır.' },
      ],
      ctaTitle: 'Zikrine başla.',
      ctaSub: 'Ücretsiz, çevrimdışı, sade.',
    },
    ramazan: {
      crumb: 'Vakit',
      eyebrow: 'İslami · Vakit',
      h1: 'Vakit: Ezan, Namaz & Kıble — vaktinde uyar, doğru hesapla',
      h2: 'Ezan, namaz ve kıble. İmsak ve iftar. Konum bazlı, dünya genelinde.',
      lead: <>İmsak, iftar ve beş vakit namaz zamanlarını <strong>konumuna göre dinamik olarak</strong> hesaplayan bir uygulama. <strong>Türkiye'nin tüm il ve ilçelerinde</strong> ve <strong>dünya genelinde</strong> şehirlerde çalışır — konumuna göre otomatik tespit ya da manuel şehir seçimi. İftar ve imsak için <strong>özelleştirilebilir bildirimler</strong>, canlı geri sayım ve aylık takvim görünümü. Hızlı, sade, gerçek zamanlı güncel.</>,
      features: [
        { title: 'Tüm dünya', desc: 'Türkiye il/ilçeleri ve dünya genelinde şehirler için doğru vakitler.' },
        { title: 'Akıllı uyarılar', desc: 'İmsak, iftar ve ezan vakitleri için özelleştirilebilir bildirim.' },
        { title: 'Canlı geri sayım', desc: 'Sıradaki vakte kalan süre dinamik olarak ekrana yansır.' },
        { title: 'Aylık takvim', desc: 'Tüm Ramazan ayının vakitleri tek bakışta görünüm.' },
      ],
      faq: [
        { q: 'Yurt dışında çalışır mı?', a: 'Evet — uygulama dünya genelinde tüm büyük şehirlerde çalışır. Konum izni verirsen otomatik tespit, vermezsen manuel şehir seçebilirsin.' },
        { q: 'Vakitler nasıl hesaplanıyor?', a: 'Türkiye için Diyanet verileriyle, dünya geneli için astronomik hesap yöntemleriyle (Muslim World League, ISNA, Umm al-Qura vb.) hesaplanır.' },
        { q: 'Bildirimleri kapatabilir miyim?', a: 'Her vakit için bildirim ayrı ayrı aç/kapat yapılabilir; sessiz mod da var.' },
        { q: 'Ücretsiz mi?', a: 'Evet, ücretsizdir. Uygulamada reklamlar görüntülenebilir.' },
      ],
      ctaTitle: 'Vakti kaçırma.',
      ctaSub: 'Konumuna göre, dünyanın her yerinde.',
    },
    kelimebul: {
      crumb: 'Kelime Bul',
      eyebrow: 'Oyun · Türkçe',
      h1: 'Kelime Bul — Türkçe kelime bulmaca',
      h2: '200+ seviye, 10.000+ kelime, günlük zorluklar.',
      lead: <>Klasik harf-bulmaca akışını Türkçenin zenginliğiyle yeniden tasarladık. <strong>10.000+ kelime</strong> içeren özenle hazırlanmış sözlük, <strong>200+ seviye</strong> ve her gün yeni bir <strong>günlük zorluk</strong>. İpucu sistemi, ilerleme takibi ve karanlık mod. Bağlantı gerekmez, çevrimdışı oynanır.</>,
      features: [
        { title: '10.000+ kelime', desc: 'TDK ile uyumlu, özenle seçilmiş Türkçe sözlük.' },
        { title: '200+ seviye', desc: 'Kolaydan zora, kademeli artan zorluk.' },
        { title: 'Günlük zorluk', desc: 'Her gün yeni bir bulmaca — küresel sıralama.' },
        { title: 'Çevrimdışı', desc: 'İnternetsiz oynayabilir, ilerlemen kaydedilir.' },
      ],
      faq: [
        { q: 'Hangi cihazlarda çalışır?', a: 'Android 7.0+ tüm cihazlarda. Tablet için optimize.' },
        { q: 'İpucu sistemi nasıl?', a: 'Her seviye 3 ücretsiz ipucu hakkı var; reklamla ek ipucu kazanılabilir.' },
        { q: 'Yeni seviyeler eklenecek mi?', a: 'Evet, ayda en az 20 yeni seviye ekleniyor.' },
      ],
      ctaTitle: 'Bir kelime daha.',
      ctaSub: 'Türkçenin zenginliğiyle bulmaca.',
    },
    hesapvakti: {
      crumb: 'Hesap Vakti',
      eyebrow: 'Parti Oyunu · Eğlence',
      h1: 'Hesap Vakti — hesabı kim ödeyecek?',
      h2: 'Parmaklar ekrana, geri sayım başlasın!',
      lead: <>Masada anlaşamadınız mı? Hesabı kim ödeyecek? <strong>Herkes parmağını ekrana koysun</strong>, geri sayım başlasın. Rastgele eleme sistemi tek bir parmak kalana kadar devam eder — kaybeden hesabı öder. <strong>Titreşim, animasyon ve ses efektleriyle</strong> arkadaş grubuyla oynamak için birebir. Adil, hızlı, eğlenceli.</>,
      features: [
        { title: 'Çoklu dokunma', desc: 'Tüm parmaklar aynı anda ekrana — 2 ila 10 oyuncu desteği.' },
        { title: 'Geri sayım', desc: 'Heyecan dolu 3-2-1 ardından rastgele eleme başlar.' },
        { title: 'Rastgele eleme', desc: 'Adil ve şeffaf algoritma. Tek bir parmak kalana kadar.' },
        { title: 'Tam his', desc: 'Titreşim, animasyon ve ses efektleri — masaya enerji katar.' },
      ],
      faq: [
        { q: 'Kaç kişi oynayabilir?', a: 'Cihazın desteklediği parmak sayısı kadar — genellikle 2 ile 10 oyuncu arası.' },
        { q: 'Çevrimdışı çalışır mı?', a: 'Evet, internet bağlantısı gerekmez. Tek dokunuşla başlarsınız.' },
        { q: 'Sadece hesap için mi?', a: 'Hayır — kim alışverişe gidecek, kim bulaşık yıkayacak, kim ilk oynayacak… her türlü "kim?" sorusu için kullanılır.' },
      ],
      ctaTitle: 'Parmaklar ekrana.',
      ctaSub: 'Geri sayım başlasın.',
    },
    tenax: {
      crumb: 'Tenax',
      eyebrow: 'Fitness · Yapay Zeka',
      h1: 'Tenax — yapay zekâ antrenman koçu',
      h2: 'Hazır şablon değil, sana yazılmış program.',
      lead: <>Sakatlığını, ekipmanını, hedefini ve yapamadığın hareketleri sorar; <strong>12 haftalık programını ona göre yazar</strong>. 412 hareketin tamamı videolu; kendi programını kurmak, set kaydı ve <strong>geçmişinin tamamı ücretsiz</strong>. Yapay zekâ antrenör Tenax Pro ile açılır.</>,
      soonBadgePlay: 'Play Store\u2019da yakında',
      soonNote: 'Tenax App Store\u2019da yayında. Android sürümü hazırlanıyor; çıktığında Play Store\u2019dan da indirebileceksin.',
      features: [
        { title: 'Sakatlığını dinler', desc: 'Yapamam dediğin hareket programa hiç girmez; yerine aynı kası çalıştıran bir alternatif konur.' },
        { title: '412 hareket, hepsi videolu', desc: 'Her hareketin video anlatımı, çalıştırdığı kaslar ve zorluk seviyesi. Kütüphanenin tamamı ücretsiz.' },
        { title: 'Ağırlık takibi ve kalibrasyon', desc: 'Çalışma ağırlığını bilmiyorsan uygulama ilk hafta kalibrasyonla bulur, sonrasında nereden devam edeceğini söyler.' },
        { title: '3B vücut modeli', desc: 'Göğüs, bel, kol ve bacak ölçülerini üç boyutlu model üzerinde işaretle, değişimi zaman içinde izle.' },
      ],
      faq: [
        { q: 'Ücretsiz sürümde ne var?', a: '412 videolu hareketin tamamı, 5 adete kadar kendi programın, sınırsız antrenman kaydı, kalibrasyon, vücut ölçüleri ve analizin tamamı. Ücretsiz sürümde reklam gösterilir — ama antrenman sırasında ve set arası dinlenme sayacında asla.' },
        { q: 'Ücretsiz sürümde geçmişim siliniyor ya da gizleniyor mu?', a: 'Hayır. Antrenman geçmişinin ve analizinin tamamı ücretsiz sürümde de açık; hiçbir kayıt silinmez, hiçbir gün gizlenmez. Geçmiş cihazında da tutulduğu için uygulama internet olmadan da açılır.' },
        { q: 'Tenax Pro neyi açar?', a: 'Yapay zekâ antrenörü (kişiye özel program üretimi ve haftalık optimizasyon), 5 yerine 50 program yuvası ve reklamsız kullanım. Aylık ya da yıllık; istediğin zaman iptal edebilirsin.' },
        { q: 'Aboneliği nasıl iptal ederim?', a: 'iPhone\'da App Store hesabından: Ayarlar > Apple Kimliği > Abonelikler. Android\'de Google Play\'den: Play Store > Profil > Ödemeler ve abonelikler > Abonelikler. Uygulamayı silmek aboneliği iptal etmez. İptal, içinde bulunduğun dönemin sonunda geçerli olur.' },
        { q: 'Hesabımı ve verilerimi silebilir miyim?', a: 'Evet, uygulama içinden. Profil ekranında iki ayrı işlem var: "Verilerimi sil" programlarını ve geçmişini siler, hesabın kalır; "Hesabımı sil" hesabını ve sunucudaki tüm kayıtlarını kalıcı olarak kaldırır. İkisi de anında çalışır.' },
        { q: 'Sağlık verim nereye gidiyor?', a: 'Sakatlık notun, ölçülerin ve antrenman geçmişin programı üretebilmek için Anthropic Claude API\u2019ye iletilir ve hesabına bağlı olarak Firebase\u2019de saklanır. Reklam amacıyla kullanılmaz, reklam ağlarına gönderilmez ve analitiğe yazılmaz. Ayrıntı Gizlilik Politikası\u2019nda.' },
        { q: 'Program tıbbi tavsiye mi?', a: 'Hayır. Programlar yapay zekâ tarafından üretilir; tıbbi tavsiye, teşhis ya da fizyoterapi değildir. Bir rahatsızlığın veya sakatlığın varsa başlamadan önce sağlık profesyoneline danış, antrenman sırasında ağrı hissedersen bırak.' },
      ],
      invite: {
        title: 'Davet edildin',
        codeLabel: 'Davet kodu',
        lead: 'Bir arkadaşın seni Tenax\u2019a davet etti. Uygulamayı yükleyip kayıt olurken bu kodu gir; kurulumu tamamladığında ikiniz de kazanırsınız.',
        note: 'Kodu kurulum akışının son adımında girebilirsin.',
      },
      support: {
        title: 'Destek',
        desc: 'Sorun, öneri ya da hesabınla ilgili bir talep için yaz. Genellikle aynı gün dönüyoruz.',
      },
      ctaTitle: 'Programını yapay zekâ yazsın.',
      ctaSub: 'Sakatlığını bilen, ekipmanına göre seçen bir antrenör.',
    },
    patisstray: {
      crumb: 'PatissTray',
      eyebrow: 'İşletme · B2B',
      h1: 'PatissTray — pastane ve kafe arasındaki sipariş hattı',
      h2: 'Telefonla sipariş, WhatsApp’ta liste, elde tutulan cari yok.',
      lead: <>Bir pasta üreticisinin kafelere <strong>toptan satışını</strong> baştan sona taşıyan işletme uygulaması: kafe siparişi verir, imalatçı onaylar ve üretir, şoför dağıtır. <strong>Tek uygulama, üç rol</strong> — giriş yapan hesabın rolü hangi ekranları göreceğini belirler.</>,
      soonBadge: 'Mağazalarda yakında',
      soonNote: 'PatissTray henüz yayında değil: Android sürümü Play Console’da iç testte, iOS sürümü App Store’a gönderilmedi.',
      access: {
        title: 'Erişim',
        lead: 'PatissTray herkese açık bir uygulama değildir. Uygulamada kayıt ekranı yoktur; hesabını çalıştığın imalatçı açar ve rolünü (kafe · imalatçı · şoför) o belirler.',
        note: 'Kendi işletmen için kurulum ya da demo istiyorsan info@kolabs.tr adresine yaz.',
      },
      features: [
        { title: 'Kafe: tezgâh ve sipariş', desc: 'Katalog, sana özel fiyat listen, teslim günü ve saat aralığı, kesim saati uyarısı. Sepetin cihazda kalıcıdır; geçmiş siparişini tek dokunuşla tekrarlarsın.' },
        { title: 'İmalatçı: canlı sipariş ve üretim', desc: 'Gelen siparişler anlık düşer, durumu tek dokunuşla ilerletirsin. Günün üretim dökümü, sevkiyat kartı, kritik stok uyarısı ve haftalık ciro aynı ekranda.' },
        { title: 'Şoför: bugünün rotası', desc: 'Duraklar sıralı gelir, navigasyon telefonun harita uygulamasına devredilir. Teslim kanıtı fotoğrafı, eksik teslim ve teslim edilemedi akışları sahada çalışır.' },
        { title: 'Cari hesap, uygulama içi ödeme yok', desc: 'Uygulamada kart girilmez. Tutar cari hesaba işlenir; bakiye ve vade kafenin telefonunda da imalatçının panelinde de aynı formülden hesaplanır.' },
      ],
      faq: [
        { q: 'Uygulamayı herkes indirip kullanabilir mi?', a: 'Hayır. PatissTray kapalı bir işletmeler arası (B2B) uygulamadır ve yalnızca hesabı olan kafeler, imalatçı ekibi ve dağıtım şoförleri kullanabilir. Uygulama içinde kayıt olma ekranı yoktur.' },
        { q: 'Nasıl hesap alırım?', a: 'Hesapları imalatçı işletme açar. Tedarikçin PatissTray kullanıyorsa hesabını ondan iste. Kendi işletmen için kurmak istiyorsan info@kolabs.tr adresine yaz.' },
        { q: 'Uygulamada ödeme alınıyor mu?', a: 'Hayır. Uygulama içi satın alma, abonelik ve reklam yoktur. Sipariş bedelleri uygulama dışında cari hesap ve fatura ile yürür; uygulama yalnızca borcu ve ödemeleri gösterir.' },
        { q: 'Konumum ne zaman paylaşılıyor?', a: 'Yalnızca şoför rolünde ve yalnızca yolda olan bir dağıtım turu varken. Son konum yaklaşık 90 saniyede bir imalatçıya gösterilir, tur bittiğinde kayıt silinir; mesai dışında konum tutulmaz. İzin vermezsen teslimat akışı aynen çalışır, sadece haritada görünmezsin.' },
        { q: 'Teslim fotoğrafları nereye gidiyor?', a: 'Şoförün çektiği teslim kanıtı fotoğrafı ilgili siparişe bağlı olarak Firebase Storage’da saklanır ve imalatçı ile o siparişin kafesi tarafından görülebilir. Fotoğraf çekilemezse teslim yine kaydedilir, sadece fotoğrafsız gider.' },
        { q: 'İnternet kesilirse siparişim kaybolur mu?', a: 'Hayır. Sipariş yazımı çevrimdışıyken kuyruğa alınır ve bağlantı gelince gönderilir. Tek istisna fotoğraf yüklemesidir: kapsama dışındayken fotoğraf yüklenemez, teslim kaydı fotoğrafsız tamamlanır.' },
        { q: 'Besin değeri ve alerjen bilgisi güvenilir mi?', a: 'Bu bilgileri ürün kartına imalatçı girer; değerler 100 gram başınadır ve porsiyon karşılığı ölçüden hesaplanır. Alerjen listesinin boş olması "alerjen yok" anlamına gelmez — emin değilsen imalatçıya sor.' },
        { q: 'Hesabımı ve verilerimi nasıl sildiririm?', a: 'Hesap bir iş ilişkisine bağlı olduğu için kapatma talebini önce çalıştığın imalatçıya iletmelisin; imalatçı hesabı kapatır. Ayrıca info@kolabs.tr adresine yazabilirsin, talep 30 gün içinde işleme alınır. Fatura ve cari kayıtları yasal saklama süresince tutulmaya devam edebilir.' },
      ],
      support: {
        title: 'Destek',
        desc: 'Sorun, öneri ya da hesabınla ilgili bir talep için yaz. Genellikle aynı gün dönüyoruz.',
      },
    },
  },
  // Noctavia: home + 5 subpages
  noctavia: {
    brand: 'NOCTAVIA · v3.2',
    crumb: 'Noctavia',
    home: {
      eyebrow: 'Yapay Zeka · Rüya',
      h1: <>Noctavia — <em>yapay zeka</em> rüya tabircin</>,
      h2: 'Rüyalarını anlat, anlamlandır, sakla. Saniyeler içinde detaylı yorum, sembolik analiz ve yansıma.',
      lead: <>Noctavia, Claude AI tarafından desteklenen üç bölümlü rüya yorumlama deneyimi sunar: <strong>Genel Yorum</strong>, <strong>Sembolik Analiz</strong>, <strong>Yansıma</strong>. Sesli ya da yazılı anlat — uygulama gerisini halleder. Tüm rüyaların güvenle saklanır, istediğin zaman geri dönüp temalarını analiz edebilirsin.</>,
      featuresNum: '[ 01 ] Özellikler',
      featuresQ: 'Ne yapabilir?',
      featuresDesc: '6 ana özellik, tek bir gece.',
      features: [
        { to:'/noctavia/sesli-yorum', title:'Sesli Yorum', desc:'Mikrofona anlat, AI saniyeler içinde yorumlasın.', tag:'AI · STT' },
        { to:'/noctavia/ruya-sozlugu', title:'Rüya Sözlüğü', desc:'1000+ sembol, A–Z indeks, çevrimdışı erişim.', tag:'Offline' },
        { to:'/noctavia/tema-analizi', title:'Tema Analizi', desc:'30 günlük örüntüler, tekrar eden semboller.', tag:'Insights' },
        { to:'/noctavia/ruya-gunlugu', title:'Rüya Günlüğü', desc:'Takvim, arama, favoriler — verilerini sakla.', tag:'Journal' },
        { to:'/noctavia/premium', title:'Premium', desc:'Sınırsız yorum, sesli okuma, gelişmiş analiz.', tag:'Plans' },
        { to:'/noctavia/sesli-yorum', title:'6 Dil Desteği', desc:'TR · EN · AR · DE · FR · ES.', tag:'i18n' },
      ],
      ctaTitle: <>Bu gece <em>başla</em>.</>,
      ctaSub: 'Ücretsiz indir, ilk rüyanı yorumla.',
    },
    sesliYorum: {
      crumb: 'Sesli Yorum',
      eyebrow: 'Speech-to-Text · AI',
      h1: <>Sesli Rüya Yorumu — <em>anlat</em>, AI yorumlasın</>,
      h2: 'Sesinle anlat, saniyeler içinde yorumla.',
      lead: <>Noctavia'nın sesli rüya yorumu özelliğiyle rüyanı yazmak zorunda değilsin. Mikrofona tut, doğal bir şekilde anlat — yapay zeka saniyeler içinde detaylı yorumunu sunar. Sesli mesaj otomatik metne dönüştürülür, <strong>Claude AI</strong> tarafından analiz edilir ve <strong>3 bölümlü</strong> detaylı yorum elde edilir: Genel Yorum, Sembolik Analiz, Yansıma. <strong>TR, EN, AR, DE, FR, ES</strong> destekler.</>,
      recordHead: 'Canlı Kayıt',
      recordMeta: '02:00 max · TR · 48kHz',
      recordRec: '● REC',
      recordTime: '00:23 / 02:00',
      recordLatency: '1247 ms latency',
      steps: [
        { title: 'Mikrofona bas', desc: 'Uygulamayı aç, kayıt butonuna dokun.' },
        { title: 'Doğal anlat', desc: 'En fazla 2 dakika, akıcı şekilde.' },
        { title: 'AI yorumlar', desc: 'Saniyeler içinde 200–400 kelimelik yorum.' },
        { title: 'Dinle (Premium)', desc: 'Sonucu sesli olarak da dinleyebilirsin.' },
      ],
      faq: [
        { q: 'Hangi dilde konuşabilirim?', a: 'Türkçe, İngilizce, Arapça, Almanca, Fransızca ve İspanyolca — uygulama dil ayarına göre otomatik seçilir.' },
        { q: 'Ses kayıtlarım saklanıyor mu?', a: 'Hayır. Sesin metne çevrildikten hemen sonra silinir. Sadece yorumlanan metin ve sonuç senin günlüğünde tutulur.' },
        { q: 'Çevrimdışı çalışır mı?', a: 'STT ve AI yorumlama sunucu taraflı çalıştığı için aktif internet bağlantısı gerekir.' },
        { q: 'Ne kadar uzun anlatabilirim?', a: 'Tek seferde maksimum 2 dakika. Daha uzun rüyalar için yazılı moda geçebilirsin.' },
      ],
      ctaTitle: <><em>Anlat</em>, yorumlansın.</>,
      ctaSub: 'Ses kayıt özelliği tüm sürümlerde ücretsiz.',
    },
    ruyaSozlugu: {
      crumb: 'Rüya Sözlüğü',
      eyebrow: '1000+ sembol · Offline',
      h1: <>Rüya <em>Sözlüğü</em></>,
      h2: 'A\'dan Z\'ye, sembollerin anlamı parmaklarının ucunda.',
      lead: <>Noctavia'nın <strong>1000+ sembol</strong> içeren rüya sözlüğü, klasik tabir kitaplarının özünü modern bir yorumla buluşturur. <strong>A–Z indeksi</strong>, gelişmiş arama ve <strong>çevrimdışı erişim</strong> sayesinde uçakta, otobüste ya da gece yarısı uyandığında her zaman elinin altında. Her sembol için kısa anlam, kültürel arka plan ve psikolojik yorum.</>,
      searchPlaceholder: 'Sembol ara — örn. su, yılan, ev…',
      searchHint: '⌘ K',
      letterAll: 'ALL',
      letters: ['ALL','A','B','C','Ç','D','E','F','G','H','I','İ','J','K','L','M','N','O','Ö','P','R','S','Ş','T','U','Ü','V','Y','Z'],
      noResults: 'Sonuç bulunamadı. Tam sözlük için uygulamayı indir.',
      symbols: [
        { l:'A', name:'Ay', mean:'Bilinçaltı, dişil enerji, döngüsel değişim. Dolunay görmek netleşmeyi, hilal görmek başlangıçları işaret eder.' },
        { l:'A', name:'Aslan', mean:'Cesaret, otorite, içsel güç. Saldırgan aslan kontrol edilemeyen dürtüleri temsil eder.' },
        { l:'A', name:'Altın', mean:'Değer, kalıcılık, içsel zenginlik. Kaybedilen altın özsaygıyla ilgili kaygıyı işaret edebilir.' },
        { l:'B', name:'Bebek', mean:'Yenilik, başlangıçlar, potansiyel. Bakım veren rolünden, sorumluluk hislerine dair ipuçları taşır.' },
        { l:'D', name:'Deniz', mean:'Duygular, bilinçaltı, sonsuzluk. Dingin deniz huzuru, fırtınalı deniz çözümlenmemiş duyguyu yansıtır.' },
        { l:'D', name:'Diş', mean:'Güç, kontrol, kayıp endişesi. Diş düşmesi sıklıkla geçiş dönemleriyle ilişkilendirilir.' },
        { l:'E', name:'Ev', mean:'Benlik, iç dünya, kişisel alan. Yeni odalar keşfedilen yönleri sembolize eder.' },
        { l:'K', name:'Kuş', mean:'Özgürlük, yükseliş, mesaj. Renkli kuşlar yaratıcı enerji, kara kuşlar bilinmeyene dair sezgi.' },
        { l:'K', name:'Köprü', mean:'Geçiş, bağlantı, karar anı. Sağlam köprü güveni, sallantılı köprü belirsizliği işaret eder.' },
        { l:'M', name:'Merdiven', mean:'İlerleme, hiyerarşi, manevi yükseliş. Yukarı çıkmak gelişimi, aşağı inmek geçmişe dönüşü gösterir.' },
        { l:'S', name:'Su', mean:'Yaşam, arınma, duygusal akış. Berrak su sağaltımı, bulanık su karmaşayı temsil eder.' },
        { l:'Y', name:'Yılan', mean:'Dönüşüm, bilgelik, gizli güç. Deri değiştirme yenilenmenin en güçlü sembollerinden.' },
      ],
      faq: [
        { q: 'Çevrimdışı çalışır mı?', a: 'Evet. Sözlüğün tamamı uygulamayla birlikte gelir; internet olmadan da erişebilirsin.' },
        { q: 'Kaç sembol var?', a: '1000+ ana sembol, 3000+ türev anlam.' },
        { q: 'Sözlük güncelleniyor mu?', a: 'Düzenli güncellemelerle yeni semboller ve genişletilmiş yorumlar ekleniyor.' },
      ],
      ctaTitle: <><em>Sembolü</em> bul, anlamla.</>,
      ctaSub: 'Tüm sözlük ücretsiz, çevrimdışı.',
    },
    temaAnalizi: {
      crumb: 'Tema Analizi',
      eyebrow: 'Pattern Recognition',
      h1: <>Tema <em>Analizi</em></>,
      h2: '30 günlük rüya örüntülerin, tek bakışta.',
      lead: <>Noctavia bilinçaltının kalıplarını ortaya çıkarır. <strong>30 günlük</strong> tema analizi, rüyalarında tekrar eden sembolleri, duygu durumlarını ve mekânları gruplar. AI destekli örüntü tanıma sayesinde hangi temaların bilinçaltında ağırlık kazandığını görebilir, dönemsel duygusal yoğunluğunu izleyebilirsin. Bu bir kehanet değil — bir <strong>aynadır</strong>.</>,
      themesHead: 'Son 30 gün — En sık temalar',
      themesMeta: '42 rüya · güncellendi: bugün',
      themes: [
        { name: 'Su / Deniz', pct: 78, count: 23 },
        { name: 'Uçma', pct: 62, count: 18 },
        { name: 'Takip', pct: 54, count: 16 },
        { name: 'Bilinmeyen Yer', pct: 47, count: 14 },
        { name: 'Aile', pct: 41, count: 12 },
        { name: 'Kayıp', pct: 33, count: 10 },
      ],
      heatmapHead: 'Duygu yoğunluğu — heatmap',
      heatmapMeta: 'son 6 hafta · 7×6',
      heatmapLow: 'düşük',
      heatmapHigh: 'yüksek',
      faq: [
        { q: 'Veri nereden geliyor?', a: 'Sadece kendi rüya günlüğünden. Tüm analiz cihazında ya da senin hesabında, anonim olmayan biçimde tutulur.' },
        { q: 'Ne kadar rüya yazmam gerek?', a: 'Anlamlı bir analiz için en az 7 farklı gün kaydı önerilir.' },
        { q: 'AI hangi modeli kullanıyor?', a: 'Claude AI ile özel olarak eğitilmiş tema sınıflandırma katmanı.' },
      ],
      ctaTitle: <>Örüntüyü <em>gör</em>.</>,
      ctaSub: '30 gün sonra kendi haritana bak.',
    },
    premium: {
      crumb: 'Premium',
      eyebrow: 'Plans',
      h1: 'Noctavia Premium',
      h2: 'Daha fazla yorum, sesli dinleme, haftalık tema analizi.',
      lead: <>Noctavia üç planda gelir. <strong>Free</strong>'de günde 2 yazılı yorum, <strong>Standart</strong>'ta günde 10 yorum ve sesli giriş, <strong>Premium</strong>'da günde 30 yorum, sesli yorum dinleme ve haftalık tema analizi açıktır. İstediğin zaman iptal edebilirsin.</>,
      periodMonthly: 'Aylık',
      periodYearly: 'Yıllık',
      perMonth: 'ay',
      perYear: 'yıl',
      tierFree: 'Free',
      tierStandard: 'Standart',
      tierPremium: 'Premium',
      recommended: 'Önerilen',
      freeSub: 'Başlamak için yeterli.',
      standardSub: 'Düzenli rüya görenler için.',
      premiumSub: 'Tam derinlik, tam erişim.',
      freeFeatures: [
        { text: 'Günde 2 yazılı yorum', no: false },
        { text: 'Rüya sözlüğü (200+ sembol)', no: false },
        { text: 'Rüya günlüğü (son 7 gün)', no: false },
        { text: 'Sesli rüya girişi', no: true },
        { text: 'Sesli yorum dinleme', no: true },
        { text: 'Tema analizi', no: true },
      ],
      standardFeatures: [
        { text: 'Günde 10 yorum', no: false },
        { text: 'Sesli rüya girişi', no: false },
        { text: '90 gün geçmiş', no: false },
        { text: '500+ rüya sözlüğü', no: false },
        { text: 'Reklamsız deneyim', no: false },
        { text: 'Sesli yorum dinleme', no: true },
      ],
      premiumFeatures: [
        { text: 'Günde 30 yorum', no: false },
        { text: 'Sesli rüya girişi', no: false },
        { text: 'Sınırsız geçmiş', no: false },
        { text: '1000+ sembol sözlüğü', no: false },
        { text: 'Reklamsız deneyim', no: false },
        { text: 'Sesli yorum dinleme', no: false },
        { text: 'Haftalık tema analizi', no: false },
        { text: 'Öncelikli AI erişimi', no: false },
      ],
      freeCta: 'Ücretsiz İndir',
      standardCta: 'Standart Edin',
      premiumCta: 'Premium Edin',
      compareFeature: 'Özellik',
      compareRows: [
        ['Günlük yorum', '2', '10', '30'],
        ['Sesli rüya girişi', '—', '✓', '✓'],
        ['Sesli yorum dinleme', '—', '—', '✓'],
        ['Rüya sözlüğü', '200+', '500+', '1000+'],
        ['Geçmiş', '7 gün', '90 gün', 'Sınırsız'],
        ['Tema analizi', '—', '—', 'Haftalık'],
        ['Reklamsız', '—', '✓', '✓'],
        ['Öncelikli AI', '—', '—', '✓'],
      ],
      faq: [
        { q: 'İptal edebilir miyim?', a: 'Evet, istediğin zaman Play Store hesabından aboneliğini iptal edebilirsin.' },
        { q: 'Ödeme nasıl yapılır?', a: 'Tüm ödemeler Google Play üzerinden, kayıtlı ödeme yöntemlerinden alınır.' },
        { q: 'Aileyle paylaşabilir miyim?', a: 'Google Play Family Library destekliyse, evet.' },
      ],
      ctaTitle: 'Plan seç.',
      ctaSub: 'İptal kolay, taahhüt yok.',
    },
    ruyaGunlugu: {
      crumb: 'Rüya Günlüğü',
      eyebrow: 'Journal · Search · Sync',
      h1: <>Rüya <em>Günlüğü</em></>,
      h2: 'Sakla, ara, geri dön. Her rüya bir kayıt.',
      lead: <>Rüya günlüğü, gördüğün her şeyi düzenli, aranabilir bir arşive dönüştürür. <strong>Takvim görünümü</strong> ile geçmiş aylara dön; <strong>arama</strong> ile sembol veya kelime üzerinden filtrele; <strong>favoriler</strong> ile özel rüyaları işaretle. Her kayıt bulut yedeklenir — cihaz değiştirsen de günlüğün seninle gelir.</>,
      monthHead: 'Bu ay — Nisan',
      monthMeta: '12 kayıt · 4 favori',
      weekDays: ['P','S','Ç','P','C','C','P'],
      searchPlaceholder: 'Rüyalarında ara — örn. su, anne, uçmak…',
      searchHint: 'SEARCH',
      favoriteLabel: '★ favori',
      entries: [
        { date: '27 NİS', tag: 'Su', title: 'Berrak gölün dibinde', excerpt: 'Suyun altındaydım ama nefes alabiliyordum. Bir kapı vardı zeminde…' },
        { date: '25 NİS', tag: 'Uçma', title: 'Şehir üzerinde süzülürken', excerpt: 'Çatıdan çatıya, yavaşça. Aşağıda bilmediğim bir şehir vardı.' },
        { date: '22 NİS', tag: 'Aile', title: 'Eski evin mutfağında', excerpt: 'Annem yemek pişiriyordu ama ses gelmiyordu. Sadece koku.' },
        { date: '20 NİS', tag: 'Takip', title: 'Karanlık koridor', excerpt: 'Bir şey peşimdeydi ama dönüp baktığımda hiçbir şey yoktu.' },
        { date: '18 NİS', tag: 'Bilinmeyen', title: 'Cam kütüphane', excerpt: 'Tüm raflar boştu. Bir kitabı raftan aldım, sayfaları boştu.' },
      ],
      faq: [
        { q: 'Verilerim güvende mi?', a: 'Tüm günlük kayıtların uçtan uca şifreli ve sadece senin Google hesabınla erişilebilir. Üçüncü taraflarla paylaşılmaz.' },
        { q: 'Cihaz değiştirsem ne olur?', a: 'Yeni cihazına Google ile giriş yapınca tüm günlüğün otomatik yüklenir.' },
        { q: 'Bir kaydı silebilir miyim?', a: 'Evet, her kaydı bireysel olarak ya da toplu silebilirsin. Silinen kayıt tamamen kaldırılır.' },
      ],
      ctaTitle: <><em>Sakla</em>, geri dön.</>,
      ctaSub: 'Günlüğün her zaman seninle.',
    },
    // Shared section labels (Steps, FAQ in Noctavia variant)
    sectionStepsNum: '[ 02 ] Akış',
    sectionStepsTitle: 'Nasıl Çalışır?',
    sectionStepsDesc: 'Saniyeler içinde anlamlı bir yorum.',
    sectionFaqNum: '[ 03 ] SSS',
    sectionFaqTitle: 'Sıkça Sorulanlar',
    sectionFaqDesc: 'Detaylar burada.',
  },
  // privacy: privacy.jsx'te (uygulama sekmeli gizlilik politikası)
  terms: {
    crumb: 'Kullanım Şartları',
    eyebrow: 'Yasal · Şartlar',
    title: 'Kullanım Şartları',
    lastUpdated: '14 Ağustos 2026',
    body: <>
      <p className="legal-lead">Bu şartlar, kolabs web sitesini ve uygulamalarını kullanımına ilişkin kuralları belirler. Hizmetleri kullanarak bu şartları kabul etmiş sayılırsın. Bu metin aynı zamanda uygulamalarımızın <strong>son kullanıcı lisans sözleşmesidir (EULA)</strong>.</p>
      <h2>1. Hizmetin Kapsamı</h2>
      <p>kolabs, mobil platformlar (iOS ve Android) için tüketici uygulamaları geliştiren bağımsız bir markadır. Hizmetlerimiz "olduğu gibi" sunulur; en yüksek özen gösterilir ancak kesintisiz çalışma garantisi verilmez.</p>
      <p><strong>PatissTray</strong> bu listede ayrı durur: tüketiciye değil, <strong>işletmelere</strong> yöneliktir (B2B). Bir pasta imalatçısı ile ona sipariş veren kafeler arasındaki sipariş, üretim, dağıtım ve cari hesap akışını yürütür; kamuya açık kayıt yoktur ve yalnızca imalatçının açtığı hesaplarla kullanılır.</p>
      <h2>2. Uygunluk ve Yaş Sınırı</h2>
      <p>Uygulamalarımız <strong>13 yaş altı</strong> çocuklara yönelik değildir.</p>
      <p><strong>Tenax</strong> için alt sınır <strong>14 yaştır</strong>; uygulama daha küçük bir yaşı kabul etmez. 18 yaşından küçüksen Tenax'i ancak veli ya da vasinin bilgisi ve onayıyla kullanabilirsin — bu şartları senin adına o kabul etmiş sayılır. Ağırlık antrenmanı gelişim çağında ek dikkat gerektirir; başlamadan önce bir sağlık profesyoneline danış.</p>
      <p><strong>PatissTray</strong> bir işletme uygulamasıdır. Yalnızca imalatçının hesap açtığı yetişkin çalışanlar kullanabilir; hesabı kullanırken temsil ettiğin işletme adına işlem yapmaya yetkili olduğunu beyan etmiş olursun.</p>
      <h2>3. Kabul Edilebilir Kullanım</h2>
      <p>Uygulamaları aşağıdaki amaçlarla kullanmazsın:</p>
      <ul>
        <li>Yasalara aykırı içerik üretmek veya yaymak.</li>
        <li>Hizmetleri tersine mühendislikle kopyalamak ya da yetkisiz erişim sağlamak.</li>
        <li>Diğer kullanıcıları rahatsız edici, taciz edici ya da zararlı şekilde kullanmak.</li>
        <li>Otomatik araçlarla anormal trafik üretmek.</li>
        <li>Sana ait olmayan kişisel verileri gereksiz yere girmek — örneğin PatissTray'de teslim kanıtı alanına, teslimi kanıtlamak için gerekli olandan fazlasını yazmak.</li>
      </ul>
      <h2>4. Hesaplar</h2>
      <p>Bazı uygulamalar hesap gerektirir, bazıları hesapsız çalışır. Zikirmatik'te arkadaş listesi, liderlik tabloları ve Zikir Zinciri gibi sosyal özellikler Apple, Google ya da e-posta ile giriş yapmayı gerektirir; Android sürümünde uygulamayı kullanmak için giriş zorunludur, iOS sürümünde girişi atlayıp çevrimdışı kullanabilirsin. Ezan Vakti hesap oluşturmadan çalışır.</p>
      <p>Tenax hesap gerektirir: antrenman geçmişin, ölçümlerin ve yapay zekâ kurulumun hesabına bağlı tutulduğu için girişsiz kullanılamaz.</p>
      <p>PatissTray'de hesabı <strong>sen açamazsın</strong>: uygulamada kayıt ekranı yoktur, hesapları imalatçı işletme oluşturur ve rolünü (kafe · imalatçı · şoför) o belirler. Hesap, seninle imalatçı arasındaki iş ilişkisine bağlıdır; ilişki sona erdiğinde imalatçı hesabı kapatabilir. Hesabını başkasıyla paylaşmaman gerekir — o hesapla verilen siparişler işletmeni bağlar.</p>
      <p>Hesabının güvenliğinden kullanıcı sorumludur; şüpheli erişimi <a href="mailto:info@kolabs.tr">info@kolabs.tr</a>'a bildir. Hesabını ve sunucuda tutulan verilerini uygulama içinden silebilir ya da aynı adrese yazarak silinmesini talep edebilirsin. Hesabın silinmesi, mağazadan aldığın aboneliği iptal etmez; aboneliği ayrıca mağaza hesabından iptal etmen gerekir.</p>
      <h2>5. Premium ve Abonelikler</h2>
      <p>Bazı özellikler premium satın alma gerektirebilir. Tüm satın almalar, uygulamayı indirdiğin mağaza (Apple App Store veya Google Play) üzerinden yapılır. Ödemeyi tümüyle ilgili mağaza yürütür; kart ve ödeme bilgilerin bize iletilmez. Abonelik durumunun doğrulanması <strong>RevenueCat</strong> aracılığıyla yapılır.</p>

      <h3>Premium neyi açar</h3>
      <ul>
        <li><strong>Zikirmatik (iOS ve Android):</strong> Premium yalnızca <strong>reklamları kaldırır</strong>. Sayaç, sayaç profilleri, istatistikler, liderlik tabloları, arkadaşlar ve Zikir Zinciri dâhil bütün işlevler ücretsiz sürümde de eksiksiz kullanılabilir; premium hiçbir özelliği kilitlemez.</li>
        <li><strong>Tenax (iOS):</strong> Tenax Pro <strong>yapay zekâ özelliklerini</strong> (kişiye özel program üretimi ve haftalık antrenman optimizasyonu), <strong>50 program yuvasını</strong> ve <strong>reklamsız kullanımı</strong> açar. Hareket kütüphanesinin tamamı (412 hareket, hepsi videolu), kendi programını kurma, set kaydı, kalibrasyon, vücut ölçüleri ve <strong>antrenman geçmişinin tamamı ile analizin tamamı</strong> <strong>ücretsiz sürümde de açıktır</strong> — hiçbir kayıt silinmez, hiçbir gün gizlenmez. Ücretsiz sürümdeki tek sayılı sınır, kendi kurduğun program sayısının <strong>5 ile</strong> sınırlı olmasıdır.</li>
        <li><strong>Ezan Vakti (iOS ve Android):</strong> Premium reklamları kaldırır, ana ekran widget'larını ve otomatik konum güncellemesini açar. iOS'ta ayrıca Kilit Ekranı ve Dynamic Island üzerinde canlı vakit takibi sunulur. <strong>Namaz vakitleri, kıble ve ezan gibi çekirdek ibadet özellikleri her zaman ücretsizdir</strong> ve hiçbir zaman ödeme duvarının arkasına alınmaz.</li>
      </ul>
      <p>Premium'un açtığı özellikler platforma ve uygulama sürümüne göre değişebilir; satın almadan önce uygulama içindeki satın alma ekranında gösterilen liste geçerlidir.</p>

      <h3>Otomatik yenilenen abonelikler</h3>
      <p>Premium yalnızca <strong>aylık</strong> veya <strong>yıllık</strong> dönemlerle sunulur; bunların dışında bir dönem uzunluğu yoktur. Güncel fiyat, dönem uzunluğu ve dönem başına birim fiyat, satın almadan önce hem uygulama içindeki satın alma ekranında hem de ilgili mağazada gösterilir.</p>
      <p>Abonelik, dönem sonunda otomatik olarak yenilenir ve ücret, satın alma onayında mağaza hesabına bağlı ödeme yöntemine yansıtılır:</p>
      <ul>
        <li><strong>App Store (iOS):</strong> İçinde bulunduğun dönem bitmeden en az 24 saat önce iptal edilmezse abonelik otomatik yenilenir. Yönetmek veya iptal etmek için: <a href="https://apps.apple.com/account/subscriptions" target="_blank" rel="noreferrer">App Store abonelik ayarları</a>.</li>
        <li><strong>Google Play (Android):</strong> Yenileme tarihinden önce iptal edilmezse abonelik otomatik yenilenir. Yönetmek veya iptal etmek için: <a href="https://play.google.com/store/account/subscriptions" target="_blank" rel="noreferrer">Google Play abonelik ayarları</a>.</li>
      </ul>
      <p>İptal, içinde bulunduğun dönemin sonunda geçerli olur; o güne kadar premium erişimin sürer. Uygulamayı silmek aboneliği iptal etmez.</p>

      <h3>Ücretsiz deneme</h3>
      <p>Zikirmatik ve Ezan Vakti'nde ücretsiz deneme süresi ya da tanıtım fiyatı sunulmuyor; abonelik ilk dönemden itibaren ücretlidir. Bir kampanya sunulduğunda koşulları satın alma ekranında açıkça belirtilir. Tenax'te bir deneme süresi sunulursa uzunluğu ve sonrasındaki fiyat, satın almadan önce satın alma ekranında gösterilir.</p>

      <h3>Davet ödülü (Tenax)</h3>
      <p>Tenax'te arkadaşını davet ederek puan kazanabilirsin; belirli bir puana ulaştığında bir süre Tenax Pro erişimi açılır. Bu ödül hakkında bilinmesi gerekenler:</p>
      <ul>
        <li>Ödül <strong>satılmaz, satın alınamaz, devredilemez ve nakde çevrilemez</strong>; bir abonelik değildir ve otomatik yenilenmez.</li>
        <li>Süre dolduğunda erişim ücretsiz katmana döner. Bu, satın alınmış bir aboneliği etkilemez.</li>
        <li>Puan yalnızca davet ettiğin kişi <strong>uygulamayı kurup kurulum akışını tamamladığında</strong> yazılır.</li>
        <li>Takvim yılı içinde kazanılabilecek ödül sayısı sınırlıdır; güncel sınır uygulama içindeki davet ekranında yazar.</li>
        <li>Sahte hesap açmak, aynı kişiyi tekrar tekrar davet etmek ya da sistemi başka bir yolla suistimal etmek ödülün geri alınmasına ve hesabın kısıtlanmasına yol açabilir.</li>
        <li>Kampanya önceden haber verilerek değiştirilebilir veya sonlandırılabilir; o ana kadar kazanılmış ödüller süresi bitene kadar geçerliliğini korur.</li>
      </ul>

      <h3>Geri yükleme ve cihazlar arası erişim</h3>
      <p>Aynı mağaza hesabıyla giriş yaptığın diğer cihazlarda "Satın Alımları Geri Yükle" ile premium erişimini geri alabilirsin. Zikirmatik'te uygulama içi hesabınla giriş yaptığında aboneliğin hesabına bağlanır; iOS'ta alınan bir abonelik Android'de de geçerli olur. Ezan Vakti'nde uygulama içi hesap yoktur; erişim, satın almanın yapıldığı mağaza hesabına bağlıdır ve iOS ile Android arasında taşınmaz.</p>

      <h3>Bağışlar (Zikirmatik)</h3>
      <p>Zikirmatik'te geliştiriciyi desteklemek için tek seferlik, tamamen isteğe bağlı bağış satın almaları bulunur. Bağış bir abonelik değildir, yenilenmez ve <strong>karşılığında herhangi bir premium özellik, ayrıcalık veya reklamsız kullanım sağlamaz</strong>. Anında ifa edildiğinden iade edilmez.</p>

      <h3>Önceki tek seferlik satın almalar</h3>
      <p>Abonelik sistemine geçilmeden önce tek seferlik "Reklamları Kaldır" (Zikirmatik) ya da "Destekçi Paketi" (Ezan Vakti) satın almış kullanıcıların hakları korunur: bu satın almalar geçerliliğini sürdürür ve ek ödeme gerekmeksizin premium erişim sağlamaya devam eder. Her iki ürün de artık satışta değildir.</p>

      <h3>PatissTray'de satın alma yoktur</h3>
      <p>PatissTray'de <strong>uygulama içi satın alma, abonelik ve reklam bulunmaz</strong>; uygulamaya kart bilgisi girilmez. Sipariş bedelleri uygulama dışında, kafe ile imalatçı arasındaki <strong>cari hesap ve fatura</strong> ilişkisiyle yürür. Uygulamadaki bakiye, vade ve tutarlar bu ilişkinin gösterimidir; ödeme aracı değildir.</p>

      <h3>İade ve cayma hakkı</h3>
      <p>Ödemeyi mağazalar tahsil ettiği için iadeleri de mağazalar yürütür; kolabs doğrudan iade yapamaz. Talebini <a href="https://reportaproblem.apple.com" target="_blank" rel="noreferrer">Apple</a> ya da <a href="https://support.google.com/googleplay/answer/2479637" target="_blank" rel="noreferrer">Google Play</a> üzerinden iletebilirsin; talep, ilgili mağazanın iade politikasına tabidir. Mesafeli Sözleşmeler Yönetmeliği uyarınca, elektronik ortamda anında ifa edilerek erişime açılan dijital içerik ve hizmetlerde cayma hakkı kullanılamaz.</p>
      <h2>6. Mağazalara Özgü Şartlar</h2>
      <p>Uygulamalarımız Apple App Store ve Google Play üzerinden dağıtılır. Aşağıdaki maddeler bu mağazaların kurallarının gereğidir.</p>

      <h3>Lisans</h3>
      <p>Sana, uygulamayı sahip olduğun ya da kontrol ettiğin cihazlarda ilgili mağazanın kullanım kurallarının izin verdiği ölçüde kullanman için <strong>kişisel, devredilemez ve münhasır olmayan bir lisans</strong> verilir. Uygulama sana satılmaz, lisanslanır. Kaynak koda erişemez, uygulamayı kiralayamaz, ödünç veremez, satamaz ya da yeniden dağıtamazsın.</p>

      <h3>Apple App Store (iOS)</h3>
      <ul>
        <li>Bu sözleşme <strong>seninle kolabs arasındadır; Apple taraf değildir.</strong> Uygulamanın ve içeriğinin tek sorumlusu kolabs'tır.</li>
        <li><strong>Apple'ın bakım ve destek yükümlülüğü yoktur.</strong> Destek için tek muhatap <a href="mailto:info@kolabs.tr">info@kolabs.tr</a>'dir.</li>
        <li>Uygulama geçerli bir garantiye aykırı çıkarsa, <strong>Apple'a bildirdiğinde ödediğin bedeli (varsa) iade edebilir</strong>; yasanın izin verdiği azami ölçüde Apple'ın başka hiçbir garanti yükümlülüğü yoktur. Garantiye ilişkin diğer tüm talepler kolabs'a yöneltilir.</li>
        <li>Ürün sorumluluğu, tüketici mevzuatına uyum ve benzeri <strong>üçüncü kişi taleplerinden kolabs sorumludur</strong>, Apple değil.</li>
        <li>Uygulamanın üçüncü bir tarafın fikri mülkiyet hakkını ihlal ettiği iddia edilirse, savunma ve çözüm <strong>kolabs'a aittir</strong>.</li>
        <li>Uygulamayı ABD ambargosu altındaki bir ülkede bulunmadığını ve ABD'nin yasaklı taraflar listelerinde yer almadığını beyan ederek kullanırsın.</li>
        <li><strong>Apple ve iştirakleri bu sözleşmenin üçüncü taraf lehtarlarıdır</strong> ve şartları sana karşı doğrudan ileri sürme hakkına sahiptir.</li>
      </ul>

      <h3>Google Play (Android)</h3>
      <p>Google Play üzerinden edinilen uygulamalar için de bu sözleşme seninle kolabs arasındadır; <strong>Google taraf değildir</strong> ve uygulamadan sorumlu değildir. Satın alma, iade ve abonelik işlemleri Google Play'in kendi şartlarına tabidir.</p>

      <h2>7. Fikri Mülkiyet</h2>
      <p>Uygulamalar, web sitesi, marka, logo, görseller ve metinler kolabs'a aittir. İzinsiz çoğaltılamaz, dağıtılamaz, türev eserlerde kullanılamaz. Kullanıcının ürettiği içerik (rüya kaydı, günlük girişi vb.) kullanıcıya aittir.</p>
      <p><strong>PatissTray'de</strong> siparişler, ürün bilgileri, cari kayıtlar ve teslim kanıtları uygulamayı kullanan <strong>işletmelere</strong> aittir; kolabs bunları barındırır, kendi ticari amaçları için kullanmaz.</p>
      <h2>8. Yapay Zeka Çıktıları</h2>
      <p><strong>Noctavia:</strong> Rüya yorumları yapay zeka tarafından üretilir; <strong>kehanet, tıbbi tavsiye veya psikolojik teşhis değildir</strong>. Yalnızca eğlence ve kişisel yansıma amaçlıdır. Profesyonel destek gereken durumlarda uzmana başvur.</p>
      <p><strong>Tenax:</strong> Antrenman programları, hareket seçimleri, set/tekrar/ağırlık önerileri ve haftalık analizler yapay zeka tarafından üretilir. Bunlar <strong>tıbbi tavsiye, teşhis, tedavi ya da fizyoterapi hizmeti değildir</strong>; bir doktorun, fizyoterapistin veya sertifikalı antrenörün yerini tutmaz.</p>
      <p>Ağırlık antrenmanı doğası gereği sakatlanma riski taşır. Programa başlamadan önce, özellikle bir rahatsızlığın, sakatlığın, hamileliğin veya kullandığın bir ilaç varsa, <strong>bir sağlık profesyoneline danış</strong>. Antrenman sırasında ağrı, baş dönmesi, göğüs ağrısı veya nefes darlığı hissedersen <strong>derhal bırak</strong>. Uygulamaya girdiğin sakatlık notu yalnızca ilgili hareketleri programdan çıkarmak için kullanılır ve bir sağlık değerlendirmesi değildir.</p>
      <p>Ağırlıkları, tekrarları ve hareketleri kendi durumuna göre değiştirmek senin sorumluluğundadır. Yasanın izin verdiği ölçüde kolabs, uygulamadaki önerilerin uygulanmasından doğan sakatlık veya sağlık sorunlarından sorumlu tutulamaz.</p>
      <h2>9. Reklam ve Üçüncü Taraf Bağlantılar</h2>
      <p>Ücretsiz sürümlerde Google AdMob aracılığıyla reklam gösterilebilir. <strong>Tenax'te reklam yalnızca ücretsiz katmandadır</strong> ve reklam isteğine sağlık verin, ölçülerin ya da antrenman geçmişin girmez. <strong>PatissTray'de hiç reklam yoktur.</strong> Üçüncü taraf bağlantıların içeriğinden kolabs sorumlu değildir.</p>
      <h2>10. Garanti Reddi ve Sorumluluk Sınırlaması</h2>
      <p>Hizmetler <strong>"olduğu gibi" ve "mevcut haliyle"</strong> sunulur. Yasanın izin verdiği azami ölçüde, belirli bir amaca uygunluk, ticari elverişlilik ve ihlal etmeme dâhil açık ya da zımni tüm garantiler reddedilir. Hizmetin kesintisiz, hatasız ya da her cihazda aynı biçimde çalışacağını taahhüt etmiyoruz.</p>
      <p>Yasanın izin verdiği ölçüde, kolabs hizmetlerin kullanımı veya kullanılamamasından doğan dolaylı, arızi veya sonuç olarak ortaya çıkan zararlardan sorumlu tutulamaz. Bu sınırlamalar, tüketici mevzuatının sana tanıdığı ve sözleşmeyle kaldırılamayan hakları etkilemez.</p>
      <p><strong>PatissTray'de ticari ilişki kullanıcılar arasındadır.</strong> Sipariş, fiyat, teslim, ürün kalitesi, gıda güvenliği ve ödeme; sipariş veren kafe ile üretici işletme arasındaki ilişkiye tabidir. kolabs bu ilişkinin tarafı değildir, satıcı ya da aracı olarak hareket etmez ve ürünlerden sorumlu tutulamaz. Uygulamadaki ürün açıklamaları, besin değerleri ve alerjen bilgileri <strong>imalatçı tarafından girilir</strong>; kolabs bu bilgilerin doğruluğunu denetlemez. <strong>Alerjen listesinin boş olması "alerjen yoktur" anlamına gelmez</strong> — emin olunmayan durumlarda imalatçıya sorulmalıdır.</p>
      <p>Dağıtım ekibi için: rota, mesafe ve süre bilgileri <strong>tahminidir</strong> ve trafik koşullarını yansıtmayabilir; navigasyon telefondaki harita uygulamasına devredilir. Sürüş sırasında telefonla ilgilenmek sürücünün sorumluluğundadır — uygulama, trafik kurallarına uyma yükümlülüğünü ortadan kaldırmaz.</p>
      <h2>11. Şartların Sonlandırılması</h2>
      <p>Bu şartları ihlal eden hesaplara erişim önceden bildirilmeksizin kısıtlanabilir veya sonlandırılabilir.</p>
      <h2>12. Gizlilik</h2>
      <p>Hangi verilerin toplandığı, nasıl kullanıldığı ve haklarının neler olduğu <a href="/gizlilik">Gizlilik Politikası</a>'nda yazılıdır; o metin bu şartların ayrılmaz parçasıdır. Verilerini ve hesabını silme yolları <a href="/veri-silme">Veri Silme</a> sayfasında uygulama uygulama anlatılır.</p>
      <h2>13. Uygulanacak Hukuk</h2>
      <p>Bu şartlar Türkiye Cumhuriyeti hukukuna tabidir. Anlaşmazlıklar Türkiye mahkemelerinde çözümlenir. Tüketici sıfatıyla, yaşadığın ülkenin emredici tüketici hukukunun sana tanıdığı korumalardan yararlanmaya devam edersin.</p>
      <h2>14. Değişiklikler</h2>
      <p>Şartlar güncellenebilir; önemli değişikliklerde uygulama ve site içinde bildirim yapılır. Güncel sürüm her zaman bu sayfada görüntülenir.</p>
      <h2>15. İletişim</h2>
      <p>Her türlü soru için: <a href="mailto:info@kolabs.tr">info@kolabs.tr</a></p>
    </>,
  },
  // Veri ve hesap silme. Play Console iki ayrı bağlantı istiyor (veri silme /
  // hesap silme) ve ikisini de UYGULAMA BAŞINA soruyor — metin bu yüzden
  // uygulama uygulama ayrık duruyor, tek bir "hepsi için" sayfa değil.
  dataDeletion: {
    crumb: 'Veri Silme',
    eyebrow: 'Yasal · Veri Silme',
    lastUpdated: '14 Ağustos 2026',
    hubTitle: 'Veri ve hesap silme',
    hubLead: 'Uygulamalarımızda tuttuğumuz verileri ve hesabını silebilirsin. Çoğunda bu işlem uygulama içinden, talep beklemeden yapılır; uygulamaya erişemiyorsan aynı talebi bize e-posta ile gönderirsin.',
    pickTitle: 'Uygulamanı seç',
    pickDesc: 'Neyin silindiği, neyin saklandığı ve işlemin ne kadar sürdüğü uygulamaya göre değişir — her biri kendi sayfasında yazıyor.',
    generalTitle: 'Bütün uygulamalar için geçerli',
    general: [
      <>Talebini <a href="mailto:info@kolabs.tr">info@kolabs.tr</a> adresine gönderebilirsin; talep en geç <strong>30 gün</strong> içinde sonuçlandırılır.</>,
      <>Talebi <strong>hesabına kayıtlı e-posta adresinden</strong> göndermen gerekir — kimliğini böyle doğruluyoruz. Başka bir adresten gelen talepte doğrulama isteriz.</>,
      <>Silme <strong>geri alınamaz</strong>: hesabına bağlı geçmiş, ilerleme ve içerik geri getirilemez.</>,
      <>Sunucudan silinen kayıtlar sistem yedeklerinden en geç <strong>90 gün</strong> içinde tamamen düşer.</>,
      <>Hesabını silmek, mağazadan aldığın <strong>aboneliği iptal etmez</strong>. Aboneliği ayrıca <a href="https://play.google.com/store/account/subscriptions" target="_blank" rel="noreferrer">Google Play</a> ya da <a href="https://apps.apple.com/account/subscriptions" target="_blank" rel="noreferrer">App Store</a> hesabından iptal etmen gerekir.</>,
      <>Mağazadaki satın alma ve fatura kayıtları Google ve Apple'da kalır; onları biz silemeyiz.</>,
    ],
    // Sayfa iskeleti
    appTitlePrefix: 'Veri ve hesap silme —',
    packageLabel: 'Paket adı',
    dataOnlyLabel: 'Yalnızca veriler',
    accountLabel: 'Hesap + tüm veriler',
    dataOnlyTitle: 'Verilerimi sil, hesabım kalsın',
    accountTitle: 'Hesabımı ve tüm verilerimi sil',
    inAppLabel: 'Uygulamadan',
    requestLabel: 'Talep göndererek',
    dataBtn: 'Veri silme talebi gönder',
    accountBtn: 'Hesap silme talebi gönder',
    deletedTitle: 'Silinen veriler',
    keptTitle: 'Silinmeyen veriler',
    timingTitle: 'Ne kadar sürer?',
    howTitle: 'Talep nasıl gönderilir?',
    howBody: <>Yukarıdaki düğmeler, konusu ve içeriği hazır bir e-posta açar. E-postayı <strong>hesabına kayıtlı adresten</strong> gönder; kimliğini doğrulayabilmemiz için bu şart. Talebi aldığımıza dair yanıt döner, işlem tamamlandığında ikinci bir bilgilendirme yaparız. Talep en geç <strong>30 gün</strong> içinde sonuçlandırılır.</>,
    otherAppsTitle: 'Diğer uygulamalar',
    supportTitle: 'Emin olamadın mı?',
    supportDesc: 'Hangi verinin sende, hangisinin bizde durduğunu sorabilirsin. Yazana yanıt veriyoruz.',
    mailSubject: (name, kind) => `${kind === 'account' ? 'Hesap ve veri silme' : 'Veri silme'} talebi — ${name}`,
    mailBody: (name, pkg, kind) =>
      `Uygulama: ${name} (${pkg})\n` +
      `Talep: ${kind === 'account' ? 'Hesabımın ve ilişkili tüm verilerimin silinmesi' : 'Verilerimin silinmesi (hesabım kalsın)'}\n` +
      `Hesap e-postam: \n` +
      `Platform (Android / iOS): \n\n` +
      `Bu talebi hesabıma kayıtlı e-posta adresinden gönderdiğimi ve silmenin geri alınamayacağını anladığımı doğruluyorum.\n`,
    apps: {
      zikirmatik: {
        lead: 'Zikirmatik\'te hesap; kullanıcı adı, arkadaş listesi, liderlik tabloları ve Zikir Zinciri için var. Sayaçlarını ve profillerini cihazında tutuyoruz.',
        dataOnly: {
          steps: ['Profiller ekranını aç.', 'Silmek istediğin sayaç profiline dokun.', '"Profili Sil" ile onayla.'],
          note: 'Bu, o profili ve sayımlarını cihazdan siler; hesabın açık kalır. Liderlik tablosundaki skorların sunucuda hesabına bağlı durur — onların da silinmesini istiyorsan aşağıdaki talep yolunu kullan ya da hesabını sil.',
        },
        account: {
          steps: ['Ayarlar → Hesap ekranını aç.', 'Aşağıdaki "Hesabı Sil" satırına dokun.', 'Uyarıyı onayla.'],
          note: 'Oturumun çok eskiyse Firebase güvenlik nedeniyle yeniden giriş ister; çıkıp tekrar giriş yaptıktan sonra dene.',
        },
        deleted: [
          'Giriş kimliğin — e-posta, Google ya da Apple ile oluşturulmuş hesap kaydı.',
          'Profil kaydın: kullanıcı adın, arkadaş kodun, zikir istatistiklerin ve liderlik tablosu skorların.',
          'Arkadaş listen ve karşı taraftaki kopyaları, bekleyen arkadaşlık istekleri, Zikir Zinciri davetlerin.',
          'Kullanıcı adı ve arkadaş kodu rezervasyonların — serbest kalır, başkası alabilir.',
          'Cihazdaki sayaç profillerin, zikir kayıtların ve uygulama tercihlerin.',
        ],
        kept: [
          'Google Play ve App Store tarafındaki satın alma, abonelik ve fatura kayıtları — bunlar mağazaya aittir.',
          'Kimliğinle ilişkilendirilmeyen toplu (anonim) kullanım ve çökme istatistikleri.',
        ],
      },
      noctavia: {
        lead: 'Noctavia hesap gerektirir: rüya kayıtların, yorumların ve sembol analizlerin hesabına bağlı olarak bulutta tutulur. Profil ekranında iki ayrı işlem var — biri yalnızca içeriği, diğeri hesabın tamamını siler.',
        dataOnly: {
          steps: ['Profil sekmesini aç.', 'HESAP bölümünde "Tüm Rüyaları Sil" satırına dokun.', 'Uyarıyı onayla.'],
          note: 'Hesabın açık kalır, bütün rüya kayıtların ve yorumların silinir. İşlem anında çalışır.',
        },
        account: {
          steps: ['Profil sekmesini aç.', 'HESAP bölümünde "Hesabı Sil" satırına dokun.', 'Uyarıyı onayla.'],
          note: 'Oturumun eskiyse uygulama seni çıkışa yönlendirir; tekrar giriş yapıp işlemi yinelemen gerekir.',
        },
        deleted: [
          'Bütün rüya kayıtların: yazdığın metinler, yapay zekâ yorumları, semboller ve tema analizleri.',
          'Profil kaydın: görünen adın, e-postan, dil ve bildirim tercihlerin, seri ve istatistik sayaçların.',
          'Giriş kimliğin — e-posta, Google ya da Apple ile oluşturulmuş hesap kaydı.',
          'Sesli rüya anlatımların zaten kalıcı olarak saklanmıyor: sunucuda metne çevrildikten hemen sonra siliniyor.',
        ],
        kept: [
          'Google Play ve App Store tarafındaki satın alma, abonelik ve fatura kayıtları.',
          'Abonelik doğrulaması için RevenueCat\'te tutulan müşteri kaydı — talep edersen onu da kaldırıyoruz.',
          'Kimliğinle ilişkilendirilmeyen toplu (anonim) kullanım ve çökme istatistikleri.',
        ],
      },
      kelimebul: {
        lead: 'Kelime Bul\'da oyun hesapla oynanır: kullanıcı adın, jetonların, görev ilerlemen ve liderlik tablosu skorun hesabına bağlıdır.',
        dataOnly: null,
        dataOnlyNone: 'Uygulamada yalnızca verileri silen ayrı bir seçenek yok — oyun ilerlemesi hesabın kendisidir. Hesabını kapatmadan belirli bir kaydın silinmesini istiyorsan bize yaz.',
        account: {
          steps: ['Ana menüden "Hakkında" ekranını aç.', 'En alttaki "Hesabımı Sil" düğmesine dokun.', '"Evet, Sil" ile onayla.'],
          note: 'Güvenlik nedeniyle oturumun eskiyse uygulama seni tekrar giriş yapmaya yönlendirir; giriş yaptıktan sonra işlemi yinele.',
        },
        deleted: [
          'Giriş kimliğin — e-posta, Google ya da Apple ile oluşturulmuş hesap kaydı.',
          'Sunucudaki oyuncu kaydın: kullanıcı adın, jeton bakiyen, görev ilerlemen ve istatistiklerin.',
          'Liderlik tablosundaki skor kaydın.',
          'Cihazdaki yüksek skorların, oyuncu istatistiklerin ve bütün yerel tercihlerin — jeton, görev ve reklam sayaçları dâhil.',
        ],
        kept: [
          'Google Play tarafındaki satın alma ve fatura kayıtları.',
          'Kimliğinle ilişkilendirilmeyen toplu (anonim) kullanım ve çökme istatistikleri.',
        ],
      },
      tenax: {
        lead: 'Tenax hesap gerektirir: antrenman geçmişin, koşu rotaların, vücut ölçülerin, sakatlık notun ve yapay zekâ kurulumun hesabına bağlıdır. Profil ekranında iki ayrı işlem var — biri verilerini, diğeri hesabınla birlikte her şeyi siler.',
        dataOnly: {
          steps: ['Profil ekranını aç.', '"Verilerimi sil" satırına dokun.', 'Uyarıyı onayla.'],
          note: 'Hesabın kalır: aynı e-postayla tekrar girer, boş bir profille kurulumdan başlarsın.',
        },
        account: {
          steps: ['Profil ekranını aç.', '"Hesabımı sil" satırına dokun.', 'Uyarıyı onayla.'],
          note: 'Silme sunucuda çalışır; hesabının altındaki bütün kayıtlar özyinelemeli olarak kaldırılır.',
        },
        deleted: [
          'Antrenman programların, antrenman kayıtların (set, tekrar, ağırlık), kalibrasyon sonuçların — her iki işlemde de.',
          'Koşu, yürüyüş ve bisiklet kayıtların: GPS rotan (konum noktaları), mesafe, süre, tempo, kilometre süreleri, tırmanış, adım ve kalori — her iki işlemde de.',
          'Vücut ölçülerin (boy, kilo, göğüs, bel, kol, bacak) ve yapay zekâ kurulum bilgilerin — sakatlık notun dâhil.',
          'Cihazda kalan izler: senkron işaretleri, medya önbelleği, avatarın ve widget özeti.',
          'Yalnızca "Hesabımı sil"de: arkadaşlıkların (her iki taraftan), bekleyen arkadaşlık isteklerin, arkadaşlarının gördüğü profilin (ad, seviye, XP, seri), gelen kartların, susturma tercihlerin ve bildirim belirteçlerin. "Verilerimi sil"de arkadaşlıkların kalır; antrenman kayıtların silindiği için XP\'n ve serin sıfırlanır.',
          'Yalnızca "Hesabımı sil"de: giriş kimliğin, hesabının altındaki bütün sunucu kayıtları ve davet kodunun dizindeki karşılığı.',
        ],
        kept: [
          'Google Play ve App Store tarafındaki satın alma, abonelik ve fatura kayıtları.',
          'Apple Sağlık ya da Health Connect\'e yazdığın antrenmanlar: onlar artık o uygulamanın verisi, Tenax silince oradan silinmez. Sağlık / Health Connect uygulamasından silebilir, izni oradan geri alabilirsin. Tenax\'in oradan OKUDUĞU veriler (aktif enerji, HRV, nabız, uyku) zaten hiçbir sunucuda tutulmaz.',
          'Arkadaşlarına gönderdiğin ve henüz görmedikleri kartlar (adın, kart türü): görülene kadar onların gelen kutusunda durur, görülünce silinir.',
          'Abonelik yönetimi için RevenueCat\'te tutulan kayıt (adın ve e-posta adresin) — talep edersen onu da kaldırıyoruz. Sağlık verin, ölçülerin ve antrenman geçmişin bu sağlayıcıya hiç gönderilmiyor.',
          'Kimliğinle ilişkilendirilmeyen toplu (anonim) kullanım ve çökme istatistikleri.',
        ],
      },
      patisstray: {
        lead: 'PatissTray kapalı bir işletme uygulamasıdır: hesabını çalıştığın imalatçı işletme açar, rolünü o belirler ve kapatmayı da o yapar. Bu yüzden uygulamada kendi kendine çalışan bir silme düğmesi yok — veremeyeceğimiz bir yetkiyi vaat etmemek için, onun yerine başvuru yolu gösteriliyor.',
        dataOnly: null,
        dataOnlyNone: 'Sipariş ve cari kayıtları iki işletme arasındaki ticari kayıttır; tek taraflı silinemez. Kendi hesabına ilişkin bir düzeltme ya da silme istiyorsan önce işletme yöneticine, sonra bize yaz.',
        account: {
          steps: ['Şoför rolündeysen: Profil ekranı → "Hesabımı ve verilerimi sil" satırı, başvuru yolunu gösterir.', 'Talebini çalıştığın işletmenin yöneticisine ilet — hesabı açan ve kapatan taraf odur.', 'Dilersen aynı talebi bize de gönder; işletmeyle birlikte yürütürüz.'],
          note: 'Hesap, seninle işletme arasındaki iş ilişkisine bağlıdır. İlişki bittiğinde işletme hesabı kapatır ve erişimin anında sona erer.',
        },
        deleted: [
          'Hesabın ve kimlik bilgilerin: adın, e-posta adresin, telefon numaran, rolün (kafe · imalatçı · şoför) ve bağlı olduğun işletme kaydı.',
          'Şoför rolündeysen şoför kaydın: aracının plakası ve aktiflik durumu.',
          'Bildirim tanımlayıcın (cihazının anlık bildirim tokenı).',
          'Şoför rolündeysen canlı konumun — zaten dağıtım turu bittiğinde kendiliğinden siliniyor, mesai dışında hiç tutulmuyor.',
        ],
        kept: [
          'Sipariş kayıtları, teslim kanıtı fotoğrafları, cari hesap hareketleri ve faturalar: bunlar kafe ile imalatçı arasındaki ticari kayıttır, ticari ve yasal saklama yükümlülükleri süresince işletmede kalır.',
          'Teslim kanıtına yazılmış "teslim alan kişi" bilgisi — kaydın kendisi ticari belge olduğu için onunla birlikte kalır.',
          'Kafenin ticari bilgileri (unvan, teslimat adresi, vergi numarası, vade): bunlar senin değil, işletmenin kaydıdır; düzeltme ya da silme için imalatçıya başvurulur.',
          'Şoförün aylık teslimat performans özeti (teslim sayısı, zamanında oranı, kilometre, durak süresi): iş performansına ilişkin kayıttır ve işveren konumundaki imalatçı işletmede kalır.',
          'Uygulamada reklam ağı ve analitik yok; bu kayıtlar reklam amacıyla kullanılmaz, üçüncü taraflara satılmaz.',
        ],
        // Uygulama icinden anlik silme YOK — genel sureler burada gecerli degil.
        timing: [
          'İşletme hesabını kapattığında: erişimin anında sona erer.',
          'İşletmeye ya da bize ilettiğin talep: en geç 30 gün.',
          'Sistem yedeklerinden tamamen düşmesi: en geç 90 gün.',
        ],
      },
    },
    timing: [
      'Uygulama içinden silersen: anında.',
      'E-posta ile talep edersen: en geç 30 gün.',
      'Sistem yedeklerinden tamamen düşmesi: en geç 90 gün.',
    ],
  },
  legalLastUpdated: 'Son güncelleme:',
};

const EN = {
  // Chrome
  nav: {
    home: 'Home',
    apps: 'Apps',
    manifesto: 'Manifesto',
    contact: 'Contact',
    playStore: 'Play Store',
    appStore: 'App Store',
    menu: 'Menu',
  },
  ticker: {
    sys: 'operational',
    version: 'v 1.4.0 · build 2026.04',
    apps: '6 apps · made in TR',
  },
  footer: {
    intro: 'kolabs is an independent studio building mobile apps that make everyday life easier. Speed, care and privacy carry equal weight in everything we ship.',
    appsTitle: 'Apps',
    noctaviaTitle: 'Noctavia',
    legalTitle: 'Legal',
    privacy: 'Privacy Policy',
    terms: 'Terms of Service',
    dataDeletion: 'Data Deletion',
    rights: '© 2026 kolabs',
    tagline: 'Made with care · Designed in TR',
    sesliYorum: 'Voice Interpretation',
    ruyaSozlugu: 'Dream Dictionary',
    temaAnalizi: 'Theme Analysis',
    ruyaGunlugu: 'Dream Journal',
    premium: 'Premium',
  },
  appsMeta: {
    noctavia: { name: 'Noctavia', desc: 'AI dream interpreter', tag: 'AI' },
    zikirmatik: { name: 'Zikirmatik', desc: 'Digital tasbih', tag: 'Islamic' },
    ramazan: { name: 'Vakit', desc: 'Adhan, prayer & qibla', tag: 'Islamic' },
    kelimebul: { name: 'Word Find', desc: 'Turkish word puzzle', tag: 'Game' },
    hesapvakti: { name: 'Bill Time', desc: 'Who pays the bill?', tag: 'Game' },
    tenax: { name: 'Tenax', desc: 'AI training coach', tag: 'Fitness' },
    patisstray: { name: 'PatissTray', desc: 'Bakery-to-café ordering', tag: 'Business' },
  },
  // Home
  home: {
    title: 'Home',
    heroEyebrow: 'K-001 · Active since 2023',
    heroBrandDot: '.',
    heroTagline: 'Mobile apps for the meaningful moments of everyday life — designed in Türkiye, used worldwide.',
    metaApps: 'apps live',
    metaLangs: 'languages',
    metaRating: 'average rating',
    portfolioNum: '[ 01 ] Portfolio',
    portfolioTitle: 'Apps',
    portfolioDesc: 'Each devoted to a specific daily routine, carefully crafted.',
    apps: {
      noctavia: {
        name: 'Noctavia',
        tagline: 'AI-powered dream interpreter. Speak it, let AI read it. Symbol dictionary and theme analysis in 6 languages.',
        category: 'AI · Dream',
      },
      zikirmatik: {
        name: 'Zikirmatik',
        tagline: 'Modern, minimal digital tasbih. Counter, goals, multiple sets. With haptics and sound.',
        category: 'Islamic',
      },
      ramazan: {
        name: 'Vakit: Ezan, Namaz & Kıble',
        tagline: 'Adhan and prayer times, qibla direction, imsak and iftar. Location-based notifications — across Turkey and worldwide.',
        category: 'Islamic',
      },
      kelimebul: {
        name: 'Word Find',
        tagline: 'Turkish word puzzle. 10,000+ words, 200+ levels, daily challenge.',
        category: 'Game',
      },
      hesapvakti: {
        name: 'Bill Time',
        tagline: 'Who pays the bill? Fingers on the screen, countdown begins. A fun party game.',
        category: 'Party Game',
      },
      tenax: {
        name: 'Tenax',
        tagline: 'An AI coach that asks about your injuries and equipment, then writes the program around you.',
        category: 'Fitness',
      },
      patisstray: {
        name: 'PatissTray',
        tagline: 'Wholesale ordering, production and delivery between a pastry maker and its cafés, in one app.',
        category: 'Business',
      },
    },
    statusLive: 'Live',
    statusSoon: 'Soon',
    featuredEyebrow: '★ New — vol. 04 · Q3 2026',
    featuredTitle1: 'Tenax',
    featuredTitle2: 'writes your program',
    featuredText: 'It asks about your injuries, your equipment and your goal, then writes your 12-week program around them. All 412 exercises come with video; your own programs, set logging and your full history are free.',
    featuredCtaPrimary: 'Explore',
    featuredCtaSecondary: 'App Store',
    manifestoNum: '[ 02 ] Manifesto',
    manifestoTitle: 'What we do?',
    manifestoDesc: 'Three principles that guide us.',
    principles: [
      { num: 'PRINCIPLE 01', tag: 'Focus', title: 'One need, fully met.', desc: 'Every app is designed around a specific need. Rather than adding features, we refine what is there — you know what to do the moment you open it.' },
      { num: 'PRINCIPLE 02', tag: 'Transparency', title: 'Transparent data.', desc: 'We process only what an app needs to work. Our privacy policy states, app by app, which data is used and why — and we never sell personal data.' },
      { num: 'PRINCIPLE 03', tag: 'Local', title: 'Local roots, global reach.', desc: 'We think in Turkish and design for the world. Our apps ship in multiple languages, shaped by an understanding of local habits.' },
    ],
  },
  notFound: {
    crumb: '404',
    h1: 'Not found.',
    h2: 'The page you\'re looking for isn\'t here. Maybe in another dream.',
    cta: 'Home →',
  },
  common: {
    download: 'Download on Play Store',
    downloadShort: 'Play Store ↗',
    downloadAppStore: 'Download on the App Store',
    features: 'Features',
    faq: 'FAQ',
    featuresQ: 'What can it do?',
    featuresDesc: 'Single focus, carefully built.',
    faqDesc: 'The most common questions.',
    detail: 'Detail',
    back: 'Back',
    allFeatures: 'All features →',
  },
  ui: {
    studio: 'Android & iOS app studio',
    appsCount: 'apps',
    scroll: 'Scroll ↓',
    explore: 'Explore the app →',
    goTo: (name) => `Go to ${name}`,
    replay: 'Replay',
    themeToggle: 'Toggle theme',
    manifestoText: 'Every app focuses on a single need. No unnecessary screens, no distracting features. It does its job the moment you open it — and respects your time and your data.',
    storesLabel: 'Stores',
    storesTitle: <>All our apps,<br />in one place.</>,
    storesText: 'Download our apps from Google Play and the App Store.',
    devPlay: 'Google Play',
    devApple: 'App Store',
    apps: 'Apps',
    screens: 'Screens',
    screensTitle: 'Take a closer look.',
    screensSoon: 'Screenshots coming soon',
    soonBig: 'Soon.',
    nextApp: 'Next app',
    support: 'Support',
    badgePlaySmall: 'Get it on',
    badgePlay: 'Google Play',
    badgeAppleSmall: 'Download on the',
    badgeApple: 'App Store',
    rec: 'Live recording',
    results: (n) => `${n} results`,
    all: 'All',
    records: (n) => `${n} entries`,
  },
  appStats: {
    noctavia: [['1000+', 'symbol dream dictionary'], ['6', 'languages: TR · EN · AR · DE · FR · ES'], ['3', 'part AI interpretation'], ['30', 'day theme analysis']],
    zikirmatik: [['1', 'tap to count'], ['33 · 99', 'preset goals plus custom'], ['0', 'data collected'], ['100%', 'offline']],
    ramazan: [['81', 'provinces and all districts'], ['5', 'prayers + imsak & iftar'], ['World', 'wide city support'], ['Live', 'countdown']],
    kelimebul: [['10,000+', 'Turkish words'], ['200+', 'levels'], ['1', 'new challenge, every day'], ['0', 'internet needed']],
    hesapvakti: [['2–10', 'players on one screen'], ['3·2·1', 'countdown'], ['1', 'loser pays the bill'], ['0', 'internet needed']],
    tenax: [['412', 'exercises with video'], ['12', 'week program'], ['5', 'free program slots'], ['50', 'program slots with Pro']],
    patisstray: [['3', 'roles: café · maker · driver'], ['1', 'app, one order line'], ['0', 'in-app payments'], ['Offline', 'order queue']],
  },
  apps: {
    zikirmatik: {
      crumb: 'Zikirmatik',
      eyebrow: 'Islamic · Tasbih',
      h1: 'Zikirmatik — a modern digital tasbih',
      h2: 'Simple, fast, silent. Your phone becomes a tasbih.',
      lead: <>Zikirmatik brings the simplicity of the classic tasbih to your pocket. <strong>One-touch counter</strong>, goal setting, multiple zikr sets, and optional haptic/sound feedback. Optimized for one-handed use in dark mode — finish your zikr after night prayer or on the road, without taking your eyes off the screen. <strong>Offline, privacy-respecting, free.</strong></>,
      features: [
        { title: 'One-touch counter', desc: 'Tap anywhere on the screen to increment. Volume keys also work.' },
        { title: 'Goal setting', desc: '33, 99, 100 or a custom target. Notification when goal is reached.' },
        { title: 'Multiple sets', desc: 'Track Subhanallah, Alhamdulillah, Allahu Akbar and more in parallel.' },
        { title: 'Haptics & sound', desc: 'Light vibration or click sound on each tap — fully optional.' },
      ],
      faq: [
        { q: 'Does it work offline?', a: 'Yes, no internet required. All counts and sets are stored on your device.' },
        { q: 'Is it free?', a: 'Yes, it\'s free. Ads may be displayed in the app.' },
        { q: 'Where does my data go?', a: 'We don\'t collect any data. Counts stay only on your device.' },
      ],
      ctaTitle: 'Begin your zikr.',
      ctaSub: 'Free, offline, simple.',
    },
    ramazan: {
      crumb: 'Vakit',
      eyebrow: 'Islamic · Times',
      h1: 'Vakit: Ezan, Namaz & Kıble — accurate times, on time alerts',
      h2: 'Adhan, prayer and qibla. Imsak and iftar. Location-based, worldwide.',
      lead: <>An app that <strong>dynamically calculates</strong> imsak, iftar and the five daily prayer times based on your location. Works <strong>across all of Turkey's provinces and districts</strong> and <strong>worldwide</strong> — automatic detection by location, or manual city selection. <strong>Customizable notifications</strong> for iftar and imsak, live countdown, and monthly calendar view. Fast, simple, accurate in real-time.</>,
      features: [
        { title: 'Worldwide', desc: 'Accurate times for cities across Turkey and around the world.' },
        { title: 'Smart alerts', desc: 'Customizable notifications for imsak, iftar and adhan times.' },
        { title: 'Live countdown', desc: 'Time remaining to the next prayer dynamically displayed.' },
        { title: 'Monthly calendar', desc: 'All Ramadan times in a single overview.' },
      ],
      faq: [
        { q: 'Does it work abroad?', a: 'Yes — the app works in major cities worldwide. With location permission, detection is automatic; without it, you can select a city manually.' },
        { q: 'How are times calculated?', a: 'For Turkey, Diyanet data; for the rest of the world, astronomical calculation methods (Muslim World League, ISNA, Umm al-Qura, etc.).' },
        { q: 'Can I disable notifications?', a: 'Each prayer notification can be toggled individually; there\'s also a silent mode.' },
        { q: 'Is it free?', a: 'Yes, it\'s free. Ads may be displayed in the app.' },
      ],
      ctaTitle: 'Don\'t miss the time.',
      ctaSub: 'Wherever you are, anywhere in the world.',
    },
    kelimebul: {
      crumb: 'Word Find',
      eyebrow: 'Game · Turkish',
      h1: 'Word Find — Turkish word puzzle',
      h2: '200+ levels, 10,000+ words, daily challenges.',
      lead: <>We redesigned the classic letter-puzzle flow with the richness of Turkish. A carefully curated dictionary of <strong>10,000+ words</strong>, <strong>200+ levels</strong> and a fresh <strong>daily challenge</strong> every day. Hint system, progress tracking and dark mode. No connection required, plays offline.</>,
      features: [
        { title: '10,000+ words', desc: 'A carefully chosen Turkish dictionary, aligned with TDK.' },
        { title: '200+ levels', desc: 'Easy to hard, gradually increasing difficulty.' },
        { title: 'Daily challenge', desc: 'A new puzzle every day — global leaderboard.' },
        { title: 'Offline', desc: 'Play without internet, your progress is saved.' },
      ],
      faq: [
        { q: 'Which devices does it support?', a: 'All Android 7.0+ devices. Optimized for tablets.' },
        { q: 'How does the hint system work?', a: 'Each level gives 3 free hints; extra hints can be earned via ads.' },
        { q: 'Will new levels be added?', a: 'Yes, at least 20 new levels are added each month.' },
      ],
      ctaTitle: 'One more word.',
      ctaSub: 'A puzzle with the richness of Turkish.',
    },
    hesapvakti: {
      crumb: 'Bill Time',
      eyebrow: 'Party Game · Fun',
      h1: 'Bill Time — who pays the bill?',
      h2: 'Fingers on the screen, let the countdown begin!',
      lead: <>Couldn't agree at the table? Who pays the bill? <strong>Everyone puts a finger on the screen</strong>, and the countdown begins. The random elimination system continues until only one finger remains — the loser pays. <strong>With haptics, animation and sound effects</strong>, perfect for playing with friends. Fair, fast, fun.</>,
      features: [
        { title: 'Multi-touch', desc: 'All fingers on the screen at once — supports 2 to 10 players.' },
        { title: 'Countdown', desc: 'After an exciting 3-2-1, the random elimination starts.' },
        { title: 'Random elimination', desc: 'Fair and transparent algorithm. Until only one finger remains.' },
        { title: 'Full feel', desc: 'Vibration, animation and sound effects — adds energy to the table.' },
      ],
      faq: [
        { q: 'How many people can play?', a: 'As many as your device supports — usually between 2 and 10 players.' },
        { q: 'Does it work offline?', a: 'Yes, no internet required. Start with a single tap.' },
        { q: 'Is it only for the bill?', a: 'No — who goes shopping, who washes the dishes, who plays first… for any "who?" question.' },
      ],
      ctaTitle: 'Fingers on the screen.',
      ctaSub: 'Let the countdown begin.',
    },
    tenax: {
      crumb: 'Tenax',
      eyebrow: 'Fitness · AI',
      h1: 'Tenax — AI training coach',
      h2: 'Not a template. A program written for you.',
      lead: <>It asks about your injuries, your equipment, your goal and the movements you cannot do, then <strong>writes your 12-week program around them</strong>. All 412 exercises come with video; building your own program, logging sets and <strong>your full history are free</strong>. The AI coach unlocks with Tenax Pro.</>,
      soonBadgePlay: 'Coming soon to Google Play',
      soonNote: 'Tenax is live on the App Store. The Android version is on its way; you will be able to download it from Google Play when it ships.',
      features: [
        { title: 'It listens to your injuries', desc: 'An exercise you mark as impossible never enters the program; an alternative working the same muscle takes its place.' },
        { title: '412 exercises, all on video', desc: 'Every exercise has a video walkthrough, the muscles it works and a difficulty level. The whole library is free.' },
        { title: 'Weight tracking and calibration', desc: 'If you do not know your working weight, the app finds it through calibration in week one and tells you where to pick up afterwards.' },
        { title: '3D body model', desc: 'Mark your chest, waist, arm and leg measurements on a three-dimensional model and follow the change over time.' },
      ],
      faq: [
        { q: 'What do I get for free?', a: 'All 412 video exercises, up to 5 programs of your own, unlimited workout logging, calibration, body measurements and the full analytics. The free version shows ads — but never during a workout or the rest timer between sets.' },
        { q: 'Is my history deleted or hidden on the free plan?', a: 'No. Your full workout history and analytics are open on the free plan too — nothing is deleted, no day is hidden. History is also kept on your device, so the app opens without an internet connection.' },
        { q: 'What does Tenax Pro unlock?', a: 'The AI coach (personalised program generation and weekly optimisation), 50 program slots instead of 5, and ad-free use. Monthly or yearly; cancel whenever you like.' },
        { q: 'How do I cancel the subscription?', a: 'On iPhone, in your App Store account: Settings > Apple Account > Subscriptions. On Android, in Google Play: Play Store > Profile > Payments & subscriptions > Subscriptions. Deleting the app does not cancel the subscription. Cancellation takes effect at the end of the current period.' },
        { q: 'Can I delete my account and data?', a: 'Yes, from inside the app. The Profile screen offers two separate actions: "Delete my data" removes your programs and history while keeping your account; "Delete my account" permanently removes your account and every server-side record. Both take effect immediately.' },
        { q: 'Where does my health data go?', a: 'Your injury note, measurements and workout history are sent to the Anthropic Claude API so the program can be generated, and are stored in Firebase linked to your account. They are not used for advertising, never sent to ad networks and never written to analytics. Details are in the Privacy Policy.' },
        { q: 'Is the program medical advice?', a: 'No. Programs are generated by AI; they are not medical advice, diagnosis or physiotherapy. If you have a medical condition or an injury, consult a health professional before starting, and stop if you feel pain during training.' },
      ],
      invite: {
        title: 'You have been invited',
        codeLabel: 'Invite code',
        lead: 'A friend invited you to Tenax. Install the app and enter this code while signing up; once you complete the setup, you both benefit.',
        note: 'You can enter the code on the last step of the setup flow.',
      },
      support: {
        title: 'Support',
        desc: 'Write to us about a problem, a suggestion or a request about your account. We usually reply the same day.',
      },
      ctaTitle: 'Let AI write your program.',
      ctaSub: 'A coach that knows your injuries and picks for your equipment.',
    },
    patisstray: {
      crumb: 'PatissTray',
      eyebrow: 'Business · B2B',
      h1: 'PatissTray — the order line between a bakery and its cafés',
      h2: 'No phone orders, no lists on WhatsApp, no ledger kept by hand.',
      lead: <>A business app that carries a pastry maker’s <strong>wholesale trade</strong> end to end: the café orders, the producer confirms and bakes, the driver delivers. <strong>One app, three roles</strong> — the role on your account decides which screens you see.</>,
      soonBadge: 'Coming soon to the stores',
      soonNote: 'PatissTray is not released yet: the Android build is in internal testing on Play Console, and the iOS build has not been submitted to the App Store.',
      access: {
        title: 'Access',
        lead: 'PatissTray is not a public app. There is no sign-up screen inside it; the producer you work with creates your account and sets your role (café · producer · driver).',
        note: 'Write to info@kolabs.tr if you want it set up for your own business, or want a demo.',
      },
      features: [
        { title: 'Café: counter and orders', desc: 'The catalogue, your own price list, delivery day and time window, and the cut-off warning. Your cart survives app restarts, and a past order can be repeated with one tap.' },
        { title: 'Producer: live orders and production', desc: 'Orders arrive instantly and move forward one tap at a time. The day’s production breakdown, the dispatch card, critical stock warnings and weekly revenue sit on the same screen.' },
        { title: 'Driver: today’s route', desc: 'Stops come in order and navigation hands off to the phone’s own maps app. Proof-of-delivery photos, partial delivery and failed delivery all work in the field.' },
        { title: 'Running account, no in-app payment', desc: 'No card is ever entered in the app. The amount goes onto the running account; balance and payment terms are computed from the same formula on the café’s phone and in the producer’s panel.' },
      ],
      faq: [
        { q: 'Can anyone download and use the app?', a: 'No. PatissTray is a closed business-to-business app, usable only by cafés, producer staff and delivery drivers who have an account. There is no sign-up screen inside the app.' },
        { q: 'How do I get an account?', a: 'Accounts are created by the producer. If your supplier uses PatissTray, ask them for your account. If you want it set up for your own business, write to info@kolabs.tr.' },
        { q: 'Does the app take payments?', a: 'No. There are no in-app purchases, subscriptions or ads. Order amounts are settled outside the app through the running account and invoices; the app only shows the balance and the payments.' },
        { q: 'When is my location shared?', a: 'Only in the driver role, and only while a delivery trip is actually under way. The last position is updated roughly every 90 seconds and shown to the producer; when the trip ends the record is deleted, and nothing is kept outside working hours. If you decline the permission the delivery flow still works — you simply do not appear on the map.' },
        { q: 'Where do delivery photos go?', a: 'A proof-of-delivery photo is stored in Firebase Storage, attached to that order, and can be seen by the producer and by the café the order belongs to. If the photo cannot be uploaded the delivery is still recorded — just without a photo.' },
        { q: 'Do I lose my order if the connection drops?', a: 'No. Order writes are queued while offline and sent once the connection returns. The one exception is photo upload: out of coverage a photo cannot be uploaded, and the delivery is recorded without one.' },
        { q: 'Can I rely on the nutrition and allergen information?', a: 'That information is entered on the product card by the producer; values are per 100 grams and the portion figure is derived from the serving weight. An empty allergen list does not mean "no allergens" — if you are unsure, ask the producer.' },
        { q: 'How do I delete my account and data?', a: 'Because the account is tied to a business relationship, ask the producer you work with to close it; you can also write to info@kolabs.tr and the request is handled within 30 days. Invoice and running-account records may be kept for as long as the law requires.' },
      ],
      support: {
        title: 'Support',
        desc: 'Write to us about a problem, a suggestion or a request about your account. We usually reply the same day.',
      },
    },
  },
  noctavia: {
    brand: 'NOCTAVIA · v3.2',
    crumb: 'Noctavia',
    home: {
      eyebrow: 'AI · Dream',
      h1: <>Noctavia — your <em>AI</em> dream interpreter</>,
      h2: 'Tell your dreams, make sense of them, save them. Detailed interpretation, symbolic analysis and reflection in seconds.',
      lead: <>Noctavia offers a three-part dream interpretation experience powered by Claude AI: <strong>General Interpretation</strong>, <strong>Symbolic Analysis</strong>, <strong>Reflection</strong>. Speak it or type it — the app handles the rest. All your dreams are stored safely; you can come back anytime to analyze their themes.</>,
      featuresNum: '[ 01 ] Features',
      featuresQ: 'What can it do?',
      featuresDesc: '6 core features, one night.',
      features: [
        { to:'/noctavia/sesli-yorum', title:'Voice Interpretation', desc:'Speak into the mic, AI interprets in seconds.', tag:'AI · STT' },
        { to:'/noctavia/ruya-sozlugu', title:'Dream Dictionary', desc:'1000+ symbols, A–Z index, offline access.', tag:'Offline' },
        { to:'/noctavia/tema-analizi', title:'Theme Analysis', desc:'30-day patterns, recurring symbols.', tag:'Insights' },
        { to:'/noctavia/ruya-gunlugu', title:'Dream Journal', desc:'Calendar, search, favorites — keep your data.', tag:'Journal' },
        { to:'/noctavia/premium', title:'Premium', desc:'Unlimited interpretations, voice readings, advanced analysis.', tag:'Plans' },
        { to:'/noctavia/sesli-yorum', title:'6 Languages', desc:'TR · EN · AR · DE · FR · ES.', tag:'i18n' },
      ],
      ctaTitle: <>Start <em>tonight</em>.</>,
      ctaSub: 'Free download, interpret your first dream.',
    },
    sesliYorum: {
      crumb: 'Voice Interpretation',
      eyebrow: 'Speech-to-Text · AI',
      h1: <>Voice Dream Interpretation — <em>speak</em>, AI interprets</>,
      h2: 'Tell it with your voice, get an interpretation in seconds.',
      lead: <>With Noctavia's voice dream interpretation, you don't have to type your dream. Hold the mic, speak naturally — the AI delivers a detailed interpretation in seconds. Your voice message is automatically transcribed, analyzed by <strong>Claude AI</strong>, and you get a <strong>3-part</strong> detailed interpretation: General, Symbolic, Reflection. Supports <strong>TR, EN, AR, DE, FR, ES</strong>.</>,
      recordHead: 'Live Recording',
      recordMeta: '02:00 max · TR · 48kHz',
      recordRec: '● REC',
      recordTime: '00:23 / 02:00',
      recordLatency: '1247 ms latency',
      steps: [
        { title: 'Press the mic', desc: 'Open the app, tap the record button.' },
        { title: 'Speak naturally', desc: 'Up to 2 minutes, fluently.' },
        { title: 'AI interprets', desc: '200–400 word interpretation in seconds.' },
        { title: 'Listen (Premium)', desc: 'You can also have the result read aloud.' },
      ],
      faq: [
        { q: 'What language can I speak?', a: 'Turkish, English, Arabic, German, French and Spanish — selected automatically based on the app language.' },
        { q: 'Are my recordings stored?', a: 'No. The audio is deleted right after transcription. Only the interpreted text and result are kept in your journal.' },
        { q: 'Does it work offline?', a: 'STT and AI interpretation run server-side, so an active internet connection is required.' },
        { q: 'How long can I speak?', a: 'Up to 2 minutes per session. For longer dreams, switch to text mode.' },
      ],
      ctaTitle: <><em>Speak it</em>, see it interpreted.</>,
      ctaSub: 'Voice recording is free in all tiers.',
    },
    ruyaSozlugu: {
      crumb: 'Dream Dictionary',
      eyebrow: '1000+ symbols · Offline',
      h1: <>Dream <em>Dictionary</em></>,
      h2: 'From A to Z, the meaning of symbols at your fingertips.',
      lead: <>Noctavia's dream dictionary, with <strong>1000+ symbols</strong>, blends the essence of classical interpretation books with a modern reading. With <strong>A–Z index</strong>, advanced search and <strong>offline access</strong>, it's always at hand — on a plane, on a bus, or when you wake up at 3 a.m. Each symbol comes with a short meaning, cultural background and psychological reading.</>,
      searchPlaceholder: 'Search symbols — e.g. water, snake, house…',
      searchHint: '⌘ K',
      letterAll: 'ALL',
      letters: ['ALL','A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z'],
      noResults: 'No results found. Download the app for the full dictionary.',
      symbols: [
        { l:'M', name:'Moon', mean:'Subconscious, feminine energy, cyclical change. A full moon points to clarity; a crescent to new beginnings.' },
        { l:'L', name:'Lion', mean:'Courage, authority, inner strength. An aggressive lion represents impulses that cannot be controlled.' },
        { l:'G', name:'Gold', mean:'Value, permanence, inner wealth. Lost gold can signal anxiety around self-worth.' },
        { l:'B', name:'Baby', mean:'Renewal, beginnings, potential. Carries hints about caregiving roles and feelings of responsibility.' },
        { l:'S', name:'Sea', mean:'Emotions, the subconscious, infinity. Calm sea reflects peace; stormy sea reflects unresolved feelings.' },
        { l:'T', name:'Tooth', mean:'Power, control, fear of loss. Falling teeth are often associated with transitional periods.' },
        { l:'H', name:'House', mean:'Self, inner world, personal space. New rooms symbolize newly discovered aspects of yourself.' },
        { l:'B', name:'Bird', mean:'Freedom, ascent, message. Colorful birds bring creative energy; dark birds, intuition about the unknown.' },
        { l:'B', name:'Bridge', mean:'Transition, connection, decision point. A solid bridge points to confidence; a shaky one to uncertainty.' },
        { l:'L', name:'Ladder', mean:'Progress, hierarchy, spiritual ascent. Climbing up shows growth; descending shows return to the past.' },
        { l:'W', name:'Water', mean:'Life, purification, emotional flow. Clear water represents healing; murky water, confusion.' },
        { l:'S', name:'Snake', mean:'Transformation, wisdom, hidden power. Shedding skin is one of the strongest renewal symbols.' },
      ],
      faq: [
        { q: 'Does it work offline?', a: 'Yes. The full dictionary ships with the app; no internet needed.' },
        { q: 'How many symbols are there?', a: '1000+ main symbols, 3000+ derived meanings.' },
        { q: 'Is the dictionary updated?', a: 'Yes — new symbols and expanded interpretations are added in regular updates.' },
      ],
      ctaTitle: <>Find the <em>symbol</em>, make sense of it.</>,
      ctaSub: 'The full dictionary is free, offline.',
    },
    temaAnalizi: {
      crumb: 'Theme Analysis',
      eyebrow: 'Pattern Recognition',
      h1: <>Theme <em>Analysis</em></>,
      h2: 'Your 30-day dream patterns, at a glance.',
      lead: <>Noctavia surfaces the patterns of your subconscious. The <strong>30-day</strong> theme analysis groups recurring symbols, moods and locations from your dreams. AI-powered pattern recognition shows you which themes have been weighing on your subconscious and lets you track emotional intensity across periods. This is not a prophecy — it's a <strong>mirror</strong>.</>,
      themesHead: 'Last 30 days — Most frequent themes',
      themesMeta: '42 dreams · updated: today',
      themes: [
        { name: 'Water / Sea', pct: 78, count: 23 },
        { name: 'Flying', pct: 62, count: 18 },
        { name: 'Being chased', pct: 54, count: 16 },
        { name: 'Unknown place', pct: 47, count: 14 },
        { name: 'Family', pct: 41, count: 12 },
        { name: 'Loss', pct: 33, count: 10 },
      ],
      heatmapHead: 'Emotional intensity — heatmap',
      heatmapMeta: 'last 6 weeks · 7×6',
      heatmapLow: 'low',
      heatmapHigh: 'high',
      faq: [
        { q: 'Where does the data come from?', a: 'Only from your own dream journal. All analysis is kept on your device or in your account in non-anonymized form.' },
        { q: 'How many dreams do I need to log?', a: 'For meaningful analysis, at least 7 entries on different days are recommended.' },
        { q: 'Which AI model is used?', a: 'A theme classification layer specially trained with Claude AI.' },
      ],
      ctaTitle: <><em>See</em> the pattern.</>,
      ctaSub: 'Look at your own map after 30 days.',
    },
    premium: {
      crumb: 'Premium',
      eyebrow: 'Plans',
      h1: 'Noctavia Premium',
      h2: 'More interpretations, voice readings, weekly theme analysis.',
      lead: <>Noctavia comes in three plans. <strong>Free</strong> gives you 2 written interpretations a day; <strong>Standard</strong> 10 a day plus voice input; <strong>Premium</strong> 30 a day, voice playback of interpretations, and weekly theme analysis. Cancel anytime.</>,
      periodMonthly: 'Monthly',
      periodYearly: 'Yearly',
      perMonth: 'mo',
      perYear: 'yr',
      tierFree: 'Free',
      tierStandard: 'Standard',
      tierPremium: 'Premium',
      recommended: 'Recommended',
      freeSub: 'Enough to get started.',
      standardSub: 'For regular dreamers.',
      premiumSub: 'Full depth, full access.',
      freeFeatures: [
        { text: '2 written interpretations / day', no: false },
        { text: 'Dream dictionary (200+ symbols)', no: false },
        { text: 'Dream journal (last 7 days)', no: false },
        { text: 'Voice dream input', no: true },
        { text: 'Voice interpretation playback', no: true },
        { text: 'Theme analysis', no: true },
      ],
      standardFeatures: [
        { text: '10 interpretations / day', no: false },
        { text: 'Voice dream input', no: false },
        { text: '90-day history', no: false },
        { text: '500+ dream dictionary', no: false },
        { text: 'Ad-free experience', no: false },
        { text: 'Voice interpretation playback', no: true },
      ],
      premiumFeatures: [
        { text: '30 interpretations / day', no: false },
        { text: 'Voice dream input', no: false },
        { text: 'Unlimited history', no: false },
        { text: '1000+ symbol dictionary', no: false },
        { text: 'Ad-free experience', no: false },
        { text: 'Voice interpretation playback', no: false },
        { text: 'Weekly theme analysis', no: false },
        { text: 'Priority AI access', no: false },
      ],
      freeCta: 'Free Download',
      standardCta: 'Get Standard',
      premiumCta: 'Get Premium',
      compareFeature: 'Feature',
      compareRows: [
        ['Daily interpretations', '2', '10', '30'],
        ['Voice dream input', '—', '✓', '✓'],
        ['Voice playback', '—', '—', '✓'],
        ['Dream dictionary', '200+', '500+', '1000+'],
        ['History', '7 days', '90 days', 'Unlimited'],
        ['Theme analysis', '—', '—', 'Weekly'],
        ['Ad-free', '—', '✓', '✓'],
        ['Priority AI', '—', '—', '✓'],
      ],
      faq: [
        { q: 'Can I cancel?', a: 'Yes, cancel your subscription anytime from your Play Store account.' },
        { q: 'How is payment handled?', a: 'All payments are processed via Google Play, using your registered payment method.' },
        { q: 'Can I share with family?', a: 'If Google Play Family Library supports it, yes.' },
      ],
      ctaTitle: 'Pick a plan.',
      ctaSub: 'Easy to cancel, no commitment.',
    },
    ruyaGunlugu: {
      crumb: 'Dream Journal',
      eyebrow: 'Journal · Search · Sync',
      h1: <>Dream <em>Journal</em></>,
      h2: 'Save, search, return. Every dream is a record.',
      lead: <>The dream journal turns everything you've seen into an organized, searchable archive. With the <strong>calendar view</strong> you can revisit past months; <strong>search</strong> by symbol or keyword; mark special dreams as <strong>favorites</strong>. Every entry is backed up to the cloud — your journal travels with you across devices.</>,
      monthHead: 'This month — April',
      monthMeta: '12 entries · 4 favorites',
      weekDays: ['M','T','W','T','F','S','S'],
      searchPlaceholder: 'Search your dreams — e.g. water, mother, fly…',
      searchHint: 'SEARCH',
      favoriteLabel: '★ favorite',
      entries: [
        { date: '27 APR', tag: 'Water', title: 'At the bottom of a clear lake', excerpt: 'I was underwater but I could breathe. There was a door on the floor…' },
        { date: '25 APR', tag: 'Flying', title: 'Gliding above the city', excerpt: 'Roof to roof, slowly. Below me was a city I didn\'t recognize.' },
        { date: '22 APR', tag: 'Family', title: 'In the kitchen of the old house', excerpt: 'My mother was cooking but there was no sound. Only the smell.' },
        { date: '20 APR', tag: 'Chase', title: 'Dark corridor', excerpt: 'Something was after me but when I turned around, there was nothing.' },
        { date: '18 APR', tag: 'Unknown', title: 'Glass library', excerpt: 'All the shelves were empty. I took a book off the shelf, the pages were blank.' },
      ],
      faq: [
        { q: 'Is my data safe?', a: 'All your journal entries are end-to-end encrypted and accessible only via your Google account. Not shared with third parties.' },
        { q: 'What if I switch devices?', a: 'Sign in with Google on the new device and your full journal loads automatically.' },
        { q: 'Can I delete an entry?', a: 'Yes, you can delete individually or in bulk. Deleted entries are removed completely.' },
      ],
      ctaTitle: <><em>Save</em>, return.</>,
      ctaSub: 'Your journal is always with you.',
    },
    sectionStepsNum: '[ 02 ] Flow',
    sectionStepsTitle: 'How does it work?',
    sectionStepsDesc: 'A meaningful interpretation in seconds.',
    sectionFaqNum: '[ 03 ] FAQ',
    sectionFaqTitle: 'Frequently Asked',
    sectionFaqDesc: 'The details are here.',
  },
  // privacy: privacy.jsx'te (uygulama sekmeli gizlilik politikası)
  terms: {
    crumb: 'Terms of Service',
    eyebrow: 'Legal · Terms',
    title: 'Terms of Service',
    lastUpdated: 'August 14, 2026',
    body: <>
      <p className="legal-lead">These terms set the rules for your use of the kolabs website and apps. By using the services, you are deemed to accept these terms. This text also serves as the <strong>end user license agreement (EULA)</strong> for our apps.</p>
      <h2>1. Scope of Service</h2>
      <p>kolabs is an independent brand developing consumer apps for mobile platforms (iOS and Android). Our services are provided "as is"; we exercise the highest level of care but do not guarantee uninterrupted operation.</p>
      <p><strong>PatissTray</strong> stands apart in that list: it is built for <strong>businesses</strong>, not consumers (B2B). It runs the ordering, production, delivery and running-account flow between a pastry producer and the cafés that order from it; there is no public sign-up, and it is used only with accounts created by the producer.</p>
      <h2>2. Eligibility and Age Limits</h2>
      <p>Our apps are not directed at children <strong>under 13</strong>.</p>
      <p>The floor for <strong>Tenax</strong> is <strong>14</strong>; the app will not accept a lower age. If you are under 18 you may use Tenax only with the knowledge and consent of a parent or guardian, who is deemed to accept these terms on your behalf. Resistance training requires extra care during growth; consult a health professional before starting.</p>
      <p><strong>PatissTray</strong> is a business app. Only adult staff for whom the producer has created an account may use it; by using that account you represent that you are authorised to act on behalf of the business you represent.</p>
      <h2>3. Acceptable Use</h2>
      <p>You may not use the apps to:</p>
      <ul>
        <li>Produce or distribute unlawful content.</li>
        <li>Reverse-engineer the services or gain unauthorized access.</li>
        <li>Use them in a way that disturbs, harasses or harms other users.</li>
        <li>Generate abnormal traffic with automated tools.</li>
        <li>Enter personal data about other people beyond what is needed — for example writing more than is required to evidence a delivery in the PatissTray proof-of-delivery field.</li>
      </ul>
      <h2>4. Accounts</h2>
      <p>Some apps require an account; others work without one. In Zikirmatik, social features such as the friends list, leaderboards and Zikir Zinciri require signing in with Apple, Google or email; on Android an account is required to use the app at all, while on iOS you can skip sign-in and use it offline. Ezan Vakti works without any account.</p>
      <p>Tenax requires an account: your workout history, measurements and AI setup are tied to your account, so it cannot be used without signing in.</p>
      <p>In PatissTray <strong>you cannot create your own account</strong>: there is no sign-up screen, the producer business creates the accounts and sets your role (café · producer · driver). The account is tied to your business relationship with that producer and may be closed by them when the relationship ends. Do not share your account with anyone else — orders placed with it are binding on your business.</p>
      <p>The user is responsible for the security of their account; report suspicious access to <a href="mailto:info@kolabs.tr">info@kolabs.tr</a>. You can delete your account and the data held on our servers from within the app, or request deletion by writing to the same address. Deleting your account does not cancel a subscription bought through a store; you must also cancel it from your store account.</p>
      <h2>5. Premium and Subscriptions</h2>
      <p>Some features may require a premium purchase. All purchases are made through the store you downloaded the app from (the Apple App Store or Google Play). The store handles the payment entirely; your card and payment details are never shared with us. Subscription status is validated via <strong>RevenueCat</strong>.</p>

      <h3>What premium unlocks</h3>
      <ul>
        <li><strong>Zikirmatik (iOS and Android):</strong> Premium <strong>only removes ads</strong>. Every function — the counter, counter profiles, statistics, leaderboards, friends and Zikir Zinciri — is fully available in the free version; premium locks nothing.</li>
        <li><strong>Tenax (iOS):</strong> Tenax Pro unlocks the <strong>AI features</strong> (personalised program generation and weekly training optimisation), <strong>50 program slots</strong> and <strong>ad-free use</strong>. The entire exercise library (412 exercises, each with video), building your own program, set logging, calibration, body measurements and <strong>your full workout history and analytics</strong> are <strong>available in the free version too</strong> — nothing is deleted, no day is hidden. The only numeric limit in the free version is that you can build <strong>5</strong> programs of your own.</li>
        <li><strong>Ezan Vakti (iOS and Android):</strong> Premium removes ads and unlocks home screen widgets and automatic location updates. On iOS it also provides live prayer-time tracking on the Lock Screen and in the Dynamic Island. <strong>Core worship features such as prayer times, qibla and adhan are always free</strong> and are never placed behind a paywall.</li>
      </ul>
      <p>What premium unlocks may vary by platform and app version; the list shown on the in-app purchase screen before you buy is the one that applies.</p>

      <h3>Auto-renewable subscriptions</h3>
      <p>Premium is offered on a <strong>monthly</strong> or <strong>yearly</strong> basis only; no other period length exists. The current price, subscription length and per-period unit price are shown before purchase, both on the in-app purchase screen and in the relevant store.</p>
      <p>The subscription renews automatically at the end of each period, and payment is charged to the payment method linked to your store account upon confirmation of purchase:</p>
      <ul>
        <li><strong>App Store (iOS):</strong> The subscription renews automatically unless canceled at least 24 hours before the end of the current period. To manage or cancel: <a href="https://apps.apple.com/account/subscriptions" target="_blank" rel="noreferrer">App Store subscription settings</a>.</li>
        <li><strong>Google Play (Android):</strong> The subscription renews automatically unless canceled before the renewal date. To manage or cancel: <a href="https://play.google.com/store/account/subscriptions" target="_blank" rel="noreferrer">Google Play subscription settings</a>.</li>
      </ul>
      <p>Cancellation takes effect at the end of the current period; your premium access continues until then. Deleting the app does not cancel the subscription.</p>

      <h3>Free trial</h3>
      <p>Zikirmatik and Ezan Vakti offer no free trial or introductory price; the subscription is paid from the first period onward. Should a promotion ever be offered, its terms are stated plainly on the purchase screen. If a trial period is offered in Tenax, its length and the price that follows are shown on the purchase screen before you buy.</p>

      <h3>Referral reward (Tenax)</h3>
      <p>In Tenax you can earn points by inviting friends; on reaching a certain number of points, a period of Tenax Pro access is unlocked. What you should know about this reward:</p>
      <ul>
        <li>The reward is <strong>not for sale, cannot be purchased, transferred or exchanged for cash</strong>; it is not a subscription and does not auto-renew.</li>
        <li>When the period ends, access returns to the free tier. This does not affect a purchased subscription.</li>
        <li>Points are credited only when the person you invited <strong>installs the app and completes the setup flow</strong>.</li>
        <li>The number of rewards obtainable within a calendar year is limited; the current limit is stated on the invite screen in the app.</li>
        <li>Creating fake accounts, inviting the same person repeatedly or otherwise abusing the system may result in the reward being revoked and the account restricted.</li>
        <li>The programme may be changed or ended with prior notice; rewards already earned remain valid until they expire.</li>
      </ul>

      <h3>Restoring purchases and cross-device access</h3>
      <p>On other devices signed in to the same store account, you can recover premium access with "Restore Purchases". In Zikirmatik, signing in to your in-app account also links the subscription to that account, so a subscription bought on iOS applies on Android too. Ezan Vakti has no in-app account; access is tied to the store account used for the purchase and does not carry between iOS and Android.</p>

      <h3>Donations (Zikirmatik)</h3>
      <p>Zikirmatik offers one-off, entirely optional donation purchases to support the developer. A donation is not a subscription, does not renew, and <strong>grants no premium feature, privilege or ad-free usage in return</strong>. As it is performed immediately, it is non-refundable.</p>

      <h3>Earlier one-off purchases</h3>
      <p>Users who bought the one-off "Remove Ads" (Zikirmatik) or "Supporter Pack" (Ezan Vakti) before the move to subscriptions keep their rights: those purchases remain valid and continue to grant premium access at no further cost. Both products are no longer on sale.</p>

      <h3>PatissTray has no purchases</h3>
      <p>PatissTray contains <strong>no in-app purchases, subscriptions or advertising</strong>, and no card details are ever entered into it. Order amounts are settled outside the app through the <strong>running account and invoices</strong> between the café and the producer. The balances, payment terms and amounts shown in the app are a view of that relationship; the app is not a payment instrument.</p>

      <h3>Refunds and right of withdrawal</h3>
      <p>Because the stores collect the payment, the stores also handle refunds; kolabs cannot issue a refund directly. You can submit a request through <a href="https://reportaproblem.apple.com" target="_blank" rel="noreferrer">Apple</a> or <a href="https://support.google.com/googleplay/answer/2479637" target="_blank" rel="noreferrer">Google Play</a>, and it is subject to that store's refund policy. Under the Turkish Distance Contracts Regulation, the right of withdrawal cannot be exercised for digital content and services performed instantly in an electronic environment and made available to the consumer.</p>
      <h2>6. Store-Specific Terms</h2>
      <p>Our apps are distributed through the Apple App Store and Google Play. The clauses below are required by those stores' rules.</p>

      <h3>Licence</h3>
      <p>You are granted a <strong>personal, non-transferable, non-exclusive licence</strong> to use the app on devices you own or control, to the extent permitted by the relevant store's usage rules. The app is licensed to you, not sold. You may not access the source code, or rent, lease, lend, sell or redistribute the app.</p>

      <h3>Apple App Store (iOS)</h3>
      <ul>
        <li>This agreement is <strong>between you and kolabs; Apple is not a party to it.</strong> kolabs alone is responsible for the app and its content.</li>
        <li><strong>Apple has no obligation to furnish maintenance or support.</strong> For support, your sole contact is <a href="mailto:info@kolabs.tr">info@kolabs.tr</a>.</li>
        <li>If the app fails to conform to any applicable warranty, <strong>you may notify Apple and Apple will refund the purchase price (if any)</strong>; to the maximum extent permitted by law Apple has no other warranty obligation whatsoever. All other warranty claims are directed to kolabs.</li>
        <li><strong>kolabs, not Apple, is responsible</strong> for third-party claims such as product liability and consumer-protection compliance.</li>
        <li>If a third party claims the app infringes its intellectual property rights, <strong>kolabs is responsible</strong> for the defence and resolution of that claim.</li>
        <li>By using the app you represent that you are not located in a country subject to a U.S. embargo and are not on any U.S. list of prohibited or restricted parties.</li>
        <li><strong>Apple and its subsidiaries are third-party beneficiaries of this agreement</strong> and have the right to enforce its terms against you directly.</li>
      </ul>

      <h3>Google Play (Android)</h3>
      <p>For apps obtained through Google Play this agreement is likewise between you and kolabs; <strong>Google is not a party</strong> and is not responsible for the app. Purchases, refunds and subscription handling are subject to Google Play's own terms.</p>

      <h2>7. Intellectual Property</h2>
      <p>The apps, website, brand, logo, visuals and copy belong to kolabs. They may not be reproduced, distributed or used in derivative works without permission. User-generated content (dream entries, journal entries, etc.) belongs to the user.</p>
      <p><strong>In PatissTray</strong>, orders, product information, running-account records and proofs of delivery belong to the <strong>businesses</strong> using the app; kolabs hosts them and does not use them for its own commercial purposes.</p>
      <h2>8. AI Outputs</h2>
      <p><strong>Noctavia:</strong> Dream interpretations are generated by AI; they are <strong>not prophecy, medical advice or psychological diagnosis</strong>. They are intended only for entertainment and personal reflection. Seek a professional when professional support is needed.</p>
      <p><strong>Tenax:</strong> Training programs, exercise selection, set/rep/weight recommendations and weekly analyses are generated by AI. They are <strong>not medical advice, diagnosis, treatment or physiotherapy</strong>, and are no substitute for a doctor, physiotherapist or certified trainer.</p>
      <p>Resistance training carries an inherent risk of injury. Before starting a program — particularly if you have a medical condition, an injury, are pregnant or take medication — <strong>consult a health professional</strong>. If you feel pain, dizziness, chest pain or shortness of breath during training, <strong>stop immediately</strong>. The injury note you enter in the app is used only to exclude the relevant exercises from your program; it is not a health assessment.</p>
      <p>Adjusting weights, repetitions and exercises to your own condition is your responsibility. To the extent permitted by law, kolabs cannot be held liable for injury or health problems arising from following the recommendations in the app.</p>
      <h2>9. Advertising and Third-Party Links</h2>
      <p>Free versions may display ads via Google AdMob. <strong>In Tenax ads appear only on the free tier</strong>, and your health data, measurements and workout history never enter an ad request. <strong>PatissTray carries no ads at all.</strong> kolabs is not responsible for the content of third-party links.</p>
      <h2>10. Disclaimer of Warranties and Limitation of Liability</h2>
      <p>The services are provided <strong>"as is" and "as available"</strong>. To the maximum extent permitted by law, all warranties — express or implied, including fitness for a particular purpose, merchantability and non-infringement — are disclaimed. We do not undertake that the service will be uninterrupted, error-free, or identical on every device.</p>
      <p>To the extent permitted by law, kolabs is not liable for indirect, incidental or consequential damages arising from the use or inability to use the services. These limitations do not affect the rights consumer law gives you that cannot be waived by contract.</p>
      <p><strong>In PatissTray the commercial relationship is between the users.</strong> Orders, prices, delivery, product quality, food safety and payment are governed by the relationship between the ordering café and the producer business. kolabs is not a party to that relationship, does not act as a seller or intermediary, and cannot be held liable for the products. Product descriptions, nutrition values and allergen information in the app are <strong>entered by the producer</strong>; kolabs does not verify their accuracy. <strong>An empty allergen list does not mean "no allergens"</strong> — when in doubt, ask the producer.</p>
      <p>For delivery staff: route, distance and duration figures are <strong>estimates</strong> and may not reflect traffic conditions; navigation is handed off to the phone's maps app. Handling the phone while driving is the driver's responsibility — the app does not remove the obligation to obey traffic laws.</p>
      <h2>11. Termination</h2>
      <p>Access for accounts that violate these terms may be restricted or terminated without prior notice.</p>
      <h2>12. Privacy</h2>
      <p>What data is collected, how it is used and what your rights are is set out in the <a href="/en/privacy">Privacy Policy</a>, which forms an integral part of these terms. How to delete your data and your account is explained app by app on the <a href="/en/data-deletion">Data Deletion</a> page.</p>
      <h2>13. Governing Law</h2>
      <p>These terms are governed by the laws of the Republic of Türkiye. Disputes are resolved in Turkish courts. As a consumer, you continue to benefit from the protections given to you by the mandatory consumer law of your country of residence.</p>
      <h2>14. Changes</h2>
      <p>The terms may be updated; significant changes are announced in the app and on the site. The current version is always shown on this page.</p>
      <h2>15. Contact</h2>
      <p>For any questions: <a href="mailto:info@kolabs.tr">info@kolabs.tr</a></p>
    </>,
  },
  dataDeletion: {
    crumb: 'Data Deletion',
    eyebrow: 'Legal · Data Deletion',
    lastUpdated: '14 August 2026',
    hubTitle: 'Data and account deletion',
    hubLead: 'You can delete the data we hold and your account itself. In most of our apps this happens inside the app, with no request to wait for; if you can no longer reach the app, you send us the same request by email.',
    pickTitle: 'Pick your app',
    pickDesc: 'What gets deleted, what is kept and how long it takes differs per app — each one has its own page.',
    generalTitle: 'True for every app',
    general: [
      <>You can send your request to <a href="mailto:info@kolabs.tr">info@kolabs.tr</a>; it is completed within <strong>30 days</strong> at the latest.</>,
      <>Send it from the <strong>email address registered to your account</strong> — that is how we verify your identity. A request from another address will need additional verification.</>,
      <>Deletion is <strong>irreversible</strong>: history, progress and content tied to your account cannot be restored.</>,
      <>Records deleted from our servers fall out of system backups within <strong>90 days</strong> at the latest.</>,
      <>Deleting your account <strong>does not cancel a subscription</strong> bought from a store. Cancel it separately from your <a href="https://play.google.com/store/account/subscriptions" target="_blank" rel="noreferrer">Google Play</a> or <a href="https://apps.apple.com/account/subscriptions" target="_blank" rel="noreferrer">App Store</a> account.</>,
      <>Purchase and billing records stay with Google and Apple; we cannot delete those.</>,
    ],
    appTitlePrefix: 'Data and account deletion —',
    packageLabel: 'Package name',
    dataOnlyLabel: 'Data only',
    accountLabel: 'Account + all data',
    dataOnlyTitle: 'Delete my data, keep my account',
    accountTitle: 'Delete my account and all my data',
    inAppLabel: 'In the app',
    requestLabel: 'By request',
    dataBtn: 'Send a data deletion request',
    accountBtn: 'Send an account deletion request',
    deletedTitle: 'Data that is deleted',
    keptTitle: 'Data that is kept',
    timingTitle: 'How long does it take?',
    howTitle: 'How to send the request',
    howBody: <>The buttons above open an email with the subject and body prefilled. Send it from the <strong>address registered to your account</strong> — we need that to verify your identity. We reply to confirm receipt, and again once the deletion is done. Requests are completed within <strong>30 days</strong> at the latest.</>,
    otherAppsTitle: 'Other apps',
    supportTitle: 'Not sure?',
    supportDesc: 'Ask which data sits on your device and which sits with us. We answer everyone who writes.',
    mailSubject: (name, kind) => `${kind === 'account' ? 'Account and data deletion' : 'Data deletion'} request — ${name}`,
    mailBody: (name, pkg, kind) =>
      `App: ${name} (${pkg})\n` +
      `Request: ${kind === 'account' ? 'Delete my account and all associated data' : 'Delete my data (keep my account)'}\n` +
      `My account email: \n` +
      `Platform (Android / iOS): \n\n` +
      `I confirm that I am sending this from the email address registered to my account and that I understand deletion cannot be undone.\n`,
    apps: {
      zikirmatik: {
        lead: 'In Zikirmatik an account exists for your username, friend list, leaderboards and Dhikr Chain. Your counters and counter profiles live on your device.',
        dataOnly: {
          steps: ['Open the Profiles screen.', 'Tap the counter profile you want to remove.', 'Confirm with "Delete Profile".'],
          note: 'This deletes that profile and its counts from the device; your account stays. Your leaderboard scores remain on the server tied to your account — to remove those too, use the request route below or delete your account.',
        },
        account: {
          steps: ['Open Settings → Account.', 'Tap "Delete Account" near the bottom.', 'Confirm the warning.'],
          note: 'If your session is old, Firebase asks you to sign in again for security; sign out, sign back in and retry.',
        },
        deleted: [
          'Your sign-in identity — the account created with email, Google or Apple.',
          'Your profile record: username, friend code, dhikr statistics and leaderboard scores.',
          'Your friend list and its copies on the other side, pending friend requests and Dhikr Chain invites.',
          'Your username and friend code reservations — they are released and can be claimed by someone else.',
          'Counter profiles, dhikr records and app preferences on your device.',
        ],
        kept: [
          'Purchase, subscription and billing records held by Google Play and the App Store — those belong to the stores.',
          'Aggregate (anonymous) usage and crash statistics that are not linked to your identity.',
        ],
      },
      noctavia: {
        lead: 'Noctavia requires an account: your dream entries, interpretations and symbol analyses are stored in the cloud under it. The profile screen offers two separate actions — one clears the content, the other removes the account entirely.',
        dataOnly: {
          steps: ['Open the Profile tab.', 'Under ACCOUNT, tap "Delete All Dreams".', 'Confirm the warning.'],
          note: 'Your account stays open; every dream entry and interpretation is deleted. It runs immediately.',
        },
        account: {
          steps: ['Open the Profile tab.', 'Under ACCOUNT, tap "Delete Account".', 'Confirm the warning.'],
          note: 'If your session is old the app signs you out; sign in again and repeat the action.',
        },
        deleted: [
          'Every dream entry: the text you wrote, AI interpretations, symbols and theme analyses.',
          'Your profile record: display name, email, language and notification preferences, streak and statistics counters.',
          'Your sign-in identity — the account created with email, Google or Apple.',
          'Voice recordings are never kept anyway: they are deleted right after being transcribed on our server.',
        ],
        kept: [
          'Purchase, subscription and billing records held by Google Play and the App Store.',
          'The customer record kept at RevenueCat for subscription verification — we remove that too if you ask.',
          'Aggregate (anonymous) usage and crash statistics that are not linked to your identity.',
        ],
      },
      kelimebul: {
        lead: 'Word Find is played with an account: your username, tokens, quest progress and leaderboard score all hang off it.',
        dataOnly: null,
        dataOnlyNone: 'The app has no separate "data only" option — the game progress is the account. If you want a specific record removed without closing your account, write to us.',
        account: {
          steps: ['Open the "About" screen from the main menu.', 'Tap the "Delete My Account" button at the bottom.', 'Confirm with "Yes, Delete".'],
          note: 'For security, if your session is old the app sends you back to sign-in; sign in and repeat the action.',
        },
        deleted: [
          'Your sign-in identity — the account created with email, Google or Apple.',
          'Your player record on the server: username, token balance, quest progress and statistics.',
          'Your entry in the leaderboard.',
          'High scores, player statistics and all local preferences on your device — including token, quest and ad counters.',
        ],
        kept: [
          'Purchase and billing records held by Google Play.',
          'Aggregate (anonymous) usage and crash statistics that are not linked to your identity.',
        ],
      },
      tenax: {
        lead: 'Tenax requires an account: your training history, run routes, body measurements, injury note and AI setup are tied to it. The profile screen offers two separate actions — one wipes your data, the other removes the account with everything in it.',
        dataOnly: {
          steps: ['Open the Profile screen.', 'Tap "Delete my data".', 'Confirm the warning.'],
          note: 'Your account stays: you sign in with the same email and start over from onboarding with an empty profile.',
        },
        account: {
          steps: ['Open the Profile screen.', 'Tap "Delete my account".', 'Confirm the warning.'],
          note: 'Deletion runs on the server; every record under your account is removed recursively.',
        },
        deleted: [
          'Your training programs, workout records (sets, reps, weights) and calibration results — in both actions.',
          'Your run, walk and ride records: GPS route (location points), distance, time, pace, kilometre splits, elevation, steps and calories — in both actions.',
          'Your body measurements (height, weight, chest, waist, arm, leg) and AI setup — including your injury note.',
          'Traces left on the device: sync markers, media cache, your avatar and the widget summary.',
          'Only with "Delete my account": your friendships (on both sides), pending friend requests, the profile your friends see (name, level, XP, streak), incoming cards, mute preferences and notification tokens. With "Delete my data" your friendships stay; because your workout records are deleted, your XP and streak reset.',
          'Only with "Delete my account": your sign-in identity, every server record under your account, and your referral code\'s directory entry.',
        ],
        kept: [
          'Purchase, subscription and billing records held by Google Play and the App Store.',
          'Workouts you wrote to Apple Health or Health Connect: they are now that app\'s data and are not removed when Tenax deletes. You can delete them in Health / Health Connect and revoke the permission there. Data Tenax READS from there (active energy, HRV, heart rate, sleep) is never stored on any server in the first place.',
          'Cards you sent to friends that they have not opened yet (your name, card type): they stay in their inbox until seen, then are deleted.',
          'The record kept at RevenueCat for subscription management (your name and email) — we remove that too if you ask. Your health data, measurements and training history are never sent to that provider.',
          'Aggregate (anonymous) usage and crash statistics that are not linked to your identity.',
        ],
      },
      patisstray: {
        lead: 'PatissTray is a closed business app: the producer business you work with creates your account, sets your role and closes it. That is why there is no self-service delete button in the app — rather than promise an authority we cannot grant, the app shows you the request route.',
        dataOnly: null,
        dataOnlyNone: 'Order and ledger records are the commercial record between two businesses; they cannot be deleted unilaterally. For a correction or deletion concerning your own account, write to your business manager first and to us second.',
        account: {
          steps: ['If you are a driver: Profile screen → the "Delete my account and my data" row shows the request route.', 'Send your request to the manager of the business you work with — they are the party that opens and closes accounts.', 'You can send the same request to us as well; we handle it together with the business.'],
          note: 'The account depends on the working relationship between you and the business. When it ends, the business closes the account and your access stops immediately.',
        },
        deleted: [
          'Your account and identity details: name, email address, phone number, role (café · producer · driver) and the business you belong to.',
          'If you are a driver, your driver record: your vehicle plate and whether the account is active.',
          'Your notification identifier (your device\'s push token).',
          'If you are a driver, your live location — which is deleted on its own when the delivery run ends and is never kept outside working hours.',
        ],
        kept: [
          'Order records, proof-of-delivery photos, ledger entries and invoices: these are the commercial record between the café and the producer, and stay with the business for as long as commercial and legal retention duties require.',
          'The "received by" detail written onto a proof of delivery — the record itself is a commercial document, so it stays with it.',
          'The café\'s commercial details (trading name, delivery address, tax number, payment terms): these are the business\'s record, not yours; corrections and deletions go through the producer.',
          'A driver\'s monthly delivery performance summary (deliveries, on-time rate, kilometres, time per stop): a work-performance record that stays with the producer business as employer.',
          'The app has no ad network and no analytics; these records are never used for advertising or sold to third parties.',
        ],
        timing: [
          'When the business closes your account: access stops immediately.',
          'A request sent to the business or to us: within 30 days at the latest.',
          'Falling out of system backups entirely: within 90 days at the latest.',
        ],
      },
    },
    timing: [
      'Deleting from inside the app: immediately.',
      'Requesting by email: within 30 days at the latest.',
      'Falling out of system backups entirely: within 90 days at the latest.',
    ],
  },
  legalLastUpdated: 'Last updated:',
};

const TRANSLATIONS = { tr: TR, en: EN };

// ─── Language switcher ────────────────────────────────────────────
function LanguageSwitcher({ className = '' }) {
  const { lang, setLang } = useLang();
  return (
    <button
      type="button"
      onClick={() => setLang(lang === 'tr' ? 'en' : 'tr')}
      className={'lang-switch ' + className}
      aria-label={lang === 'tr' ? 'Switch to English' : 'Türkçeye geç'}
      title={lang === 'tr' ? 'Switch to English' : 'Türkçeye geç'}
    >
      <span className={lang === 'tr' ? 'active' : ''}>TR</span>
      <span className="lang-sep">/</span>
      <span className={lang === 'en' ? 'active' : ''}>EN</span>
    </button>
  );
}

Object.assign(window, { LangProvider, useLang, useT, LanguageSwitcher, TRANSLATIONS, langFromPath, pathForLang, toTrCanonical });
