// Gizlilik Politikası — TR + EN.
// Sayfa tek adres (/gizlilik); `general` her uygulama için geçerli hükümler,
// `apps.<key>` o uygulamaya özel bölüm (sekme). Anahtarlar components.jsx'teki
// APPS ile aynı. Uygulama kodu değişince (SDK, olay, izin akışı) ilgili sekme
// güncellenmeli — mağaza beyanları bu sayfaya dayanıyor.

// Veri sorumlusunun kimliği (KVKK m.10 / GDPR m.13 aydınlatma yükümlülüğü).
const CONTROLLER = {
  legalName: 'Kolabs.',
  address: 'Orhangazi Mah. Teknopark Cad. Teknopark Apt. No.1 Merkez / Düzce',
  email: 'info@kolabs.tr',
};

const PV_LINKS = {
  google: <a href="https://policies.google.com/privacy" target="_blank" rel="noopener noreferrer">policies.google.com/privacy</a>,
  ads: <a href="https://policies.google.com/technologies/ads" target="_blank" rel="noopener noreferrer">policies.google.com/technologies/ads</a>,
  meta: <a href="https://www.facebook.com/privacy/policy/" target="_blank" rel="noopener noreferrer">facebook.com/privacy/policy</a>,
  apple: <a href="https://www.apple.com/legal/privacy/" target="_blank" rel="noopener noreferrer">apple.com/legal/privacy</a>,
  revenuecat: <a href="https://www.revenuecat.com/privacy/" target="_blank" rel="noopener noreferrer">revenuecat.com/privacy</a>,
  anthropic: <a href="https://www.anthropic.com/legal/privacy" target="_blank" rel="noopener noreferrer">anthropic.com/legal/privacy</a>,
  unity: <a href="https://unity.com/legal/privacy-policy" target="_blank" rel="noopener noreferrer">unity.com/legal/privacy-policy</a>,
  openfreemap: <a href="https://openfreemap.org/privacy/" target="_blank" rel="noopener noreferrer">openfreemap.org/privacy</a>,
  osm: <a href="https://www.openstreetmap.org/copyright" target="_blank" rel="noopener noreferrer">openstreetmap.org/copyright</a>,
  vercel: <a href="https://vercel.com/legal/privacy-policy" target="_blank" rel="noopener noreferrer">vercel.com/legal/privacy-policy</a>,
};
const MAIL = <a href="mailto:info@kolabs.tr">info@kolabs.tr</a>;

// ═══════════════════════════════════════════════════════════════════
// TÜRKÇE
// ═══════════════════════════════════════════════════════════════════
const PRIVACY_TR = {
  crumb: 'Gizlilik Politikası',
  eyebrow: 'Yasal · Gizlilik',
  title: 'Gizlilik Politikası',
  lastUpdated: '1 Ekim 2026',
  pick: 'Uygulamanı seç — o uygulamaya özel bölüm açılır',
  generalTab: 'Genel',
  generalNote: 'Tüm uygulamalar için geçerli hükümler',
  intro: <>
    <p className="legal-lead">Kolabs olarak gizliliğine saygı duyuyoruz. Bu politika; web sitemizi ve uygulamalarımızı (Tenax, Noctavia, Zikirmatik, Vakit, Kelime Bul, Hesap Vakti, PatissTray) kullanırken hangi verilerin toplandığını, nasıl kullanıldığını ve haklarını açıklar.</p>
    <p><strong>Kısaca:</strong> Kişisel verilerini <strong>satmıyoruz</strong>, veri simsarlarına <strong>aktarmıyoruz</strong> ve sağlık verini reklam için <strong>kullanmıyoruz</strong>. Bu sayfa Google Play <em>Veri Güvenliği</em> formunda ve App Store <em>Gizlilik Etiketlerinde</em> yaptığımız beyanların dayanağıdır; bir çelişki görürsen bize yaz, düzeltelim.</p>
    <p><strong>Nasıl okunur:</strong> Aşağıdan uygulamanı seç. Açılan bölümde o uygulamanın topladığı veriler, kullandığı hizmet sağlayıcılar, reklam ve ölçüm ayarları ile silme yolu yazar; altında da bütün uygulamalar için ortak olan hükümler (veri sorumlusu, haklar, güvenlik, iletişim) durur.</p>
  </>,

  general: <>
    <h2>1. Veri Sorumlusu</h2>
    <p>Bu politika kapsamındaki kişisel verilerin sorumlusu <strong>kolabs.</strong> markasıdır:</p>
    <ul>
      <li><strong>Ticari unvan:</strong> {CONTROLLER.legalName}</li>
      <li><strong>Adres:</strong> {CONTROLLER.address}</li>
      <li><strong>E-posta:</strong> <a href={'mailto:' + CONTROLLER.email}>{CONTROLLER.email}</a></li>
    </ul>
    <p>KVKK m.10 ve GDPR m.13 anlamında aydınlatma yükümlülüğü bu politikayla yerine getirilir; her uygulama, mağaza sayfasından ve uygulama içindeki <em>Gizlilik Politikası</em> bağlantısından bu sayfaya yönlendirir. <strong>PatissTray bir istisnadır:</strong> oradaki sipariş, cari hesap ve teslim kayıtları uygulamayı kullanan imalatçı işletmenin ticari verisidir; ayrıntısı PatissTray sekmesinde.</p>

    <h2>2. Bütün Uygulamalarda Ortak Olanlar</h2>
    <ul>
      <li><strong>Cihaz bilgisi:</strong> Cihaz modeli, işletim sistemi sürümü, dil tercihi — uygulamanın doğru çalışması ve hataların bulunması için.</li>
      <li><strong>Kullanım analitiği ve kilitlenme kayıtları:</strong> Firebase Analytics hangi ekranların açıldığını ve uygulamanın tanımladığı olayları kaydeder; her kuruluma adına ya da e-postana değil, yalnızca o kuruluma bağlı bir <strong>uygulama örneği kimliği</strong> atar. Firebase Crashlytics kilitlenme anında cihaz modelini ve işletim sistemi sürümünü kaydeder. Hangi uygulamada hangi olayların gittiği uygulama sekmesinde yazar. Hesap Vakti ve PatissTray'de analitik yoktur.</li>
      <li><strong>Reklam kimliği:</strong> Reklamlı uygulamalarda Google AdMob reklam gösterir ve cihazın reklam kimliği işlenebilir — iOS'ta <strong>IDFA</strong>, Android'de <strong>Google reklam kimliği (AAID)</strong>. iOS'ta IDFA yalnızca <strong>izleme iznini (ATT) verirsen</strong> okunur; reddedersen reklamlar kişiselleştirilmemiş olarak gösterilir. Android'de reklam kimliğini <em>Ayarlar → Gizlilik → Reklamlar</em> (cihaza göre <em>Ayarlar → Google → Tüm hizmetler → Reklamlar</em>) yolundan sıfırlayabilir ya da silebilirsin; Android 12 ve üzerinde silinen kimlik uygulamalara artık kullanılabilir bir değer vermez.</li>
      <li><strong>Reklam rıza formu (AEA / İngiltere / İsviçre):</strong> Rıza formu olan uygulamalarda Google'ın <strong>User Messaging Platform</strong> (UMP) formu bu bölgelerde gösterilir; tercihini sonradan uygulamanın ayarlarındaki reklam/gizlilik tercihleri satırından değiştirebilirsin. Hangi uygulamada ve hangi platformda formun bulunduğu, ve formdan önce neyin başlayıp neyin beklediği uygulama sekmesinde yazar.</li>
      <li><strong>Satın alma ve abonelik:</strong> Ödemeyi tümüyle Apple App Store ya da Google Play yönetir; kart bilgilerin bize ulaşmaz. Abonelik durumu ve işlem doğrulaması <strong>RevenueCat</strong> üzerinden yürür.</li>
      <li><strong>Bildirimler:</strong> Anlık bildirim gönderebilmek için cihazının Firebase Cloud Messaging (FCM) jetonu kullanılır. Bildirimleri kapattığında ya da uygulamayı sildiğinde jeton geçersiz olur.</li>
    </ul>

    <h3>Meta (Facebook) reklam ölçümü</h3>
    <p>Facebook ve Instagram'da uygulama reklamı yayınlıyoruz. Hangi reklamın kuruluma ya da aboneliğe yol açtığını görebilmek için şu uygulamalarda <strong>Meta SDK'sının yalnızca çekirdek modülü</strong> bulunur: <strong>Tenax</strong> (iOS ve Android), <strong>Vakit</strong> (iOS ve Android), <strong>Zikirmatik</strong> (iOS ve Android) ve <strong>Noctavia</strong> (Android). Facebook ile giriş, paylaşım ve Audience Network modülleri <strong>hiçbirinde yoktur</strong>; uygulamaların içinde Meta reklamı gösterilmez.</p>
    <ul>
      <li><strong>Amaç:</strong> Yalnızca reklam ölçümü, kampanya atribusyonu ve optimizasyonu.</li>
      <li><strong>Meta'ya gidenler:</strong> Cihaz ve uygulama bilgisi (model, işletim sistemi ve uygulama sürümü, kuruluma özgü bir kimlik), reklam kimliği (Android'de AAID; iOS'ta yalnızca ATT izni verdiysen IDFA), Android'de kurulumun hangi kampanyadan geldiğini gösteren <strong>Play Kurulum Yönlendireni</strong>, SDK'nın kendiliğinden kaydettiği olaylar (kurulum, uygulama açılışı; mağaza satın almaları otomatik kaydedilirse <strong>tutar ve para birimi</strong>) ve uygulamanın gönderdiği sınırlı sayıda olay. Her uygulamanın gönderdiği olayların tam listesi o uygulamanın sekmesinde.</li>
      <li><strong>Meta'ya asla gitmeyenler:</strong> Adın, e-postan, hesap kimliğin, sağlık ve kondisyon verin (Tenax), rüya metinlerin ve yorumların (Noctavia), zikir sayımların ve sosyal verilerin (Zikirmatik), konumun, şehrin ve vakit kullanımın (Vakit). Hiçbir uygulamada Meta'ya kullanıcı kimliği ya da gelişmiş eşleştirme (advanced matching) verisi gönderilmez.</li>
      <li><strong>Veri sorumlusu:</strong> ABD ve Kanada dışındaki kullanıcılar için <strong>Meta Platforms Ireland Ltd.</strong> (İrlanda), diğer bölgelerde Meta Platforms, Inc. Meta aldığı veriyi kendi gizlilik politikası kapsamında, kendi amaçları için de işleyebilir: {PV_LINKS.meta}.</li>
      <li><strong>Kapatmak elinde:</strong> iOS'ta <em>Ayarlar → Gizlilik ve Güvenlik → İzleme</em>'den izni kapatırsan IDFA Meta'ya gitmez; ölçüm Apple'ın toplulaştırılmış <strong>SKAdNetwork</strong>'üne ve Meta'nın <strong>AEM</strong>'ine düşer. Android'de reklam kimliğini yukarıdaki yoldan silebilirsin. Facebook/Instagram hesabın varsa <em>Hesaplar Merkezi → Bilgilerin ve izinlerin → Meta teknolojileri dışındaki etkinliklerin</em> ekranından uygulamalardan gelen etkinliği görebilir ve bağlantısını kesebilirsin.</li>
    </ul>

    <h2>3. Kullanım Amacı ve Hukuki Sebep</h2>
    <ul>
      <li>Hizmeti sunmak, çalışır halde tutmak ve hataları düzeltmek.</li>
      <li>Kullanım örüntülerini analiz edip ürünü iyileştirmek.</li>
      <li>Reklamlı ücretsiz sürümlerde reklam göstermek.</li>
      <li>Reklam kampanyalarımızın dönüşümünü ölçmek.</li>
      <li>Yasal yükümlülüklere uymak.</li>
    </ul>
    <p>KVKK m.5 ve GDPR m.6 uyarınca dayandığımız sebepler:</p>
    <ul>
      <li><strong>Sözleşmenin kurulması ve ifası:</strong> Hesabın, aboneliğin, kayıtların — bunlar olmadan hizmetin kendisi çalışmaz.</li>
      <li><strong>Açık rıza:</strong> Konum, bildirim, mikrofon, iOS'ta izleme izni (ATT), rıza formu olan bölgelerde reklam rızası ve <strong>Tenax'teki sağlık verisi ile GPS rota verisi</strong>. Rızanı her an geri çekebilirsin.</li>
      <li><strong>Meşru menfaat:</strong> Güvenlik ve kötüye kullanım önleme, kilitlenme takibi, reklam kimliği içermeyen toplulaştırılmış ölçüm.</li>
      <li><strong>Hukuki yükümlülük:</strong> Ticari ve vergisel saklama süreleri.</li>
    </ul>

    <h2>4. Hizmet Sağlayıcılar</h2>
    <p>Hangi uygulamanın hangisini kullandığı uygulama sekmesinde yazar.</p>
    <ul>
      <li><strong>Google Firebase</strong> — kimlik doğrulama, veri tabanı, sunucu işlevleri, bildirim, analitik, kilitlenme kaydı: {PV_LINKS.google}</li>
      <li><strong>Google AdMob</strong> — reklam: {PV_LINKS.ads}</li>
      <li><strong>Meta Platforms</strong> — reklam ölçümü: {PV_LINKS.meta}</li>
      <li><strong>Apple</strong> — App Store ödemeleri, SKAdNetwork, ATT, Apple ile Giriş; Tenax iOS'ta Apple Haritalar ve (isteğe bağlı) Apple Sağlık: {PV_LINKS.apple}</li>
      <li><strong>RevenueCat</strong> — abonelik yönetimi: {PV_LINKS.revenuecat}</li>
      <li><strong>Anthropic (Claude API)</strong> — Tenax ve Noctavia'da yapay zekâ yanıtları: {PV_LINKS.anthropic}</li>
      <li><strong>OpenFreeMap / OpenStreetMap</strong> — Tenax Android'de harita karoları (işletmecisi Hyperknot Software Kft., Macaristan): {PV_LINKS.openfreemap} · harita verisi © OpenStreetMap katkıcıları: {PV_LINKS.osm}</li>
      <li><strong>Unity Ads</strong> — Vakit Android'de AdMob aracılığıyla reklam: {PV_LINKS.unity}</li>
      <li><strong>Vercel</strong> — bu web sitesinin barındırılması: {PV_LINKS.vercel}</li>
    </ul>
    <p>Firebase, RevenueCat, Anthropic ve Vercel verini yalnızca <strong>bizim adımıza</strong>, sözleşmeyle sınırlanmış biçimde işler. <strong>Reklam ve ölçüm sağlayıcıları (Google AdMob, Unity, Meta) bu tanımın dışındadır:</strong> aldıkları veriyi kendi gizlilik politikaları kapsamında, kendi amaçları için de işleyebilirler. Anthropic'e giden veriler <strong>eğitim verisi olarak kullanılmaz</strong>.</p>

    <h2>5. Verilerin Yurt Dışına Aktarılması</h2>
    <p>Yukarıdaki sağlayıcıların altyapısı Türkiye dışındadır; verilerin ağırlıklı olarak <strong>Amerika Birleşik Devletleri</strong> ve <strong>Avrupa Birliği</strong> bölgelerinde işlenir. Bu aktarım KVKK m.9 kapsamında hizmetin sunulabilmesi için gerekli olan ve rızana dayanan aktarımdır; GDPR tarafında sağlayıcıların standart sözleşme hükümleri (SCC) geçerlidir. Uygulama bazında neyin nereye gittiği ilgili sekmede yazar.</p>

    <h2>6. Veri Güvenliği</h2>
    <ul>
      <li>Cihaz ile sunucu arasındaki tüm trafik <strong>TLS</strong> ile şifrelenir; sunucudaki kayıtlar sağlayıcı tarafında şifreli tutulur.</li>
      <li>Kimin hangi kaydı görebileceği <strong>sunucu tarafındaki güvenlik kurallarıyla</strong> belirlenir.</li>
      <li>Yapay zekâ istekleri uygulamadan doğrudan değil, <strong>kendi sunucumuz üzerinden</strong> gider; API anahtarları cihaza hiç gönderilmez.</li>
      <li>Parolaları biz tutmayız; kimlik doğrulamayı Firebase Authentication, Google ve Apple yürütür.</li>
      <li>Seni etkileyen bir veri ihlali olursa mevzuatın öngördüğü süre içinde hem sana hem yetkili kuruma bildiririz.</li>
    </ul>

    <h2>7. Saklama ve Silme</h2>
    <p>Veriler hizmeti sunmak için gereken süre boyunca tutulur. Uygulama bazında silme adımları, nelerin silinip nelerin saklandığı <a href="/veri-silme">Veri Silme</a> sayfasında ve uygulama sekmesinde yazar. Her durumda {MAIL} adresine yazabilirsin; talebin 30 gün içinde işleme alınır.</p>

    <h2>8. Çerezler</h2>
    <p>Web sitemiz analitik amaçlı çerezler kullanabilir. Tarayıcından bu çerezleri her zaman engelleyebilirsin.</p>

    <h2>9. Haklarınız (KVKK & GDPR)</h2>
    <p>Verilerine erişme, düzeltme, silme, işlemeyi kısıtlama, işlenmesine itiraz etme ve taşınabilirlik haklarına sahipsin. Bir işlem rızaya dayanıyorsa <strong>rızanı her an geri çekebilirsin</strong>; geri çekmen, o ana kadar yapılmış işlemeyi geçersiz kılmaz.</p>
    <p>Talebini {MAIL} adresine ilet; en geç <strong>30 gün</strong> içinde yanıtlarız. Hesaplı uygulamalarda talebi <strong>hesabına kayıtlı e-posta adresinden</strong> göndermen gerekir. Hesapsız uygulamalarda (Vakit, Hesap Vakti) elimizdeki kayıtlar seni doğrudan tanımlamaz; talebini işleyebilmemiz için reklam kimliği gibi ilgili tanımlayıcıyı iletmen gerekebilir.</p>
    <p>Yanıtımızı yetersiz bulursan Türkiye'de <strong>Kişisel Verileri Koruma Kurulu'na</strong> (kvkk.gov.tr), Avrupa Birliği'nde bulunduğun ülkenin <strong>veri koruma otoritesine</strong> şikâyette bulunma hakkın saklıdır.</p>

    <h2>10. Çocuklar</h2>
    <p>Uygulamalarımız 13 yaş altı çocuklara yönelik değildir; bilerek bu yaş grubundan veri toplamayız ve çocuklara yönelik reklam kategorileri kullanılmaz. Uygulamaya özel yaş sınırı varsa (Tenax: 14+) ilgili sekmede yazar. 13 yaşından küçük bir çocuğun verisini yanlışlıkla topladığımızı fark edersek kaydı sileriz.</p>

    <h2>11. Otomatik Karar Verme</h2>
    <p>Tenax ve Noctavia'daki yapay zekâ çıktıları <strong>öneridir</strong>; hakkında hukuki sonuç doğuran ya da seni benzer biçimde önemli ölçüde etkileyen otomatik bir karar alınmaz.</p>

    <h2>12. Değişiklikler</h2>
    <p>Bu politika güncellenebilir; önemli değişiklikleri uygulama ve site içinde bildiririz. Geçerli sürüm her zaman bu sayfadadır.</p>

    <h2>13. İletişim</h2>
    <p>Soru, talep veya şikâyet için: {MAIL}</p>
  </>,

  apps: {
    // ─── Tenax ──────────────────────────────────────────────────────
    tenax: {
      pkg: <>iOS ve Android · <code>com.kolabs.tenax</code></>,
      body: <>
        <h3>Toplanan veriler</h3>
        <ul>
          <li><strong>Hesap:</strong> Tenax hesap gerektirir. E-posta, Google ya da Apple ile giriş yaparsın; adın ve e-posta adresin Firebase Authentication'da tutulur. Parolan bize ulaşmaz; Apple'ın <em>e-postamı gizle</em> seçeneğinde yalnızca yönlendirme adresi gelir.</li>
          <li><strong>Sağlık ve kondisyon verisi:</strong> Boy, kilo, <strong>yaş</strong>, cinsiyet, vücut tipi ve metabolizma seçimin, antrenman deneyimin, vücut ölçüleri (göğüs, bel, kol, bacak), antrenman kayıtları (set, tekrar, ağırlık; koşu, yürüyüş ve bisikletde mesafe, süre, tempo, tırmanış ve tahmini kalori), kalibrasyon sonuçların, çalışma ağırlıkların, haftalık gün/dakika hedefin, ekipman erişimin ve iki serbest metin alanı: <strong>sakatlık notun</strong> ile <strong>antrenörüne bıraktığın not</strong>. Hesabına bağlı olarak Firebase'de saklanır ve <strong>yalnızca</strong> programını üretmek ve ilerlemeni göstermek için kullanılır. <strong>Reklam amacıyla kullanılmaz, reklam ağlarına ya da Meta'ya gönderilmez, analitiğe yazılmaz.</strong> Apple Sağlık / Health Connect ile veri alışverişi aşağıda ayrıca anlatılıyor. Başka bir uygulamadan (Strong, Hevy) içe aktardığın antrenmanlar da bu kayıtlara eklenir.</li>
          <li><strong>Konum ve rota (koşu, yürüyüş, bisiklet):</strong> Konum yalnızca sen GPS kaydını başlattığında ve kayıt sürerken, <strong>"uygulamayı kullanırken"</strong> izniyle okunur; "her zaman" (arka plan) konum izni <strong>istenmez</strong>. Ekran kilitliyken de kayıt sürsün diye iOS'ta arka plan konum göstergesi (mavi çubuk), Android'de kalıcı bir bildirim (ön plan servisi) görünür; kayıt bitince ikisi de kapanır. Saklanan: rota (konum noktaları), mesafe, hareket süresi, tempo, kilometre süreleri, tırmanış ve tahmini kalori — hesabına bağlı olarak Firebase'de antrenman kaydının parçası. Rota <strong>yalnızca sana gösterilir</strong>; <strong>reklam ağlarına, Meta'ya, analitiğe ve yapay zekâ sağlayıcısına gönderilmez.</strong> Konum izni vermezsen GPS kaydı yapılamaz; mesafe ve süreyi elle girebilirsin.</li>
          <li><strong>Adım sayısı:</strong> Koşu ve yürüyüş kaydında telefonun adım sayacından (iOS'ta Hareket ve Fitness, Android'de Fiziksel Aktivite izni) yalnızca o kaydın adım sayısı alınır; bisikletde ölçülmez. İzni vermezsen adım gösterilmez, kayıt etkilenmez.</li>
          <li><strong>Apple Sağlık / Health Connect — yazma (isteğe bağlı):</strong> Bağlantıyı açtıysan bitirdiğin antrenmanın türü, süresi, mesafesi, tahmini kalorisi, adımı ve rotası iOS'ta Apple Sağlık'a, Android'de Health Connect'e yazılır. Yazılan kayıt artık o uygulamanın verisidir: Tenax'te silmek onu oradan silmez; Sağlık / Health Connect uygulamasından yönetirsin ve izni oradan geri alabilirsin.</li>
          <li><strong>Apple Sağlık / Health Connect — okuma (isteğe bağlı):</strong> Ana ekrandaki kalori halkası için gün içinde Tenax <strong>dışındaki</strong> kaynaklardan yakılan aktif enerji ve (iOS'ta) Apple Watch'taki Hareket hedefi okunur. iOS'ta <strong>hazır olma göstergesini</strong> (Tenax Pro) ayrıca açarsan, ayrı bir izinle <strong>kalp atış hızı değişkenliği (HRV), dinlenik nabız ve uyku süresi</strong> de okunur; bunlar son 28 günlük kendi ortalamanla karşılaştırılıp "Hazırsın / Normal / Toparlan" önerisine çevrilir. Okunan bu veriler <strong>yalnızca telefonunda işlenir ve ekranda gösterilir</strong>: sunucumuza kaydedilmez; <strong>yapay zekâ sağlayıcısına, reklam ağlarına, Meta'ya ve analitiğe gönderilmez</strong>. Gösterge bir tahmindir, tıbbi değerlendirme değildir. İzni Sağlık / Health Connect ayarlarından her an geri alabilirsin.</li>
          <li><strong>Sesli bildirim:</strong> İsteğe bağlı; her kilometrede süre ve tempo, cihazın kendi konuşma motoruyla okunur. Ses cihazda üretilir; mikrofon kullanılmaz ve sunucuya hiçbir şey gitmez.</li>
          <li><strong>Harita:</strong> iOS'ta Apple Haritalar kullanılır. Android'de harita karoları <strong>OpenFreeMap</strong>'ten (OpenStreetMap verisi) indirilir: karo isteğiyle IP adresin ve görüntülenen harita bölgesi o sunucuya ulaşır; hesabın, adın, sağlık verin ve rotan ulaşmaz — rota haritanın üstüne cihazında çizilir. OpenFreeMap'in kendi politikasına göre kullanıcı hesabı, çerez ve izleme yoktur.</li>
          <li><strong>Profil fotoğrafı ve paylaşım kartı:</strong> İsteğe bağlı; profil fotoğrafı için ya da antrenman sonu paylaşım kartının arka planı için kamerayla çektiğin ya da galeriden seçtiğin görsel <strong>yalnızca telefonunda</strong> durur, hiçbir sunucuya yüklenmez. Uygulama galerini taramaz, yalnızca seçtiğin görseli alır. Koşu kartında rota çizgisinin <strong>ilk ve son 200 metresi kesilir</strong>, böylece evinin ya da işyerinin adresi görünmez; kartı sen paylaşırsan o uygulamanın politikası geçerli olur.</li>
          <li><strong>Antrenman bildirimi:</strong> Sayaç kilit ekranında da aksın diye iOS'ta canlı etkinlik, Android'de kalıcı bildirim (ön plan servisi) gösterilir; yalnızca cihazında çalışır. Android'de koşu kaydı da kendi ön plan servisini ve bildirimini kullanır.</li>
          <li><strong>Davet programı:</strong> Davet kodun ve kimin kimi davet ettiği, ödülü doğru hesaba yazmak için tutulur.</li>
          <li><strong>Arkadaşlar ve haftalık lig (iOS, isteğe bağlı):</strong> Davet kodun aynı zamanda arkadaş kodundur. Arkadaşını kodla ya da QR kodunu okutarak eklersin; QR için kamera yalnızca tarama sırasında kullanılır, görüntü saklanmaz. Arkadaşların <strong>yalnızca</strong> adını, seviyeni, toplam ve haftalık XP'ni, haftalık antrenman sayını, serini ve son antrenman gününü görür; XP sunucuda antrenman kayıtlarından hesaplanır. <strong>Kilon, ölçülerin, sakatlık notun, sağlık verin, antrenman ayrıntıların ve rotaların arkadaşlarına gösterilmez.</strong> Arkadaşlık istekleri (gönderenin adı ve seviyesi), arkadaş listen ve arkadaşına gönderdiğin hazır kartlar (gönderenin adı, kart türü, o anki serin) sunucumuzda tutulur. Kartlarda serbest metin yoktur; kart görülünce silinir. Bir arkadaşını <strong>susturursan</strong> bu tercih hesabında saklanır ve ondan gelen kartlar için bildirim gönderilmez; karşı taraf bunu görmez.</li>
          <li><strong>Bildirimler:</strong> Arkadaşlık isteği, kabulü ve gelen kartlar için Firebase Cloud Messaging kullanılır. Bunun için cihazının bildirim belirteci ve uygulama dilin hesabında tutulur; çıkış yaptığında silinir. Bildirimde gönderenin adı ve kartın türü yer alır.</li>
          <li><strong>Geçmişi içe aktarma (iOS, isteğe bağlı):</strong> Strong ya da Hevy'den dışa aktardığın CSV dosyası <strong>telefonunda</strong> okunur; içindeki antrenmanlar (tarih, hareket, set, tekrar, ağırlık) senin onayınla hesabına antrenman kaydı olarak yazılır. Dosyanın kendisi sunucuya yüklenmez.</li>
          <li><strong>Widget'lar (iOS):</strong> Ana ekran ve kilit ekranı widget'ları için serin, bu haftaki antrenman günlerin, sıradaki programın, son antrenmanının özeti ve seviyen telefonunda, uygulamayla widget'ın paylaştığı alanda tutulur; sunucuya gitmez ve çıkış yapınca silinir. Kilit ekranına eklediğin widget'ı telefonuna bakan herkes görebilir; sağlık verisi widget'lara girmez.</li>
          <li><strong>Analitik ve performans:</strong> Firebase Analytics, Crashlytics, Performance Monitoring ve Remote Config. Sunucuya gelen isteklerin gerçekten uygulamadan geldiği Firebase <strong>App Check</strong> ile doğrulanır (iOS'ta App Attest, Android'de Play Integrity); jeton kişisel veri taşımaz.</li>
          <li><strong>Abonelik:</strong> Tenax Pro, App Store / Google Play ve RevenueCat üzerinden. <strong>Adın ve e-posta adresin RevenueCat'e iletilir</strong> — tek amacı abonelik sorunu bildirdiğinde hesabını bulabilmek. Sağlık verin bu sağlayıcıya gitmez.</li>
        </ul>
        <h3>Yapay zekâ antrenör</h3>
        <p>Programın ve haftalık analizin <strong>Anthropic Claude API</strong> ile üretilir. İstek kendi sunucumuz üzerinden gider ve <strong>profilin, sakatlık notun, ölçülerin ve antrenman geçmişin</strong> bu sağlayıcıya iletilir — program bu bilgilere göre yazılıyor. <strong>Konumun, koşu rotaların ve Apple Sağlık / Health Connect'ten okunan veriler (HRV, nabız, uyku, aktif enerji) iletilmez.</strong> Veriler yalnızca o yanıtı üretmek için kullanılır, eğitim verisi olarak kullanılmaz. Üretilen program bir öneridir; tıbbi tavsiye değildir.</p>
        <h3>Reklam ve Meta ölçümü</h3>
        <ul>
          <li><strong>Reklam:</strong> Yalnızca ücretsiz katmanda Google AdMob. Reklam isteğine sağlık verin, ölçülerin, yaşın ya da antrenman geçmişin girmez. Tenax Pro'da reklam yoktur.</li>
          <li><strong>iOS — rıza ve izleme izni:</strong> Rıza formu (UMP, yalnızca AEA / İngiltere / İsviçre'de) ve ATT penceresi, onboarding'i bitirip ana ekrana geldiğinde gösterilir — yeni kullanıcıya uygulamayı görmeden izin sorulmaz. ATT ücretsiz katmanda bir kez sorulur; Pro kullanıcılara sorulmaz.</li>
          <li><strong>iOS — Meta SDK:</strong> Ana ekranda rıza ve ATT çözüldükten sonra başlatılır. <strong>AEA / İngiltere / İsviçre'de</strong> depolama ve ölçüm amaçlarına (TCF Amaç 1 ve 7) rıza vermediysen <strong>hiç başlatılmaz</strong> ve bekleyen olaylar silinir. Bu bölgeler dışında <strong>ATT iznini reddetsen de ve Pro abonesi olsan da</strong> çalışır; reddettiysen IDFA okunmaz ve ölçüm toplulaştırılmış yöntemlerle yapılır. Rızanı <em>Profil → Gizlilik tercihleri</em>'nden (yalnızca bu bölgelerde görünür) geri çekebilirsin; geri çekince Meta'ya olay gitmez. Gönderilen olaylar yalnızca <strong>adıyla, parametresiz</strong> gider: kayıt olma (<code>fb_mobile_complete_registration</code>), kurulumun tamamlanması (<code>fb_mobile_tutorial_completion</code>), ödeme akışının başlatılması (<code>fb_mobile_initiated_checkout</code>) ve abone olma (<code>Subscribe</code>). Bunlara ek olarak SDK uygulama açılışını kendiliğinden kaydeder ve mağaza satın almalarını otomatik kaydedebilir (tutar ve para birimi taşır).</li>
          <li><strong>Android — rıza ve Meta SDK:</strong> Google'ın rıza formu (UMP) yanıtlanmadan AdMob'a istek gitmez ve <strong>Meta SDK başlatılmaz</strong> — Pro abonelerinde de. AEA / İngiltere / İsviçre'de Meta için ayrıca depolama ve ölçüm amaçlarına (TCF Amaç 1 ve 7) rıza gerekir; "rıza verme" dersen başlatılmaz. Başladıktan sonra Meta'ya giden olaylar: uygulama açılışı, kayıt olma, kuruluma başlama, ödeme akışının başlatılması ve abone olma — hepsi <strong>parametresiz</strong>; ayrıca SDK'nın kendiliğinden kaydettiği mağaza satın alması (tutar ve para birimi), reklam kimliği (AAID) ve Play Kurulum Yönlendireni. Tercihini <em>Profil → Gizlilik tercihleri</em>'nden (rıza formu uygulanan bölgelerde görünür) değiştirebilirsin; rızayı geri çekince Meta'ya olay gitmez.</li>
          <li><strong>Hiçbir platformda Meta'ya gitmeyenler:</strong> boyun, kilon, ölçülerin, sakatlık notun, antrenman kayıtların, <strong>konumun, rotan, adım sayın</strong>, Sağlık / Health Connect'ten okunan veriler (HRV, nabız, uyku), kalibrasyonun, AI antrenör yazışmaların, arkadaş listen ve kartların, hesap kimliğin (uid), adın ve e-postan.</li>
        </ul>
        <h3>Yurt dışı</h3>
        <p>Hesabın, profil ve sağlık kayıtların, programların ve geçmişin (koşu rotaların dâhil) Google Firebase'de (<code>europe-west1</code>, <code>eur3</code>); AI isteği Anthropic'te (ABD); Android harita karoları OpenFreeMap'te (Macaristan merkezli işletmeci); abonelik kaydın RevenueCat'te; Meta verisi Meta Platforms Ireland Ltd.'de (Meta ABD'de de işleyebilir) işlenir.</p>
        <h3>Silme</h3>
        <p>Profil ekranında iki ayrı işlem var: <em>Verilerimi sil</em> programlarını, geçmişini (koşu rotaların dâhil), ölçümlerini ve AI kurulumunu siler, hesabın kalır — bu, sağlık verisi için verdiğin <strong>açık rızayı geri çekmenin</strong> de yoludur. <em>Hesabımı sil</em> hesabını ve sunucudaki bütün kayıtlarını kalıcı olarak kaldırır; arkadaşlıkların her iki taraftan, bekleyen isteklerin, arkadaşlarının gördüğü profilin, gelen kartların ve susturma tercihlerin de silinir. İkisi de anında çalışır. Ayrıntı: <a href="/veri-silme/tenax">Veri Silme — Tenax</a>.</p>
        <h3>Yaş sınırı</h3>
        <p>Tenax sağlık verisi işlediği için <strong>14 yaş ve üzeri</strong> içindir; yaş alanı 14'ün altını kabul etmez. 18 yaşından küçüksen yalnızca veli ya da vasinin bilgisi ve onayıyla kullan; ağırlık antrenmanına başlamadan önce bir sağlık profesyoneline danış.</p>
      </>,
    },

    // ─── Noctavia ───────────────────────────────────────────────────
    noctavia: {
      pkg: <>Android · <code>com.kolabs.noctavia</code></>,
      body: <>
        <h3>Toplanan veriler</h3>
        <ul>
          <li><strong>Hesap:</strong> E-posta/parola ya da Google ile giriş yaparsın (Firebase Authentication). Profil kaydında e-posta adresin, görünen adın, profil fotoğrafı bağlantın, dil tercihin, abonelik durumun, günlük kullanım sayacın, toplam rüya sayın, onay kaydın ve bildirim jetonun tutulur (Firestore).</li>
          <li><strong>Rüya günlüğü:</strong> Yazdığın ya da sesle anlattığın <strong>rüya metni</strong>, üretilen yorum, giriş biçimi (yazılı/sesli), dil, çıkarılan temalar ve duygu durumu hesabına bağlı olarak <strong>Firestore'da</strong> saklanır; tema analizi özetin de orada tutulur. Rüya sözlüğü uygulamayla birlikte gelir ve cihazında çalışır.</li>
          <li><strong>Sesli anlatım:</strong> Mikrofon izniyle, konuşman cihazının <strong>konuşma tanıma servisi</strong> (çoğu cihazda Google) tarafından metne çevrilir. <strong>Ses kaydı biz tarafından tutulmaz, saklanmaz ve sunucumuza gönderilmez</strong>; bize yalnızca oluşan metin ulaşır. Sesli yorum dinleme cihazın kendi metin okuma motoruyla çalışır.</li>
          <li><strong>Keşfet özellikleri:</strong> Burç yorumu, tarot (yazdığın soru dahil), numeroloji ve doğum haritası için girdiğin bilgiler. Doğum haritasında doğum şehrin <strong>cihazında</strong> koordinata çevrilir; doğum tarihin, saatin ve bu koordinat haritayı hesaplamak için sunucumuza gönderilir.</li>
          <li><strong>Analitik:</strong> Firebase Analytics (yorumlanan rüyanın metni değil, yalnızca giriş biçimi ve dil; abonelikte ürün ve fiyat bilgisi), Crashlytics (hesap kimliğin, planın ve dilin kilitlenme kaydına eklenir), Performance Monitoring, Remote Config ve App Check (Play Integrity).</li>
          <li><strong>Bildirimler:</strong> Günlük hatırlatma için FCM jetonun profil kaydında tutulur.</li>
          <li><strong>Abonelik:</strong> Google Play ve RevenueCat; RevenueCat'e hesap kimliğin (uid) ile bağlanılır.</li>
        </ul>
        <h3>Yapay zekâ</h3>
        <p>Rüya yorumu, tema analizi ve keşfet özellikleri <strong>Anthropic Claude API</strong> ile üretilir. İstek uygulamadan doğrudan değil, kendi sunucumuz (Firebase Cloud Functions) üzerinden gider; rüya metnin, dil tercihin ve ilgili özellikte girdiğin bilgiler (ör. tarot sorusu, doğum bilgileri) iletilir. Veriler eğitim verisi olarak kullanılmaz. Yorumlar eğlence ve öz-yansıtma amaçlıdır; psikolojik ya da tıbbi tavsiye değildir.</p>
        <h3>Reklam ve Meta ölçümü</h3>
        <ul>
          <li><strong>Reklam:</strong> Google AdMob (banner, geçiş ve ödüllü reklam). Google'ın rıza formu (UMP) yanıtlanmadan reklam başlatılmaz.</li>
          <li><strong>Meta SDK (<code>facebook-core</code>):</strong> Rıza formu akışı tamamlanıp reklam isteğine izin çıktıktan sonra başlatılır (Premium abonelerde de); o ana kadar biriken olaylar izin çıkmazsa silinir. Uygulamanın gönderdiği olaylar yalnızca <strong>adıyla, parametresiz</strong> gider: bir rüya yorumlandığında <code>fb_mobile_tutorial_completion</code>, satın alma başlatıldığında <code>fb_mobile_initiated_checkout</code>, abonelik tamamlandığında <code>Subscribe</code> (tutar yok). SDK ayrıca kurulumu ve uygulama açılışını kendiliğinden kaydeder, mağaza satın almalarını otomatik kaydedebilir; reklam kimliği (AAID) ve Play Kurulum Yönlendireni iletilir.</li>
          <li><strong>Meta'ya gitmeyenler:</strong> rüya metinlerin, yorumların, ses, tarot soruların, doğum bilgilerin, e-postan ve hesap kimliğin.</li>
        </ul>
        <h3>Yurt dışı</h3>
        <p>Hesap ve rüya kayıtların Google Firebase'de; AI isteği Anthropic'te (ABD); abonelik kaydın RevenueCat'te; Meta verisi Meta Platforms Ireland Ltd.'de işlenir.</p>
        <h3>Silme</h3>
        <p>Hesabını uygulama içindeki profil ekranından silebilirsin; hesabın, profil kaydın ve rüya kayıtların silinir. Silinmeyen bir kayıt kaldığını düşünürsen ya da hesabına erişemiyorsan {MAIL} adresine yaz. Ayrıntı: <a href="/veri-silme/noctavia">Veri Silme — Noctavia</a>.</p>
      </>,
    },

    // ─── Zikirmatik ─────────────────────────────────────────────────
    zikirmatik: {
      pkg: <>iOS ve Android · <code>com.kolabs.zikirmatik</code></>,
      body: <>
        <h3>Toplanan veriler</h3>
        <ul>
          <li><strong>Sayaç:</strong> Zikir sayımların, hedeflerin ve sayaç profillerin cihazında tutulur.</li>
          <li><strong>Hesap ve sosyal özellikler:</strong> Zikir Zinciri, arkadaşlar ve liderlik tablosu için hesap kullanılır; hesap bilgilerin, arkadaş listen, zincir katılımın ve liderlik skorların Firebase'de tutulur.</li>
          <li><strong>Abonelik:</strong> App Store / Google Play ve RevenueCat. Aboneliğin cihazların arasında taşınabilmesi için durumu (etkin mi, bitiş tarihi) hesabınla ilişkilendirilip Firebase'de saklanır.</li>
          <li><strong>Analitik:</strong> Firebase Analytics ve Crashlytics. Bildirimler için FCM.</li>
        </ul>
        <h3>Reklam ve Meta ölçümü</h3>
        <ul>
          <li><strong>Reklam:</strong> Google AdMob (banner ve geçiş reklamı).</li>
          <li><strong>iOS:</strong> İzleme izni (ATT) ilk açılışta, bildirim izninden sonra bir kez sorulur. Meta SDK her açılışta başlatılır; <strong>uygulama Meta'ya kendi tanımladığı hiçbir olayı göndermez</strong> — giden yalnızca SDK'nın kendiliğinden kaydettikleridir (kurulum, uygulama açılışı; otomatik kayıt açıksa mağaza satın alması, tutar ve para birimiyle). IDFA yalnızca ATT iznini verirsen okunur.</li>
          <li><strong>Android:</strong> AEA, İngiltere ve İsviçre'de Google'ın rıza formu (UMP) yanıtlanmadan reklam ve ölçüm SDK'ları <strong>başlatılmaz</strong>. Meta SDK'sına uygulamanın kendi tanımladığı bir olay gönderilmez; SDK'nın kendiliğinden kaydettiği olaylar (kurulum, açılış, mağaza satın alması) ve reklam kimliği (AAID) iletilir. Tercihini <em>Ayarlar → Reklam Tercihleri</em>'nden değiştirebilirsin.</li>
          <li><strong>Meta'ya gitmeyenler:</strong> zikir sayımların, sayaç profillerin, hesap bilgilerin, arkadaş listen, zincir ve liderlik verilerin.</li>
        </ul>
        <h3>Yurt dışı</h3>
        <p>Hesap ve liderlik kayıtların, analitik ve kilitlenme verilerin Google Firebase'de; abonelik kaydın RevenueCat'te; Meta verisi Meta Platforms Ireland Ltd.'de işlenir.</p>
        <h3>Silme</h3>
        <p>Hesap ve veri silme adımları: <a href="/veri-silme/zikirmatik">Veri Silme — Zikirmatik</a>. Uygulamayı silmek cihazdaki sayaçları da siler.</p>
      </>,
    },

    // ─── Vakit ──────────────────────────────────────────────────────
    ramazan: {
      pkg: <>iOS · <code>com.kolabs.vakit</code> · Android · <code>com.kolabs.imsakiye</code> (eski adıyla Ramazan İmsakiyesi)</>,
      body: <>
        <p><strong>Vakit'te hesap, üyelik ve giriş yoktur.</strong> Ad, e-posta, telefon, rehber, sağlık verisi, mesaj ya da fotoğraf toplanmaz; seni tanımlayan bir kullanıcı profili oluşturulmaz.</p>
        <h3>Konum ve namaz vakitleri</h3>
        <ul>
          <li><strong>Konum isteğe bağlıdır:</strong> İzin vermezsen şehrini listeden seçersin, uygulama aynen çalışır.</li>
          <li><strong>Ham koordinatın bize ulaşmaz:</strong> Koordinat, cihazının kendi konum servisinde ülke/il/ilçe adına çevrilir (iOS'ta Apple'ın <code>CLGeocoder</code>'ı, Android'de Google konum hizmetleri ve cihaz Geocoder'ı; bu çeviri işletim sistemi sağlayıcısının gizlilik politikasına tabidir). Sunucumuza yalnızca <strong>ülke/il/ilçe adı</strong> gider; karşılığında Diyanet'in yer kimliği (<code>placeId</code>) döner. Sonraki vakit sorguları yalnızca <code>placeId</code> + yıl/ay taşır. Kıble yönü cihazında hesaplanır.</li>
          <li><strong>Diyanet:</strong> Vakitler Diyanet İşleri Başkanlığı'nın resmî servisinden, kendi sunucumuz (Firebase Functions) üzerinden alınır; Diyanet'e senin hakkında hiçbir kişisel veri iletilmez. Aylık vakitler çevrimdışı çalışmak için telefonunda önbelleğe alınır.</li>
          <li><strong>Namaz vakti bildirimleri</strong> cihazında, indirilmiş vakit tablosundan kurulur; bunun için sunucuyla konuşulmaz.</li>
          <li><strong>Duyuru bildirimleri:</strong> FCM jetonu alınır ve cihaz tüm kullanıcılara giden duyurular (sürüm, hatırlatma, kampanya) için genel bir konuya abone edilir. Jeton bir kimlikle ilişkilendirilmez. İstemiyorsan uygulamanın bildirimlerini cihaz ayarlarından kapat.</li>
        </ul>
        <h3>Analitik</h3>
        <ul>
          <li><strong>iOS:</strong> Firebase Analytics ve Crashlytics. Gönderilen olaylar: onboarding'in bitmesi, ödeme ekranının görülmesi, plan seçimi, Premium satın alma (tutar ve para birimi), bildirim izninin sonucu, şehrin nasıl seçildiği (yalnızca "otomatik"/"elle" — şehir adı değil) ve ATT izninin sonucu. Hangi vakitte bildirim aldığın ya da kıbleyi ne zaman kullandığın analitiğe yazılmaz.</li>
          <li><strong>Android:</strong> Firebase Analytics, Crashlytics ve In-App Messaging. Yukarıdakilere ek olarak <strong>seçtiğin il/ilçe adı</strong> analitik olayına ve kilitlenme kaydına eklenir; alarm ayarının değiştirilmesi ve alarmın çalması da analitik olayı olarak kaydedilir. Bunlar yalnızca Firebase'e gider, <strong>reklam ağlarına ve Meta'ya gitmez</strong>.</li>
        </ul>
        <h3>Reklam ve Meta ölçümü</h3>
        <ul>
          <li><strong>Reklam:</strong> Google AdMob (banner ve geçiş reklamı); Android'de AdMob aracılığıyla Unity Ads da reklam sunabilir. AEA, İngiltere ve İsviçre'de Google'ın rıza formu (UMP) yanıtlanmadan reklam isteği yapılmaz.</li>
          <li><strong>iOS — izleme izni:</strong> ATT penceresi onboarding'in sonunda (rıza formu olan bölgelerde formdan sonra) en fazla bir kez gösterilir. İzin verirsen IDFA okunur; reddedersen okunmaz ve ölçüm SKAdNetwork ile AEM'e düşer. Hiçbir özellik izne bağlı değildir.</li>
          <li><strong>iOS — Meta SDK:</strong> Uygulama açılışında başlatılır; ilk açılış olayı izin sorulmadan önce gider (IDFA'sız). Gönderilen olaylar: uygulama açılışı (<code>fb_mobile_activate_app</code>), onboarding'in tamamlanması (<code>CompleteRegistration</code>), ödeme ekranının görülmesi (<code>ViewContent</code> — ekranın açıldığı yer), plan seçimi (<code>InitiateCheckout</code> — plan), satın alma (<code>Purchase</code> ve <code>Subscribe</code> — <strong>tutar ve para birimi</strong>) ve izin sinyalleri (<code>vakit_notification_permission</code>, <code>vakit_att_permission</code>, <code>vakit_location_selected</code> — yalnızca izin verildi mi / otomatik mi elle mi).</li>
          <li><strong>Android — Meta SDK:</strong> Google'ın rıza durumu reklam isteğine izin verdiğinde başlatılır (AEA, İngiltere ve İsviçre'de rıza formu yanıtlandıktan sonra, diğer bölgelerde açılışta). Gönderilen olaylar: onboarding'in tamamlanması (<code>CompleteRegistration</code>), ödeme ekranının görülmesi (<code>ViewContent</code> — ekranın açıldığı yer), plan seçimi (<code>InitiateCheckout</code> — plan) ve satın alma (<code>Purchase</code> — <strong>tutar, para birimi ve plan</strong>); SDK ayrıca kurulum ve açılışı kendiliğinden kaydeder, reklam kimliği (AAID) ve kurulum yönlendireni iletilir. Tercihini uygulamanın ayarlarındaki gizlilik seçeneklerinden değiştirirsen otomatik olay kaydı ve reklam kimliği toplama kapatılır.</li>
          <li><strong>Meta'ya gitmeyenler:</strong> konumun, şehrin, vakit, bildirim ve kıble kullanımın.</li>
        </ul>
        <h3>Abonelik</h3>
        <p>Hesap olmadığı için RevenueCat'e <strong>anonim bir kullanıcı kimliğiyle</strong> bağlanılır; adın ve e-postan gönderilmez. Tutulan tek şey abonelik durumun ve satın alma geçmişindir.</p>
        <div className="legal-table">
          <table>
            <thead><tr><th>Veri</th><th>Amaç</th><th>Hukuki dayanak</th><th>Saklama</th></tr></thead>
            <tbody>
              <tr><td><strong>Ham GPS koordinatı</strong></td><td>Cihazda il/ilçe adına çevrilmesi</td><td>Açık rıza (konum izni)</td><td>Sunucularımıza <strong>hiç gönderilmez</strong></td></tr>
              <tr><td>İl/ilçe adı ve <code>placeId</code></td><td>Doğru vakitleri getirmek</td><td>Sözleşmenin ifası</td><td>Telefonunda; Android'de ayrıca Firebase analitiğinde (en çok 14 ay)</td></tr>
              <tr><td>Aylık vakit önbelleği</td><td>Çevrimdışı çalışmak</td><td>Sözleşmenin ifası</td><td>Telefonunda; uygulamayı silince gider</td></tr>
              <tr><td>Kilitlenme kaydı</td><td>Hataları düzeltmek</td><td>Meşru menfaat</td><td>Crashlytics'te yaklaşık 90 gün</td></tr>
              <tr><td>Uygulama örneği kimliği, analitik olayları</td><td>Ürünü ve kampanyaları ölçmek</td><td>Meşru menfaat</td><td>Firebase Analytics — en çok 14 ay</td></tr>
              <tr><td>Meta olayları, reklam kimliği</td><td>Meta reklamlarının ölçümü</td><td>Açık rıza (ATT / rıza formu); IDFA'sız toplu ölçümde meşru menfaat</td><td>Meta'nın saklama süreleri</td></tr>
              <tr><td>FCM jetonu</td><td>Duyuru bildirimi</td><td>Açık rıza (bildirim izni)</td><td>Bildirimi kapatınca geçersiz</td></tr>
              <tr><td>Anonim abonelik kimliği</td><td>Premium'u açmak</td><td>Sözleşmenin ifası</td><td>Abonelik boyunca</td></tr>
            </tbody>
          </table>
        </div>
        <h3>Silme</h3>
        <p>Silinecek bir hesap yok: şehrin, bildirim ayarların ve vakit önbelleğin <strong>yalnızca telefonunda</strong> durur, <strong>uygulamayı silmek hepsini siler</strong>. Reklam kimliğini cihaz ayarlarından sıfırlayabilir, iOS'ta izleme iznini geri çekebilirsin.</p>
      </>,
    },

    // ─── Kelime Bul ─────────────────────────────────────────────────
    kelimebul: {
      pkg: <>Android · <code>com.kolabs.kelimebul</code></>,
      body: <>
        <h3>Toplanan veriler</h3>
        <ul>
          <li><strong>Oyun ilerlemesi:</strong> Seviyelerin ve ayarların cihazında tutulur; oyun çevrimdışı oynanır.</li>
          <li><strong>Giriş ve sıralama:</strong> Google hesabın ya da Google Play Oyunlar profilinle giriş yaptığında adın, profil kimliğin ve ilerlemen/skorların hesabına bağlı olarak Firebase'de (Authentication, Realtime Database) tutulur.</li>
          <li><strong>Analitik:</strong> Firebase Analytics, Crashlytics ve Remote Config. Bildirimler için FCM.</li>
        </ul>
        <h3>Reklam</h3>
        <p>Google AdMob banner, geçiş ve ödüllü reklam (ek ipucu) gösterir; reklam kimliği (AAID) işlenebilir. Kelime Bul'da <strong>Meta SDK'sı yoktur</strong>.</p>
        <h3>Silme</h3>
        <p>Uygulamayı silmek cihazdaki ilerlemeyi siler. Hesabına bağlı kayıtların silinmesi için {MAIL} adresine yaz. Ayrıntı: <a href="/veri-silme/kelime-bul">Veri Silme — Kelime Bul</a>.</p>
      </>,
    },

    // ─── Hesap Vakti ────────────────────────────────────────────────
    hesapvakti: {
      pkg: <>Android · <code>com.kolabs.hesapvakti</code></>,
      body: <>
        <p><strong>Hesap Vakti hesap, analitik ya da sunucu kullanmaz.</strong> Oyun tümüyle cihazında çalışır; dokunuşlar, oyuncu sayısı ve sonuçlar hiçbir yere gönderilmez.</p>
        <h3>Reklam</h3>
        <p>Google AdMob reklam gösterir; bunun için cihaz bilgisi ve reklam kimliği (AAID) Google'a iletilebilir. Hesap Vakti'nde <strong>Meta SDK'sı yoktur</strong>.</p>
        <h3>Silme</h3>
        <p>Bizde senin hakkında tutulan bir kayıt yok; uygulamayı silmen yeterlidir. Reklam kimliğini cihaz ayarlarından sıfırlayabilirsin.</p>
      </>,
    },

    // ─── PatissTray ─────────────────────────────────────────────────
    patisstray: {
      pkg: <>iOS ve Android · <code>com.kolabs.patisstray</code></>,
      body: <>
        <p><strong>PatissTray kapalı bir işletmeler arası uygulamadır.</strong> Siparişler, cari hesap kayıtları, teslim kanıtları ve hesaplar uygulamayı kullanan <strong>imalatçı işletmenin</strong> ticari verisidir; hesapları o işletme açar, kimin hangi kaydı göreceğine o karar verir. kolabs bu verileri işletme adına barındırır. Kendi hesabına ilişkin bir talebin varsa önce çalıştığın işletmeye başvur.</p>
        <h3>Toplanan veriler</h3>
        <ul>
          <li><strong>Hesap ve rol:</strong> Adın, e-posta adresin, <strong>telefon numaran</strong>, rolün (kafe · imalatçı · şoför) ve bağlı olduğun işletme (Firebase Authentication, Firestore). Kayıt ekranı yoktur.</li>
          <li><strong>İşletme ve teslimat bilgileri:</strong> Kafenin unvanı, <strong>teslimat adresi ve harita koordinatları</strong>, iletişim telefonu, <strong>vergi numarası</strong>, fiyat listesi ve vade gün sayısı.</li>
          <li><strong>Şoför kaydı:</strong> Ad, telefon, <strong>araç plakası</strong>, hesabın aktifliği ve konum paylaşımının açık olup olmadığı.</li>
          <li><strong>Teslimat performans özeti (şoför):</strong> İçinde bulunulan ay için teslim edilen/edilemeyen sipariş sayısı, zamanında teslim oranı, tamamlanan rota, kat edilen kilometre ve durakta geçen ortalama süre. Şoförün kendi profilinde ve imalatçının panelinde görünür; <strong>işveren konumundaki imalatçının verisidir</strong>, kolabs kendi amacı için kullanmaz. Yalnızca tamamlanan turlardan üretilir.</li>
          <li><strong>Sipariş ve cari kayıtları:</strong> Sipariş kalemleri, tutarlar, teslim günü ve saat aralığı, notlar, durum geçmişi, tahsilat kayıtları ve cari hareketleri.</li>
          <li><strong>Konum (yalnızca şoför):</strong> Yalnızca yolda olan bir dağıtım turu varken yaklaşık 90 saniyede bir güncellenir ve imalatçıya gösterilir; tur bitince <strong>silinir</strong>, mesai dışında tutulmaz. İzin verilmezse teslimat akışı aynen çalışır. Teslim kaydına teslim anındaki konum eklenebilir.</li>
          <li><strong>Teslim kanıtı:</strong> Teslim anında çekilen fotoğraf Firebase Storage'da siparişe bağlı saklanır; yanında <strong>teslimi alan kişinin adı soyadı</strong> ve şoför notu tutulur — bu alana teslimi kanıtlamaya yetecek kadar bilgi yaz. Uygulama galerine erişmez.</li>
          <li><strong>Harita:</strong> Rota haritası Android'de OpenStreetMap, iOS'ta Apple MapKit ile çizilir; navigasyon telefonun harita uygulamasına devredilir.</li>
        </ul>
        <p>PatissTray'de <strong>reklam, kullanım analitiği, Meta SDK'sı ve abonelik altyapısı yoktur</strong>; kayıtlar reklam amacıyla kullanılmaz.</p>
        <h3>Silme</h3>
        <p>Hesap bir iş ilişkisine bağlı olduğu için kapatma talebini önce imalatçıya ilet; ayrıca {MAIL} adresine yazabilirsin. Sipariş, fatura ve cari kayıtları ticari ve yasal saklama süreleri boyunca tutulabilir. Ayrıntı: <a href="/veri-silme/patisstray">Veri Silme — PatissTray</a>.</p>
        <h3>Yaş</h3>
        <p>Yalnızca imalatçının hesap açtığı <strong>yetişkin çalışanlar</strong> tarafından kullanılır.</p>
      </>,
    },
  },
};

// ═══════════════════════════════════════════════════════════════════
// ENGLISH
// ═══════════════════════════════════════════════════════════════════
const PRIVACY_EN = {
  crumb: 'Privacy Policy',
  eyebrow: 'Legal · Privacy',
  title: 'Privacy Policy',
  lastUpdated: 'October 1, 2026',
  pick: 'Pick your app — its own section opens',
  generalTab: 'General',
  generalNote: 'Provisions that apply to all apps',
  intro: <>
    <p className="legal-lead">At kolabs, we respect your privacy. This policy explains what data is collected when you use our website and apps (Tenax, Noctavia, Zikirmatik, Vakit, Word Find, Bill Time, PatissTray), how it is used and what your rights are.</p>
    <p><strong>In short:</strong> we do <strong>not sell</strong> your personal data, we do <strong>not pass it to data brokers</strong>, and we do <strong>not use your health data for advertising</strong>. This page is the basis for our Google Play <em>Data safety</em> and App Store <em>Privacy Label</em> declarations; if you spot a contradiction, write to us and we will fix it.</p>
    <p><strong>How to read it:</strong> pick your app below. Its section lists the data that app collects, the providers it uses, its advertising and measurement settings and how to delete your data; underneath are the provisions shared by all apps (controller, rights, security, contact).</p>
  </>,

  general: <>
    <h2>1. Data Controller</h2>
    <p>The controller of personal data under this policy is the <strong>kolabs.</strong> brand:</p>
    <ul>
      <li><strong>Legal name:</strong> {CONTROLLER.legalName}</li>
      <li><strong>Address:</strong> {CONTROLLER.address}</li>
      <li><strong>Email:</strong> <a href={'mailto:' + CONTROLLER.email}>{CONTROLLER.email}</a></li>
    </ul>
    <p>This policy discharges our transparency obligation under KVKK art. 10 and GDPR art. 13; every app links here from its store listing and from the in-app <em>Privacy Policy</em> link. <strong>PatissTray is an exception:</strong> its orders, running-account and delivery records are the commercial data of the producer business using it; see the PatissTray tab.</p>

    <h2>2. What All Apps Have in Common</h2>
    <ul>
      <li><strong>Device info:</strong> Device model, OS version, language — so the app works correctly and errors can be found.</li>
      <li><strong>Usage analytics and crash reports:</strong> Firebase Analytics records which screens are opened and the events each app defines; it assigns each installation an <strong>app instance ID</strong> tied only to that installation, not to your name or email. Firebase Crashlytics records your device model and OS version when a crash happens. Which events each app sends is listed in its tab. Bill Time and PatissTray have no analytics.</li>
      <li><strong>Advertising ID:</strong> In ad-supported apps Google AdMob serves ads and your device's advertising ID may be processed — the <strong>IDFA</strong> on iOS, the <strong>Google advertising ID (AAID)</strong> on Android. On iOS the IDFA is read <strong>only if you grant tracking permission (ATT)</strong>; if you decline, ads are non-personalised. On Android you can reset or delete the advertising ID under <em>Settings → Privacy → Ads</em> (on some devices <em>Settings → Google → All services → Ads</em>); on Android 12+ a deleted ID no longer gives apps a usable value.</li>
      <li><strong>Ad consent form (EEA / UK / Switzerland):</strong> In apps that include it, Google's <strong>User Messaging Platform</strong> (UMP) form is shown in these regions; you can change your choice later from the ad/privacy preferences row in the app's settings. Which apps and platforms include the form, and what starts before it and what waits, is set out in each app's tab.</li>
      <li><strong>Purchases and subscriptions:</strong> Payment is handled entirely by the Apple App Store or Google Play; your card details never reach us. Subscription status and receipt validation run through <strong>RevenueCat</strong>.</li>
      <li><strong>Notifications:</strong> Your device's Firebase Cloud Messaging (FCM) token is used to deliver push notifications. It is invalidated when you turn notifications off or delete the app.</li>
    </ul>

    <h3>Meta (Facebook) ad measurement</h3>
    <p>We run app ads on Facebook and Instagram. To see which ad led to an install or a subscription, <strong>only the core module of the Meta SDK</strong> is included in: <strong>Tenax</strong> (iOS and Android), <strong>Vakit</strong> (iOS and Android), <strong>Zikirmatik</strong> (iOS and Android) and <strong>Noctavia</strong> (Android). None of them include the Facebook Login, Share or Audience Network modules, and no Meta ads are shown inside the apps.</p>
    <ul>
      <li><strong>Purpose:</strong> ad measurement, campaign attribution and optimisation only.</li>
      <li><strong>What reaches Meta:</strong> device and app information (model, OS and app version, an installation-specific identifier), the advertising ID (AAID on Android; on iOS the IDFA only if you granted ATT), on Android the <strong>Play Install Referrer</strong> showing which campaign an install came from, the events the SDK logs by itself (install, app launch; if store purchases are logged automatically, the <strong>amount and currency</strong>) and a small number of events each app sends. The full list per app is in its tab.</li>
      <li><strong>What never reaches Meta:</strong> your name, email, account ID, health and fitness data (Tenax), dream texts and interpretations (Noctavia), dhikr counts and social data (Zikirmatik), your location, city and prayer-time usage (Vakit). No app sends Meta a user ID or advanced-matching data.</li>
      <li><strong>Controller:</strong> <strong>Meta Platforms Ireland Ltd.</strong> (Ireland) for users outside the US and Canada, Meta Platforms, Inc. elsewhere. Meta may also process what it receives for its own purposes under its own policy: {PV_LINKS.meta}.</li>
      <li><strong>You can turn it off:</strong> on iOS, switching tracking off under <em>Settings → Privacy &amp; Security → Tracking</em> stops the IDFA reaching Meta; measurement falls back to Apple's aggregated <strong>SKAdNetwork</strong> and Meta's <strong>AEM</strong>. On Android, delete the advertising ID as described above. If you have a Facebook/Instagram account, <em>Accounts Center → Your information and permissions → Your activity off Meta technologies</em> shows activity from apps and lets you disconnect it.</li>
    </ul>

    <h2>3. Purposes and Legal Basis</h2>
    <ul>
      <li>To deliver, operate and fix the service.</li>
      <li>To analyse usage patterns and improve the product.</li>
      <li>To show ads in free, ad-supported versions.</li>
      <li>To measure the conversions of our ad campaigns.</li>
      <li>To comply with legal obligations.</li>
    </ul>
    <p>Under KVKK art. 5 and GDPR art. 6 we rely on:</p>
    <ul>
      <li><strong>Performance of a contract:</strong> your account, subscription and records — the service does not work without them.</li>
      <li><strong>Explicit consent:</strong> location, notifications, microphone, tracking permission (ATT) on iOS, ad consent in regions with the consent form, and <strong>health data and GPS route data in Tenax</strong>. You may withdraw consent at any time.</li>
      <li><strong>Legitimate interests:</strong> security and abuse prevention, crash tracking, aggregated measurement without an advertising ID.</li>
      <li><strong>Legal obligation:</strong> commercial and tax retention periods.</li>
    </ul>

    <h2>4. Service Providers</h2>
    <p>Which app uses which provider is listed in each app's tab.</p>
    <ul>
      <li><strong>Google Firebase</strong> — authentication, database, server functions, notifications, analytics, crash reporting: {PV_LINKS.google}</li>
      <li><strong>Google AdMob</strong> — ads: {PV_LINKS.ads}</li>
      <li><strong>Meta Platforms</strong> — ad measurement: {PV_LINKS.meta}</li>
      <li><strong>Apple</strong> — App Store payments, SKAdNetwork, ATT, Sign in with Apple; Apple Maps and (optionally) Apple Health in Tenax for iOS: {PV_LINKS.apple}</li>
      <li><strong>RevenueCat</strong> — subscription management: {PV_LINKS.revenuecat}</li>
      <li><strong>Anthropic (Claude API)</strong> — AI responses in Tenax and Noctavia: {PV_LINKS.anthropic}</li>
      <li><strong>OpenFreeMap / OpenStreetMap</strong> — map tiles in Tenax for Android (operated by Hyperknot Software Kft., Hungary): {PV_LINKS.openfreemap} · map data © OpenStreetMap contributors: {PV_LINKS.osm}</li>
      <li><strong>Unity Ads</strong> — ads via AdMob mediation in Vakit for Android: {PV_LINKS.unity}</li>
      <li><strong>Vercel</strong> — hosting of this website: {PV_LINKS.vercel}</li>
    </ul>
    <p>Firebase, RevenueCat, Anthropic and Vercel process your data only <strong>on our behalf</strong> and under contract. <strong>The advertising and measurement providers (Google AdMob, Unity, Meta) fall outside that description:</strong> they may also process what they receive for their own purposes under their own policies. Data sent to Anthropic is <strong>not used as training data</strong>.</p>

    <h2>5. International Transfers</h2>
    <p>These providers run their infrastructure outside Türkiye; your data is processed mainly in the <strong>United States</strong> and the <strong>European Union</strong>. Under KVKK art. 9 this is a transfer necessary to provide the service and grounded in your consent; on the GDPR side the providers' Standard Contractual Clauses (SCCs) apply. What goes where for each app is set out in its tab.</p>

    <h2>6. Data Security</h2>
    <ul>
      <li>All traffic between device and server is encrypted with <strong>TLS</strong>; records are held encrypted at the provider.</li>
      <li>Who can see which record is decided by <strong>server-side security rules</strong>.</li>
      <li>AI requests go <strong>through our own server</strong>, never directly from the app; API keys never reach the device.</li>
      <li>We never hold passwords; authentication is handled by Firebase Authentication, Google and Apple.</li>
      <li>If a breach affects you, we notify you and the competent authority within the period required by law.</li>
    </ul>

    <h2>7. Retention and Deletion</h2>
    <p>Data is kept for as long as needed to deliver the service. Per-app deletion steps, and what is removed versus kept, are on the <a href="/en/data-deletion">Data Deletion</a> page and in each app's tab. You can always write to {MAIL}; requests are handled within 30 days.</p>

    <h2>8. Cookies</h2>
    <p>Our website may use analytics cookies. You can always block them in your browser.</p>

    <h2>9. Your Rights (KVKK &amp; GDPR)</h2>
    <p>You have the rights to access, correct, delete, restrict, object to the processing of, and port your data. Where processing rests on consent, you may <strong>withdraw it at any time</strong>; withdrawal does not affect processing already carried out.</p>
    <p>Send your request to {MAIL}; we respond within <strong>30 days</strong>. For apps with accounts, send it from the <strong>email address registered to your account</strong>. In apps without accounts (Vakit, Bill Time) the records we hold do not identify you directly; we may need an identifier such as your advertising ID to act on your request.</p>
    <p>If our response does not satisfy you, you may complain to the <strong>Turkish Personal Data Protection Authority</strong> (kvkk.gov.tr) or, in the EU, to your country's <strong>data protection authority</strong>.</p>

    <h2>10. Children</h2>
    <p>Our apps are not directed at children under 13; we do not knowingly collect data from them and do not use child-directed ad categories. App-specific age limits (Tenax: 14+) are in the relevant tab. If we find we have inadvertently collected data from a child under 13, we delete it.</p>

    <h2>11. Automated Decision-Making</h2>
    <p>AI output in Tenax and Noctavia is a <strong>recommendation</strong>; no automated decision is taken that produces legal effects concerning you or similarly significantly affects you.</p>

    <h2>12. Changes</h2>
    <p>This policy may be updated; significant changes are announced in the apps and on the site. The current version is always on this page.</p>

    <h2>13. Contact</h2>
    <p>For questions, requests or complaints: {MAIL}</p>
  </>,

  apps: {
    tenax: {
      pkg: <>iOS and Android · <code>com.kolabs.tenax</code></>,
      body: <>
        <h3>Data collected</h3>
        <ul>
          <li><strong>Account:</strong> Tenax requires an account. You sign in with email, Google or Apple; your name and email are held in Firebase Authentication. Your password never reaches us; with Apple's <em>Hide My Email</em> we only receive the relay address.</li>
          <li><strong>Health and fitness data:</strong> Height, weight, <strong>age</strong>, sex, chosen body type and metabolism, training experience, body measurements (chest, waist, arm, leg), workout records (sets, reps, weight; for runs, walks and rides distance, time, pace, elevation and estimated calories), calibration results, working weights, weekly day/minute targets, equipment access and two free-text fields: your <strong>injury note</strong> and the <strong>note for your coach</strong>. Stored in Firebase linked to your account and used <strong>only</strong> to generate your program and show your progress. <strong>Never used for advertising, never sent to ad networks or Meta, never written to analytics.</strong> What Tenax writes to and reads from Apple Health / Health Connect is described separately below. Workouts you import from another app (Strong, Hevy) are added to these records too.</li>
          <li><strong>Location and route (run, walk, ride):</strong> Location is read only when you start a GPS recording and while it runs, with <strong>"while using the app"</strong> permission; "always" (background) location is <strong>not requested</strong>. So that recording continues with the screen locked, iOS shows its background-location indicator (blue bar) and Android shows a persistent notification (foreground service); both go away when the recording ends. Stored: the route (location points), distance, moving time, pace, kilometre splits, elevation gain and estimated calories — in Firebase, linked to your account, as part of the workout record. The route is <strong>shown only to you</strong> and is <strong>never sent to ad networks, Meta, analytics or the AI provider.</strong> Without location permission GPS recording is unavailable; you can enter distance and time manually.</li>
          <li><strong>Step count:</strong> During a run or walk only that recording's step count is taken from the phone's step counter (Motion &amp; Fitness on iOS, the Physical Activity permission on Android); it is not measured on a ride. Without permission no steps are shown and the recording is unaffected.</li>
          <li><strong>Apple Health / Health Connect — writing (optional):</strong> If you have connected it, the type, duration, distance, estimated calories, steps and route of the finished workout are written to Apple Health on iOS and Health Connect on Android. Once written, the record belongs to that app: deleting it in Tenax does not delete it there; you manage it in Health / Health Connect and can revoke the permission there.</li>
          <li><strong>Apple Health / Health Connect — reading (optional):</strong> For the calorie ring on the home screen, Tenax reads the active energy you burned during the day from sources <strong>other than</strong> Tenax and (on iOS) your Apple Watch Move goal. On iOS, if you also turn on <strong>Readiness</strong> (Tenax Pro), a separate permission lets it read your <strong>heart rate variability (HRV), resting heart rate and sleep duration</strong>; these are compared with your own 28-day baseline and turned into a "Ready / Normal / Recover" suggestion. This data is <strong>processed only on your phone and shown on screen</strong>: it is not stored on our servers and <strong>never sent to the AI provider, ad networks, Meta or analytics</strong>. Readiness is an estimate, not a medical assessment. You can revoke the permission at any time in Health / Health Connect settings.</li>
          <li><strong>Voice cues:</strong> Optional; time and pace are read out every kilometre by the device's own speech engine. The audio is produced on the device; the microphone is not used and nothing is sent to a server.</li>
          <li><strong>Map:</strong> iOS uses Apple Maps. On Android, map tiles are downloaded from <strong>OpenFreeMap</strong> (OpenStreetMap data): a tile request carries your IP address and the map area on screen to that server; your account, name, health data and route do not — the route is drawn over the map on your device. According to OpenFreeMap's own policy there are no user accounts, cookies or tracking.</li>
          <li><strong>Profile photo and share card:</strong> Optional; an image you take with the camera or pick from your library — for your profile photo or as the background of the post-workout share card — stays <strong>on your phone only</strong> and is never uploaded. The app does not scan your library. On a run card the <strong>first and last 200 metres of the route line are cut</strong> so your home or workplace address is not visible; if you share the card, the policy of the app you share it with applies.</li>
          <li><strong>Workout notification:</strong> A Live Activity on iOS and a persistent notification (foreground service) on Android keep the timer running on the lock screen; both run only on your device. On Android, run recording also uses its own foreground service and notification.</li>
          <li><strong>Referral program:</strong> Your invite code and who invited whom, so the reward reaches the right account.</li>
          <li><strong>Friends and weekly league (iOS, optional):</strong> Your invite code is also your friend code. You add a friend by code or by scanning their QR code; the camera is used only while scanning and no image is stored. Your friends see <strong>only</strong> your name, level, total and weekly XP, workouts this week, streak and last workout day; XP is calculated on our server from your workout records. <strong>Your weight, measurements, injury note, health data, workout details and routes are never shown to friends.</strong> Friend requests (sender's name and level), your friend list and the ready-made cards you send (sender's name, card type, your current streak) are stored on our server. Cards contain no free text and are deleted once seen. If you <strong>mute</strong> a friend, that preference is stored in your account and no notification is sent for their cards; they are not told.</li>
          <li><strong>Notifications:</strong> Firebase Cloud Messaging is used for friend requests, accepted requests and incoming cards. For this, your device's notification token and app language are stored in your account and removed when you sign out. A notification shows the sender's name and the card type.</li>
          <li><strong>History import (iOS, optional):</strong> A CSV file you export from Strong or Hevy is read <strong>on your phone</strong>; with your confirmation, the workouts in it (date, exercise, sets, reps, weight) are written to your account as workout records. The file itself is never uploaded.</li>
          <li><strong>Widgets (iOS):</strong> For home and lock screen widgets, your streak, this week's workout days, your next program, a summary of your last workout and your level are kept on your phone, in the space the app shares with its widgets; nothing is sent to a server and it is cleared when you sign out. Anyone looking at your phone can see a widget you add to the lock screen; no health data goes into widgets.</li>
          <li><strong>Analytics and performance:</strong> Firebase Analytics, Crashlytics, Performance Monitoring and Remote Config. Firebase <strong>App Check</strong> verifies that requests come from the genuine app (App Attest on iOS, Play Integrity on Android); the token carries no personal data.</li>
          <li><strong>Subscription:</strong> Tenax Pro via the App Store / Google Play and RevenueCat. <strong>Your name and email are sent to RevenueCat</strong>, solely so we can find your account if you report a subscription problem. No health data goes to this provider.</li>
        </ul>
        <h3>AI coach</h3>
        <p>Your program and weekly analysis are generated with the <strong>Anthropic Claude API</strong>. The request goes through our own server and <strong>your profile, injury note, measurements and workout history</strong> are sent — the program is written from them. <strong>Your location, run routes and anything read from Apple Health / Health Connect (HRV, heart rate, sleep, active energy) are not sent.</strong> The data is used only to produce that response and is not used for training. The program is a recommendation, not medical advice.</p>
        <h3>Ads and Meta measurement</h3>
        <ul>
          <li><strong>Ads:</strong> Google AdMob on the free tier only. No health data, measurements, age or workout history ever enter an ad request. No ads on Tenax Pro.</li>
          <li><strong>iOS — consent and tracking permission:</strong> The consent form (UMP, only in the EEA / UK / Switzerland) and the ATT prompt appear when you finish onboarding and reach the home screen — a new user is not asked for permissions before seeing the app. ATT is asked once on the free tier; Pro users are not asked.</li>
          <li><strong>iOS — Meta SDK:</strong> Started once consent and ATT are resolved on the home screen. <strong>In the EEA / UK / Switzerland</strong> it is <strong>not started at all</strong> unless you consent to the storage and measurement purposes (TCF purposes 1 and 7), and any pending events are discarded. Outside those regions it runs <strong>even if you decline ATT and even for Pro subscribers</strong>; if you declined, the IDFA is not read and measurement is aggregated. You can withdraw consent under <em>Profile → Privacy choices</em> (shown only in those regions); once withdrawn, no events go to Meta. Events are sent <strong>by name only, with no parameters</strong>: sign-up (<code>fb_mobile_complete_registration</code>), setup completed (<code>fb_mobile_tutorial_completion</code>), checkout started (<code>fb_mobile_initiated_checkout</code>) and subscribing (<code>Subscribe</code>). The SDK also logs app launches by itself and may log store purchases automatically (with amount and currency).</li>
          <li><strong>Android — consent and Meta SDK:</strong> Until Google's consent form (UMP) is answered, no request reaches AdMob and <strong>the Meta SDK is not started</strong> — Pro subscribers included. In the EEA / UK / Switzerland, Meta additionally needs consent to the storage and measurement purposes (TCF purposes 1 and 7); if you decline it does not start. Once started, the events are app launch, sign-up, starting setup, starting checkout and subscribing — all <strong>without parameters</strong> — plus the store purchase the SDK logs by itself (amount and currency), the advertising ID (AAID) and the Play Install Referrer. Change your choice under <em>Profile → Privacy choices</em> (shown where the consent form applies); once consent is withdrawn, no events go to Meta.</li>
          <li><strong>Never sent to Meta on any platform:</strong> your height, weight, measurements, injury note, workout records, <strong>location, route, step count</strong>, data read from Health / Health Connect (HRV, heart rate, sleep), calibration, AI coach conversations, friend list and cards, account ID (uid), name or email.</li>
        </ul>
        <h3>Transfers</h3>
        <p>Your account, profile, health records, programs and history (run routes included) in Google Firebase (<code>europe-west1</code>, <code>eur3</code>); AI requests at Anthropic (US); Android map tiles at OpenFreeMap (operator based in Hungary); subscription records at RevenueCat; Meta data at Meta Platforms Ireland Ltd. (Meta may also process it in the US).</p>
        <h3>Deletion</h3>
        <p>The Profile screen offers two actions: <em>Delete my data</em> removes your programs, history (run routes included), measurements and AI setup but keeps your account — this is also how you <strong>withdraw your explicit consent</strong> for health data. <em>Delete my account</em> permanently removes your account and every server-side record, including your friendships on both sides, pending requests, the profile your friends see, incoming cards and mute preferences. Both take effect immediately. Details: <a href="/en/data-deletion/tenax">Data Deletion — Tenax</a>.</p>
        <h3>Age limit</h3>
        <p>Because it processes health data, Tenax is for ages <strong>14 and over</strong>; the age field will not accept less. If you are under 18, use it only with a parent's or guardian's knowledge and consent, and consult a health professional before starting resistance training.</p>
      </>,
    },

    noctavia: {
      pkg: <>Android · <code>com.kolabs.noctavia</code></>,
      body: <>
        <h3>Data collected</h3>
        <ul>
          <li><strong>Account:</strong> You sign in with email/password or Google (Firebase Authentication). Your profile holds your email, display name, profile photo link, language, subscription status, daily usage counter, total dream count, consent record and notification token (Firestore).</li>
          <li><strong>Dream journal:</strong> The <strong>dream text</strong> you type or dictate, the generated interpretation, input mode (text/voice), language, extracted themes and mood are stored <strong>in Firestore</strong>, linked to your account; your theme-analysis summary is kept there too. The dream dictionary ships with the app and works on your device.</li>
          <li><strong>Voice input:</strong> With microphone permission, your speech is converted to text by your device's <strong>speech recognition service</strong> (Google on most devices). <strong>We do not record, store or upload any audio</strong>; only the resulting text reaches us. Read-aloud uses your device's own text-to-speech engine.</li>
          <li><strong>Discover features:</strong> What you enter for horoscope, tarot (including your question), numerology and birth chart. For the birth chart your birth city is turned into coordinates <strong>on your device</strong>; your birth date, time and those coordinates are sent to our server to compute the chart.</li>
          <li><strong>Analytics:</strong> Firebase Analytics (not the dream text — only input mode and language; product and price for purchases), Crashlytics (your account ID, plan and language are attached to crash reports), Performance Monitoring, Remote Config and App Check (Play Integrity).</li>
          <li><strong>Notifications:</strong> Your FCM token is stored in your profile for the daily reminder.</li>
          <li><strong>Subscription:</strong> Google Play and RevenueCat; RevenueCat is linked to your account ID (uid).</li>
        </ul>
        <h3>AI</h3>
        <p>Dream interpretation, theme analysis and Discover features are generated with the <strong>Anthropic Claude API</strong>. Requests go through our own server (Firebase Cloud Functions), not directly from the app; your dream text, language and whatever you entered for that feature (e.g. tarot question, birth details) are sent. The data is not used for training. Interpretations are for entertainment and self-reflection, not psychological or medical advice.</p>
        <h3>Ads and Meta measurement</h3>
        <ul>
          <li><strong>Ads:</strong> Google AdMob (banner, interstitial and rewarded). Ads do not start before Google's consent form (UMP) flow.</li>
          <li><strong>Meta SDK (<code>facebook-core</code>):</strong> Started after the consent flow completes and ad requests are allowed (for Premium subscribers too); events queued before that are discarded if permission is not given. Events are sent <strong>by name only, with no parameters</strong>: <code>fb_mobile_tutorial_completion</code> when a dream is interpreted, <code>fb_mobile_initiated_checkout</code> when a purchase starts, <code>Subscribe</code> when a subscription completes (no amount). The SDK also logs install and app launch by itself and may log store purchases automatically; the advertising ID (AAID) and Play Install Referrer are passed.</li>
          <li><strong>Never sent to Meta:</strong> your dream texts, interpretations, audio, tarot questions, birth details, email or account ID.</li>
        </ul>
        <h3>Transfers</h3>
        <p>Account and dream records in Google Firebase; AI requests at Anthropic (US); subscription records at RevenueCat; Meta data at Meta Platforms Ireland Ltd.</p>
        <h3>Deletion</h3>
        <p>You can delete your account from the profile screen in the app; your account, profile and dream records are deleted. If you think a record remains, or you cannot access your account, write to {MAIL}. Details: <a href="/en/data-deletion/noctavia">Data Deletion — Noctavia</a>.</p>
      </>,
    },

    zikirmatik: {
      pkg: <>iOS and Android · <code>com.kolabs.zikirmatik</code></>,
      body: <>
        <h3>Data collected</h3>
        <ul>
          <li><strong>Counter:</strong> Your dhikr counts, goals and counter profiles are kept on your device.</li>
          <li><strong>Account and social features:</strong> An account is used for Dhikr Chain, friends and the leaderboard; your account details, friends list, chain participation and leaderboard scores are held in Firebase.</li>
          <li><strong>Subscription:</strong> App Store / Google Play and RevenueCat. So it carries across devices, its status (active, expiry) is linked to your account in Firebase.</li>
          <li><strong>Analytics:</strong> Firebase Analytics and Crashlytics. FCM for notifications.</li>
        </ul>
        <h3>Ads and Meta measurement</h3>
        <ul>
          <li><strong>Ads:</strong> Google AdMob (banner and interstitial).</li>
          <li><strong>iOS:</strong> The tracking prompt (ATT) is shown once on first launch, after the notification prompt. The Meta SDK is started on every launch; <strong>the app sends Meta no events of its own</strong> — only what the SDK logs by itself (install, app launch; if automatic logging is on, store purchases with amount and currency). The IDFA is read only if you grant ATT.</li>
          <li><strong>Android:</strong> In the EEA, the UK and Switzerland the ad and measurement SDKs are <strong>not started</strong> until Google's consent form (UMP) is answered. The app sends Meta no custom events; the SDK's own events (install, launch, store purchase) and the advertising ID (AAID) are passed. Change your choice under <em>Settings → Ad Preferences</em>.</li>
          <li><strong>Never sent to Meta:</strong> your dhikr counts, counter profiles, account details, friends list, chain or leaderboard data.</li>
        </ul>
        <h3>Transfers</h3>
        <p>Account and leaderboard records, analytics and crash data in Google Firebase; subscription records at RevenueCat; Meta data at Meta Platforms Ireland Ltd.</p>
        <h3>Deletion</h3>
        <p>Account and data deletion steps: <a href="/en/data-deletion/zikirmatik">Data Deletion — Zikirmatik</a>. Deleting the app also removes the counters on your device.</p>
      </>,
    },

    ramazan: {
      pkg: <>iOS · <code>com.kolabs.vakit</code> · Android · <code>com.kolabs.imsakiye</code> (formerly Ramazan İmsakiyesi)</>,
      body: <>
        <p><strong>Vakit has no account, membership or sign-in.</strong> No name, email, phone number, contacts, health data, messages or photos are collected, and no profile identifying you is created.</p>
        <h3>Location and prayer times</h3>
        <ul>
          <li><strong>Location is optional:</strong> decline it and pick your city from the list; the app works the same.</li>
          <li><strong>Your raw coordinate never reaches us:</strong> it is turned into a country/province/district name by your device's own location service (Apple's <code>CLGeocoder</code> on iOS, Google location services and the device Geocoder on Android; that lookup is subject to the OS provider's privacy policy). Only the <strong>country/province/district name</strong> reaches our server, which returns Diyanet's place ID (<code>placeId</code>). Later queries carry only <code>placeId</code> + year/month. The qibla direction is computed on your device.</li>
          <li><strong>Diyanet:</strong> times come from the official service of the Turkish Directorate of Religious Affairs, via our own server (Firebase Functions); no personal data about you is passed to Diyanet. Monthly times are cached on your phone for offline use.</li>
          <li><strong>Prayer-time notifications</strong> are scheduled on your device from the downloaded timetable; no server is contacted.</li>
          <li><strong>Announcement notifications:</strong> an FCM token is obtained and the device is subscribed to a general topic for announcements sent to all users (releases, reminders, promotions). The token is not linked to any identity. Turn the app's notifications off in your device settings if you do not want them.</li>
        </ul>
        <h3>Analytics</h3>
        <ul>
          <li><strong>iOS:</strong> Firebase Analytics and Crashlytics. Events sent: onboarding completed, paywall viewed, plan selected, Premium purchase (amount and currency), notification-permission outcome, how the city was set (only "auto"/"manual" — not the city name) and ATT outcome. Which prayer you were notified for or when you used the qibla is never written to analytics.</li>
          <li><strong>Android:</strong> Firebase Analytics, Crashlytics and In-App Messaging. In addition to the above, <strong>the province/district you choose</strong> is attached to an analytics event and to crash reports, and changing an alarm setting and an alarm firing are recorded as analytics events. These go to Firebase only — <strong>never to ad networks or Meta</strong>.</li>
        </ul>
        <h3>Ads and Meta measurement</h3>
        <ul>
          <li><strong>Ads:</strong> Google AdMob (banner and interstitial); on Android, Unity Ads may also serve ads through AdMob mediation. In the EEA, the UK and Switzerland no ad request is made before Google's consent form (UMP) is answered.</li>
          <li><strong>iOS — tracking permission:</strong> the ATT prompt appears at most once, at the end of onboarding (after the consent form where it applies). Allow it and the IDFA is read; decline and it is not, and measurement falls back to SKAdNetwork and AEM. No feature depends on it.</li>
          <li><strong>iOS — Meta SDK:</strong> started at app launch; the first launch event is sent before the permission prompt (without an IDFA). Events: app launch (<code>fb_mobile_activate_app</code>), onboarding completed (<code>CompleteRegistration</code>), paywall viewed (<code>ViewContent</code> — where it was opened), plan selected (<code>InitiateCheckout</code> — the plan), purchase (<code>Purchase</code> and <code>Subscribe</code> — <strong>amount and currency</strong>) and permission signals (<code>vakit_notification_permission</code>, <code>vakit_att_permission</code>, <code>vakit_location_selected</code> — only granted or not / auto or manual).</li>
          <li><strong>Android — Meta SDK:</strong> started when Google's consent status allows ad requests (after the consent form is answered in the EEA, the UK and Switzerland; at launch elsewhere). Events: onboarding completed (<code>CompleteRegistration</code>), paywall viewed (<code>ViewContent</code> — where it was opened), plan selected (<code>InitiateCheckout</code> — the plan) and purchase (<code>Purchase</code> — <strong>amount, currency and plan</strong>); the SDK also logs install and launch by itself, and the advertising ID (AAID) and install referrer are passed. Changing your choice in the app's privacy options turns automatic event logging and advertising-ID collection off.</li>
          <li><strong>Never sent to Meta:</strong> your location, city, or prayer-time, notification and qibla usage.</li>
        </ul>
        <h3>Subscription</h3>
        <p>With no account, RevenueCat is used with an <strong>anonymous user ID</strong>; no name or email is sent. Only your subscription status and purchase history are held.</p>
        <div className="legal-table">
          <table>
            <thead><tr><th>Data</th><th>Purpose</th><th>Legal basis</th><th>Retention</th></tr></thead>
            <tbody>
              <tr><td><strong>Raw GPS coordinate</strong></td><td>Resolved on the device into a district name</td><td>Explicit consent (location)</td><td><strong>Never sent</strong> to our servers</td></tr>
              <tr><td>District name and <code>placeId</code></td><td>Fetching the correct times</td><td>Performance of a contract</td><td>On your phone; on Android also in Firebase analytics (up to 14 months)</td></tr>
              <tr><td>Monthly times cache</td><td>Working offline</td><td>Performance of a contract</td><td>On your phone; removed with the app</td></tr>
              <tr><td>Crash reports</td><td>Fixing errors</td><td>Legitimate interests</td><td>About 90 days in Crashlytics</td></tr>
              <tr><td>App instance ID, analytics events</td><td>Measuring the product and campaigns</td><td>Legitimate interests</td><td>Firebase Analytics — up to 14 months</td></tr>
              <tr><td>Meta events, advertising ID</td><td>Measuring Meta ads</td><td>Explicit consent (ATT / consent form); legitimate interests for aggregated measurement without an IDFA</td><td>Meta's retention periods</td></tr>
              <tr><td>FCM token</td><td>Announcements</td><td>Explicit consent (notifications)</td><td>Invalid once notifications are off</td></tr>
              <tr><td>Anonymous subscription ID</td><td>Unlocking Premium</td><td>Performance of a contract</td><td>For the life of the subscription</td></tr>
            </tbody>
          </table>
        </div>
        <h3>Deletion</h3>
        <p>There is no account to delete: your city, notification settings and times cache live <strong>only on your phone</strong>, and <strong>deleting the app deletes all of it</strong>. You can reset your advertising ID in your device settings and withdraw tracking permission on iOS.</p>
      </>,
    },

    kelimebul: {
      pkg: <>Android · <code>com.kolabs.kelimebul</code></>,
      body: <>
        <h3>Data collected</h3>
        <ul>
          <li><strong>Game progress:</strong> your levels and settings are kept on your device; the game plays offline.</li>
          <li><strong>Sign-in and rankings:</strong> when you sign in with your Google account or Google Play Games profile, your name, profile ID and progress/scores are held in Firebase (Authentication, Realtime Database), linked to your account.</li>
          <li><strong>Analytics:</strong> Firebase Analytics, Crashlytics and Remote Config. FCM for notifications.</li>
        </ul>
        <h3>Ads</h3>
        <p>Google AdMob shows banner, interstitial and rewarded ads (extra hints); your advertising ID (AAID) may be processed. Word Find has <strong>no Meta SDK</strong>.</p>
        <h3>Deletion</h3>
        <p>Deleting the app removes the progress on your device. To delete records linked to your account, write to {MAIL}. Details: <a href="/en/data-deletion/word-find">Data Deletion — Word Find</a>.</p>
      </>,
    },

    hesapvakti: {
      pkg: <>Android · <code>com.kolabs.hesapvakti</code></>,
      body: <>
        <p><strong>Bill Time uses no account, no analytics and no server.</strong> The game runs entirely on your device; taps, player count and results are sent nowhere.</p>
        <h3>Ads</h3>
        <p>Google AdMob shows ads; device information and your advertising ID (AAID) may be passed to Google for that. Bill Time has <strong>no Meta SDK</strong>.</p>
        <h3>Deletion</h3>
        <p>We hold no record about you; deleting the app is enough. You can reset your advertising ID in your device settings.</p>
      </>,
    },

    patisstray: {
      pkg: <>iOS and Android · <code>com.kolabs.patisstray</code></>,
      body: <>
        <p><strong>PatissTray is a closed business-to-business app.</strong> Its orders, running-account records, delivery proofs and accounts are the commercial data of the <strong>producer business</strong> using it; that business creates the accounts and decides who sees what. kolabs hosts the data on its behalf. For a request about your own account, ask that business first.</p>
        <h3>Data collected</h3>
        <ul>
          <li><strong>Account and role:</strong> your name, email, <strong>phone number</strong>, role (café · producer · driver) and business (Firebase Authentication, Firestore). There is no sign-up screen.</li>
          <li><strong>Business and delivery details:</strong> the café's trading name, <strong>delivery address and map coordinates</strong>, contact phone, <strong>tax number</strong>, price list and payment-term days.</li>
          <li><strong>Driver record:</strong> name, phone, <strong>vehicle plate</strong>, whether the account is active and whether location sharing is on.</li>
          <li><strong>Delivery performance summary (driver):</strong> for the current month, orders delivered/undelivered, on-time rate, routes completed, kilometres covered and average time per stop. Shown on the driver's own profile and in the producer's panel; <strong>it is the data of the producer as employer</strong> and kolabs does not use it for its own purposes. Derived only from completed trips.</li>
          <li><strong>Order and account records:</strong> order lines, amounts, delivery day and window, notes, status history, payment records and running-account movements.</li>
          <li><strong>Location (driver only):</strong> updated roughly every 90 seconds and shown to the producer only while a delivery trip is under way; <strong>deleted</strong> when the trip ends and never kept outside working hours. Declining the permission does not stop deliveries. The position at the moment of delivery may be attached to the delivery record.</li>
          <li><strong>Proof of delivery:</strong> the photo taken at delivery is stored in Firebase Storage with the order, together with the <strong>full name of the person who received it</strong> and the driver's note — write only what is needed to evidence the delivery. The app does not access your photo library.</li>
          <li><strong>Maps:</strong> the route map uses OpenStreetMap on Android and Apple MapKit on iOS; navigation is handed off to the phone's maps app.</li>
        </ul>
        <p>PatissTray has <strong>no ads, no usage analytics, no Meta SDK and no subscription infrastructure</strong>; its records are not used for advertising.</p>
        <h3>Deletion</h3>
        <p>Because the account belongs to a business relationship, ask the producer to close it first; you may also write to {MAIL}. Order, invoice and running-account records may be kept for commercial and legal retention periods. Details: <a href="/en/data-deletion/patisstray">Data Deletion — PatissTray</a>.</p>
        <h3>Age</h3>
        <p>Used only by <strong>adult staff</strong> for whom the producer has created an account.</p>
      </>,
    },
  },
};

TRANSLATIONS.tr.privacy = PRIVACY_TR;
TRANSLATIONS.en.privacy = PRIVACY_EN;
