/* css/giris-kapisi.css — A3 katmanı: üst künye şeridi, açılır menünün
 * görünürlük mekaniği, Canlı Yayın butonu ve giriş kapısı modalı.
 *
 * NEDEN AYRI DOSYA: çekirdek (css/cekirdek.css) ve anasayfa (css/anasayfa.css)
 * başka ajanların; aynı satırda buluşmamak için A3'ün eklediği her kural
 * burada duruyor. Çekirdekten SONRA yükleniyor (zy_head_kaynaklar), yani
 * oradaki tanımları bilinçli olarak ezebiliyor.
 *
 * RENK KURALI (şartname §1): ham hex yok. Yalnız var(--token) ve
 * color-mix(in srgb, …). Dosyadaki her renk yedi temada da taşınır.
 *
 * ÇEKİRDEĞE NOT (B3): cekirdek.css'teki "HİÇBİR ŞEY KENDİLİĞİNDEN AÇILMAZ:
 * :hover ile açılan panel yok" yorumu ARTIK GEÇERLİ DEĞİL — şartname §5
 * panelin JS'siz `:hover`/`:focus-within` ile açılmasını istiyor ve mekanik
 * aşağıya taşındı. O yorum bloğu güncellenmeli.
 */

/* ==========================================================================
   1. Üst künye şeridi (şartname §4.0) — .zy-ust
   Barın ÜSTÜNDE, sayfayla birlikte kayar (sticky olan bar'dır). Solda
   telefon/e-posta, sağda Giriş · Kayıt Ol.
   ========================================================================== */
.zy-ust {
  background: var(--murekkep);
  color: var(--yuzey);
}
.zy-ust-ic {
  max-width: var(--kap); margin: 0 auto; padding: 4px var(--kap-bosluk);
  min-height: 36px; display: flex; flex-wrap: wrap; align-items: center;
  justify-content: space-between; gap: 2px 18px;
  font-size: 13px; line-height: 1.4;
}
.zy-ust-kunye, .zy-ust-hesap {
  display: flex; flex-wrap: wrap; align-items: center; gap: 2px 14px; min-width: 0;
}
/* min-height 24: WCAG 2.5.8 dokunma hedefi. 13px satır tek başına 18px kalır. */
.zy-ust a {
  display: inline-flex; align-items: center; gap: 6px;
  min-height: 24px; padding: 2px 4px; border-radius: 6px;
  color: var(--yuzey); text-decoration: none;
}
.zy-ust a:hover, .zy-ust a:focus-visible { text-decoration: underline; text-underline-offset: 3px; }
.zy-ust a > span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.zy-ust svg { flex: none; width: 16px; height: 16px; }
.zy-ust-ayrac { color: color-mix(in srgb, var(--yuzey) 60%, var(--murekkep)); }

/* --- Sosyal ağ bağlantıları (şeridin sağ ucu) ---
   Şerit tek satır: künye sola, sosyal sağa yaslanır. Ortada boşluk kalırsa
   `justify-content: space-between` ikisini uçlara iter (zaten .zy-ust-ic'te).

   İKON BAĞLANTILARDA ALT ÇİZGİ YOK: .zy-ust a kuralı hover'da underline
   veriyor ama içinde metin olmayan bir bağlantıda alt çizgi ikonun altında
   kopuk bir tire gibi görünür. Yerine yumuşak bir zemin veriliyor. */
.zy-ust-sosyal {
  display: flex; align-items: center; gap: 2px 6px; flex-wrap: wrap; min-width: 0;
}
/* Etiket 900px altında düşer: dar şeritte "Bizi takip edin" künyeyi sıkıştırır,
   ikonlar zaten kendi başlarına anlaşılır (her birinde aria-label + title var). */
.zy-ust-sosyal-et {
  color: color-mix(in srgb, var(--yuzey) 82%, var(--murekkep));
  margin-right: 2px; white-space: nowrap;
}
@media (max-width: 899px) { .zy-ust-sosyal-et { display: none; } }

/* 24×24 dokunma hedefi (WCAG 2.5.8): 16px ikon + 4px iç boşluk. */
.zy-ust a.zy-sosyal-bag {
  min-width: 24px; min-height: 24px; padding: 4px;
  justify-content: center; border-radius: 6px;
  transition: background-color .15s ease, transform .15s ease;
}
.zy-ust a.zy-sosyal-bag:hover,
.zy-ust a.zy-sosyal-bag:focus-visible {
  text-decoration: none;
  background: color-mix(in srgb, var(--yuzey) 18%, transparent);
}
@media (prefers-reduced-motion: no-preference) {
  .zy-ust a.zy-sosyal-bag:hover { transform: translateY(-1px); }
}
/* <768px'te gizlenir (§4.0): dar ekranda künye zaten altbilgide ve
   iletisim.php'de duruyor, tepede iki satır yer kaplardı. */
@media (max-width: 767px) { .zy-ust { display: none; } }

/* ==========================================================================
   2. Masaüstü açılır panelinin görünürlüğü (şartname §5)
   Panel JS OLMADAN açılır: içindeki bir öğe odak alınca (:focus-within).
   Betik yalnız tıklama kilidini ([data-acik]) ve Esc'i ([data-kapali]) ekler.

   :hover ile AÇILMIYOR (7 Eylül 2026, orkestratör kararı). A3 bunu şartname
   §5'e dayanarak eklemiş ve kendi raporunda "en zayıf kararım" diye
   bildirmişti: fare "Akademiler" kelimesinin üstünden geçerken 680px'lik
   panel hero'nun üstünü örtüyor ve cekirdek.css'te gerekçesi yazılı bir
   kararı bozuyordu. Kayıp yok: fareyle tıklamak düğmeye odak verir,
   :focus-within panelı JS'siz de açar.
   ========================================================================== */
.zy-acilir-panel {
  /* visibility (display değil): panel `position: fixed`, yani gizliyken de
     yer kaplamıyor; visibility ile hem ekrandan hem SEKME SIRASINDAN çıkıyor,
     üstelik geçişi (transition) canlandırılabiliyor. */
  visibility: hidden; opacity: 0;
  transition: opacity .14s ease-out, visibility 0s linear .14s;
}
.zy-acilir:focus-within > .zy-acilir-panel,
.zy-acilir[data-acik] > .zy-acilir-panel {
  visibility: visible; opacity: 1;
  transition-delay: 0s;
}
/* Esc ile kapatıldı: odak hâlâ kutunun içinde olsa bile panel kapalı kalır.
   Sıra ÖNEMLİ — aynı özgüllükteki üstteki kuralı ezmek için sonra geliyor. */
.zy-acilir[data-kapali] > .zy-acilir-panel { visibility: hidden; opacity: 0; transition-delay: 0s; }

@media (prefers-reduced-motion: reduce) {
  .zy-acilir-panel { transition: none; }
}

/* Açıcı artık <summary> değil <button>: tarayıcının varsayılan kenarlığını,
   dolgusunu ve yazı tipini sıfırla; ölçüler çekirdekteki .zy-acilir-dug'dan. */
.zy-acilir-dug {
  align-self: center; border: 0; padding: 0; margin: 0; font: inherit;
  -webkit-appearance: none; appearance: none;
}
.zy-acilir-dug svg { transition: transform .14s ease-out; }
.zy-acilir:focus-within > .zy-acilir-dug,
.zy-acilir-dug[aria-expanded="true"] { background: var(--yuzey-2); color: var(--murekkep); }
.zy-acilir:focus-within > .zy-acilir-dug svg,
.zy-acilir-dug[aria-expanded="true"] svg { transform: rotate(180deg); }
.zy-acilir[data-kapali] > .zy-acilir-dug svg { transform: none; }
@media (prefers-reduced-motion: reduce) { .zy-acilir-dug svg { transition: none; } }

/* Dar panel: "Yayınlarımız"ın altına inen iki satır (Makaleler, Mağaza).
   Akademi ağacının 680px'lik ortalanmış paneli iki bağlantı için devasa
   kalırdı; bu varyant öğenin altına, kendi genişliğinde açılır. */
.zy-acilir-panel--dar {
  position: absolute; top: 100%; left: 50%; transform: translateX(-50%);
  width: max-content; min-width: 190px; max-width: min(280px, calc(100vw - 32px));
  padding: 10px;
}
.zy-acilir-panel--dar .zy-okul-liste { grid-template-columns: 1fr; margin: 0; }

/* Gruplanmamış okulların "Diğer" başlığı — bağlantı değil, düz metin. */
.zy-akademi-bas--duz { color: var(--murekkep-2); cursor: default; }

/* ==========================================================================
   3. Canlı Yayın butonu (şartname §5) — şeridin tek vurgu renkli öğesi
   Yazı DAİMA var(--murekkep): yedi paketin `vurgu` değerinin hepsi açık
   turuncu/altın tondur (bkz. panel/inc/tema.php TEMA_PAKETLER) ve üzerlerinde
   beyaz yazı okunmaz; koyu mürekkep hepsinde 5:1'in üstünde kalıyor.
   ========================================================================== */
.zy-nav a.zy-canli {
  align-self: center; min-height: 34px; padding: 0 14px; border-radius: 10px;
  background: var(--vurgu); color: var(--murekkep);
  font-weight: 600; transition: background-color .15s ease-out;
}
/* Hover AÇARAK yapılıyor (koyulaştırarak değil): mürekkep karıştırmak zemini
   koyultup üstündeki mürekkep yazının kontrastını 4.5'in altına düşürüyordu. */
.zy-nav a.zy-canli:hover { background: color-mix(in srgb, var(--vurgu) 85%, var(--yuzey)); color: var(--murekkep); }
/* Aktif sayfa rayı butonun altında ikinci bir çizgi olarak durmasın. */
.zy-nav a.zy-canli.on::after { content: none; }
@media (prefers-reduced-motion: reduce) { .zy-nav a.zy-canli { transition: none; } }

/* ==========================================================================
   4. Giriş kapısı modalı (şartname §6) — .gk
   ========================================================================== */
.gk {
  margin: auto; padding: 0; border: 0; border-radius: 16px;
  width: min(440px, calc(100vw - 32px)); max-width: 100%;
  background: var(--yuzey); color: var(--murekkep);
  box-shadow: 0 24px 60px color-mix(in srgb, var(--murekkep) 26%, transparent);
}
.gk::backdrop { background: color-mix(in srgb, var(--murekkep) 55%, transparent); }
.gk-ic { padding: 26px 24px 20px; }
.gk-ikon {
  display: inline-flex; align-items: center; justify-content: center;
  width: 44px; height: 44px; border-radius: 12px;
  background: var(--birincil-acik); color: var(--birincil-koyu);
}
.gk-baslik { margin: 14px 0 8px; font-size: 19px; line-height: 1.3; }
.gk-metin { margin: 0 0 18px; font-size: 14px; line-height: 1.55; color: var(--murekkep-2); }
.gk-dugmeler { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; }
.gk-btn {
  display: inline-flex; align-items: center; justify-content: center;
  min-height: 44px; padding: 0 18px; border-radius: 10px;
  border: 1px solid var(--cizgi); background: var(--yuzey); color: var(--murekkep);
  font-size: 14px; font-weight: 600; text-decoration: none;
}
.gk-btn:hover { background: var(--yuzey-2); }
/* Dolu düğme `birincil-koyu` (birincil DEĞİL): beyaz yazının kontrastı
   "Orman" paketinde birincil üstünde 4,33'e düşüyor, koyusunda 5,9 kalıyor. */
.gk-btn--dolu { background: var(--birincil-koyu); border-color: var(--birincil-koyu); color: var(--yuzey); }
.gk-btn--dolu:hover { background: color-mix(in srgb, var(--birincil-koyu) 88%, var(--murekkep)); color: var(--yuzey); }
.gk-vazgec {
  min-height: 44px; padding: 0 12px; margin-left: auto;
  border: 0; border-radius: 10px; background: none; color: var(--murekkep-2);
  font-family: inherit; font-size: 14px; cursor: pointer;
}
.gk-vazgec:hover { background: var(--yuzey-2); color: var(--murekkep); }
