/* =====================================================================
   DASHBOARD — aylık yönetim raporu (public/js/dashboard.js)
   ---------------------------------------------------------------------
   Ayri dosya: app.css baska bir oturumda acikti (27.08.2026) ve bu
   modul tek satir silinerek (index.html'deki <link>) tamamen geri
   alinabilsin isteniyordu. Butun kurallar `.dshRapor` altinda —
   baska hicbir ekrani etkilemez.

   ═══ PALET — PDF'ten CIKARILDI, UYDURULMADI ═══
   `Dashboard 1-7.pdf` icindeki dolgu/cizgi/yazi renkleri okunup birebir
   alindi (27.08.2026). Degistirmeden once PDF'e bakin.

     --dNavy   #16294d  ust cizgi · Ozet/Kapanis sol kenari · secili dugme
     --dNavy2  #33518a  bolum basliklari · cubuklar · POZITIF degerler
     --dNavy3  #8aa0c4  butce cubugu
     --dNavy4  #c6d0de  gecen yil cubugu
     --dInk    #16233f  buyuk sayilar, satir adlari
     --dInk2   #1f2933  govde metni
     --dMuted  #8a9099  etiketler, alt satirlar, dipnot
     --dLine   #e6e9ee  tablo cizgileri
     --dBand   #edf1f6  TOPLAM satiri zemini
     --dTrack  #e9edf3  cubuk rayi
     --dRed    #a23b36  NEGATIF degerler
     acik ozet zemini #f5f7fa (PDF sayfa 3'teki marj ozet kartinin tonu)

   ⚠️ YESIL YOK. PDF'te pozitif deger YESIL degil LACIVERT, negatif
   KIRMIZI. Blueprint'in ev tokenlari (--ok yesil) burada KULLANILMAZ;
   rapor kurumsal kimlikte tek renk ailesiyle okunuyor.

   TİP ÖLÇEĞİ — satir ici `font-size` YAZILMAZ, hepsi burada:
   ┌────────────────────────┬──────────┬────────────────────────────┐
   │ rol                    │ boyut/ag.│ nerede                     │
   ├────────────────────────┼──────────┼────────────────────────────┤
   │ marka satiri           │ 15 / 800 │ .dshMarka                  │
   │ donem basligi          │ 12 / 700 │ .dshDonem                  │
   │ sayfa basligi          │ 24 / 700 │ .dshSayfaBas h2            │
   │ sayfa numarasi         │ 11 / 700 │ .dshSayfaNo                │
   │ bolum basligi          │ 12 / 700 │ .dshBolumBas               │
   │ KPI degeri             │ 27 / 700 │ .dshKartDeger              │
   │ KPI degeri (buyuk)     │ 31 / 700 │ .dshBuyuk .dshKartDeger    │
   │ KPI etiketi            │ 10 / 700 │ .dshKartEt (metin buyuk)   │
   │ KPI alt satiri         │ 11,5/400 │ .dshKartAlt                │
   │ tablo                  │ 13 / 400 │ .dshTablo                  │
   │ tablo basligi          │ 11 / 600 │ .dshTablo th (kucuk)       │
   │ TOPLAM satiri          │ 13 / 700 │ .dshTablo tfoot th         │
   │ ikincil alt satir      │ 11 / 400 │ .dshAlt2                   │
   │ ozet maddeleri         │ 13,5/400 │ .dshOzetListe              │
   │ dipnot / alt aciklama  │ 11,5/400 │ .dshAltNot, .dshDipnot     │
   └────────────────────────┴──────────┴────────────────────────────┘
   ===================================================================== */
.dshRapor{
  --dNavy:#16294d; --dNavy2:#33518a; --dNavy3:#8aa0c4; --dNavy4:#c6d0de;
  --dInk:#16233f;  --dInk2:#1f2933;
  /* ⚠️ PDF'in gri tonu #8a9099 idi; ekranda 11px ikincil yazıda beyaz
     üstünde kontrast 3,22 çıkıyor — WCAG AA eşiği 4,5'in ALTINDA.
     Kalite raporundaki (.krRapor) çözümün aynısı: yalnız bu kapta
     koyultuldu, ölçüldü 4,74 (karanlıkta 6,31). Kağıtta fark edilmiyor, ekranda ediliyor. */
  --dMuted:#6b7480;
  --dLine:#e6e9ee; --dBand:#edf1f6;  --dTrack:#e9edf3; --dRed:#a23b36;
  /* YÜZEY tokenları — karanlık mod bunları ezer, kural gövdesine
     `#fff` YAZILMAZ (yoksa karanlıkta beyaz lekeler kalır).        */
  --dYuzey:#fff;        /* tablo · kart · düğme zemini */
  --dYumusak:#f5f7fa;   /* özet ve marj kutusu (PDF'in kendi açık tonu) */
  --dHover:#fafbfc;
  --dSayfa:transparent; /* panel zemini — yalnız karanlıkta dolar */
  --dTers:#fff;         /* vurgu zemini üstündeki yazı */
  color:var(--dInk2);
}

/* ═══ KARANLIK MOD (kullanıcı isteği 01.09.2026: "zıttı renkleri verelim")
   Aynı lacivert kimlik korunur, yalnız KUTUP değişir: koyu zeminde
   lacivert AÇILIR (#7ea6e0), yoksa okunmaz. Kırmızı da açılır.
   Ölçüldü — gövde metni 11,4:1, ikincil 6,2:1, pozitif 6,6:1,
   negatif 5,4:1 (WCAG AA eşiği 4,5).
   ⚠️ Yazdırmada karanlık mod KAPANIR (aşağıda @media print).

   ⚠️ 01.09.2026 · SİTE GENELİ TEMAYA BAĞLANDI. Bu blok önce yalnız
   `.dshKaranlik` sınıfıyla açılıyordu; Dashboard'ın kendi düğmesi ve
   kendi `localStorage` anahtarı vardı. Site geneli tema gelince iki ayrı
   anahtar kafa karıştırırdı, o yüzden artık `data-theme` de tetikliyor.
   `.dshKaranlik` BİLEREK duruyor: sınıfı kullanan bir yol kalırsa
   sessizce bozulmasın. Sıra önemli — `@media print` bu bloktan SONRA
   gelmeli, yoksa kağıtta karanlık kalır.                              */
.dshRapor.dshKaranlik,
:root[data-theme="dark"] .dshRapor{
  --dNavy:#7ea6e0; --dNavy2:#8fb0e8; --dNavy3:#4d6ea8; --dNavy4:#33496e;
  --dInk:#eef3fa;  --dInk2:#c9d3e1;  --dMuted:#93a0b2;
  --dLine:#2b374a; --dBand:#1b2636; --dTrack:#233044; --dRed:#ef8b83;
  --dYuzey:#151e2c; --dYumusak:#18222f; --dHover:#1c2635;
  --dSayfa:#0e1520; --dTers:#0e1520;
  background:var(--dSayfa); padding:16px 18px; border-radius:14px;
}
.dshRapor button{font-family:inherit;font-size:13px;line-height:1.35}
.dshRapor .num{font-variant-numeric:tabular-nums}
/* POZITIF LACIVERT, NEGATIF KIRMIZI — PDF'in kurali (yukaridaki uyari) */
.dshRapor .iyi{color:var(--dNavy2);font-weight:700}
.dshRapor .kotu{color:var(--dRed);font-weight:700}

/* Yazdirma basligi/dipnotu — ekranda GIZLI, yalniz @media print'te acilir */
.dshYaziBas,.dshYaziAlt{display:none}

/* ---- Üst şerit ---- */
.dshUst{display:flex;align-items:flex-end;justify-content:space-between;gap:14px;flex-wrap:wrap;
  padding:0 0 10px;border-bottom:2.5px solid var(--dNavy);margin-bottom:16px}
/* ⚠️ `text-transform:uppercase` YOK. Sayfa `lang="tr"` oldugu icin
   tarayici Turkce kurala gore buyutuyor ve "Bluemint" -> "BLUEMİNT"
   cikiyordu (PDF'te "BLUEMINT"). Metin zaten buyuk yaziliyor.      */
.dshMarka{font-size:15px;font-weight:800;letter-spacing:.6px;color:var(--dInk)}
.dshMarka span{color:var(--dMuted);font-weight:700}
.dshDonem{font-size:12px;font-weight:700;letter-spacing:1.1px;color:var(--dInk);text-transform:uppercase}
.dshUstSag{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.dshSec{width:auto;min-width:140px;padding:7px 10px;font-size:13px;color:var(--dInk);
  background:var(--dYuzey);border-color:var(--dLine)}
.dshIkon{border:1px solid var(--dLine);background:var(--dYuzey);border-radius:9px;
  padding:6px 10px;cursor:pointer;color:var(--dInk2);line-height:1}
.dshMod{display:inline-flex;border:1px solid var(--dLine);border-radius:9px;overflow:hidden;background:var(--dYuzey)}
.dshMod button{border:0;background:transparent;padding:7px 12px;cursor:pointer;color:var(--dInk2)}
.dshMod button.on{background:var(--dNavy);color:var(--dTers);font-weight:700}

/* ---- Bölüm gezinme ---- */
/* ⚠️ top = ÜST ÇUBUĞUN ÖLÇÜLEN YÜKSEKLİĞİ (core.js > ustYukOlc, 22.09.2026);
   sabit 64 px menü iki satıra inince bölüm düğmelerini çubuğun ALTINA sokuyordu. */
.dshNav{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:16px;position:sticky;top:var(--ustYuk,64px);z-index:5;
  background:var(--dSayfa,var(--bg));padding:6px 0}
.dshNav button{border:1px solid var(--dLine);background:var(--dYuzey);border-radius:999px;
  padding:6px 14px;cursor:pointer;color:var(--dInk2)}
.dshNav button.on{background:var(--dNavy);border-color:var(--dNavy);color:var(--dTers);font-weight:700}

/* ---- Uyarı şeritleri (yalnız veri/göç eksikliği için) ---- */
.dshUyari{color:var(--dInk2)}
.dshSerit{border:1px solid var(--dLine);border-left:3px solid var(--dNavy2);background:var(--dBand);
  border-radius:8px;padding:9px 12px;margin-bottom:12px;font-size:12px;color:var(--dInk2)}
.dshSeritKotu{border-left-color:var(--dRed)}

/* ---- Sayfa blokları ---- */
/* ⚠️ `minmax(0,1fr)` ŞART (21.09.2026, telefonda ölçüldü). Kolon yazılmayınca
   ızgaranın tek kolonu `auto` oluyor ve İÇERİĞİN en geniş hâline açılıyor:
   Satış Kanalı tablosu 592 px olduğu için 375 px'lik telefonda bütün
   sayfa 266 px yana taşıyor, sağda bir sonraki sütun görünüyordu. Tablo
   zaten `.dshKaydir` içinde kendi kendine yana kayar — kap daralsın yeter. */
.dshSayfa{display:grid;grid-template-columns:minmax(0,1fr);gap:16px;margin-bottom:30px;scroll-margin-top:calc(var(--ustYuk,64px) + 56px)}
.dshIkili{display:grid;gap:16px;grid-template-columns:repeat(2,minmax(0,1fr))}
@media (max-width:900px){ .dshIkili{grid-template-columns:minmax(0,1fr)} }
/* PDF'teki sayfa basligi: solda buyuk ad, sagda "SAYFA 02 / 04" */
.dshSayfaBas{display:flex;align-items:baseline;justify-content:space-between;gap:12px;
  margin:4px 0 -4px}
.dshSayfaBas h2{font-size:24px;font-weight:700;letter-spacing:-.4px;color:var(--dInk);margin:0}
.dshSayfaNo{font-size:11px;font-weight:700;letter-spacing:1.6px;color:var(--dMuted);text-transform:uppercase}
/* Bölüm başlığı (KANAL · CİNSİYET · SEGMENT) — kullanıcı 01.09.2026:
   *"biraz daha kendi bölgesine yakın olsun, çok uzak duruyor verilerden;
   bir tık daha büyütebiliriz, ana başlığı geçmesin."*
   14px (sayfa başlığı 24px — geçmiyor) ve alt boşluk 10px -> 3px.  */
/* Sayfa 1'in iki kutusu ve marj özeti TABLO DEĞİL — başlıkları hâlâ
   ayrı satırda. Tablolarda başlık `.dshTabloBas` ile ilk hücreye girdi. */
.dshBolumBas{font-size:14px;font-weight:700;letter-spacing:1px;color:var(--dNavy2);
  text-transform:uppercase;margin:0 0 3px}

/* Tablonun İLK BAŞLIK HÜCRESİ = bölüm başlığı (ayrı satır yok).
   ⚠️ `.dshTablo thead th` içindeki `text-transform:none` burada geri
   açılıyor — Türkçe büyütme bu kelimelerde doğru çalışıyor
   ("Cinsiyet"->"CİNSİYET", "Mağaza ligi"->"MAĞAZA LİGİ").            */
.dshTablo thead th.dshTabloBas{font-size:14px;font-weight:700;letter-spacing:1px;
  color:var(--dNavy2);text-transform:uppercase;white-space:nowrap;
  text-align:left;vertical-align:bottom}
.dshTabloBas em{font-style:normal;font-size:12.5px;font-weight:600;
  letter-spacing:.2px;text-transform:none}
.dshBolumBas em{font-style:normal;letter-spacing:.2px;text-transform:none}

/* ---- ÖZET ve KAPANIŞ · ACIK zemin ----
   ⚠️ PDF'te bu iki blok KOYU LACIVERT zemin + beyaz yaziydi ve ilk
   surumde oyle yapilmisti. Kullanici 27.08.2026: *"ozeti laci uzerine
   beyaz yapmayalim, orayi bir elden gecir."*  Gerekcesi de saglam:
   raporun en cok okunan METNI orasi, koyu zeminde ince yazi yoruyor ve
   blok sayfanin geri kalanindan kopuk duruyordu.

   Yerine PDF'in kendi acik tonu (`#f5f7fa` — sayfa 3'teki marj ozet
   karti) + kalin lacivert sol kenar. Blok hala "bu bir ozet" diye
   ayrisiyor ama yazi koyu ve rahat okunuyor.
   Renk uydurulmadi, yine PDF'ten alindi.                              */
.dshOzet{background:var(--dYumusak);border:1px solid var(--dLine);
  border-left:4px solid var(--dNavy);border-radius:12px;padding:18px 20px}
.dshOzetBas{font-size:11px;font-weight:700;letter-spacing:3px;color:var(--dNavy2);
  text-transform:uppercase;margin:0 0 12px}
.dshOzetListe{margin:0;padding:0;list-style:none;display:grid;gap:9px;
  font-size:13.5px;line-height:1.6;color:var(--dInk2)}
.dshOzetListe li{position:relative;padding-left:16px}
/* Madde imi: PDF'teki kucuk kare */
.dshOzetListe li::before{content:"";position:absolute;left:0;top:.58em;width:5px;height:5px;
  background:var(--dNavy2);border-radius:1px}
/* Cumle icindeki rakamlar koyulastirilir — goz once sayilari yakalasin */
.dshOzetListe b{color:var(--dInk);font-weight:700}

/* ---- KPI kartları ----
   Kolon sayisi ACIK yazilir, `auto-fit` DEGIL: auto-fit 1440px'de
   12 karti 5+5+2 diye tirtikli indiriyordu (Hedef Takip'te olculmustu). */
.dshKartlar{display:grid;gap:12px;grid-template-columns:repeat(4,minmax(0,1fr))}
@media (max-width:1100px){ .dshKartlar{grid-template-columns:repeat(3,minmax(0,1fr))} }
@media (max-width:760px){ .dshKartlar{grid-template-columns:repeat(2,minmax(0,1fr))} }
.dshKart{background:var(--dYuzey);border:1px solid var(--dLine);border-radius:11px;padding:13px 14px;min-width:0}
/* Etiketler HTML'de buyuk yaziliyor — bkz. .dshMarka'daki gerekce
   ("Online payi" -> "ONLİNE PAYI" olmasin).                        */
.dshKartEt{font-size:10px;font-weight:700;letter-spacing:1.2px;color:var(--dMuted)}
.dshKartDeger{font-size:27px;font-weight:700;letter-spacing:-.8px;color:var(--dInk);margin:6px 0 3px;
  font-variant-numeric:tabular-nums;line-height:1.05}
.dshBuyuk .dshKartDeger{font-size:31px}
/* İki alt satır olabilir (bütçe/GY) — ikincisi biraz daha sıkışık */
.dshKartAlt{font-size:11.5px;color:var(--dMuted);line-height:1.4}
.dshKartAlt + .dshKartAlt{margin-top:1px}

/* ---- Kart (beyaz kutu) — app.css `.card`ı burada ezmiyoruz, kendi kabı ---- */
.dshKutu{background:var(--dYuzey);border:1px solid var(--dLine);border-radius:12px;padding:16px 18px}

/* ---- Çubuk (gerçekleşen / bütçe / geçen yıl) ---- */
.dshCubukSatir{display:grid;grid-template-columns:104px minmax(0,1fr) 104px;align-items:center;
  gap:12px;margin-bottom:11px}
.dshCubukAd{font-size:13px;font-weight:700;color:var(--dInk)}
.dshCubukRay{background:var(--dTrack);border-radius:999px;height:13px;overflow:hidden}
.dshCubuk{height:100%;border-radius:999px}
.dshCubukGer{background:var(--dNavy2)}
.dshCubukBut{background:var(--dNavy3)}
.dshCubukGy{background:var(--dNavy4)}
.dshCubukDeger{font-size:13.5px;font-weight:700;text-align:right;color:var(--dInk);
  font-variant-numeric:tabular-nums}

/* Tablo/liste içindeki ince oransal çubuk */
.dshMini{height:9px;border-radius:999px;background:var(--dNavy2);min-width:6px}
.dshMiniRay{background:var(--dTrack);border-radius:999px;height:9px;overflow:hidden;min-width:40px}

/* ---- Kanal listesi (sayfa 1 sağ kart) ---- */
.dshKanalSatir{padding:10px 0;border-bottom:1px solid var(--dLine)}
.dshKanalSatir:last-child{border-bottom:0}
.dshKanalUst{display:flex;align-items:baseline;justify-content:space-between;gap:10px}
.dshKanalAd{font-size:13.5px;font-weight:700;color:var(--dInk)}
.dshKanalNet{font-size:14px;font-weight:700;color:var(--dInk);font-variant-numeric:tabular-nums}
.dshKanalAlt{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:6px}
.dshKanalAdet{font-size:11.5px;color:var(--dMuted);font-variant-numeric:tabular-nums;white-space:nowrap}

/* ---- Tablolar · PDF DÜZENİ ----
   ⚠️ İÇ KAYDIRMA YOK — bilerek. Bir ara `overflow:auto` +
   `max-height:min(62vh,620px)` vardı (yapışkan başlık satırı için).
   Kullanıcı 28.08.2026: *"neredeyse yarısı yok verinin burada."*
   Kısa ekranda tablolar kendi kutularında kayıyor, satırların bir kısmı
   gizli kalıyordu. Bu bir RAPOR ekranı — tablolar en fazla 10 satır.
   Yalnız YATAY kaydırma kaldı (dar telefonda); ev kuralı gereği sayfa
   gövdesi asla kaymaz.

   ⚠️ TABLOLAR KUTUSUZ (`.dshDuz`): PDF'te çerçeve/zemin yok. Çerçeveli
   kalanlar yalnız `.dshKutu` (sayfa 1'in iki kutusu), `.dshOzetKutu`
   (marj özeti) ve `.dshAlti` (bütçe altı).                           */
.dshDuz{background:none;border:0;padding:0}
/* Kullanıcı 01.09.2026: *"verilerin bulunduğu satırlar bi tık
   arkaplanla aynı renk olduğu için sitenin genel arkaplan renginden
   biraz ayrıştırmamız lazım, arkaplanı beyaz kullanabiliriz."*
   Tablo kendi yüzeyine oturuyor; başlık dışarıda, sayfa zemininde
   kalıyor — PDF'in düz görünümü bozulmadan satırlar ayrışıyor.     */
.dshKaydir{overflow-x:auto;overflow-y:visible;background:var(--dYuzey);
  border:1px solid var(--dLine);border-radius:9px}
.dshTablo{width:100%;border-collapse:collapse;font-size:13px}
.dshTablo th,.dshTablo td{padding:7px 10px;text-align:left;vertical-align:top}
/* Başlık satırı: küçük, gri, TİTLE CASE (PDF'te "Net Satış" — hep büyük değil),
   altında ince lacivert çizgi. İlk kolonun başlığı BOŞ: bölüm adı zaten üstte. */
/* ⚠️ app.css:110'da GENEL bir `th{text-transform:uppercase}` var —
   PDF'te kolon basliklari "Net Satis" bicimindedir, hep buyuk degil.
   Bu yuzden burada acikca kapatiliyor (tfoot ve .dshTopAdet dahil).  */
.dshTablo thead th{background:var(--dYuzey);padding-bottom:5px;font-size:11px;font-weight:600;
  letter-spacing:.2px;color:var(--dMuted);white-space:nowrap;text-transform:none;
  border-bottom:1.2px solid var(--dNavy)}
.dshTablo tbody td{border-bottom:1px solid var(--dLine);color:var(--dInk2)}
.dshTablo tfoot th{background:var(--dBand);font-size:12.5px;font-weight:700;
  color:var(--dInk);border-top:1px solid var(--dLine);padding:8px 10px;
  text-transform:none;letter-spacing:0}
.dshTablo .sag{text-align:right}
/* Satır adı — PDF'te koyu ve kalın, ama BÜYÜK HARF DEĞİL */
.dshAd{color:var(--dInk);font-weight:700;white-space:nowrap}
.dshTablo tbody td.dshAd{color:var(--dInk);font-weight:700}
/* TOPLAM satırındaki "· 328.863 adet" — PDF'te gri ve küçük, adın yanında */
.dshTopAdet{font-weight:400;font-size:11px;color:var(--dMuted);margin-left:6px;
  text-transform:none;letter-spacing:0;font-variant-numeric:tabular-nums}
/* Pay ve S/T geçen yıl kolonları PDF'te GRİ (ikincil bilgi) */
.dshPay{color:var(--dMuted)}
.dshTablo tbody tr:hover td{background:var(--dHover)}
.dshSira{color:var(--dMuted);font-weight:700;width:22px;padding-right:0}
.dshCubukHucre{width:34%;padding-top:11px}
/* Ana rakamın ALTINDAKİ ikincil değer (adet · GY · pp) — kullanıcı:
   "ben hep rakamların altında gy rakamlarını görmek istiyorum" */
.dshAlt2{display:block;font-size:11px;font-weight:400;color:var(--dMuted);margin-top:2px;
  font-variant-numeric:tabular-nums}
.dshAlt2 .iyi,.dshAlt2 .kotu{font-weight:600}
.dshBosDeger{color:var(--dMuted)}

/* ---- Bütçe altı listesi — PDF'te kırmızı sol kenarlı kart ---- */
.dshAlti{border:1px solid var(--dLine);border-left:3px solid var(--dRed);border-radius:10px;
  background:var(--dYuzey);padding:14px 16px}
.dshAltiBas{font-size:11px;font-weight:700;letter-spacing:1.4px;color:var(--dRed);
  text-transform:uppercase;margin:0 0 10px}
.dshAltiNot{font-weight:400;letter-spacing:.2px;text-transform:none;color:var(--dMuted);margin-left:10px}
.dshAltiIzgara{display:grid;gap:8px 20px;grid-template-columns:repeat(3,minmax(0,1fr))}
@media (max-width:760px){ .dshAltiIzgara{grid-template-columns:repeat(2,minmax(0,1fr))} }
.dshAltiSatir{display:flex;align-items:baseline;gap:8px;min-width:0}
.dshAltiAd{font-size:13px;font-weight:700;color:var(--dInk);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.dshAltiDeger{font-size:13px;font-weight:700;color:var(--dRed);font-variant-numeric:tabular-nums;margin-left:auto}

/* PDF sayfa 1'in altindaki kisaltma aciklamasi */
.dshLegend{font-size:11px;color:var(--dMuted);padding-top:2px}

/* Marj özeti — PDF sayfa 3'teki açık gri kart. İçindeki kartlar
   çerçevesiz (`.dshKartYalin`), zemin zaten kutunun kendisi.        */
.dshOzetKutu{background:var(--dYumusak);border:1px solid var(--dLine);border-radius:12px;padding:16px 18px}
.dshKartYalin{background:none;border:0;padding:0}

/* Kutu içi tek satırlık alt bilgi (açıklama notu DEĞİL) */
.dshKutuAlt{font-size:11.5px;color:var(--dMuted);line-height:1.5;margin-top:10px;
  border-top:1px solid var(--dLine);padding-top:9px}

/* ---- Alt açıklamalar ---- */
.dshAltNot{font-size:11.5px;color:var(--dMuted);line-height:1.55;margin-top:12px}
.dshDipnot{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;
  font-size:11.5px;color:var(--dMuted);padding:14px 0 4px;border-top:1px solid var(--dLine)}

/* Karanlıkta ince ayarlar: TOPLAM bandı ve rozet zemini yüzeyle
   karışmasın, çubuk rayı görünür kalsın.                           */
.dshKaranlik .dshRozet{background:var(--dTrack);color:var(--dNavy2)}
.dshKaranlik .dshCubukGer{background:var(--dNavy2)}
.dshKaranlik .dshSerit{background:var(--dBand)}

/* ---- Sunum modu (toplantı / projeksiyon) ----
   Tam ekran reddedilse bile bu sinif tek basina yeterli: cerceve
   daralir, yazi buyur, gezinme sabit kalir.                        */
.dshSunum{background:var(--bg);padding:18px 22px;overflow:auto}
.dshSunum .dshKartDeger{font-size:33px}
.dshSunum .dshBuyuk .dshKartDeger{font-size:39px}
.dshSunum .dshTablo{font-size:14.5px}
.dshSunum .dshOzetListe{font-size:15px}
.dshSunum .dshNav{top:0}
/* ⚠️ DOKUNMATİK CİHAZDA ÜST ÇUBUK YAPIŞKAN DEĞİL (`app.css` içindeki
   `@media(pointer:coarse)` → `.top{position:static}`). 64 pxlik pay
   orada boşa gidiyor: gezinme şeridi ekranın 64 px aşağısına çakılıyor
   ve üstündeki boşluktan ALTTAKİ İÇERİK kayarken görünüyor. Aynı kusur
   04.09.2026da PBI raporlarında ölçüldü ve orada JS ile çözüldü
   (`urunkiyas.js > ukYapistir` çubuğun gerçekten yapışkan olup
   olmadığına bakıyor); burada sabit sayı olduğu için tek satır yeter. */
@media(pointer:coarse){ .dshNav{top:0} }

/* =====================================================================
   YAZDIRMA — PDF'in BIREBIR karsiligi
   ---------------------------------------------------------------------
   Kullanici 28.08.2026: *"yazdira bastigimda pdf formati veriyor ya onu
   onceki olusan pdf ile birebir ayni yapalim... ancak ozet kismini ayni
   tutalim seninle yaptigimiz gibi olsun."*

   Olculer `Dashboard 1-7.pdf`ten CIKARILDI (pymupdf ile), uydurulmadi.
   PDF sayfasi 446,25 x 631,50 pt = **A4'un %75'i** (oran 0,7067 ↔ A4
   0,7071). Yani belge A4 DIKEY; butun olculer k = 595,28/446,25 = 1,3340
   ile A4'e cevrildi:

     sol/sag kenar   30,0 pt → 40,0 pt = 14,1 mm
     ust lacivert cizgi  39,0 pt → 52,0 pt = 18,3 mm
     alt ince cizgi     606,0 pt → 808,4 pt = 11,8 mm (alttan)
     marka  9,0 pt → 16,0 px      sayfa basligi 11,2 pt → 19,9 px
     KPI degeri 12,0 pt → 21,3 px (sayfa 4'te 12,8 → 22,8)
     satir adi 6,8 pt → 12,1 px   govde 6,1 pt → 10,9 px
     kucuk etiket 5,2 pt → 9,3 px  en kucuk 4,8 pt → 8,5 px

   ⚠️ TEK BILINCLI SAPMA: **Ozet ve Kapanis** bloklari. PDF'te koyu
   lacivert zemin + beyaz yaziydi; kullanici acik zemini istedi ve
   yazdirmada da oyle kalmasini soyledi. Geri kalan her sey PDF gibi.

   ⚠️ Baslik/dipnot HER SAYFADA tekrar etmeli. Bunun tek yolu
   `position:fixed`: tarayici sabit ogeyi her sayfaya yeniden basar.
   Negatif `top`/`bottom` ile sayfa KENAR BOSLUGUNA oturtuluyorlar,
   yoksa icerigin ustune binerlerdi.
   ===================================================================== */
@media print{
  /* ⚠️ `@page margin:0` — iki işi birden yapıyor:
     1) Tarayıcının KENDİ üstbilgi/altbilgisi (tarih · sayfa adı · URL)
        kenar boşluğuna çizilir; boşluk kalmayınca basılmaz. Kullanıcı
        01.09.2026'da "2.09.2026 11:37 · Blueprint" satırını PDF'te gördü.
     2) Sayfa kutusunun yüksekliği tam 297 mm oluyor, kenar boşluğu
        `.dshSayfa`nın kendi dolgusundan geliyor — böylece bir bölümün
        bir sayfaya sığıp sığmadığı ÖLÇÜLEBİLİR bir sayı.            */
  @page{ size:A4 portrait; margin:0; }
  html,body{background:#fff}
  .top,.seg,.dshNav,.dshUst,.dshDipnot,.spin,.onizNot{display:none !important}
  .wrap{max-width:none !important;width:auto !important;padding:0 !important;margin:0 !important}
  .dshRapor{-webkit-print-color-adjust:exact;print-color-adjust:exact;
    font-size:10.9px;line-height:1.35}
  /* Kağıtta karanlık mod olmaz — tokenlar aydınlığa döner */
  .dshRapor.dshKaranlik,:root[data-theme="dark"] .dshRapor{background:none;padding:0;
    --dNavy:#16294d; --dNavy2:#33518a; --dNavy3:#8aa0c4; --dNavy4:#c6d0de;
    --dInk:#16233f;  --dInk2:#1f2933;  --dMuted:#6b7480;
    --dLine:#e6e9ee; --dBand:#edf1f6;  --dTrack:#e9edf3; --dRed:#a23b36;
    --dYuzey:#fff;   --dYumusak:#f5f7fa; --dHover:#fafbfc; --dTers:#fff}

  /* ---- HER BÖLÜM = BİR A4 SAYFASI ----
     Kenar boşlukları PDF'ten ölçüldü (k=1,3340 ile A4'e çevrildi):
     sol/sağ 14,1 mm · üst çizgi 18,3 mm · alt çizgi 11,8 mm.
     Dolgu `@page`de değil BURADA — bkz. yukarıdaki gerekçe.        */
  .dshSayfa{box-sizing:border-box;min-height:297mm;padding:14mm 14mm 10mm;
    display:flex;flex-direction:column;gap:4px;margin:0;
    break-after:page;page-break-after:always}
  .dshSayfa:last-of-type{break-after:auto;page-break-after:auto}
  .dshIkili{gap:12px}
  .dshSayfaBas{margin:0 0 1px}
  .dshSayfaBas h2{font-size:20px}
  .dshSayfaNo{font-size:9px;letter-spacing:1.4px}
  .dshBolumBas{font-size:12px;letter-spacing:1px;margin:0 0 2px}

  /* Başlık ve dipnot her bölümün İÇİNDE, normal akışta.
     Dipnot `margin-top:auto` ile sayfanın dibine oturur.            */
  .dshYaziBas,.dshYaziAlt{display:flex !important;align-items:baseline;
    justify-content:space-between;gap:10px;flex:none}
  .dshYaziBas{padding-bottom:2.4mm;margin-bottom:2mm;border-bottom:1.6px solid var(--dNavy)}
  .dshYaziAlt{margin-top:auto;padding-top:1.8mm;border-top:.8px solid var(--dLine)}
  .dshYaziBas .dshMarka{font-size:16px;font-weight:800;letter-spacing:.6px;color:var(--dInk)}
  .dshYaziBas .dshMarka span{color:var(--dMuted)}
  .dshYaziBas .dshDonem{font-size:11px;font-weight:700;letter-spacing:1.1px;color:var(--dInk)}
  .dshYaziAlt span{font-size:8.5px;color:var(--dMuted)}

  /* ---- Tablolar PDF'te KUTUSUZ ---- */
  .dshKutu,.dshOzetKutu{padding:7px 10px}
  .dshDuz{padding:0}
  .dshKaydir{overflow:visible;border:0;border-radius:0}
  .dshTablo{font-size:10.9px}
  .dshTablo th,.dshTablo td{padding:2.4px 5px}
  .dshTopAdet{font-size:8px}
  .dshCubukHucre{padding-top:5px}
  .dshTablo thead th{font-size:8.5px;padding-bottom:3px}
  .dshTablo thead th.dshTabloBas{font-size:12px}
  .dshTablo tfoot th{font-size:11px;padding:4px 5px}
  .dshTablo tbody td:first-child{font-size:11.5px}
  .dshAlt2{font-size:8.5px;margin-top:1px}

  /* ---- KPI kartlari ---- */
  .dshKartlar{gap:5px}
  .dshKart{padding:5px 8px;border-radius:7px;break-inside:avoid;page-break-inside:avoid}
  .dshKartEt{font-size:8.5px;letter-spacing:1px}
  /* ⚠️ Kartta IKI alt satir var (butce + GY) — sayfa 1 bir ara 1 px
     tasti. Satir yuksekligini buyutmeden once yazdirmayi olcun.     */
  .dshKartDeger,.dshBuyuk .dshKartDeger{font-size:20px;margin:1px 0 0}
  .dshKartAlt{font-size:8.5px;line-height:1.25}
  .dshKartAlt + .dshKartAlt{margin-top:0}

  /* ---- Cubuklar ---- */
  .dshCubukSatir{grid-template-columns:88px minmax(0,1fr) 88px;gap:9px;margin-bottom:5px}
  .dshCubukAd{font-size:11px}
  .dshCubukRay{height:10px}
  .dshCubukDeger{font-size:11.5px}
  .dshMini,.dshMiniRay{height:7px}
  .dshKanalSatir{padding:4px 0}
  .dshKanalAd,.dshKanalNet{font-size:11.5px}
  .dshKanalAdet{font-size:8.5px}

  /* ---- Ozet (ekrandakiyle ayni acik zemin — kullanici istegi) ---- */
  .dshOzet{padding:7px 11px;border-radius:8px;break-inside:avoid;page-break-inside:avoid}
  .dshOzetBas{font-size:9px;letter-spacing:2.4px;margin:0 0 5px}
  .dshOzetListe{font-size:10.9px;line-height:1.3;gap:1px}

  /* ---- Butce alti karti ---- */
  .dshAlti{padding:9px 11px;break-inside:avoid;page-break-inside:avoid}
  .dshAltiBas{font-size:9px;margin:0 0 6px}
  .dshAltiAd,.dshAltiDeger{font-size:11px}
  .dshAltNot,.dshKutuAlt,.dshLegend{font-size:8.5px;line-height:1.4;margin-top:6px}
}
