/* ================================================================
   KUNDUZ SUITE — TASARIM SİSTEMİ (Faz 1, 2026-08-06 spec'i)
   Onaylı "Komuta Merkezi (revize)" dili. `ya-` = yeni arayüz öneki;
   eski arayüz sınıflarıyla ÇAKIŞMAZ, iki arayüz yan yana yaşayabilir.
   Palet spec'te SABİT — buradaki değerler test/tasarimSistemi.test.js
   ile çivilidir, değiştirmeden önce spec güncellenmelidir.
   ================================================================ */
:root{
  --ya-mur:#120C07; --ya-kabuk:#1B1209; --ya-post:#2A1D12; --ya-post2:#3F2C1B;
  --ya-kahve:#6E4A2A; --ya-kahve-ac:#8B6339; --ya-bej:#E3C79E; --ya-bej2:#D2B58C;
  --ya-dis:#E07B2A; --ya-dis-koyu:#A9530E; --ya-krem:#F7F1E6; --ya-kagit:#FDFBF6;
  --ya-kar:#FFFEFB; --ya-metin:#2B1F14; --ya-metin2:#6A5642; --ya-metin3:#8C7660;
  --ya-metin-ters:#25150A; --ya-hair:rgba(63,44,27,.13); --ya-yesil:#3E7A4E; --ya-kirmizi:#A83A1E;
}

/* --- kart: pano ögelerinin temel kabı --- */
.ya-kart{background:var(--ya-kar);border:1px solid var(--ya-hair);border-radius:12px;padding:14px}

/* --- dev sayı kartı (günün nabzı) --- */
.ya-nabiz-kart{background:var(--ya-kar);border:1px solid var(--ya-hair);border-radius:12px;padding:14px}
.ya-nabiz-kart .deger{font-family:"IBM Plex Mono",monospace;font-size:26px;font-weight:700}
.ya-nabiz-kart .ad{font-size:12px;color:var(--ya-metin2)}
.ya-nabiz-kart .deger--kirmizi{color:var(--ya-kirmizi)}
.ya-nabiz-kart .deger--turuncu{color:var(--ya-dis-koyu)}
/* 9 Ağu 2026 EKİ — Filo/Özet nabız kartları (onaylı görsel: mockups/2026-08-09-filo.html,
   ".d-yes" sınıfı, "20 Müsait araç"). Kırmızı/turuncu varyantları zaten vardı, YEŞİL
   yoktu; mevcut --ya-yesil token'ı yeniden kullanılır (yeni palet değeri YOK). */
.ya-nabiz-kart .deger--yesil{color:var(--ya-yesil)}

/* --- durum çipi --- */
.ya-cip{display:inline-block;padding:2px 9px;border-radius:99px;font-size:10.5px;font-weight:600}
.ya-cip--yolda{background:rgba(224,123,42,.15);color:var(--ya-dis-koyu)}
.ya-cip--geciken{background:rgba(168,58,30,.13);color:var(--ya-kirmizi)}
.ya-cip--teslim{background:rgba(62,122,78,.14);color:var(--ya-yesil)}
.ya-cip--bekliyor{background:rgba(63,44,27,.09);color:var(--ya-metin2)}

/* --- rol çipi varyantları (Faz 2A Görev 4 — Kullanıcılar ekranı) ---
   Mockup: scratchpad/kullanicilar-tasarimlar.html, VARYANT 1 (.c-admin/.c-ozel/
   .c-sofor/.c-pasif) — rgba değerleri BİREBİR, yalnız sınıf adı ya-cip--rol-*
   önekine taşındı (bkz. yeni-kullanicilar.js ROL_CIP sözlüğü + tasarimSistemi.test.js). */
.ya-cip--rol-admin{background:rgba(224,123,42,.15);color:var(--ya-dis-koyu)}
.ya-cip--rol-ozel{background:rgba(63,44,27,.12);color:var(--ya-post2)}
.ya-cip--rol-sofor{background:rgba(62,122,78,.14);color:var(--ya-yesil)}
.ya-cip--rol-pasif{background:rgba(63,44,27,.07);color:var(--ya-metin3)}

/* --- mono sayı --- */
.ya-num{font-family:"IBM Plex Mono",monospace}

/* --- liste satır vurguları --- */
.ya-satir--geciken{background:rgba(168,58,30,.04)}
.ya-satir--atanmamis{background:rgba(224,123,42,.05)}
/* Faz 2A Görev 3 — Cariler: panelde açık olan satırın vurgusu (mockup: scratchpad/
   cariler-tasarimlar.html, VARYANT 1, Ege Gıda satırı) — --ya-dis token'ının RGB kanalları
   (#E07B2A → 224,123,42) düşük alfayla "miksleniyor" (mockup'taki rgba(224,123,42,.09) birebir). */
.ya-satir--secili{background:rgba(224,123,42,.09)}

/* --- düğmeler --- */
.ya-buton{background:var(--ya-dis);border:0;color:var(--ya-metin-ters);font-weight:600;
  padding:9px 16px;border-radius:99px;font-size:13px;cursor:pointer;font-family:inherit}
.ya-buton--ikincil{background:var(--ya-kagit);border:1px solid var(--ya-hair);
  color:var(--ya-metin);font-weight:500;padding:9px 16px;border-radius:8px;
  font-size:12.5px;cursor:pointer;font-family:inherit}

/* --- sağ yan panel (Tablo + Yan Panel deseni) --- */
.ya-panel{width:330px;border-left:1px solid var(--ya-hair);background:var(--ya-kar);
  padding:16px;display:flex;flex-direction:column;gap:11px;overflow-y:auto}
.ya-panel[hidden]{display:none}

/* --- iki sütunlu pano alt bölgesi (1.4fr / 1fr) --- */
.ya-pano-alt{display:grid;grid-template-columns:1.4fr 1fr;gap:16px}

/* --- nabız ızgarası --- */
.ya-nabiz{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}

/* --- yoğun tablo --- */
.ya-tablo{width:100%;border-collapse:collapse;font-size:12px}
.ya-tablo th{text-align:left;color:var(--ya-metin3);font-size:10.5px;padding:8px 14px;white-space:nowrap}
.ya-tablo td{padding:8px 14px;border-top:1px solid var(--ya-hair);white-space:nowrap}
.ya-tablo tr{cursor:pointer}
.ya-tablo .eylem{color:var(--ya-dis-koyu);font-size:11px;text-align:right}

/* ================================================================
   FAZ 1g — KABUK (sol menü + içerik alanı). Kullanıcı Faz 1 gösterimini
   REDDETTİ ("eski üst nav + başlık şeridi içinde çiziliyor, mockup'ta
   bunlar yok") — bu blok yalnız body.ya-acik iken devrede; kapalıyken
   eski üst başlık şeridi + üst nav DOM'da aynen kalır (bit-bit korunur).
   Kaynak-gerçek (renk/aralık birebir): scratchpad/anasayfa-revize.html
   ".web" içindeki satır — 190px koyu kahve sol menü + esnek beyaz içerik.
   ================================================================ */
body.ya-acik{background:var(--ya-kabuk);padding-bottom:0}
body.ya-acik #appShell > header{display:none}
/* Fix turu (Safari kontrolü): nav.module-nav'ın KENDİ inline style="display:flex"'i var
   (index.html) — inline style, öncelik verilmeden yazılan bir dış/gömülü kural tarafından
   ASLA yenilmez; bu yüzden !important şart (bu codebase'de zaten AYNI sınıf bir çözüm var:
   `body.tank-oturum .scenario-chips{display:none !important}`). !important OLMADAN şerit
   içeriğin üstüne binmeye devam ediyordu (kontrolör kanıtı: ekran görüntüsünde üst şerit). */
body.ya-acik #appShell > nav.module-nav{display:none !important}

/* --- sol menü: viewport'a sabit, appShell'in ilk çocuğu (yeni-kabuk.js ekler) --- */
.ya-sol-menu{position:fixed;top:0;left:0;bottom:0;width:190px;background:var(--ya-kabuk);
  color:var(--ya-krem);padding:16px 12px;display:flex;flex-direction:column;gap:2px;
  z-index:40;overflow-y:auto}
.ya-sol-menu-marka{display:flex;align-items:center;gap:10px;padding:6px 8px;margin-bottom:14px}
/* 9 Ağu kullanıcı isteği: logo büyütüldü (26→40px, yazı 14→17px).
   17 Ağu: marka "Kunduz Suite" oldu — 17px'te 109px tutup 100px'lik alana sığmıyor
   ve "Kunduz / Suite" diye sarıyordu (kullanıcı: aynı satırda olsun). Ölçümle
   (canvas measureText, Space Grotesk 600) 15px=96px sığan en büyük punto; nowrap
   ileride metin uzarsa sarma yerine tek satır kalmasını garanti eder. */
.ya-sol-menu-marka img{width:40px;height:40px;border-radius:9px;background:var(--ya-post2);
  object-fit:contain;padding:4px;display:block}
.ya-sol-menu-marka b{font-size:15px;font-weight:600;white-space:nowrap}
.ya-sol-menu-oge{padding:8px 10px;border-radius:8px;font-size:13px;color:var(--ya-bej);
  display:flex;align-items:center;gap:8px;cursor:pointer;background:none;border:0;
  text-align:left;font-family:inherit;width:100%}
.ya-sol-menu-oge:hover{background:rgba(247,241,230,.06)}
.ya-sol-menu-oge.active{background:rgba(224,123,42,.16);color:var(--ya-dis);font-weight:600}
/* Fix turu — kullanıcı adı + Çıkış: sol menünün ALTINA (Ayarlar'ın ÜSTÜNE) sabitlenir
   (margin-top:auto BURADA; Ayarlar hemen ardından doğal akışta, kendi margin-top:auto'suna
   gerek kalmadan aynı grup içinde en altta kalır). Eski header'daki headerUserLabel/
   btnLogoutHeader karşılığı — header artık gizli olduğu için buraya taşındı. */
.ya-sol-menu-kullanici{margin-top:auto;padding:10px 10px 4px;border-top:1px solid rgba(247,241,230,.1);
  display:flex;flex-direction:column;gap:6px;font-size:12px;color:var(--ya-bej)}
.ya-sol-menu-cikis{align-self:flex-start;padding:2px 0;font-size:11.5px;color:var(--ya-dis);
  cursor:pointer;background:none;border:0;font-family:inherit;text-decoration:underline}
.ya-sol-menu-ayarlar{padding:8px 10px;font-size:12px;color:var(--ya-metin3);
  cursor:pointer;background:none;border:0;text-align:left;font-family:inherit;width:100%;
  display:flex;align-items:center;gap:8px}
/* Faz 2A Görev 6 EKİ: Ayarlar artık switchModule('ayarlar') çağırıyor (eskiden yalnız
   toast) — yaKabukAktifGuncelle'nin sorgusu (.ya-sol-menu-oge, .ya-sol-menu-ayarlar)
   bu düğmeyi de kapsayacak şekilde genişletildi (yeni-kabuk.js), aktif haldeyken
   .ya-sol-menu-oge.active İLE AYNI vurgu burada da uygulanır. */
.ya-sol-menu-ayarlar.active{background:rgba(224,123,42,.16);color:var(--ya-dis);font-weight:600}

/* --- içerik alanı: eski modül konteynerleri sol menünün sağında, KENDİ scroll'unda ---
   height:100vh (min-height DEĞİL) BİLİNÇLİ: yeni-seferler.js içindeki iç
   "height:100%" düzeni (tablo+panel esnek yüksekliği) ancak ATA'sında KESİN bir
   height varsa doğru ölçeklenir — min-height bu yüzden yetmez.
   Fix turu EKİ: sol menü artık Araç Giderleri/Raporlar/Kullanıcılar + (varsa) Tank
   ekranlarına da bağlandığı için bu ekranların konteynerleri de aynı kurala katıldı
   (aksi halde o ekranlara gidildiğinde içerik sabit sol menünün ALTINDA/ARKASINDA
   eski tam-genişlik düzeniyle görünürdü). */
/* 9 Ağu 2026 EKİ: #filoModule de bu ortak listeye katıldı — sol menü position:fixed
   olduğu için listede OLMAYAN bir konteyner menünün ALTINDA/ARKASINDA, tam genişlikte
   ve kendi scroll'u olmadan açılırdı (Fix turu EKİ notundaki aynı sınıf hata). */
body.ya-acik #homeModule, body.ya-acik #fleetModule, body.ya-acik #filoModule,
body.ya-acik #patronModule, body.ya-acik #cariModule,
body.ya-acik #tanimModule, body.ya-acik #depoModule, body.ya-acik #giderModule,
body.ya-acik #raporModule, body.ya-acik #kullaniciModule, body.ya-acik #mapModule,
body.ya-acik #mesajModule, body.ya-acik #finansModule,
body.ya-acik #tankPanelModule, body.ya-acik #tankIsemriModule, body.ya-acik #tankBildirimModule,
body.ya-acik #tankTanklarModule, body.ya-acik #tankMusteriModule, body.ya-acik #tankStokModule,
body.ya-acik #tankFiyatModule, body.ya-acik #tankFaturaModule, body.ya-acik #tankMuhasebeModule,
body.ya-acik #tankPersonelModule, body.ya-acik #tankEkipmanModule, body.ya-acik #tankAtikModule,
body.ya-acik #tankDenetimModule, body.ya-acik #tankDepoModule, body.ya-acik #tankYikamaPanoModule{
  margin-left:190px;height:100vh;overflow-y:auto;background:var(--ya-kagit)
}
/* Kart alt-sekmesi (Cariler/Tanımlar) — Faz 2A Görev 3 EKİ: yeni Cariler ekranı artık
   #cariModule'ün İÇİNE (yeniCarilerRender()) tam bir Tablo+Yan Panel arayüzü çiziyor;
   eski "Cariler/Tanımlar" sekme şeridi (kartSubNav) bu arayüzde ANLAMSIZ (Tanımlar
   Ayarlar'a taşınacak — mockup'ın kendi notu: "Tanımlar artık burada değil, Ayarlar'da",
   bkz. scratchpad/cariler-tasarimlar.html). ÖNCEKİ kural (Fix turu, Safari kontrolü)
   şeridi margin-left:190px ile sol menünün SAĞINA hizalıyordu — o kural artık YOK,
   yerine şerit TAMAMEN gizleniyor. switchModule'ün `$('kartSubNav').hidden = mod!=='kart'`
   satırı (bayraktan bağımsız, dokunulmadı) mod==='kart' iken hidden'ı false yapmaya devam
   eder — kartSubNav'ın KENDİ inline style="...display:flex..."i (index.html) bu yüzden
   nav.module-nav ile AYNI sınıf sorunu taşır: !important OLMADAN bu inline stil, aşağıdaki
   display:none'ı ezer. */
body.ya-acik #kartSubNav{display:none !important}

/* Faz 2A Görev 6 — Ayarlar host (#ayarlarModule): kartSubNav'ın ESKİ (Fix turu 2
   öncesi, bkz. git tarihi — "kartSubNav hizalama") hizalama tekniğiyle AYNI: doğal
   yükseklikte bir şerit (başlık + sekme çubuğu), 100vh VERİLMEZ — ALTINDA (DOM
   sırasında SONRAKİ) #tanimModule/#kullaniciModule kendi margin-left:190px;
   height:100vh kuralını (yukarıdaki ortak liste) zaten taşıyor, ikisi normal akışta
   ÜST ÜSTE değil ALT ALTA dizilir. #ayarlarModule'ün kartSubNav'ın aksine inline
   style'ı YOK (yeni-ayarlar.js innerHTML ile temiz kuruyor) — !important gerekmez. */
body.ya-acik #ayarlarModule{margin-left:190px;background:var(--ya-kagit)}

/* Ayarlar/Roller sekmesi: eski #rolBolum (#kullaniciModule'ün İÇİNDE, index.html
   "ROLLER" bölümü) İÇERİK OLARAK TAŞINMADI (task-6-brief.md kararı — iç yeniden
   tasarım yok) — yalnız GÖRÜNÜRLÜĞÜ buradan yönetiliyor. switchModule zaten
   `$('kullaniciModule').hidden = mod!=='kullanici'` satırını taşıyor (dokunulmadı,
   mod==='ayarlar' iken hidden=true KALIR) — bu kural onu ezer.
   Denetim FIX (Görev 6 fix turu, CRITICAL #2): ezilen kural UA'nın [hidden]{display:
   none}'ı DEĞİL — index.html'in KENDİ author kuralı `[hidden]{display:none !important}`
   (nav.module-nav/kartSubNav'ın inline-style sorununu çözmek için proje zaten UA
   varsayılanını author-important olarak yeniden uyguluyor). Cascade: important >
   specificity — important'sız bir author kuralı, başka bir author'ın important
   kuralını ASLA yenemez (origin AYNI, önem seviyesi farklı). Bu yüzden `!important`
   ŞART — "UA kuralı, normal author her zaman yener" varsayımı YANLIŞTI (kontrolör
   bulgusu). #kullaniciModule > div > *:not(#rolBolum) satırı bu sorunu TAŞIMAZ:
   hidden'sız çocuklarda (başlık/kullanıcı tablosu) rakip kural hiç yok, hidden'lı
   çocuklarda (form/silme talepleri) değer zaten AYNI (display:none) — çakışma yok. */
body.ya-acik.ya-ayarlar-roller #kullaniciModule{display:block!important}
body.ya-acik.ya-ayarlar-roller #kullaniciModule > div > *:not(#rolBolum){display:none}

/* Final tüm-dal incelemesi, bulgu F1 (CRITICAL): yeni-kullanicilar.js ARTIK
   #kullaniciModule'ü (kok) innerHTML ile TOPYEKÛN silmiyor — kendi #yaKulAlan
   çocuğuna çiziyor, eski statik çocuklar (form/silme talepleri/kullanıcı tablosu/
   #rolBolum) DOM'da AYNEN kalıyor (yaKulAlanGetir, yeni-kullanicilar.js). Normal
   Kullanıcılar modunda (Ayarlar/Roller DEĞİLKEN) o eski çocuklar GÖRÜNMEMELİ —
   yalnız #yaKulAlan basılır. :not(.ya-ayarlar-roller) kapsamı ŞART: Ayarlar/Roller
   modundaki YUKARIDAKİ #kullaniciModule{display:block!important} + > div >
   *:not(#rolBolum){display:none} zincirini BOZMAZ (o zincir rolBolum'u GÖSTERMEK
   için var; bu kural o moda sızarsa TERSİNE #kullaniciModule'ün tamamını gizlerdi).
   Bayrak KAPALIYKEN body.ya-acik hiç eklenmediği için bu iki kural da devre dışı
   kalır (eski bayrak-kapalı yol bit-bit AYNI). index.html'in KENDİ
   [hidden]{display:none!important} kuralına karşı (kartSubNav/#kullaniciModule
   zincirindeki AYNI sorun — Görev 6 fix turu) bu kural da !important taşır. */
body.ya-acik:not(.ya-ayarlar-roller) #kullaniciModule > :not(#yaKulAlan){display:none!important}

/* SEFERLER — Kullanıcılar'la AYNI gerekçe (10 Ağu 2026): yeni-seferler.js artık
   #fleetModule'ü innerHTML ile silmiyor, kendi #yaSeferAlan çocuğuna çiziyor.
   Eski statik çocuklar (özellikle ÇALIŞAN #jobForm "Yeni Taşıma" formu ve
   #jobList) DOM'da kalıyor ki "+ Yeni Sefer" onları açabilsin. Normal Seferler
   görünümünde o eski DOM GÖRÜNMEZ; yalnız #yaSeferAlan basılır.
   .ya-sefer-form modunda kural TERSİNE döner: eski form görünür, yeni liste gizlenir
   (aşağıdaki kural). Bayrak kapalıyken body.ya-acik hiç eklenmediği için iki kural da
   devre dışıdır — eski yol bit-bit aynı kalır. */
body.ya-acik:not(.ya-sefer-form) #fleetModule > :not(#yaSeferAlan){display:none!important}
body.ya-acik.ya-sefer-form #yaSeferAlan{display:none!important}
/* Form modunda eski Filo ekranının TAMAMI değil YALNIZ form görünür: eski alt
   sekmeler (Araçlar/Fiyat Tarifesi/Özet) ve taşıma listesi yeni arayüzde ayrı
   ekranlara taşındı, burada görünmeleri kullanıcıyı iki arayüz arasında bırakırdı.
   #fleetPanelJobs'a display:block ŞART — .fleet-panel .active olmadan gizlidir. */
body.ya-acik.ya-sefer-form #fleetModule .fleet-subtabs{display:none!important}
body.ya-acik.ya-sefer-form #fleetModule .fleet-panel{display:none!important}
body.ya-acik.ya-sefer-form #fleetModule #fleetPanelJobs{display:block!important}
body.ya-acik.ya-sefer-form #fleetModule #fleetPanelJobs > *:not(#jobForm){display:none!important}
/* Roller sekmesindeyken #yaKulAlan (önceki bir Kullanıcılar ziyaretinden DOM'da kalmış
   olabilir) rolBolum'un ÜSTÜNE binmesin — yukarıdaki zincir yalnız "> div > *"
   derinliğini kapsar, #yaKulAlan o wrapper'ın KARDEŞİDİR (aynı derinlikte değil),
   bu yüzden ayrı bir kural gerekir. Rakip bir important kural YOK (yaKulAlan'ın
   [hidden] özniteliği yok) — plain display:none yeterli. */
body.ya-acik.ya-ayarlar-roller #kullaniciModule > #yaKulAlan{display:none}

/* Canlı Safari turu bulgusu (final incelemecinin 2. zorunlu maddesi): YUKARIDAKİ
   #kullaniciModule > div > *:not(#rolBolum){display:none} kuralı (important'sız)
   eski BAŞLIK bloğunu (index.html — "Kullanıcı Yönetimi" b + #btnShowKullaniciForm,
   wrapper div'in İLK ÇOCUĞU) gizleyemiyordu: o div kendi INLINE style="display:flex"
   özniteliğini taşıyor (index.html) — inline stil, !important'sız bir harici kuralı
   HER ZAMAN yener (specificity'den bağımsız, CSS'in en yüksek "origin" katmanı).
   Diğer kardeşler ya [hidden] (kullaniciForm/silmeTalepBlok — zaten ayrı bir
   !important kuralla kapalı) ya da inline display TAŞIMIYOR (kullaniciTablo'nun
   .block sarmalayıcısı) — bu yüzden yalnız BU TEK div (wrapper'ın *:first-child'ı)
   dar kapsamlı, !important'lı EK bir kurala ihtiyaç duyuyor. Yukarıdaki geniş
   kuralla ÇAKIŞMAZ: aynı elemente aynı yönde (gizleme) iki kural — biri
   important'sız (etkisiz kalır), biri important'lı (kazanır). */
body.ya-acik.ya-ayarlar-roller #kullaniciModule > div > *:first-child{display:none!important}

/* Faz 2B Görev 4 — Depo host (#depoModule): yeni Pano+Sekmeler ekranı (yeni-depo.js)
   #depoModule'ün AYRI bir çocuğu olan #yaDepoAlan'a çizilir (yaKulAlanGetir/#yaKulAlan
   İLE AYNI desen — depoModule.innerHTML ASLA topyekûn silinmez, eski Stok/Ücretler/
   Mesai/Akaryakıt panelleri + event listener'ları DOM'da AYNEN kalır). #yaKulAlan'ın
   AKSİNE (kullaniciModule İÇİN eski çocuklar rolBolum HARİÇ hep gizli kalmalıydı),
   burada #yaDepoAlan (başlık+kartlar+sekme şeridi) HER ZAMAN görünür kalmalı — yalnız
   ESKİ wrapper (eski tab şeridi + Stok/Ücretler/Mesai/Op/Akaryakıt/Anlaşma panelleri)
   Hareketler sekmesindeyken (varsayılan, body'de ya-depo-host YOKKEN) gizlenir. Eski
   wrapper'ın kendi id'si YOK (index.html, "<div style=max-width:1150px...>") —
   :not(#yaDepoAlan) bu yüzden id'siz o TEK kardeşi hedefler. index.html'in KENDİ
   [hidden]{display:none!important} kuralına karşı DEĞİL (depoModule.hidden zaten
   mod==='depo' iken hep false — kullaniciModule/rolBolum'daki [hidden] çatışması
   burada YOK) ama wrapper'ın KENDİ inline style="display:flex..."i var — bu yüzden
   yine de !important ŞART (inline stil, important'sız harici kuralı her zaman yener,
   [hidden] ile AYNI sınıf ama FARKLI kök neden — yeni-ayarlar fix dersi burada da
   uygulanıyor, önceden "fix turu" beklenmeden). */
body.ya-acik:not(.ya-depo-host) #depoModule > div:not(#yaDepoAlan){display:none!important}
/* Stok/Ücretler/Mesai/Akaryakıt sekmesi (host modu): eski wrapper GÖRÜNÜR (hangi
   panelin görüneceğini depoSelectKategori İLE AYNI disiplinde yeni-depo.js'in KENDİSİ
   inline style.display ile yönetir) — yalnız eski TAB ŞERİDİNİ (wrapper'ın ilk çocuğu,
   kendi inline style="display:flex" taşıyor — YUKARIDAKİ AYNI sorun) gizle; #yaDepoAlan
   bu kuralın kapsamı DIŞINDA (zaten her zaman görünür kalmalı, aksi halde sekme şeridi
   Stok/Ücretler'e geçildiğinde kaybolurdu). */
body.ya-acik.ya-depo-host #depoModule > div:not(#yaDepoAlan) > *:first-child{display:none!important}

/* Kontrolör canlı bug raporu (fix-depo-host-scroll) — bayrak açıkken Depo → Stok
   sekmesinde sayfa başı DOĞRUDAN eski panel filtreleriyle açılıyordu, #yaDepoAlan
   (yeni başlık+4 kart+sekme şeridi) scroll'la kaybolmuş görünüyordu. KÖK NEDEN:
   #yaDepoAlan, yaDepoAlanGetir() içinde kok.appendChild(alan) ile eklendiği için
   DOM'da HER ZAMAN eski (statik HTML, sayfa yüklenirken önceden parse edilir)
   wrapper'ın ARDINDAN gelir. Host modunda (Stok/Mesai/Akaryakıt) o wrapper TAMAMEN
   gizlenmiyor (yukarıdaki kural yalnız ilk çocuğunu/tab şeridini gizler) — bu yüzden
   #depoModule'ün TEK paylaşılan overflow-y:auto alanında (ortak liste, yukarıda)
   iki blok normal akışta ALT ALTA diziliyordu: ÖNCE eski panel (uzun tablo olabilir),
   SONRA #yaDepoAlan. Sayfa scroll=0'dan açıldığında kullanıcı doğrudan eski panel
   filtreleriyle karşılaşıyor, başlık+kartlar+sekme şeridi sayfanın DAHA AŞAĞISINA
   itiliyordu — canlı repro BUYDU.
   FIX: #depoModule flex column'a çevrilir; #yaDepoAlan'a order:-1 verilir (DOM
   sırasından BAĞIMSIZ HER ZAMAN görsel olarak İLK sırada), host modunda #yaDepoAlan
   İÇERİĞİNE göre KISALIR (flex:0 0 auto + height:auto — kendi height:100% inline
   stilini, yaDepoAlanGetir, !important ile ezer), eski wrapper KALAN alanı doldurup
   KENDİ İÇİNDE kaydırılır (flex:1 1 auto;min-height:0;overflow-y:auto) — bu,
   #yaDepoIcerik'in (Hareketler sekmesi) ZATEN kullandığı flex:1;min-height:0 + iç
   overflow:auto zinciriyle AYNI desendir (yaDepoHareketlerIskeletCiz, yeni-depo.js).
   Host DIŞI modda (Hareketler/Ücretler) eski wrapper zaten display:none (yukarıdaki
   kural, dokunulmadı) — #yaDepoAlan TEK görünür flex item olarak kendi height:100%
   inline stiliyle #depoModule'ü (100vh, paylaşılan liste) doldurmaya devam eder,
   davranış DEĞİŞMEDİ. Sol menü (.ya-sol-menu, position:fixed) ve diğer ya-acik
   modülleri bu kurala hiç girmez (yalnız #depoModule'e özel, ek kurallar). */
body.ya-acik #depoModule{display:flex;flex-direction:column}
body.ya-acik #depoModule > #yaDepoAlan{order:-1}
body.ya-acik.ya-depo-host #depoModule > #yaDepoAlan{flex:0 0 auto;height:auto!important}
body.ya-acik.ya-depo-host #depoModule > div:not(#yaDepoAlan){flex:1 1 auto;min-height:0;overflow-y:auto}

/* ================================================================
   Faz 3 Görev 3 — Finans host (#finansModule): yeni Üç Sütunlu Pano ekranı
   (yeni-finans.js) #finansModule'ün AYRI bir çocuğu olan #yaFinansAlan'a çizilir —
   #depoModule/#yaDepoAlan İLE AYNI desen (scroll-fix dahil: order:-1 + host modunda
   #yaFinansAlan flex:0 0 auto, eski wrapper flex:1 1 auto;overflow-y:auto). Depo'dan
   TEK farkı (bilinçli, yeni-finans.js dosya başı notunda gerekçeli): host modunda eski
   wrapper'ın "ilk çocuğu" AYRICA gizlenmez — o ilk çocuk (finansToplamStats, özet
   kartları) salt bir tab şeridi değil gerçek içerik, Cari Özet/Depo Gelirleri/Mikro
   sekmelerinde eski üst özet+dönem filtresi+Excel dışa aktar+eski 5 sekmeli şerit
   OLDUĞU GİBİ görünür kalır ("eski içerikleri sekmelerde korunur" — host tekniği). */
body.ya-acik:not(.ya-finans-host) #finansModule > div:not(#yaFinansAlan){display:none!important}
body.ya-acik #finansModule{display:flex;flex-direction:column}
body.ya-acik #finansModule > #yaFinansAlan{order:-1}
body.ya-acik.ya-finans-host #finansModule > #yaFinansAlan{flex:0 0 auto;height:auto!important}
body.ya-acik.ya-finans-host #finansModule > div:not(#yaFinansAlan){flex:1 1 auto;min-height:0;overflow-y:auto}

/* 9 Ağu 2026 — Canlı Harita host (#mapModule): yeni Harita ekranı (yeni-harita.js)
   #mapModule'ün AYRI bir çocuğuna (#yaHrtAlan) çizilir — #yaKulAlan İLE AYNI desen
   (mapModule.innerHTML ASLA topyekûn silinmez, eski Canlı Harita DOM'u #liveMap /
   #mapAracListesi / #mapFiltreBar ve onların event listener'ları DOM'da AYNEN kalır;
   bayrak KAPALIYKEN eski ekran bit-bit çalışmaya devam eder). Depo/Finans'taki "host
   modu" (eski panellerin sekmelerde görünmeye devam etmesi) BURADA YOK: yeni harita
   eski haritanın TAM karşılığıdır, eski DOM'a bayrak açıkken hiç dönülmez — bu yüzden
   tek, koşulsuz bir gizleme kuralı yeter.
   !important NEDEN: eski wrapper KENDİ inline style'ını taşıyor (index.html,
   "<div style=padding:14px 28px>") — inline stil, important'sız harici bir kuralı
   HER ZAMAN yener (kullaniciModule/depoModule'de öğrenilen AYNI ders). Bayrak
   kapalıyken body.ya-acik hiç eklenmediği için kural tamamen devre dışıdır. */
body.ya-acik #mapModule > :not(#yaHrtAlan){display:none!important}

/* --- Finans pano: 3 sütun (BEKLEYEN/TAMAMLANAN/İADE) + yerinde genişleyen kart --- */
.ya-finans-sutun{display:flex;flex-direction:column;min-height:0;background:var(--ya-kar);
  border:1px solid var(--ya-hair);border-radius:12px;overflow:hidden}
.ya-finans-sutun-bas{display:flex;align-items:center;gap:8px;padding:10px 14px;
  font-size:11px;font-weight:700;letter-spacing:.04em;color:var(--ya-metin2);
  border-bottom:1px solid var(--ya-hair);background:var(--ya-krem)}
.ya-finans-sutun-govde{flex:1;min-height:0;overflow-y:auto;padding:10px;
  display:flex;flex-direction:column;gap:8px}
.ya-finans-kart{background:var(--ya-kar);border:1px solid var(--ya-hair);border-radius:10px;
  padding:10px 12px;cursor:pointer}
.ya-finans-kart--acik{cursor:default}
.ya-finans-kart--yesil{border-color:rgba(62,122,78,.35);background:rgba(62,122,78,.05)}
.ya-finans-kart--kirmizi{border-color:rgba(168,58,30,.3);background:rgba(168,58,30,.04)}

/* 9 Ağu kullanıcı isteği: Uygula sonrası Depo filtre paneli duvara daralır
   (yeni-depo.js yaDepoFiltreDaralt) — liste tam genişlik alır; şeride tıklayınca açılır.
   Blokta inline width:270px olduğundan !important şart. */
body.ya-acik .ya-depo-filtre-dar{width:34px!important;flex-basis:34px!important;padding:0!important;cursor:pointer;position:relative;overflow:hidden!important}
body.ya-acik .ya-depo-filtre-dar > *{display:none!important}
body.ya-acik .ya-depo-filtre-dar::after{content:'◀ FİLTRELER';position:absolute;top:14px;left:50%;transform:translateX(-50%);writing-mode:vertical-rl;font-size:11px;letter-spacing:1px;color:var(--ya-dis-koyu);white-space:nowrap}
body.ya-acik .ya-depo-filtre-dar:hover{background:var(--ya-post2)}

/* 9 Ağu kullanıcı isteği: Müşteri/Alıcı filtresi tek kutulu combobox — tıklayınca
   ilk-50 açılır, yazınca daralır (yeni-depo.js yaDepoCariComboKur). */
body.ya-acik .ya-combo-liste{position:absolute;left:0;right:0;top:100%;z-index:60;background:var(--ya-kar);
  border:1px solid var(--ya-hair);border-radius:8px;max-height:220px;overflow-y:auto;
  box-shadow:0 8px 20px rgba(0,0,0,.14)}
body.ya-acik .ya-combo-secenek{padding:7px 10px;font-size:12px;cursor:pointer;white-space:nowrap;
  overflow:hidden;text-overflow:ellipsis}
body.ya-acik .ya-combo-secenek:hover{background:var(--ya-post2)}

/* 9 Ağu kullanıcı isteği: sağ detay paneli açıkken tablo yatay kaydırmasız SIĞAR —
   sabit düzen + üç nokta kısaltma (yeni-depo.js yaDepoIcerikSikistir). */
body.ya-acik #yaDepoIcerik.ya-panel-acik .ya-tablo{table-layout:fixed;width:100%;font-size:11.5px}
body.ya-acik #yaDepoIcerik.ya-panel-acik .ya-tablo th,
body.ya-acik #yaDepoIcerik.ya-panel-acik .ya-tablo td{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
body.ya-acik #yaDepoIcerik.ya-panel-acik .ya-tablo th:nth-child(1){width:26px}
body.ya-acik #yaDepoIcerik.ya-panel-acik .ya-tablo th:nth-child(2){width:52px}
body.ya-acik #yaDepoIcerik.ya-panel-acik .ya-tablo th:nth-child(3){width:64px}
body.ya-acik #yaDepoIcerik.ya-panel-acik .ya-tablo th:nth-child(4),
body.ya-acik #yaDepoIcerik.ya-panel-acik .ya-tablo th:nth-child(5){width:86px}
body.ya-acik #yaDepoIcerik.ya-panel-acik .ya-tablo th:nth-child(10){width:56px}
body.ya-acik #yaDepoIcerik.ya-panel-acik .ya-tablo th:nth-child(11){width:72px}

/* 9 Ağu kullanıcı isteği: Seferler'de görünüm değiştiren sekmeler (Bugün+Aktif / Geçmiş)
   filtre çiplerinden AYRIŞSIN — büyük parçalı anahtar (yeni-seferler.js üst barı). */
body.ya-acik .ya-gorunum-sekmeleri{display:flex;border:1px solid var(--ya-hair);border-radius:10px;overflow:hidden}
body.ya-acik .ya-gorunum-sekme{padding:8px 18px;font-size:13px;font-weight:600;cursor:pointer;color:var(--ya-metin2);white-space:nowrap}
body.ya-acik .ya-gorunum-sekme--aktif{background:var(--ya-dis-koyu);color:#fff}
body.ya-acik .ya-gorunum-sekme:not(.ya-gorunum-sekme--aktif):hover{background:var(--ya-post2)}

/* ================================================================
   PATRON PANELİ — Lojistik · Depo · Finans (9 Ağu 2026)
   ONAYLI GÖRSEL: docs/superpowers/mockups/2026-08-09-patron-uc-ekran.html
   Aşağıdaki ölçü/renk değerleri o dosyadan BİREBİR alındı (yalnız renkler
   --ya-* token'larına çevrildi; YENİ PALET DEĞERİ ÜRETİLMEDİ — tek istisna
   koyu karttaki açık yeşil, gerekçesi kendi satırında).

   NEDEN YENİ SINIF GEREKTİ: mevcut .ya-nabiz-kart 26px sayı + "sayı üstte, ad
   altta" düzenindedir; patron görselinin dev kartı 44px mono sayı + "ad üstte"
   düzenindedir ve koyu (🔒) bir varyantı vardır. Sorun şeridi, haftalık çubuk
   grafik ve kroki de tasarım sisteminde hiç yoktu. YENİDEN KULLANILANLAR (yeni
   sınıf yazılmadı): .ya-kart (blok kabı), .ya-nabiz (4'lü ızgara), .ya-pano-alt
   (alt ikili bölge — görselin 1.35fr'i yerine mevcut 1.4fr; 0.05fr için bileşen
   çatallanmaz, Filo/Harita'daki 330px panel kararının aynısı), .ya-gorunum-sekme*
   (üst geçiş çipleri) ve .ya-buton--ikincil (hata kartındaki "Tekrar dene").
   ================================================================ */

/* --- üst bar --- */
body.ya-acik .ya-patron-ust{display:flex;gap:10px;align-items:center;padding:13px 20px;
  border-bottom:1px solid var(--ya-hair);background:var(--ya-kar)}
body.ya-acik .ya-patron-ust b{font-size:16px}
body.ya-acik .ya-patron-tarih{margin-left:auto;font-size:11.5px;color:var(--ya-metin3)}
/* Aktif çip bu ekranda KOYU KAHVE (görselin .gsek .a kuralı), Seferler/Filo'daki
   turuncu (--ya-dis-koyu) DEĞİL. Bileşeni çatallamamak için tek satırlık, YALNIZ
   #patronModule içine kapsanmış bir ezme kullanılır — diğer ekranlar etkilenmez. */
body.ya-acik #patronModule .ya-gorunum-sekme--aktif{background:var(--ya-post2)}

/* --- 4 dev kart (44px mono sayı) --- */
body.ya-acik .ya-patron-kartlar{padding:18px 20px}
body.ya-acik .ya-patron-dev{background:var(--ya-kar);border:1px solid var(--ya-hair);border-radius:13px;padding:16px 18px}
body.ya-acik .ya-patron-ad{font-size:12px;color:var(--ya-metin2);margin-bottom:6px}
body.ya-acik .ya-patron-sayi{font-family:"IBM Plex Mono",ui-monospace,monospace;font-size:44px;font-weight:700;line-height:1}
body.ya-acik .ya-patron-alt{font-size:11.5px;color:var(--ya-metin3);margin-top:7px}
/* 🔒 kartlar: koyu post2 zemin (görselin .dev--koyu'su) */
body.ya-acik .ya-patron-dev--koyu{background:var(--ya-post2);border-color:var(--ya-post2)}
body.ya-acik .ya-patron-dev--koyu .ya-patron-ad{color:var(--ya-bej)}
body.ya-acik .ya-patron-dev--koyu .ya-patron-sayi{color:#fff}
body.ya-acik .ya-patron-dev--koyu .ya-patron-alt{color:rgba(227,199,158,.75)}
/* Koyu karttaki kâr yeşili GÖRSELİN KENDİ DEĞERİDİR (#7FD69B): paletteki
   --ya-yesil (#3E7A4E) koyu kahve zeminde okunmuyor. Palet token'ı DEĞİŞTİRİLMEDİ,
   değer yalnız bu kartın içinde geçerli. Seçici koyu kart altında (0,2,0) yazıldı —
   yukarıdaki `.ya-patron-dev--koyu .ya-patron-sayi{color:#fff}` kuralını yensin. */
body.ya-acik .ya-patron-dev--koyu .ya-patron-sayi--koyu-yesil{color:#7FD69B}
/* Finans "Kesilen / Tahsil" kartındaki küçük soluk ayraç (görselden birebir). */
body.ya-acik .ya-patron-ayrac{font-size:20px;color:var(--ya-metin3)}

/* --- ortak renk/vurgu yardımcıları (görselin .s-yesil/.s-turuncu/.s-kirmizi) --- */
body.ya-acik .ya-patron-yesil{color:var(--ya-yesil)}
body.ya-acik .ya-patron-turuncu{color:var(--ya-dis-koyu)}
body.ya-acik .ya-patron-kirmizi{color:var(--ya-kirmizi)}
body.ya-acik .ya-patron-soluk{color:var(--ya-metin3)}
/* Koyu kart içinde renk değil SAYDAMLIK düşürülür (bej alt-metin korunur). */
body.ya-acik .ya-patron-soluk-koyu{opacity:.7}
body.ya-acik .ya-patron-kiyas{font-size:11.5px;font-weight:700}

/* --- kart içi oran çubuğu (Filo kullanımı %, Doluluk %) --- */
body.ya-acik .ya-patron-cubuk{height:7px;background:rgba(63,44,27,.12);border-radius:99px;margin-top:9px;overflow:hidden}
body.ya-acik .ya-patron-cubuk i{display:block;height:100%;border-radius:99px}

/* --- ince sorun şeridi (kırmızı sol çizgili) --- */
body.ya-acik .ya-patron-serit{display:flex;align-items:center;gap:10px;margin:0 20px 16px;padding:11px 15px;
  border-radius:10px;border-left:4px solid var(--ya-kirmizi);background:rgba(168,58,30,.08);font-size:12.5px}
body.ya-acik .ya-patron-serit b{font-weight:700}
body.ya-acik .ya-patron-serit--iyi{border-left-color:var(--ya-yesil);background:rgba(62,122,78,.09)}
/* NÖTR şerit görselde YOK: sunucu sorun bloğunu hiç göndermediğinde "her şey
   yolunda" demek uydurma güvence olurdu (bkz. yeni-patron.js "veri yok ≠ sıfır"). */
body.ya-acik .ya-patron-serit--notr{border-left-color:var(--ya-metin3);background:rgba(63,44,27,.06)}
body.ya-acik .ya-patron-not{margin-left:auto;font-size:11.5px;color:var(--ya-metin2)}

/* --- alt ikili bölge --- */
body.ya-acik .ya-patron-altbolge{padding:0 20px 20px}
body.ya-acik .ya-patron-blok-bas{margin:0 0 14px;font-size:10.5px;letter-spacing:.7px;color:var(--ya-metin3)}

/* --- haftalık çubuk grafik (tek çubuk + üstte mono sayı / ikili gelir-gider) --- */
body.ya-acik .ya-patron-grafik{display:flex;gap:14px;height:150px}
body.ya-acik .ya-patron-hafta{flex:1;display:flex;flex-direction:column;align-items:center;gap:5px;height:100%}
body.ya-acik .ya-patron-hafta span{font-size:10.5px;color:var(--ya-metin3)}
body.ya-acik .ya-patron-hafta b{font-family:"IBM Plex Mono",monospace;font-size:11px}
body.ya-acik .ya-patron-barkutu{flex:1;width:100%;display:flex;align-items:flex-end;justify-content:center}
body.ya-acik .ya-patron-bar{width:100%;background:var(--ya-dis);border-radius:6px 6px 0 0;min-height:4px}
body.ya-acik .ya-patron-bar2{width:100%;background:var(--ya-post2);border-radius:6px 6px 0 0;min-height:4px}
body.ya-acik .ya-patron-ikili{display:flex;gap:3px;align-items:flex-end;width:100%;height:100%}
body.ya-acik .ya-patron-ay-toplam{padding:12px 0 0;font-size:12px;color:var(--ya-metin2)}

/* --- yatay çubuklu liste (En çok yer tutan · En büyük 3 alacak) --- */
body.ya-acik .ya-patron-sat{display:flex;align-items:center;gap:10px;padding:9px 0;border-bottom:1px solid var(--ya-hair)}
body.ya-acik .ya-patron-sat:last-child{border-bottom:0}
body.ya-acik .ya-patron-sat-ad{font-size:12.5px;font-weight:600;min-width:96px}
body.ya-acik .ya-patron-bar-kutu{flex:1;height:9px;background:rgba(63,44,27,.1);border-radius:99px;overflow:hidden}
body.ya-acik .ya-patron-bar-kutu i{display:block;height:100%;border-radius:99px;background:var(--ya-dis)}
body.ya-acik .ya-patron-deger{font-family:"IBM Plex Mono",monospace;font-size:11.5px;min-width:54px;text-align:right}
/* Alacak satırının ALTINDAKİ gün/vade notu — görselde .liste-sat'ın DIŞINDADIR
   (satır çizgisi düzeni bu yüzden birebir korunur). */
body.ya-acik .ya-patron-sat-alt{font-size:11px;margin:-4px 0 6px}
body.ya-acik .ya-patron-sat-alt--son{margin:-4px 0 0}
body.ya-acik .ya-patron-liste-not{font-size:11.5px;color:var(--ya-metin3);margin-top:10px}

/* (mini canlı harita/kroki kuralları 18 Eyl 2026'da kaldırıldı — Lojistik'te harita yok) */
body.ya-acik .ya-patron-efsane{display:flex;gap:14px;font-size:10.5px;color:var(--ya-metin3);margin-top:9px}
body.ya-acik .ya-patron-efsane i{width:9px;height:9px;border-radius:50%;display:inline-block;margin-right:4px}
body.ya-acik .ya-patron-makas{margin-left:auto;font-weight:700}

/* --- LOJİSTİK OPERASYON SETİ (18 Eyl 2026) — kanvas: docs/superpowers/tasarim/
   2026-09-18-patron-lojistik/olustur.mjs; ölçü/renkler oradan BİREBİR.
   .ya-patron-ek3: kartların altındaki üçlü blok ızgarası (AY GİDİŞATI · AYIN MÜŞTERİLERİ ·
   FİLO DURUMU). .ya-patron-blok-ust: blok başlığı + sağa yaslı özet. .ya-patron-grup:
   tablo içi grup satırı ("Bugün başlayan · N"). .ya-patron-soluk td: teslim/iptal satırı.
   Tablo ezmeleri #patronModule'e KAPSANMIŞTIR (taban .ya-tablo değişmedi): sabit düzen +
   colgroup genişlikleri, 8px 10px dolgu, taşan hücre üç nokta; satır TIKLANMAZ — tabanın
   cursor:pointer'ı burada default'a çekilir (salt-okunur panel, dışarıdan sefer açan kanca yok). */
body.ya-acik .ya-patron-ek3{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;padding:0 20px 20px}
body.ya-acik .ya-patron-blok-ust{display:flex;align-items:baseline;gap:10px;margin-bottom:14px}
body.ya-acik .ya-patron-blok-ust .ya-patron-blok-bas{margin:0}
body.ya-acik .ya-patron-blok-ust .ozet{margin-left:auto;font-size:11.5px;color:var(--ya-metin2)}
body.ya-acik .ya-patron-grup td{color:var(--ya-metin3);font-size:10.5px;letter-spacing:.06em;text-transform:uppercase;font-weight:700;padding:10px 10px 6px;background:rgba(63,44,27,.03)}
body.ya-acik .ya-patron-soluk td{color:var(--ya-metin3)}
body.ya-acik #patronModule .ya-tablo{table-layout:fixed;max-width:100%}
body.ya-acik #patronModule .ya-tablo th{padding:8px 10px}
body.ya-acik #patronModule .ya-tablo td{padding:8px 10px;overflow:hidden;text-overflow:ellipsis}
body.ya-acik #patronModule .ya-tablo tr{cursor:default}

/* Devre dışı düğmeler (11 Ağu 2026 — E2E bulgusu 5b devamı): disabled özniteliği
   işlevsel olarak çalışıyordu ama görsel karşılığı YOKTU — devre dışı birincil
   düğme aktifle birebir aynı görünüyordu. Gözle bakan kullanıcı tıklanabilir sanır. */
.ya-buton:disabled, .ya-buton--ikincil:disabled { opacity: .45; cursor: not-allowed; }

/* ================================================================
   SEFERLER TABLOSU SIĞDIRMA (12 Ağu 2026 kullanıcı bildirimi: "ekran
   sığmamış"). Taban .ya-tablo hücreleri nowrap tutar; Porkod'un 12
   kolonunda uzun cari/yük adları tabloyu ekran dışına itiyor, DURUM
   kolonu görünmüyordu. Burada metin hücreleri SARABİLİR ve dolgu
   sıkılaşır; sayısal hücreler (ya-num: sefer no, tarih, konteyner,
   plaka) tek satır kalır — bölünmüş plaka/tarih okunmaz olurdu.
   ================================================================ */
body.ya-acik #yaSeferAlan .ya-tablo th{padding:7px 8px;font-size:10px}
body.ya-acik #yaSeferAlan .ya-tablo td{padding:6px 8px;white-space:normal}
body.ya-acik #yaSeferAlan .ya-tablo td.ya-num{white-space:nowrap}

/* ================================================================
   ANA SAYFA — KISAYOL PANOSU (2 Eyl 2026, kanvas C seçimi; yeni-anasayfa.js).
   Kart = mevcut .ya-kart primitifi (kar zemin, hair kenar, 12px radius, 14px padding)
   + düğme sıfırlaması; sayılı kart 140px, sayısız 72px. Değer .ya-nabiz-kart .deger
   ölçüsündedir (26px mono 700) — yeni punto icat edilmedi. Izgara auto-fill: kart
   sayısı role göre değişir (muhasebe 2, admin 6+5), sütun sayısı kendiliğinden.
   ================================================================ */
.ya-kisayol-izgara{display:grid;gap:16px}
.ya-kisayol-izgara--sayili{grid-template-columns:repeat(auto-fill,minmax(130px,1fr))}
.ya-kisayol-izgara--sayisiz{grid-template-columns:repeat(auto-fill,minmax(200px,1fr))}
.ya-kisayol-izgara:empty{display:none}
.ya-kisayol-kart{background:var(--ya-kar);border:1px solid var(--ya-hair);border-radius:12px;padding:14px;
  display:flex;flex-direction:column;justify-content:space-between;gap:10px;height:140px;box-sizing:border-box;
  text-align:left;font-family:inherit;color:var(--ya-metin);cursor:pointer}
.ya-kisayol-kart:hover{background:var(--ya-krem);border-color:rgba(224,123,42,.45)}
.ya-kisayol-izgara--sayisiz .ya-kisayol-kart{height:72px;flex-direction:row;align-items:center;justify-content:flex-start;padding:0 14px}
.ya-kisayol-bas{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--ya-metin2)}
.ya-kisayol-bas b{color:var(--ya-metin);font-weight:600}
.ya-kisayol-deger{display:flex;flex-direction:column;gap:2px}
.ya-kisayol-deger .deger{font-family:"IBM Plex Mono",monospace;font-size:26px;font-weight:700;line-height:1.15;min-height:30px}
.ya-kisayol-deger .ad{font-size:12px;color:var(--ya-metin2)}
.ya-kisayol-deger .deger--turuncu{color:var(--ya-dis-koyu)}
.ya-kisayol-deger .deger--sonuk{color:var(--ya-metin3)}
.ya-kisayol-yukleniyor{display:block;width:40px;height:26px;border-radius:6px;background:var(--ya-hair);margin:2px 0}

/* --- sol menü rozeti (7 Eyl 2026): bildirim/mesaj sayısı — yeni-kabuk.js yaKabukRozet --- */
body.ya-acik .ya-sol-menu-oge .ya-sol-rozet{margin-left:auto;font-family:"IBM Plex Mono",monospace;font-size:10.5px;font-weight:700;background:var(--ya-dis);color:var(--ya-kabuk);border-radius:99px;padding:1px 7px;line-height:1.4}
