/*
 * readability-v226.css — "Sitenin hiçbir yerinde okunamayan yazı kalmasın."
 *
 * NEDEN TEK DOSYA
 *   Okunmazlık bu sitede tek bir yanlış renkten doğmuyor. İKİ AYRI KATMAN
 *   ayrı özellikleri değiştiriyor: biri kartın zeminini koyulaştırıyor,
 *   diğeri yazıyı açık renkte bırakıyor. İkisi de kendi içinde tutarlı,
 *   ikisi de `!important`, dolayısıyla çakışma sayılmıyor — sonuç
 *   koyu-üstüne-koyu ya da açık-üstüne-açık. Düzeltmeyi o katmanların
 *   içine dağıtmak aynı tuzağı büyütür; hepsi burada, ölçülmüş değerle.
 *
 * NASIL ÖLÇÜLDÜ
 *   tests/mobile/readability.test.mjs her görünür yazı öğesinin ARDINDAKİ
 *   gerçek zemini (saydam katmanlar bindirilerek, degradeler ortalanarak)
 *   hesaplayıp WCAG kontrast oranını çıkarır. Aşağıdaki her kuralın
 *   yanındaki sayı o testin ölçtüğü DEĞERDİR, tahmin değil.
 *
 * NEYE DOKUNULMADI
 *   Yalnız yazı rengi — ve okunmazlığın kaynağı zeminse zemin — değişti.
 *   Yerleşim, boyut, yazı tipi, kenarlık, gölge, oyun kuralı, hiçbir
 *   davranış değişmedi. Renkler kendi aile tonunda kalır: gri-mavi yine
 *   gri-mavi, altın yine altın, yeşil yine yeşil; yalnız yeterince
 *   koyulaşır ya da açılır.
 *
 * SAYFA KAPSAMI
 *   Her blok o sayfaya özgü bir çıpayla (`body:has(#...)`) sınırlanır;
 *   böylece aynı sınıf adını kullanan başka bir oyun etkilenmez.
 *
 * PALET
 *   --oku-gri   : açık zeminde gri-mavi yardımcı yazı      (kontrast >= 5.0)
 *   --oku-altin : açık zeminde altın/kehribar yazı          (kontrast >= 5.0)
 *   --oku-acik  : koyu zeminde açık yazı                    (kontrast >= 9.0)
 */
:root {
  --oku-gri: #33475c;
  --oku-altin: #63430b;
  --oku-acik: #eef4ff;
  --oku-acik-ikincil: #bccbdd;
}

/* =====================================================================
   HARF AVI
   ===================================================================== */

/*
 * Oyunun ADI üst çubukta görünmüyordu.
 *
 * Marka yazısı açık zeminli bir başlık için lacivert (#143063) seçilmiş;
 * sonraki atmosfer katmanı çubuğu koyulaştırınca lacivert-üstüne-lacivert
 * kaldı. Ölçüm: 1.14 (masaüstü) / 1.16 (mobil) — eşik 3.0. Yani başlık
 * pratikte görünmez durumdaydı.
 */
body:has(#huntBrandTitle) .topbar #huntBrandTitle {
  color: var(--oku-acik) !important;
  -webkit-text-fill-color: var(--oku-acik) !important;
}

/* Alt başlık "Harf Avı": 2.91 → koyu çubukta açık ikincil ton. */
body:has(#huntBrandTitle) .topbar #huntBrandSub {
  color: var(--oku-acik-ikincil) !important;
  -webkit-text-fill-color: var(--oku-acik-ikincil) !important;
}

/*
 * "Ana Menü" düğmesi: beyaz yazı, neredeyse saydam (%7,5) beyaz zemin ve
 * ARDINDA açık renkli sayfa → 1.41. Burada doğru düzeltme yazıyı
 * koyulaştırmak değil (düğme koyu sayfalarda da kullanılıyor), zemini
 * gerçekten koyu yapmaktır. Cam görünümü korunur, yalnız camın ardı koyar.
 */
body:has(#huntBrandTitle) .v65-inline-home .v65-home-btn {
  background: rgba(9, 32, 52, .78) !important;
  border-color: rgba(255, 255, 255, .22) !important;
}

/* Açık kartlar üzerindeki gri-mavi yardımcı yazılar: 3.64 – 4.47. */
body:has(#huntBrandTitle) .hero-text,
body:has(#huntBrandTitle) #singleModeBtn small,
body:has(#huntBrandTitle) #multiModeBtn small,
body:has(#huntBrandTitle) .settings .field label,
body:has(#huntBrandTitle) .mini-board .info-grid .info span,
body:has(#huntBrandTitle) .footer-note,
body:has(#huntBrandTitle) .footer-note b {
  color: var(--oku-gri) !important;
}

/* =====================================================================
   SON HARF
   ===================================================================== */

/*
 * Dil seçim kapısı sayfanın İLK gördüğü ekran ve başlığı okunmuyordu:
 * koyu panelin (rgba(10,22,39,.92)) üstünde lacivert yazı → 1.28 / 1.36.
 */
.word-language-gate .word-language-panel :is(h1, h2) {
  color: var(--oku-acik) !important;
  -webkit-text-fill-color: var(--oku-acik) !important;
}

/*
 * Süre sayacı: altın degrade zeminin üstünde BEYAZ yazı → 1.98 (eşik 3.0).
 * Zemin oyunun kimliği, o kalır; yazı koyulaşır.
 */
body.son-harf-page .sh-card-head #timer,
body.son-harf-page #timer {
  color: #14263c !important;
  -webkit-text-fill-color: #14263c !important;
}

/*
 * BURADAN İTİBAREN ZEMİN KIRILIMA GÖRE DEĞİŞİYOR.
 *
 * Son Harf'in başlık şeridi ve kelime kutusu mobilde (mobil atmosfer
 * katmanı, max-width:820px) KOYU, masaüstünde AÇIK. Tek bir renk iki
 * kırılımda birden okunmuyor: mobilde doğru olan masaüstünde kayboluyor.
 * Bu yüzden aşağıdaki üç öğe kırılıma göre ayrı ayrı ayarlanır.
 *
 * Değerler tests/mobile/readability.test.mjs ile ÖLÇÜLDÜ; ayrıca yazıyı
 * saydamlaştırıp o bölgenin ekran görüntüsünü alan bağımsız bir piksel
 * örneklemesiyle doğrulandı (iki yöntem aynı sonucu verdi).
 */

/* "🎮 OYUN ALANI" — masaüstünde krem şerit: koyu altın. */
body.son-harf-page .sh-card-head .sh-kicker {
  color: var(--oku-altin) !important;
}

/* "Mevcut kelime" — masaüstünde koyu kutu: açık yazı. */
body.son-harf-page .wordbox small {
  color: #cfe0ea !important;
}

/* "Son harf" kutusu iki kırılımda da koyu: her zaman açık yazı. */
body.son-harf-page .sh-prefix-box small {
  color: #cfe0ea !important;
}

@media (max-width: 820px), (pointer: coarse) {
  /* Mobilde şerit koyulaşır: etiket açık altına döner (ölçüm 9.77). */
  body.son-harf-page .sh-card-head .sh-kicker {
    color: #f0d49a !important;
  }

  /* Mobilde kelime kutusu krem olur: yazı koyulaşır (ölçüm 1.27 idi). */
  body.son-harf-page .wordbox small {
    color: var(--oku-gri) !important;
  }
}

/* Akış oku "›››": krem panelde açık altın → 1.58 / 2.07. */
body.son-harf-page .sh-flow {
  color: #8a5c10 !important;
}

/* Krem panellerdeki gri-mavi yardımcı yazılar: 2.77 – 4.49. */
body.son-harf-page .sh-hero .eyebrow,
body.son-harf-page .sh-hero .sub,
body.son-harf-page .sh-input-label,
body.son-harf-page .sh-settings-grid label span,
body.son-harf-page .sh-online-grid label span,
body.son-harf-page .sh-used-empty,
body.son-harf-page .sh-used-empty small,
body.son-harf-page .players .player small {
  color: var(--oku-gri) !important;
}

/* Eyebrow kendi altın kimliğini korur, yalnız koyulaşır. */
body.son-harf-page .sh-hero .eyebrow {
  color: var(--oku-altin) !important;
}

/* =====================================================================
   ORTAK — kelime oyunlarındaki dil değiştirme düğmesi
   ===================================================================== */

/* Beyaz zeminde açık gri eylem yazısı: 4.47. */
.word-language-switch .word-language-switch-action {
  color: var(--oku-gri) !important;
}

/* =====================================================================
   KARİYER (FUTBOLCU) KÖPRÜSÜ
   ===================================================================== */

/*
 * Dil düğmesindeki "Türkçe" / "English": koyu yeşil zeminde koyu yeşil
 * yazı → 1.24. İki düğmede de aynı; seçili olan beyaz, diğeri açık yeşil.
 */
#root #kkLangSwitch button span {
  color: #cfe8db !important;
}

#root #kkLangSwitch button.active span {
  color: #ffffff !important;
}

/* Oyun türü seçicisindeki yeşil ve gri yazılar: 3.66 – 4.38. */
#root .game-type-picker__copy span,
#root .game-type-card__body > span,
#root .game-type-card__action,
#root .game-type-card__action b {
  color: #14603f !important;
}

#root .game-type-picker__copy p {
  color: #33475c !important;
}

/* =====================================================================
   SANAL LİG — TAHMİN SİMÜLATÖRÜ
   ===================================================================== */

/*
 * Bu sayfada aynı gri-mavi ton (rgb(102,125,146) ve komşuları) hem KOYU
 * hem AÇIK panellerde kullanılıyor; iki uçta da kontrast düşüyordu
 * (1.17'ye kadar). Her öğe bulunduğu panele göre ayrı ayrı ayarlanır.
 */

/*
 * KIRILIM UYARISI
 *   Bu sayfa mobilde tamamen ayrı bir kabukla çalışıyor: `mobile-app-site`
 *   katmanı `body.wos-mobile-app` sınıfını yazıp panelleri KOYU yapıyor.
 *   Masaüstünde aynı paneller AÇIK. Yani aynı öğe iki kırılımda zıt
 *   yönlerde düzeltme istiyor; tek renk ikisini birden çözmüyor.
 */

/* --- Açık/krem paneller üzerindeki gri-mavi yardımcı yazı: 2.51 – 4.16 --- */
body:has(#slip) #stakeFieldLabel,
body:has(#slip) .wcHubLegend span,
body:has(#slip) .wcScoreSection,
body:has(#slip) .wcGroupRow > span,
body:has(#slip) .normalSlipCompactEmpty {
  color: var(--oku-gri) !important;
}

/*
 * V286 — YUKARIDAKİ LİSTEDEN İKİSİ MOBİLDE TERS DÖNÜYOR.
 *
 * `.wcGroupRow > span` mobilde de BEYAZ grup kartının içinde duruyor
 * (ölçüm 7.90) — ona dokunulmaz. Ama diğer ikisi mobil kabukta koyu
 * panele oturuyor:
 *
 *   .wcHubLegend span   1.62   ("İlk 2 doğrudan çıkar · En iyi 8 üçüncü")
 *   .wcScoreSection     1.69   (canlı listedeki grup adı)
 *
 * Kullanıcı ilkini iki kez bildirdi. V286'da önce BOYUT düzeltilmişti
 * (9 -> 12 piksel); renk yukarıdaki kuralda kaldığı için hâlâ
 * okunmuyordu.
 *
 * SEÇİCİ NEDEN BÖYLE: yukarıdaki kural `:has(#slip)` taşıyor ve `:has()`
 * en spesifik argümanının ağırlığını alıyor, yani bir KİMLİK. Oyun
 * klasöründeki `mobile-app-v282.css` kimliksiz seçicilerle bunu
 * yenemiyordu; düzeltme bu yüzden aynı ağırlığı taşıyan bu dosyada.
 */
body.wos-mobile-app:has(#slip) .wcHubLegend,
body.wos-mobile-app:has(#slip) .wcHubLegend span,
body.wos-mobile-app:has(#slip) .wcScoreSection {
  color: #cfe1f2 !important;
}

/*
 * V282 — KIRILIMA GÖRE AYRILANLAR.
 *
 * Aşağıdaki beş öğe masaüstünde AÇIK panelde duruyor (ölçüm 6.36 – 9.38,
 * sorun yok) ama mobil kabukta KOYU panele oturuyor. Tek renk ikisini
 * birden çözmediği için yukarıdaki uyarı gereği ayrıldılar. Mobil ölçümler
 * (390x844, kupon ve canlı görünümü, pikselle doğrulanmış):
 *
 *   #betHelp        1.82   #riskText   1.68   #possibleText  1.64
 *   .v62Versus      1.81   #watchSubtitle 1.66
 *
 * `#stakeFieldLabel` ve `#stakeMinimumHint` mobilde de KREM kart üzerinde
 * (8.53 / 5.22) — onlar yukarıda, açık zemin listesinde KALDI.
 */
body:has(#slip):not(.wos-mobile-app) #watchSubtitle,
body:has(#slip):not(.wos-mobile-app) #liveHint,
body:has(#slip):not(.wos-mobile-app) #betHelp,
body:has(#slip):not(.wos-mobile-app) #riskText,
body:has(#slip):not(.wos-mobile-app) .v62Versus {
  color: var(--oku-gri) !important;
}

body.wos-mobile-app:has(#slip) #watchSubtitle,
body.wos-mobile-app:has(#slip) #liveHint,
body.wos-mobile-app:has(#slip) #betHelp,
body.wos-mobile-app:has(#slip) #riskText,
body.wos-mobile-app:has(#slip) .v62Versus {
  color: #b3c7d8 !important;
}

/* Masaüstünde açık zeminde duranlar. */
body:has(#slip):not(.wos-mobile-app) #leagueLabel,
body:has(#slip):not(.wos-mobile-app) #slipCount,
body:has(#slip):not(.wos-mobile-app) #singleUsernameStatus {
  color: var(--oku-gri) !important;
}

/*
 * Mobil kabukta aynı öğeler koyu zemine oturuyor (ölçüm: 1.84'e kadar
 * düşüyordu). Orada açık yazı gerekir.
 */
body.wos-mobile-app #leagueLabel,
body.wos-mobile-app #slipCount,
body.wos-mobile-app #singleUsernameStatus {
  color: #b9c9dc !important;
}

/* --- Her iki kırılımda da KOYU zeminde duranlar: 1.36 – 2.85 --- */
body:has(#slip) #clock span,
body:has(#slip) #activePlayerTag .playerNameRoster,
body:has(#slip) .v50LeagueChevron {
  color: #b9c9dc !important;
}

/*
 * "0 oyuncu", "0 seçim" ve "Grup Aşaması" rozetleri koyu panel üstünde
 * duruyor (masaüstünde de: ölçüm 1.01). Altın kimlik korunur, ton açılır.
 */
body:has(#slip) #activePlayerTag b,
body:has(#slip) .cardTitle .tag {
  color: #f7e2b8 !important;
}

/*
 * Aynı `.tag` sınıfını taşıyan hafta özeti rozeti ise AÇIK zeminde duruyor
 * (ölçüm 1.13). Sınıf ortak, zemin farklı: bu tek öğe koyu altına döner.
 */
body:has(#slip) #weekSummaryTag {
  color: var(--oku-altin) !important;
}

/* Mobil kabukta kupon sayacı da koyu zemine geçer. */
body.wos-mobile-app #slipCount {
  color: #f0d49a !important;
}

/* "Minimum kupon bedeli" uyarısı: turuncu-altın beyaz üstünde → 1.63. */
body:has(#slip) #stakeMinimumHint {
  color: #8a5a06 !important;
}

/* Muhtemel dönüş satırı: yeşil krem üstünde → 4.10.
   Mobil kabukta aynı satır koyu panele oturuyor (ölçüm 1.64), bu yüzden
   kırılıma göre ayrıldı — bkz. yukarıdaki V282 notu. */
body:has(#slip):not(.wos-mobile-app) #possibleText,
body:has(#slip):not(.wos-mobile-app) #possibleText b {
  color: #0a4a41 !important;
}

body.wos-mobile-app:has(#slip) #possibleText,
body.wos-mobile-app:has(#slip) #possibleText b {
  color: #8ef0c2 !important;
}

/* Kupon rozeti: koyu sarı açık sarı üstünde → 4.44. */
body:has(#slip) #couponTag {
  color: #6b5210 !important;
}

/* "Hazır İptal" düğmesi: beyaz kırmızı üstünde → 4.34. Zemin koyulaşır. */
body:has(#slip) #cancelReadyBtn {
  background: #b8232d !important;
}

/* =====================================================================
   AYNI FREKANS
   ===================================================================== */

/*
 * Takım amblemindeki "A" / "B" harfi: renkli amblem zemininin üstünde
 * koyu mavi → 1.43 / 1.71. Amblem rengi takım kimliği, o kalır.
 */
body:has(#localTeamSetup) .team-emblem {
  color: #ffffff !important;
  -webkit-text-fill-color: #ffffff !important;
}

/* Koyu cam panelde gri yazı: 2.05. */
body:has(#localTeamSetup) .hero-stats article span {
  color: #b9c9d2 !important;
}

/*
 * Kurulum panelindeki alan etiketleri açık camın üstünde neredeyse beyaz
 * → 1.64. Bunlar formun tek yön göstergesi; koyulaştırılır.
 */
body:has(#localTeamSetup) .lobby-panel .step-label,
body:has(#localTeamSetup) #localSetup label > span,
body:has(#localTeamSetup) .team-setup label > span,
body:has(#localTeamSetup) #localTeamCountField > span {
  color: var(--oku-gri) !important;
}

body:has(#localTeamSetup) #localFormatHelp,
body:has(#localTeamSetup) .setting-help {
  color: #33475c !important;
}

/* =====================================================================
   PENALTI LİGİ
   ===================================================================== */

/*
 * Mod kartının açıklaması: ALTIN zeminde açık mavi yazı → 1.42.
 *
 * Düğmenin kendi biçimi `background: linear-gradient(#efd693, #c9983d)` ve
 * başlık yazısı doğru şekilde lacivert (#0a2741). Yalnız açıklama satırı,
 * düğmenin eskiden lacivert olduğu dönemden kalma açık mavi (#bfe4f3)
 * değerinde bırakılmış. Başlıkla aynı aileye çekilir; hiyerarşi için bir
 * tık açık kalır.
 *
 * `.secondary` (çok oyunculu) düğmesi hâlâ lacivert zeminli olduğu için
 * dışarıda tutulur — orada açık mavi zaten doğru renktir.
 */
#plModeButtons button:not(.secondary) .v67ModeHint {
  color: #1d3c5c !important;
}

/* =====================================================================
   V282 — TARAMADA KALAN SON ÜÇ BULGU
   ===================================================================== */

/*
 * HARF AVI / SON HARF — rekabetçi giriş düğmesindeki "ELO" etiketi.
 *
 * Ölçüm: rgb(82,105,131) üzerine rgb(20,47,93) → 2.33 (mobil) / 2.36
 * (masaüstü), üstelik 9 piksel.
 *
 * Sebep yine iki katmanın ayrı özellik değiştirmesi: `word-ranked-v269`
 * rozeti KOYU lacivert bir kutu yapıyor (#142f5d) ve yazısını doğru
 * şekilde #bcd8ff veriyor. Ama `word-ranked-v270`
 *   #menuScreen .mode-grid.has-word-ranked-v270 .mode-btn small{color:#526983}
 * kuralı AÇIK karttaki açıklama satırları için yazılmış; rozet de aynı
 * düğmenin içinde bir `small` olduğu için ona da çarpıyor.
 *
 * Rozet kuralın dışına alınır; açık karttaki `small` yazıları aynen kalır.
 */
/* Seçici, ezdiği kuralla AYNI sınıf sayısını taşırsa yükleme sırası karar
   verir ve `word-ranked-v270` bu dosyadan SONRA geliyor. Bu yüzden aynı
   bağlama bir sınıf daha eklenerek öncelik kesinleştirildi. */
#menuScreen .mode-grid.has-word-ranked-v270 .mode-btn .wr-entry-badge small,
#menuScreen .mode-grid .word-ranked-entry .wr-entry-badge small,
#menuScreen .word-ranked-entry .wr-entry-badge small {
  color: #dbe9ff !important;
  font-size: 10.5px !important;
}

/*
 * SANAL LİG (masaüstü) — "Hazır" düğmesi.
 *
 * Ölçüm: beyaz yazı rgb(133,196,168) açık yeşil zeminde → 2.01.
 * Mobil kabukta aynı düğme koyu yeşil bir degrade taşıdığı için orada
 * sorun yok; düzeltme yalnız masaüstü kırılımına verilir.
 *
 * Zemin koyulaştırılır, yazı beyaz kalır: düğmenin YEŞİL kimliği ve
 * yerleşimi değişmez.
 */
body:has(#slip):not(.wos-mobile-app) #readyBtn {
  background: linear-gradient(180deg, #1f9463, #12724a) !important;
  border-color: #0e5c3b !important;
  color: #ffffff !important;
}

/*
 * V284 — "Detaylı Oranlar" katmanındaki pazar başlıkları.
 *
 * Ölçüm: rgb(185,206,222) üzerine rgb(205,209,210) → 1.05. Yani
 * "Maç Sonucu", "Maç Skoru", "Toplam Gol Alt/Üst" gibi ANA BAHİS
 * BAŞLIKLARI pratikte görünmüyordu.
 *
 * Sebep V282'de eklenen kendi kuralım: `.marketGroupTitle` mobil kupon
 * kartında KOYU zemin üzerinde duruyor ve orada açık griye çekilmişti.
 * Ama aynı sınıf, açık zeminli `.oddsDetailBody` katmanında da var.
 * Kırılım yerine YÜZEY farkı: ikisi ayrıldı.
 */
body.wos-mobile-app .oddsDetailBody .marketGroupTitle,
body.wos-mobile-app .oddsDetailCard .marketGroupTitle {
  color: #1d3c5c !important;
}

/* Aynı katmandaki açıklama satırları da açık zeminde. */
body.wos-mobile-app .oddsDetailBody .v64AdvanceHint,
body.wos-mobile-app .oddsDetailCard .v64AdvanceHint,
body.wos-mobile-app .oddsDetailBody .marketGroup > p {
  color: #33475c !important;
}
