/* ISGhelp — HER EKRANIN yazdırılması.
 *
 * ⚠️ NEDEN (kullanıcı isteği, 15 Eylül 2026): *"Programda genel bir yazdırma
 * eksikliği var. Tüm panelin, tüm ekranları, tüm çıktılarını yazdırabileceğim
 * bir alan oluştur. Yazdır butonu ekle. Hepsine."*
 * Ölçüldü: 215 şablonun yalnız **20'sinde** yazdırma vardı; kalan ekranlar
 * Ctrl+P ile basıldığında kâğıda yan menü, süzgeç kutuları ve düğmeler
 * iniyordu.
 *
 * ⚠️ **`isgbys-cikti.css` İLE KARIŞTIRMAYIN.** O dosya, belge görünümlü
 * ÇIKTI ekranlarının (tutanak, matbu form, ADP) kâğıt düzenini kurar ve
 * yalnız o 20 ekrana yüklenir. Bu dosya ise **temel şablona** yüklenir ve
 * sıradan ekranların (liste, kütük, pano) basılabilmesini sağlar. Çıktı
 * ekranları ikisini birden yükler; `isgbys-cikti.css` `ek_stil` bloğunda,
 * yani SONRA geldiği için özel düzeni bu dosyayı ezer — bilerek böyle.
 *
 * ⚠️ **`.baski-gizle` kuralına dokunulmadı**: projede zaten "bunu kâğıda
 * basma" demenin yolu bu ve 27 yerde kullanılıyor. Yeni bir ad uydurmak
 * ikinci bir gelenek doğururdu.
 */

/* Kâğıt künyesi EKRANDA görünmez — yalnız baskıda çıkar.
   ⚠️ `hidden` özniteliği değil sınıf: `hidden` kullanılsaydı `@media print`
   içinde geri açmak için `[hidden]{display:block}` yazmak gerekirdi ve bu,
   programdaki bütün gizli öğeleri kâğıda düşürürdü. */
.yazdir-kunyesi { display: none; }

/* Yazdır düğmesi ekranda normal bir düğmedir; kuralları isgbys.css'ten alır. */

/* ================================================================
   0. EKRANDAKİ KÂĞIT DA HER TEMADA AYNI (17 Eyl 2026)
   ⚠️ Belge çıktısı ekranı (`.belge`) ve sertifika tuvali
   (`.taslak-tuval`) KÂĞIDIN ÖNİZLEMESİDİR; zeminleri her temada beyaz.
   İçlerindeki ortak sınıflar (`.soluk`, `.tablo`) ise rengini temadan
   alıyordu — Tebeşir'de beyaz kâğıtta açık gri yazı 2,25, koyu
   zeminli tablo hücresinde siyah yazı 1,00 ölçüldü (558 ekran, beş tema).
   ⚠️ Değerler aşağıdaki baskı kümesinin BİREBİR AYNISI: ekranda görülen
   kâğıt basılanın kendisidir. İki kopya olduğu için eşitlik testte
   çakılı (`test_tema.KagitEkrandaDaAyni`) — biri değişirse öteki de.
   ⚠️ `.belge` içinde bağlantı ve form öğesi YOK (17 Eyl'de ölçüldü);
   kâğıtta bağlantı siyah okunur, ekranda da öyle kalması sorun değil.
   ⚠️ Kural `@media print` DIŞINDA durmalı, yoksa yalnız baskıda çalışır.
   ================================================================ */
.belge,
.taslak-tuval {
  --zemin: #ffffff;
  --kart: #ffffff;
  --zemin-yumusak: #f2f2f0;
  --cizgi: #c9c6c0;
  --cizgi-koyu: #8d8a83;
  --yazi: #111111;
  --yazi-soluk: #4a4a4a;

  --tablo-baslik-zemin: #eceae4;
  --tablo-baslik-yazi: #222222;
  --satir-vurgu: #ffffff;
  --hucre-vurgu: #ffffff;

  --yesil-zemin: #e4f5ea;  --yesil-cizgi: #14682f;  --yesil-yazi: #0f3f22;
  --sari-zemin: #fbf0d6;   --sari-cizgi: #8a5406;   --sari-yazi: #5d3803;
  --kirmizi-zemin: #fbe2e7; --kirmizi-cizgi: #a3102f; --kirmizi-yazi: #720b23;
  --yesil-yumusak: #f4fbf6; --sari-yumusak: #fdf9f0; --kirmizi-yumusak: #fdf4f6;
  --yesil-uzeri-yazi: #ffffff;
  --sari-uzeri-yazi: #ffffff;
  --kirmizi-uzeri-yazi: #ffffff;

  --mavi: #6b4423;
  --mavi-acik: #6b4423;
  --vurgu-metin: #111111;
  --vurgu-dolu: #444444;
  --vurgu-yazi: #ffffff;
  --firma-zemin: #f4f2ee;
  --firma-cizgi: #c9c6c0;
  --bilgi-zemin: linear-gradient(90deg, #eef1ff, #f7edff);

  --golge: none;
  --golge-hover: none;
  --giris-golge: none;

  --yazi-ailesi: "Segoe UI", system-ui, -apple-system, sans-serif;
  --baslik-ailesi: var(--yazi-ailesi);
  --etiket-ailesi: var(--yazi-ailesi);
  --sayfa-basligi-boyut: 20px;
  --sayfa-basligi-kalinlik: 800;
  --sayfa-basligi-aralik: .02em;
  --sayfa-basligi-donusum: uppercase;
  --tablo-baslik-boyut: 12px;
  --tablo-baslik-kalinlik: 700;
  --tablo-baslik-aralik: .05em;
}

@media print {

  /* ================================================================
     1. KÂĞIT HER TEMADA AYNI GÖRÜNÜR
     ⚠️ Program dört temalı ve biri (Tebeşir) KOYU. Jetonlar olduğu gibi
     bırakılsaydı koyu temayı seçen kullanıcı siyah zeminli, pastel yazılı
     kâğıt basardı: hem okunmaz hem kartuş düşmanı. Kâğıtta jetonlar
     aydınlık kümeye sabitlenir — böylece çıktı, ekranda hangi tema seçili
     olursa olsun aynıdır.
     ⚠️ Seçici `html[data-tema]`: tema blokları da o özgüllükte yazıldığı
     için eşitlik var; bu dosya en SON yüklendiğinden kazanır.
     ================================================================ */
  :root,
  html,
  html[data-tema] {
    --zemin: #ffffff;
    --kart: #ffffff;
    --zemin-yumusak: #f2f2f0;
    --cizgi: #c9c6c0;
    --cizgi-koyu: #8d8a83;
    --yazi: #111111;
    --yazi-soluk: #4a4a4a;

    --tablo-baslik-zemin: #eceae4;
    --tablo-baslik-yazi: #222222;
    --satir-vurgu: #ffffff;
    --hucre-vurgu: #ffffff;

    /* Anlam üçlüsü kâğıtta da ANLAMDIR — silinmez, koyulaştırılır.
       ⚠️ Renksiz işaretler (●/◐/▲) zaten şablonda; siyah-beyaz yazıcıda
       tek taşıyıcı onlar. */
    --yesil-zemin: #e4f5ea;  --yesil-cizgi: #14682f;  --yesil-yazi: #0f3f22;
    --sari-zemin: #fbf0d6;   --sari-cizgi: #8a5406;   --sari-yazi: #5d3803;
    --kirmizi-zemin: #fbe2e7; --kirmizi-cizgi: #a3102f; --kirmizi-yazi: #720b23;
    --yesil-yumusak: #f4fbf6; --sari-yumusak: #fdf9f0; --kirmizi-yumusak: #fdf4f6;
    --yesil-uzeri-yazi: #ffffff;
    --sari-uzeri-yazi: #ffffff;
    --kirmizi-uzeri-yazi: #ffffff;

    --mavi: #6b4423;
    --mavi-acik: #6b4423;
    --vurgu-metin: #111111;   /* kâğıtta bağlantı ayrı renk olmaz, siyah okunur */
    --vurgu-dolu: #444444;
    --vurgu-yazi: #ffffff;
    --firma-zemin: #f4f2ee;
    --firma-cizgi: #c9c6c0;
    /* Bilgi kutusu kâğıtta jetondan önceki gibi basılır. */
    --bilgi-zemin: linear-gradient(90deg, #eef1ff, #f7edff);

    --golge: none;
    --golge-hover: none;
    --giris-golge: none;

    /* Yazı da her temada aynı (17 Eyl 2026, «Lacivert» serif başlık ve
       eş aralıklı etiket getirdi). Değerler `isgbys.css` `:root`
       varsayılanları — kâğıt temadan önceki gibi basılır. */
    --yazi-ailesi: "Segoe UI", system-ui, -apple-system, sans-serif;
    --baslik-ailesi: var(--yazi-ailesi);
    --etiket-ailesi: var(--yazi-ailesi);
    --sayfa-basligi-boyut: 20px;
    --sayfa-basligi-kalinlik: 800;
    --sayfa-basligi-aralik: .02em;
    --sayfa-basligi-donusum: uppercase;
    --tablo-baslik-boyut: 12px;
    --tablo-baslik-kalinlik: 700;
    --tablo-baslik-aralik: .05em;
  }

  /* Yan menünün kendi koyu jetonları kâğıda hiç girmiyor: menü zaten
     basılmıyor (aşağıda `display:none`). Burada tanımlanmaları gereksiz. */

  body {
    background: #ffffff !important;
    color: #111111 !important;
    font-size: 10.5pt;
  }

  /* ================================================================
     2. EKRANIN ÇERÇEVESİ KÂĞIDA BASILMAZ
     ⚠️ Liste ekranlarında süzgeç KUTULARI basılmaz ama seçili SÜZGEÇ
     kâğıt künyesinde yazılır (bkz. `temel.html` → `.yazdir-kunyesi`).
     Kutuyu gizleyip süzgeci de yazmasaydık, kâğıt "bütün işyerleri" gibi
     okunurdu — oysa elde süzülmüş bir liste var. Sessiz yanlış olurdu.
     ================================================================ */
  /* Çalışan portalının kendi başlığı ve menüsü (ayrı temel şablon). */
  .portal-ust,
  .portal-menu,
  .portal-kullanici,

  /* «Geri» kâğıtta iş görmez. */
  .geri-dugmesi,

  .yan-menu,
  .menu-dugme,
  .menu-anahtari,
  .hizli-arama,
  .yazdir-arac,
  .sayfalama,
  .baski-gizle,
  .odeme-hatirlatma,
  .belge-uyarisi,
  .kart-sirala,
  .firma-islem,
  .cikti-arac { display: none !important; }

  /* Araç çubuğunda BAŞLIK kalır, eylemler gider.
     ⚠️ `.ust-satir`ın tamamı gizlenmiyor: içindeki `<h1>` ekranın adıdır ve
     kâğıtta o ad olmazsa çıktı "hangi ekran" belirsiz kalır. */
  .ust-satir form,
  .ust-satir .dugme,
  .ust-satir button,
  .ust-satir select,
  .ust-satir input { display: none !important; }

  /* Tablo satırındaki işlem bağlantıları (Düzenle · Aktar · Sil) kâğıtta
     iş görmez ve sütunu şişirir.
     ⚠️ **ÖLÇÜT DAR TUTULDU, bilerek.** 51 şablonda 107 böyle hücre var ve
     hiçbirinin ayırt edici sınıfı yok. "İçinde bağlantı olan hücreyi gizle"
     denseydi `<td><a>{{ evrak.ad }}</a></td>` gibi **veri** hücreleri de
     kâğıttan silinirdi — kullanıcı eksik çıktıyı fark edemezdi. Ölçüt
     bu yüzden iki şartlı: **satırın SON hücresi** ve **içinde en az İKİ
     bağlantı** (`a + a`). Tek bağlantılı veri hücresi etkilenmez.
     ⚠️ `:has()` desteklenmeyen tarayıcıda kural yok sayılır ve bağlantılar
     basılır — sessizce yanlış bir çıktı değil, yalnız daha gürültülü biri. */
  .tablo td:last-child:has(a + a) { display: none !important; }
  .tablo th:last-child:empty { display: none !important; }
  /* Tek başına duran «Aç» düğmesi de kâğıtta iş görmez. */
  .tablo td:last-child > a.dugme:only-child { display: none !important; }

  .tablo .satir-islem,
  .tablo .satir-eylem,
  td .dugme,
  th .dugme { display: none !important; }

  /* Genel düğmeler: kâğıtta tıklanamaz.
     ⚠️ `.belge` İÇİNDEKİLER hariç tutulmuyor — çıktı ekranlarının kendi
     dosyası (`isgbys-cikti.css`) sonra yüklenip gerekeni ayarlıyor. */
  .icerik > .dugme,
  .kutu > .dugme { display: none !important; }

  /* ================================================================
     3. DÜZEN — tek sütun, kenar boşluğu kâğıdın kendi payı
     ================================================================ */
  .duzen { display: block !important; }
  .portal-icerik,
  .icerik {
    margin: 0 !important;
    padding: 0 !important;
    max-width: none !important;
    width: 100% !important;
  }

  /* ⚠️ Ekranda tablolar `.sarma` içinde YATAY KAYAR. Kâğıtta kaydırma
     yoktur: `overflow:auto` kalsaydı sığmayan sütunlar görünmeden
     kırpılırdı — kullanıcı eksik veriyi fark edemezdi. */
  .sarma {
    overflow: visible !important;
    max-height: none !important;
  }

  /* ================================================================
     4. KÂĞIT KÜNYESİ — çıktının ne olduğunu kâğıdın kendisi söyler
     ⚠️ Kurum · ekran · müşteri · süzgeç · tarih · yazdıran. Denetimde
     masaya konan kâğıdın kimden ve ne zaman çıktığı belli olmalı.
     ================================================================ */
  .yazdir-kunyesi {
    display: block !important;
    border-bottom: 1.5pt solid #111;
    padding-bottom: 6pt;
    margin-bottom: 10pt;
  }
  .yazdir-kunyesi .kurum {
    font-size: 13pt; font-weight: 700; margin: 0 0 2pt;
  }
  .yazdir-kunyesi .ekran { font-size: 11pt; font-weight: 600; margin: 0; }
  .yazdir-kunyesi .satir {
    font-size: 8.5pt; color: #333; margin-top: 3pt;
    display: flex; flex-wrap: wrap; gap: 2pt 14pt;
  }
  .yazdir-kunyesi .suzgec { font-weight: 600; }

  /* ================================================================
     5. TABLOLAR — çok sayfaya düzgün yayılır
     ⚠️ `display: table-header-group` olmadan başlık satırı YALNIZ ilk
     sayfada çıkar; 40 sayfalık bir çalışan listesinin 39 sayfası hangi
     sütunun ne olduğu bilinmeden basılır.
     ================================================================ */
  thead { display: table-header-group; }
  tfoot { display: table-footer-group; }
  tr, .kart, .kutu, .bilgi-kutu { page-break-inside: avoid; }
  h1, h2, h3, h4 { page-break-after: avoid; }

  .tablo { width: 100% !important; border-collapse: collapse; font-size: 9pt; }
  .tablo th, .tablo td {
    border: 0.5pt solid #b9b6b0 !important;
    padding: 3pt 5pt !important;
  }
  .tablo th { background: #eceae4 !important; -webkit-print-color-adjust: exact; print-color-adjust: exact; }

  /* Renkli durum hücrelerinin zemini kâğıda GERÇEKTEN insin.
     ⚠️ Tarayıcı varsayılan olarak zemin rengi basmaz ("arka planı yazdır"
     kapalı gelir); uyum çizelgesi renksiz basılırsa hiçbir şey anlatmaz.
     Renksiz işaretler yine de duruyor — ikisi birden. */
  .hucre, .kart, .rozet, .isaret, .etiket, .renk-oge i {
    -webkit-print-color-adjust: exact;
    print-color-adjust: exact;
  }

  /* Kart ızgaraları kâğıtta iki sütun: tek sütun kâğıt israfı,
     dört sütun okunmaz. */
  #kart-izgarasi, #modul-ekle-izgarasi, .kartlar {
    grid-template-columns: 1fr 1fr !important;
    gap: 6pt !important;
  }
  .kart { box-shadow: none !important; }

  /* ⚠️ Bağlantı adresleri kâğıda BASILMIYOR. `a[href]::after{content:attr(href)}`
     klasik bir tariftir ama bu programda her tablo satırında 3-4 bağlantı var;
     adresleri basmak listeyi okunmaz hâle getirir ve `/isyeri/ab12…/duzenle`
     kâğıtta hiçbir işe yaramaz. */
  a { color: inherit !important; text-decoration: none !important; }

  /* Renk anahtarı kâğıtta KALIR.
     ⚠️ `isgbys.css` onu `@media print` içinde gizliyordu; o kural yazdırma
     bir özellik DEĞİLKEN yazılmıştı. Renkli basılan bir uyum çizelgesinin
     yanında "yeşil ne demek" yazmazsa kâğıt kendi kendini anlatamaz.
     Bu dosya sonra yüklendiği için burası kazanır. */
  .renk-anahtari {
    display: flex !important;
    border-top: 0.5pt solid #b9b6b0;
    font-size: 8pt;
    margin-top: 10pt;
    padding-top: 5pt;
  }

  @page { size: A4; margin: 14mm 12mm; }

  /* Yatay sığmayan geniş çizelgeler için: şablon `.yatay-kagit` verirse
     o sayfa yatay basılır (uyum matrisi gibi 20+ sütunlu ekranlar). */
  .yatay-kagit { page: yatay; }
  @page yatay { size: A4 landscape; margin: 10mm; }
}

/* ============================================================
   FORM DENETİMLERİ KÂĞIDA BASILMAZ — 16 Eylül 2026
   ------------------------------------------------------------
   Kullanıcı: *"Yazılara tıklıyorum bu çıkıyor. Yani mevcut sayfanın
   yazılmasını ben istemiyorum, çıktı yazılmasını istiyorum… eğer
   mevcut sayfa yazılırsa bir işime yaramaz ki."*

   Ölçüldü (`/acil-durum/ekipler/?yazdir=1`): çıktıda «— çalışan —»
   açılır listeleri, «lider» kutucukları ve «Ekle» düğmeleri duruyordu.
   Kâğıda basılan şey bir belge değil, **doldurulmamış bir formdu**.

   ⚠️ Kural yalnız `.ust-satir` içinde vardı (üstteki süzgeçler); tablo
   hücrelerindeki denetimler basılmaya devam ediyordu.

   ⚠️ **Metin kutuları ve onay kutuları BİLEREK kalıyor**: onlar çoğu
   ekranda VERİ taşıyor (sınav puanı, «katıldı» tiki). Gizlenselerdi
   katılım listesi kâğıtta kimin katıldığını söylemez olurdu. Gizlenen
   yalnız **girdi aracı** olanlar: açılır liste ve düğmeler.
   ============================================================ */
@media print {
  select,
  button,
  input[type="submit"],
  input[type="button"],
  input[type="reset"],
  .tablo a.dugme,
  .tablo .dugme { display: none !important; }
}

/* ============================================================
   EKRANIN ÇERÇEVESİ KÂĞIDA SIZMAZ — 5 Ekim 2026
   Kullanıcı basılı kâğıtla bildirdi: muayene özetini yazdırınca
   «Ana ekran», «Seçimi kaldır», «İlk ziyaret kontrol formu
   doldurulmamış … FORMU DOLDUR» ve en altta «Renkler ne anlama
   geliyor?» da basılıyordu — *"bana kâğıdı değil sayfayı yazdırmış
   oluyor"*. Gerçek tarayıcı baskısıyla ölçüldü (Edge): 6 sızıntı.

   Sebep: üst çubuk (25 Eyl 2026'da eklendi) ve eylemli uyarı gizleme
   listesine hiç yazılmamıştı; renk anahtarının kuralı vardı ama yeni
   arayüzün daha özgül seçicisi (`html[data-arayuz="modern"] …`) onu
   eziyordu.

   ⚠️ `!important` bilerek: bu öğeler hiçbir temada, hiçbir arayüz
   kipinde kâğıda çıkmamalı; özgüllük yarışına bırakılmaz. Ekrana yeni
   bir çerçeve öğesi eklenirse BURAYA da eklenir
   (`testler/test_yazdirma_cercevesi.py` listeyi şablonla eşitler).

   ⚠️ BELGE sayfalarında (`.belge`: muayene özeti, sertifika, hazır
   evrak) genel künye de basılmaz: belgenin kendi antedi vardır. Künye
   liste ekranları içindir — orada basılmaya devam eder.
   ============================================================ */
@media print {
  .ust-cubuk,
  .uyari-eylemli,
  .renk-anahtari,
  .hak-sahibi,
  .modern-alerts,
  .modern-skip,
  .modern-mobile-toggle,
  .bize-yazin { display: none !important; }   /* «Bize yazın» düğmesi kâğıda çıkmaz (17 Eki 2026) */

  body:has(.belge, .taslak-tuval) .yazdir-kunyesi { display: none !important; }

  /* ⚠️ TARAYICININ KENDİ ÜST/ALT BİLGİSİ DE BASILMAZ (tarih, sayfa başlığı,
     ADRES satırı — kâğıdı "web sayfası çıktısı" gibi gösteren asıl şey).
     Kenar kutusu tanımlı sayfada Chromium (Chrome/Edge 131+) kendi üst/alt
     bilgisini bırakır — ölçüldü: yazdırma penceresinde «Üstbilgi ve
     altbilgiler» açıkken de tarih ve adres satırı kayboldu. Sayfa numarasını
     biz basarız. Desteklemeyen tarayıcı kuralı yok sayar; hiçbir şey bozulmaz. */
  @page {
    @top-left { content: ""; }
    @top-right { content: ""; }
    @bottom-left { content: ""; }
    @bottom-right { content: counter(page) " / " counter(pages); font-size: 8pt; color: #555555; }
  }
  @page yatay {
    @top-left { content: ""; }
    @top-right { content: ""; }
    @bottom-left { content: ""; }
    @bottom-right { content: counter(page) " / " counter(pages); font-size: 8pt; color: #555555; }
  }
}
