/* ═══════════════════════════════════════════════════════════════════════════
   BusTop — MASAÜSTÜ SOL SIDEBAR SABİTLEME
   ═══════════════════════════════════════════════════════════════════════════

   KÖK NEDEN (gerçek tarayıcı ölçümüyle kanıtlandı, 1280×720, Vitrin sayfası
   12.665px yükseklik):

     scrollY=0     → .ig-sidebar üst kenarı    42px
     scrollY=500   → üst kenar               -458px
     scrollY=3000  → üst kenar              -2958px
     scrollY=8000  → üst kenar              -7958px

   Yani sidebar sayfayla BİREBİR kayıyor; `style.css:5326`'daki
   `position: sticky; top: 0` TAMAMEN ETKİSİZ.

   Sebep: `html, body { overflow-x: hidden }`
     · assets/css/bustop-responsive-pro.css:18
     · assets/css/bustop-v224-release.css:4   (!important ile)

   CSS spesifikasyonuna göre bir eksende `overflow` `visible` dışında bir değer
   alırsa DİĞER eksen `auto`'ya hesaplanır. Ölçümle doğrulandı: `html` ve `body`
   üzerinde `overflow-x: hidden`, `overflow-y: auto`. Böylece `html`/`body` bir
   KAYDIRMA KONTEYNERİNE dönüşüyor; `position: sticky` elemanın referans aldığı
   "scrollport" artık viewport değil bu konteyner oluyor. Sticky'nin kabı
   (`.app-shell`) da aynı konteynerin içinde ve onunla birlikte kaydığı için
   sticky'ye hiç hareket aralığı kalmıyor — eleman `position: relative` gibi
   davranıyor.

   `overflow-x: hidden` KALDIRILMADI: yatay taşmayı engellemek için bilinçli
   konmuş (mobilde yan kaydırmayı önlüyor) ve `!important` ile korunuyor.
   Kaldırmak mobil düzende regresyon riski taşır.

   ÇÖZÜM: masaüstünde sidebar `position: fixed`. `fixed`, sticky'nin aksine
   scrollport'a değil VIEWPORT'a bağlanır, dolayısıyla `overflow-x: hidden`
   bunu etkilemez. `position: fixed`'i bozabilecek ata (transform / filter /
   perspective / contain) olup olmadığı da ölçüldü: `.app-shell` → `body` →
   `html` zincirinde HİÇBİRİ yok.

   `fixed` elemanı akıştan çıkardığı için içerik kolonu 240px'lik yerini
   kaybeder; bu yüzden `.app-shell`'e sidebar genişliği kadar `padding-left`
   veriliyor (her breakpoint'te sidebar'ın GERÇEK genişliğiyle aynı değer).

   YÜKLEME SIRASI: bu dosya layout.php'de EN SON yükleniyor; `!important`
   savaşına girmeden style.css ve v224 kurallarını geçiyor.

   MOBİL DOKUNULMADI: tüm kurallar `@media (min-width: 769px)` içinde.
   768px altında sidebar `display: none` + `.ig-sidebar.mobile-open` drawer'ı
   aynen çalışmaya devam ediyor.
   ═══════════════════════════════════════════════════════════════════════════ */

@media (min-width: 769px) {

  /* ── Sabit sidebar ────────────────────────────────────────────────────────
     top/bottom birlikte verildiği için yükseklik TÜRETİLİYOR: sidebar her
     zaman fiziksel viewport'un dibine kadar uzuyor. `height: 100vh` yerine bu
     yol seçildi çünkü 100vh mobil tarayıcı adres çubuğu ve masaüstünde yatay
     kaydırma çubuğu durumlarında viewport'tan taşabiliyor (ölçümde scrollY=0'da
     42px taşıyordu ve "Çıkış" düğmesi y=793'te, 720px'lik viewport'un ALTINDA
     kalıyordu — yani erişilemiyordu).                                        */
  .ig-sidebar {
    position: fixed;
    top: 0;
    bottom: 0;
    left: 0;
    height: auto;          /* top+bottom yüksekliği belirliyor */
    max-height: none;
    /* Kendi içeriği taşarsa sidebar KENDİ İÇİNDE kayar (sayfa kaymaz). */
    overflow-y: auto;
    overflow-x: hidden;
    overscroll-behavior: contain;
  }

  /* İçerik kolonu sidebar'ın altına girmesin: sabitlenen genişlik kadar offset.
     Değer her breakpoint'te sidebar'ın gerçek genişliğiyle birebir aynı. */
  .app-shell {
    padding-left: 240px;
  }

  /* Sidebar'ın gizlendiği sayfalarda (ör. tam ekran klip görüntüleyici)
     boşluk kalmasın — v224 `.page-clips .ig-sidebar { display:none }` diyor. */
  .page-clips .app-shell {
    padding-left: 0;
  }

  /* ── 769–1024px: dar (yalnız ikon) sidebar — style.css'te width: 72px ──── */
  @media (max-width: 1024px) {
    .app-shell { padding-left: 72px; }
  }
}

/* ── Erişilebilirlik / kullanılabilirlik ayrıntıları ──────────────────────── */
@media (min-width: 769px) {
  /* Sidebar kendi içinde kayarken alttaki eylemler (Ara / Koyu Tema / Çıkış)
     her zaman ulaşılabilir olsun: içerik viewport'tan uzunsa ince bir kaydırma
     çubuğu görünür, kısa ekranlarda da alt blok kırpılmaz. */
  .ig-sidebar-inner {
    min-height: 100%;
    height: auto;
  }

  /* E-posta doğrulama bandı akışta ve sayfayla kayıyor; sabit sidebar onun
     üstüne binmesin diye bandı üste alıyoruz. Yalnız e-postası doğrulanmamış
     kullanıcıda ve yalnız sayfa başındayken görünür bir durum. */
  .email-verify-banner {
    position: relative;
    z-index: 131;   /* .ig-sidebar z-index: 110 */
  }
}
