/* ============================================================
   koopbilgi — proje renk tokenlari
   ------------------------------------------------------------
   --primary-rgb BURADA TANIMLIDIR. Spruha'nin renk degistiricisi
   bunu <html> satir ici stiliyle ezer; layout/ana.php:28-41'deki
   temizlik betigi primaryRGB'yi her yuklemede siler. O betik
   kaldirilirsa renk sessizce mora doner.

   ISIMLENDIRME — her rol rengi CIFT tokendir:
     --koop-{rol}-fill : kontrolun ZEMINI oldugu yer. Uzerine beyaz
                         yazi gelecegi icin yeterince koyu kalmali
                         (beyaz yazi >= 4.5, zemine karsi >= 3.0).
     --koop-{rol}-fg   : rengin KENDISININ metin oldugu yer (outline
                         buton yazisi, uyari kutusu metni, baglanti).
                         Kart zeminine karsi >= 4.5 olmali.
   Acik temada ikisi ayni deger olabilir; koyu temada ayrisir.

   Koyu temada tek bir rengin her iki isi birden yapmasi MATEMATIKSEL
   OLARAK MUMKUN DEGIL: kart zemini rgb(14,14,35) iken outline yazinin
   4.5'i tutmasi L >= 0.1988 ister, dolu butonda beyaz yazinin 4.5'i
   tutmasi L <= 0.1833 ister. Pencere bos — bu yuzden -fill/-fg ayrimi
   sustur, tercih degil.
   ============================================================ */
:root {
    /* Spruha'nin kendi degiskeni birincil FILL'e baglanir. */
    --primary-rgb: 23, 80, 107;          /* #17506b */

    --koop-primary-fill: 23, 80, 107;    /* #17506b — beyaz yazi 8.76 */
    --koop-primary-fg:   23, 80, 107;    /* #17506b — beyaz kart uzerinde 8.76 */

    /* DURUM — geri bildirim renkleri. Tonlar KoopBelge'den alindi; orada
       2026-08-05'te WCAG ile OLCULEREK secildiler, yeniden turetilmedi.
       -fill iki temada da AYNI: koyu kartta da 3.0'i tutuyorlar
       (success 3.28 · warning 3.37 · danger 3.28). Yalniz -fg ayrisir. */
    --koop-durum-success-fill: #11753b;  /* beyaz yazi 5.78 */
    --koop-durum-warning-fill: #945a13;  /* beyaz yazi 5.63 */
    --koop-durum-danger-fill:  #ac414f;  /* beyaz yazi 5.80 */
    --koop-durum-success-fg:   #11753b;  /* beyaz kart 5.78 */
    --koop-durum-warning-fg:   #945a13;  /* beyaz kart 5.63 */
    --koop-durum-danger-fg:    #ac414f;  /* beyaz kart 5.80 */

    /* HARF SINIFLARI — IKI AYRI AILE, BIRLESTIRILMEZ.
       ------------------------------------------------------------
       Onceki tek "--koop-harf-*" ailesi iki FARKLI olcegi tek isim
       altinda topluyordu (-fill kaynagi sinif_esikleri, -fg kaynagi
       mali_harf_esikleri). Ayni harf ayni seyi olcmuyor:

         sinif_esikleri      olcek YUZDE(0-100) veya ENDEKS(0-9),
                             endeks_id/sonuc_turu_id'ye bagli,
                             6 harf (A-F). Anket endeks sonucu.
         mali_harf_esikleri  tek 0-100 olcek, hicbir seye bagli degil,
                             7 harf (A+ dahil). Mali performans puani.

       Ayni 0-100'de bile kesim noktalari farkli: C sinif_esikleri'nde
       60-80, mali_harf_esikleri'nde 60-69.99. 75 puan birinde C,
       digerinde B. Tek aile altinda toplamak kullaniciya "bu iki C
       ayni sey" der; degiller.

       RAMPA (sql/57 ile cozuldu): renkler artik yesil -> zeytin ->
       kehribar -> turuncu -> kirmizi arasinda MONOTON ilerliyor.
       Eskiden A yesil, B MAVI, C yesil, D hardal, E turuncu, F kirmizi
       idi — sirali bir skala degil, gokkusagiydi; renge bakip "daha iyi
       mi" denemiyordu. Duraklar hue'da degil Lab mesafesinde esit
       araliklarla secildi (komsu ΔE >= 22.4) ve hepsi ayni rolatif
       parlaklikta (0.1780) durur, boylece kontrast her durakta ayni.
       Ara harfler iki tabloda AYNI DEGILDIR (kesim noktalari farkli);
       yalniz uclar ortaktir: en iyi ayni yesil, en kotu ayni kirmizi.
       ⚠ Renk korlugu: yesil-kirmizi rampasi deuteranopide buzusur.
       Sorun degil — harfin KENDISI ekranda yazili, renk destek.
       ============================================================ */

    /* ENDEKS SINIFLARI (A-F) — kaynak: sinif_esikleri.renk (sql/57)
       Bu renk ekranda ZEMIN olarak kullanilir (pano sinif rozeti,
       badge background-color), bu yuzden -fill tarafi gerceklidir.
       Degerler VERITABANI SEED'IYLE BIREBIR AYNIDIR; seed degisirse
       burasi da degisir. Iki temada da ayni kalirlar (asagida ayri
       koyu tanim YOKTUR) cunku sabit parlaklikta turetildiler.
       -fg (rengin metin oldugu hal) TANIMLI DEGIL: boyle bir kullanim
       bugun yok, cikarsa oradan turetilir. */
    --koop-endeks-a-fill: #0a8653;  /* beyaz yazi 4.62 · koyu kart 4.11 */
    --koop-endeks-b-fill: #23870a;  /* beyaz yazi 4.62 · koyu kart 4.11 */
    --koop-endeks-c-fill: #747b09;  /* beyaz yazi 4.59 · koyu kart 4.14 */
    --koop-endeks-d-fill: #996e0c;  /* beyaz yazi 4.58 · koyu kart 4.15 */
    --koop-endeks-e-fill: #c4520f;  /* beyaz yazi 4.60 · koyu kart 4.12 */
    --koop-endeks-f-fill: #e91219;  /* beyaz yazi 4.60 · koyu kart 4.13 */

    /* DERECELENDIRME (1., 2., 3.) — ayni yayin uc duragi. */
    --koop-derece-1-fill: #0a8653;  /* beyaz yazi 4.62 · koyu kart 4.11 */
    --koop-derece-2-fill: #86750a;  /* beyaz yazi 4.60 · koyu kart 4.13 */
    --koop-derece-3-fill: #e91219;  /* beyaz yazi 4.60 · koyu kart 4.13 */

    /* MALI HARF NOTU (A+, A-F) — kaynak: mali_harf_esikleri.renk
       Bu renk ekranda ve kagitta METIN olarak kullanilir
       (mali/analiz.php ve mali/rapor.php'de color:), zemin degil —
       bu yuzden -fg tarafi gerceklidir. Degerler zaten koyu tonlardir.
       Degerler VERITABANI SEED'IYLE BIREBIR AYNIDIR (sql/57).
       ⚠ KOYU TEMA ICIN AYRI TANIM YOK, GEREKMIYOR: rampa sabit
       parlaklikta turetildigi icin ayni hex iki temada da tutuyor
       (beyaz kart 4.55-4.62 · koyu kart 4.11-4.17). Eski degerler
       koyu temada GORUNMUYORDU (#5c0000 = 1.19) ve view zaten
       veritabani rengini satir ici basiyor, yani tokenin koyu
       karsiligina hic ulasilamiyordu.
       -fill (rengin zemin oldugu hal) TANIMLI DEGIL: boyle bir kullanim
       bugun yok. Gerekirse ayni hexler zemin olarak da calisir —
       uzerlerindeki beyaz yazi 4.5'i tutuyor. */
    --koop-mali-aplus-fg: #0a8653;  /* beyaz kart 4.62 · koyu kart 4.11 */
    --koop-mali-a-fg:     #0a8814;  /* beyaz kart 4.62 · koyu kart 4.11 */
    --koop-mali-b-fg:     #62800a;  /* beyaz kart 4.55 · koyu kart 4.17 */
    --koop-mali-c-fg:     #86750a;  /* beyaz kart 4.60 · koyu kart 4.13 */
    --koop-mali-d-fg:     #a7660d;  /* beyaz kart 4.62 · koyu kart 4.11 */
    --koop-mali-e-fg:     #cb4b0f;  /* beyaz kart 4.61 · koyu kart 4.12 */
    --koop-mali-f-fg:     #e91219;  /* beyaz kart 4.60 · koyu kart 4.13 */

    /* Veri gelmediginde kullanilan notr gri. Kodda 29 yerde
       "?? '#6c757d'" olarak duruyordu. */
    --koop-veri-yok: #6c757d;

    /* GRAFIK — DURUM kodlayan dolgular (esik alti / esik ustu / zarar).
       Tonu roldan gelir ama -fill'den DEGILDIR: bu dolgularin uzerinde
       YAZI YOKTUR, tek kisit kart zemininden ayrisma (>=3.0), 4.5 degil.
       ⚠ DEGERLER SIMDILIK MEVCUT HEXLERIN AYNISI — bu adim yalniz sabit
       rengi view'dan/kuraldan cikarir. Gercek renk karari pano adiminda,
       tek yerden verilecek. Olculen bugunku degerler:
         esik-alti #f7b84b  beyaz kart 1.76 · koyu kart 10.77  → ACIK TEMADA DUSUK
         esik-ustu #26bf94  beyaz kart 2.34 · koyu kart  8.11  → ACIK TEMADA DUSUK
         zarar     #e6533c  beyaz kart 3.71 · koyu kart  5.13  → iki temada da gecer
       Ilk ikisi acik temada 3.0'i tutmuyor; koyu tema karsiligi yazilmadi
       cunku koyu tarafta sorun yok, acik taraf pano adiminda duzeltilecek. */
    --koop-grafik-esik-alti: #f7b84b;
    --koop-grafik-esik-ustu: #26bf94;
    --koop-grafik-zarar:     #e6533c;

    /* SERI — KATEGORI kodlayan seriler. Sira SABITTIR, dongusel degildir:
       seri-1 her zaman ayni kategoriyi gosterir. Yeni bir kategori
       eklenirse listenin SONUNA eklenir, aradaki numaralar kaydirilmaz.
         1 kadin orani · 2 genc orani · 3 merkez birligi isareti (harita)
         4 tek serili cizgi/cubuk grafikler · 5 mali oran karsilastirmasi
       ⚠ 4 ve 5 sablon artigidir (#0d6efd / #f5b849). Pano adiminda 4'un
       birincil renge, 5'in seri-2'ye dusmesi bekleniyor; simdi degeri
       degistirilmedi ki cikti birebir ayni kalsin.
       ACIK CAKISMALAR — hepsi PANO ADIMINDA cozulecek. Simdilik ayri
       token altinda durmalari yeterli; deger degistirilmedi:
         1) #f7b84b bugun HEM grafik-esik-alti HEM seri-2 (genc orani).
            Ayni sayfada ayni renk iki ayri anlam tasiyor.
         2) seri-2 (#f7b84b) ile seri-5 (#f5b849) GOZLE AYIRT EDILEMIYOR
            (fark 2 basamak). Iki ayri seri, tek renk.
       COZULDU: seri-4 (#0d6efd) eskiden B sinifiyla ayni maviydi;
       sql/57 rampasi B'yi #23870a yaptigi icin cakisma kalmadi.
       Olculen: seri-1 3.82/4.97 · seri-2 1.76/10.77 · seri-3 3.96/4.80
                seri-4 4.50/4.22 · seri-5 1.77/10.70  (beyaz kart / koyu kart) */
    --koop-seri-1: #e83e8c;
    --koop-seri-2: #f7b84b;
    --koop-seri-3: #eb3b5a;
    --koop-seri-4: #0d6efd;
    --koop-seri-5: #f5b849;

    /* GOSTERGE — bir ekranda YAN YANA duran ve birbirinden ayrisMASI
       gereken 12 halkanin rengi (rapor listesi "Ortalama Gostergeleri").
       SERI ailesinden AYRI durur: seri-n bir KATEGORIYI kalici olarak
       adlandirir (seri-1 her yerde kadin orani); burada renk yalniz
       "komsusundan farkli ol" isini yapar, anlam tasimaz.
       Uretim: 12 esit araliklı ton, HEPSI ayni BAGIL PARLAKLIKTA
       (0,210) tutuldu. Bunun sebebi olcumdur — bir dolgunun hem beyaz
       kartta hem koyu kartta 3.0'i tutmasi ancak parlaklik dar bir
       bantta kalirsa mumkun. Bu yuzden bu ailenin KOYU TEMA
       KARSILIGI YOKTUR ve olmasi da gerekmez; tek deger iki temada da
       gecer. Olculen (beyaz kart / koyu kart), sirasiyla:
         1 4.03/4.71 ·  2 4.04/4.70 ·  3 4.02/4.72 ·  4 4.05/4.69
         5 4.06/4.68 ·  6 4.03/4.72 ·  7 4.06/4.68 ·  8 4.03/4.72
         9 4.05/4.69 · 10 4.03/4.71 · 11 4.05/4.69 · 12 4.04/4.70
       Esit parlaklik ayni zamanda hicbir halkanin digerlerinden daha
       "onemli" gorunmemesini saglar; 12'si de esit agirliktadir.
       Renk TEK BASINA bilgi tasimaz — her halkanin degeri ortasinda
       yazili, tavani altinda yazili. */
    --koop-gosterge-1:  #e74040;
    --koop-gosterge-2:  #bd6915;
    --koop-gosterge-3:  #838310;
    --koop-gosterge-4:  #528d17;
    --koop-gosterge-5:  #1a921a;
    --koop-gosterge-6:  #189154;
    --koop-gosterge-7:  #198c8c;
    --koop-gosterge-8:  #2080df;
    --koop-gosterge-9:  #7171e4;
    --koop-gosterge-10: #a15de5;
    --koop-gosterge-11: #d826d8;
    --koop-gosterge-12: #e13a8e;

    /* NOTR — tek aile, cift mod. Projedeki iki gri de buraya indi.
       --koop-notr-metin  : ikincil metin (etiket, ipucu, tablo basligi).
                            Eski deger #8c9097 beyaz kart uzerinde 3.21
                            olculuyordu — METIN olarak AA ALTI, 10 yerde.
                            Ayni tonda %82'ye koyulastirildi: 4.55.
       --koop-notr-isaret : NESNE (olcek cubugundaki en az/en yuksek
                            centigi). Eski #adb5bd beyaz kartta 2.07 idi,
                            nesne esigi 3.0'i de tutmuyordu → 3.06.
       --koop-notr-cizgi  : ayrac, kenarlik, cubuk yolu zemini.
       --koop-notr-rgb    : ALFAYLA turetilen zeminler icin uclu. Projede
                            iki ayri gri uclu vardi (132,142,161 ve
                            125,138,160); ikisi de bunda birlesti — alfa
                            <=.55 oldugu icin fark gozle ayirt edilemez. */
    --koop-notr-metin:  #73767c;
    --koop-notr-isaret: #8e949b;
    --koop-notr-cizgi:  #e9ecef;
    --koop-notr-rgb:    132, 142, 161;

    /* BASKI — YALNIZ YAZDIRMA baglami. Ekranda kullanilmasi YASAK.
       Cikti SIYAH-BEYAZ aliniyor: renk tek basina bilgi tasiyamaz,
       yalniz destektir. Sayfadaki 11 ayri gri bu bese indirildi
       (#222 #555 #666 #888 #aaa #ccc #ddd #dfe3e8 #eef2f7 #f8f9fa #f0f4f8).
       Cift mod YOKTUR — kagitta koyu tema diye bir sey yok. */
    --koop-baski-metin:       #222222;  /* kagit uzerinde 15.91 */
    --koop-baski-soluk:       #555555;  /* kagit uzerinde  7.46 — eski #aaa 2.32 idi */
    --koop-baski-cizgi:       #cccccc;
    --koop-baski-zemin:       #f8f9fa;  /* zebra / hafif satir */
    --koop-baski-zemin-vurgu: #f0f4f8;  /* baslik ve toplam satiri */
    /* Eksi deger rengi. TEK BASINA ANLAM TASIMAZ: eksi kalemler "(-)"
       isaretiyle ve kalin yaziyla ayrilir, renk yalniz destektir —
       gri tonlamada kirmizi kaybolur. */
    --koop-baski-eksi:        #c0392b;  /* kagit uzerinde 5.44 */

    /* YALNIZ YAZDIRMA baglami. Ekranda kullanilmasi YASAK: kagit
       uzerinde lacivert kurumsal durur, ekranda ikinci bir vurgu
       rengi yaratir. mali/rapor.php ve mali/yazdir.php'de gecer. */
    --koop-baski-vurgu: #1f3864;

    /* BIRLIK TURU renkleri (--koop-tur-*) BILEREK BURADA DEGILDIR:
       birlik_turleri.renk sutunundan gelirler ve kurumun kimligidir,
       tasarim tokeni degil. Koda YAZILMAZ, DB'den okunur.
       Haritadaki rampanin koyu ucu ve kenar cizgisi o TEK hex'ten
       turetilir (pano-taslak.js: aileRampa), ikinci sutun gerekmez. */

    /* PANO TASLAGI HARITASI — yalniz o ekranda kullanilir.
       ------------------------------------------------------------
       Bunlar birlik KIMLIGI degil, HARITA ZEMINI: hangi rengin il
       dolgusu, hangisinin deniz oldugu tasarim kararidir, kurumun
       degil. O yuzden token olarak burada dururlar.

       --koop-pano-tumu   : "tum merkez birlikleri" secili iken rampa
                            temeli. Kimlik paletinde OLMAYAN notr bir
                            mavi olmali — #000060 lacivert ve #00aeff
                            su mavisiyle karismasin diye orta koyuluk.
       --koop-pano-kara   : kooperatifi olmayan il. Rampa BURADAN
                            baslar, boylece "sifir" ile "en acik sinif"
                            arasinda gorsel sureklilik olur.
       --koop-pano-deniz  : harita zemini. Notrlestirildi (eski acik
                            mavi #d7e8f0 idi): mavi ve su mavisi
                            rampalarin acik ucuyla yarisiyordu.
       --koop-pano-murekkep: bolge cercevesi hatti ve acik dolgu
                            uzerindeki rozet yazisi. */
    --koop-pano-tumu:     #15528f;
    --koop-pano-kara:     #ebe1cc;
    --koop-pano-deniz:    #ccd6da;
    --koop-pano-il-kenar: #fffdf8;
    --koop-pano-murekkep: #22201c;
    --koop-pano-secim:    #c2410c;   /* beyaz yazi 5.24 */
}

[data-theme-mode="dark"] {
    /* #17506b koyu kartta 2.17'ye duser (esik 3.0) — kullanilamaz. */
    --primary-rgb: 47, 123, 161;         /* #2f7ba1 */

    --koop-primary-fill: 47, 123, 161;   /* #2f7ba1 — beyaz yazi 4.70 · koyu kart 4.04 */
    --koop-primary-fg:   68, 153, 194;   /* #4499c2 — koyu kart uzerinde 5.95 */

    /* -fill DEGISMEZ (koyu kartta 3.0'i zaten tutuyorlar), yalniz
       -fg acilir. Degerler KoopBelge'nin olculmus koyu paletidir. */
    --koop-durum-success-fg: #35c470;    /* koyu kart  8.39 */
    --koop-durum-warning-fg: #ffb04d;    /* koyu kart 10.46 */
    --koop-durum-danger-fg:  #ff8b9b;    /* koyu kart  8.52 */

    /* NOTR koyu karsiliklar. -metin acik temada koyulastirildigi icin
       koyu kartta okunmaz olurdu (#73767c = 4.17); koyu tarafta ESKI
       deger zaten sorunsuzdu (#8c9097 = 5.92), o geri geliyor.
       -cizgi acik tondan koyuya cevrilir: #e9ecef koyu kartta 16.02
       oluyordu, yani ayrac olmasi gereken yer parlak beyaz bir cubuga
       donuyordu. -isaret koyu kartta zaten yeterli (6.20), degismez.
       -rgb alfayla kullanildigi icin iki temada da ayni kalir. */
    --koop-notr-metin: #8c9097;   /* koyu kart 5.92 */
    --koop-notr-cizgi: #2c3145;   /* koyu kart 1.48 — ayrac, metin degil */

    /* HARF RENKLERI BURADA YOK — bilerek.
       sql/57 rampasi sabit parlaklikta turetildigi icin endeks, derece
       ve mali renkleri IKI TEMADA DA esigi tutuyor; koyu karsilik
       yazmak degeri veritabanindan ayirir ve ikisi surukleniir.
       Kaynak tek: sinif_esikleri.renk ve mali_harf_esikleri.renk. */

    /* PANO TASLAGI — koyu karsiliklar. Birlik KIMLIK renkleri koyu
       temada DEGISMEZ (kimliktir); degisen yalniz zemin ve mürekkep.
       Rampa uretecinde parlaklik terside cevrilir, boylece ayni
       kimlik rengi koyu kartta da acik->koyu yerine koyu->acik
       ilerler ve iller ayirt edilebilir kalir. */
    --koop-pano-kara:     #242231;
    --koop-pano-deniz:    #0b1220;
    --koop-pano-il-kenar: #12121f;
    --koop-pano-murekkep: #f8f4ec;
    --koop-pano-secim:    #ff8a4c;
}

/* ===== OUTLINE BUTON KURALI ==========================================
   Her outline butonun KENARLIGI --koop-{rol}-fill'den, YAZISI
   --koop-{rol}-fg'den gelir. Sablon ikisine de ayni degeri veriyordu;
   o deger nesne siniri icin (>=3.0) secildigi zaman yazi icin (>=4.5)
   yetmiyor. Olculen sablon degerleri, beyaz kart uzerinde:
       success #19b159 = 2.81 · danger #fd6074 = 2.96   → ikisi de DUSUK
   Tokene baglaninca 5.78 / 5.80'e cikiyorlar.

   Sablonun .btn-outline-* kurallarinda !important YOK, bu yuzden tek
   satir yetiyor — ezme savasina girilmiyor.

   Not: primary ucluk (rgb triplet) olarak durur, cunku Spruha'nin
   --primary-rgb'si o bicimi ister ve dosyada 21 yerde rgba(...) ile
   saydamlastiriliyor. Durum renkleri saydamlastirilmadigi icin duz
   hex. Bicim farki bilerektir.
   -------------------------------------------------------------------
   secondary ve info HENUZ TOKENSIZ: onlar icin olculmus bir palet yok,
   sablon degerinde birakildilar. Token acilinca buraya eklenecekler. */
.btn-outline-primary { color: rgb(var(--koop-primary-fg)); border-color: rgb(var(--koop-primary-fill)); }
.btn-outline-success { color: var(--koop-durum-success-fg); border-color: var(--koop-durum-success-fill); }
.btn-outline-warning { color: var(--koop-durum-warning-fg); border-color: var(--koop-durum-warning-fill); }
.btn-outline-danger  { color: var(--koop-durum-danger-fg);  border-color: var(--koop-durum-danger-fill); }

/* Uzerine gelindiginde sablon zemini doldurup yaziyi beyaza cevirir;
   o an rol -fill'e gecer, cunku beyaz yazi -fill uzerinde olculmustur. */
.btn-outline-primary:hover, .btn-outline-primary:focus, .btn-outline-primary:active { background-color: rgb(var(--koop-primary-fill)); border-color: rgb(var(--koop-primary-fill)); color: #fff; }
.btn-outline-success:hover, .btn-outline-success:focus, .btn-outline-success:active { background-color: var(--koop-durum-success-fill); border-color: var(--koop-durum-success-fill); color: #fff; }
.btn-outline-warning:hover, .btn-outline-warning:focus, .btn-outline-warning:active { background-color: var(--koop-durum-warning-fill); border-color: var(--koop-durum-warning-fill); color: #fff; }
.btn-outline-danger:hover,  .btn-outline-danger:focus,  .btn-outline-danger:active  { background-color: var(--koop-durum-danger-fill);  border-color: var(--koop-durum-danger-fill);  color: #fff; }

/* ===== Sidebar Logo Boyutu =====
   Sablonun kendi CSS'i sidebar logosuna bir yukseklik siniri koymuyor
   (bu sinir yalnizca yatay menu modunda gecerli). Kendi logomuz buyuk
   oldugu icin sidebar genisligine yayilip menu ogelerinin ustune
   tasiyordu; bu yuzden burada acikca sinirlaniyor. */
.main-sidebar-header .header-logo img { 
    max-height: 2.25rem;
    width: auto;
    max-width: 80%;
    object-fit: contain;
}

/* ===== Giris Ekrani: Logo boyutu ve konumu =====
   Kendi logomuz (817x835) buyuk oldugu icin sablonun konumlandirma
   alaninda cercevenin disina tasiyordu. Alan (position:absolute
   sablonun .details:before katmaninin USTUNDE kalabilmesi icin
   korunuyor) panelin tum yuksekligini/genisligini kaplayip flex ile
   iceriği hem yatayda hem dikeyde ortalar — logo/simge/metin boyuttan
   bagimsiz, panelin gercek yuksekligine (sag taraftaki formla ayni)
   sigacak sekilde kucultuldu. */
.giris-logo-alan {
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    display: flex;
    flex-direction: column;  
    align-items: center;
    justify-content: center;
}

.giris-logo {
    max-width: 130px;
    width: 45%;
    height: auto;
}

.giris-ikon {
    height: 46px; 
    width: auto; 
}

/* ===== Giris Ekrani: Sol panel beyaz, cerceve mavi =====
   Sablon .details:before katmaninda dolgu rengi olarak mavi
   (--primary-color) kullaniyordu; beyaza cevrildi. Yazi renkleri
   beyaz-uzerine tasarlandigi icin beyaz arka planda okunabilir
   olsun diye mavi yapildi. Kartin dis cercevesi de mavi cizildi. */
.signpages .details:before {
    background: #ffffff;
}

.signpages .details h5,
.signpages .details .text-white-6 {
    color: var(--primary-color) !important;
}

.main-signin-wrapper .card {
    border: 1px solid var(--primary-color);
}

/* ===== Sinif Rozetleri ===== */
.rozet-sinif {
    font-size: 0.85rem;
    font-weight: 600;
    padding: 0.35em 0.65em;
}

/* ===== Yazdirma Stilleri ===== */
@media print {
    .app-header,
    .app-sidebar,
    .footer,
    .page-header-breadcrumb,
    .scrollToTop,
    #responsive-overlay,
    .rapor-yazdir-gizle {
        display: none !important;
    }

    .main-content.app-content {
        margin: 0 !important;
        padding: 0 !important;
    }

    .page {
        margin: 0 !important;
    }

    @page {
        margin: 1.5cm;
    }

    body {
        background: #ffffff !important;
        color: var(--koop-baski-metin) !important;
    }

    .custom-card {
        box-shadow: none !important;
        border: 1px solid var(--koop-baski-cizgi) !important;
        page-break-inside: avoid;
        break-inside: avoid;
    }

    [id^="rapor-"],
    [id^="ozet-"],
    [id^="mali-"] {
        max-width: 100% !important;
    }

    .rapor-yazdir-alt {
        display: block !important;
        text-align: center;
        font-size: 10px;
        color: var(--koop-baski-soluk);
        margin-top: 1rem;
    }
}

/* ===== Anket Formu: Kademeli Soru Gizleme/Gosterme ===== */
.kademe-gizli {
    display: none !important;
}

.kademe-soru {
    transition: opacity 0.15s ease-in-out;
}

/* ===== Anasayfa Pano: Gosterge Olcek Cubugu =====
   0'dan PanoServisi'nin hesapladigi max_deger'e (endeks turu
   gostergelerde SABIT olcek/olcek_katsayisi, digerlerinde gozlenen
   en yuksek deger) kadar cizilen yatay cubuk. Uzerinde 3 isaret
   olur: en az/en yuksek (kucuk gri cizgi) ve ortalama (buyuk nokta).
   Tum konumlar (en_az_yuzde/ortalama_yuzde/en_yuksek_yuzde) view'da
   inline style ile yerlestirilir. */
.pano-range-track {
    position: relative;
    height: 6px;
    border-radius: 999px;
    background: var(--koop-notr-cizgi);
}

.pano-range-dot {
    position: absolute;
    top: 50%;
    width: 14px;
    height: 14px;
    margin-top: -7px;
    margin-left: -7px;
    border-radius: 50%;
    background: var(--primary-color);
    border: 2px solid #fff;
    box-shadow: 0 0 0 1px rgba(0, 0, 0, .2);
    z-index: 2;
}

.pano-range-tick {
    position: absolute;
    top: 50%;
}

.pano-range-tick-muted {
    width: 3px;
    height: 12px;
    margin-top: -6px;
    margin-left: -1.5px;
    border-radius: 2px;
    background: var(--koop-notr-isaret);
    z-index: 1;
}

.pano-gosterge-satiri {
    padding-bottom: 1rem;
    border-bottom: 1px solid var(--default-border, var(--koop-notr-cizgi));
}

.pano-gosterge-satiri:last-child {
    border-bottom: none;
    padding-bottom: 0;
}

.pano-kpi-icon {
    width: 3rem;
    height: 3rem;
    min-width: 3rem;
    border-radius: 0.75rem;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.35rem;
}

/* ===== Anasayfa Pano: YOGUN (sade) Gorunum =====
   sayfalar/_pano_istatistik_sade.php icindir. Klasik gorunumdeki
   ~120px yuksekliginde gosterge satirlari ve ApexCharts cubuk grafigi
   yerine, tek satirlik yogun tablolar ve satir ici ince olcek cubuklari
   kullanilir. Ek kutuphane YOKTUR, hepsi CSS'tir.
   Begenilirse klasik gorunum de buna cevrilecek. */
.pano-sade-rozet {
    width: 2.25rem;
    height: 2.25rem;
    min-width: 2.25rem;
    border-radius: 0.6rem;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1rem;
    color: var(--primary-color);
    background: rgba(var(--primary-rgb, 23, 80, 107), .12);
}

.pano-sade-ozet > div {
    padding-left: 1rem;
    border-left: 1px solid var(--default-border, var(--koop-notr-cizgi));
}

.pano-sade-ozet > div:first-child {
    padding-left: 0;
    border-left: none;
}

.pano-sade-baslik {
    font-size: 0.72rem;
    font-weight: 600;
    letter-spacing: .05em;
    text-transform: uppercase;
    color: var(--koop-notr-metin);
    margin-bottom: .5rem;
}

/* Yogun tablo: satir yuksekligi klasik gorunumun ~ucte biri. */
.pano-sade-tablo > :not(caption) > * > * {
    padding: .45rem .5rem;
    vertical-align: middle;
}

.pano-sade-tablo thead th {
    font-size: .68rem;
    font-weight: 600;
    letter-spacing: .03em;
    text-transform: uppercase;
    color: var(--koop-notr-metin);
    border-bottom: 1px solid var(--default-border, var(--koop-notr-cizgi));
    white-space: nowrap;
}

/* Satir ayraci hem acik hem koyu temada gorunsun diye notr gri
   (rgba(0,0,0,...) koyu temada kayboluyordu). */
.pano-sade-tablo tbody tr + tr > td {
    border-top: 1px solid rgba(var(--koop-notr-rgb), .15);
}

.pano-sade-tablo tbody td {
    border-bottom: none;
    font-size: .82rem;
}

/* Deger + sinif rozeti ayni satirda; kurum adi altta kucuk ve kirpik. */
.pano-sade-uc {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: .3rem;
    font-weight: 600;
    line-height: 1.2;
}

.pano-sade-sinif {
    display: inline-block;
    padding: 0 .3rem;
    border-radius: .25rem;
    font-size: .62rem;
    font-weight: 600;
    line-height: 1.4;
    color: #fff;
}

.pano-sade-kurum {
    font-size: .68rem;
    color: var(--koop-notr-metin);
    line-height: 1.2;
    max-width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.pano-sade-ortalama {
    font-size: 1rem;
    font-weight: 700;
    color: var(--primary-color);
}

/* Olcek: 0'dan max_deger'e uzanan yol; dolu bant en az-en yuksek
   araligi, nokta ortalama. Konumlar view'da inline style ile verilir. */
.pano-sade-olcek {
    position: relative;
    height: 5px;
    border-radius: 999px;
    background: rgba(var(--koop-notr-rgb), .22);
}

.pano-sade-olcek-aralik {
    position: absolute;
    top: 0;
    height: 100%;
    min-width: 2px;
    border-radius: 999px;
    background: rgba(var(--primary-rgb, 23, 80, 107), .35);
}

.pano-sade-olcek-nokta {
    position: absolute;
    top: 50%;
    width: 10px;
    height: 10px;
    margin-top: -5px;
    margin-left: -5px;
    border-radius: 50%;
    background: var(--primary-color);
    border: 2px solid #fff;
    box-shadow: 0 0 0 1px rgba(0, 0, 0, .15);
}

.pano-sade-olcek-etiket {
    display: flex;
    justify-content: space-between;
    gap: .5rem;
    margin-top: .2rem;
    font-size: .64rem;
    color: var(--koop-notr-metin);
    white-space: nowrap;
}

.pano-sade-dagilim {
    display: flex;
    height: 5px;
    border-radius: 999px;
    overflow: hidden;
    background: rgba(var(--koop-notr-rgb), .22);
}

.pano-sade-dagilim-alt {
    background: var(--koop-grafik-esik-alti);
}

.pano-sade-dagilim-ust {
    background: var(--koop-grafik-esik-ustu);
}

/* Duyarlilik oran cubugu — grafik yerine satir ici olcu. */
.pano-sade-oran {
    display: flex;
    align-items: center;
    gap: .45rem;
}

.pano-sade-oran-yol {
    flex: 1 1 auto;
    height: 5px;
    border-radius: 999px;
    background: rgba(var(--koop-notr-rgb), .22);
    overflow: hidden;
}

.pano-sade-oran-dolu {
    height: 100%;
    border-radius: 999px;
}

.pano-sade-oran-kadin {
    background: var(--koop-seri-1);
}

.pano-sade-oran-genc {
    background: var(--koop-seri-2);
}

.pano-sade-oran-deger {
    font-size: .72rem;
    font-weight: 600;
    white-space: nowrap;
    min-width: 2.6rem;
    text-align: right;
}

/* ===== Mali Analiz Radar Grafigi =====
   Chart.js maintainAspectRatio:false ile calisir; olcuyu BURASI belirler.
   Radar dairesel oldugu icin kutu kare-ye yakin ve ORTALANMIS tutulur —
   kart genisligi kadar yayilirsa grafik gereksiz buyur. */
.mali-radar-kutu {
    position: relative;
    height: 320px;
    max-width: 420px;
    width: 100%;
}

@media (max-width: 575.98px) {
    .mali-radar-kutu {
        height: 300px; 
    }
}

/* ===== Puan Rozeti (bicim_helper.php → puan_rozeti) ===== */
/* Sutundaki sayilar rozet icinde de alt alta hizali dursun. */
.puan-rozeti {
    min-width: 3.5rem;
    text-align: right;
    font-variant-numeric: tabular-nums;  
}

/* Yazdirmada arka plan renkleri kaybolmasin (rapor ciktisi). */
@media print {
    .puan-rozeti {
        -webkit-print-color-adjust: exact;
        print-color-adjust: exact;
    }
}

/* ===== Istemci Tarafi Tablo (js/tablo.js) ===== */
th.tablo-siralanabilir {
    cursor: pointer;
    user-select: none;
    position: relative;
    padding-right: 1.25rem;
}

th.tablo-siralanabilir::after {
    content: "\2195"; /* yukari-asagi ok: siralanabilir */
    position: absolute;
    right: 0.45rem;
    opacity: 0.25;
    font-size: 0.8em; 
}

th.tablo-artan::after {
    content: "\2191";
    opacity: 0.9;
}

th.tablo-azalan::after {
    content: "\2193";
    opacity: 0.9;
}

/* ===== Yogun/Compact Tablo Stili ===== */
.tablo-sikisik td,
.tablo-sikisik th {
    padding: 0.35rem 0.5rem;
    font-size: 0.85rem;
    vertical-align: middle;
}

/* ===== Haberlesme Bildirimi (ust menu can ikonu) =====
   Sablonun styles.min.css dosyasinda yalniz "pulse-secondary"
   animasyonu var. Okunmamis mesaj rozeti kirmizi oldugu icin
   ayni halka efektinin danger rengi burada tanimlandi. */
.pulse.pulse-danger {
    animation: pulse-danger 2s infinite;
}

@keyframes pulse-danger {
    0%   { box-shadow: 0 0 0 0 rgba(var(--danger-rgb), 0.4); }
    70%  { box-shadow: 0 0 0 10px rgba(var(--danger-rgb), 0); }
    100% { box-shadow: 0 0 0 0 rgba(var(--danger-rgb), 0); }
}

/* Bildirim listesindeki baglantilar dropdown icinde duz gorunsun */
#haberlesme-bildirim-listesi .dropdown-item a {
    text-decoration: none;
}


/* ===== Temsil Islemleri: bilgi notu icerigi =====
   Editorden gelen HTML burada HAM basilir (bicimin gorunmesi gerekiyor;
   guvenlik App\Libraries\HtmlTemizleyici beyaz listesinden gelir).

   ⚠ TABLO KENARLIKLARI BURADA CIZILIR, kullanicidan gelen CSS ile DEGIL.
   Beyaz listede border ozellikleri yok; boylece kenarlik degeri hic
   islenmek zorunda kalmaz ve kacirma yuzeyi kucuk kalir. */
.temsil-icerik {
    line-height: 1.7;
    word-break: break-word;
}

.temsil-icerik > *:last-child {
    margin-bottom: 0;
}

.temsil-icerik table {
    width: 100%;
    margin-bottom: 1rem;
    border-collapse: collapse;
}

.temsil-icerik th,
.temsil-icerik td {
    padding: 0.4rem 0.6rem;
    border: 1px solid var(--default-border);
}

/* Uzun tablolar sayfayi yatay kaydirmasin (CLAUDE.md duzen kurali). */
.temsil-icerik {
    overflow-x: auto;
}

/* ===== Filtre Satiri (.table-filter) =====
   Sablonun .table-filter blogu (assets/css/styles.css:20408) DataTables
   tarzi inline-block bir bilesen icin yazilmis ve arama kutusuna SABIT
   200px verir. Bizim 12 filtre formumuz ise Bootstrap GRID satiridir
   (row g-2 ... table-filter). Sabit genislik 390px ekranda col-6'yi
   (147px) tasirip TUM SAYFAYI yatay kaydiriyordu — olculen sayfa
   genisligi 402px, 2026-08-18. Genisligi grid sutununa birakiyoruz.
   ⚠ margin-inline-start DA sifirlanmali: sablon 5px veriyor, width:100%
   ile birleserek sutunu yine 5px tasirirdi.
   Masaustunde tek etki: arama kutusu diger filtre alanlariyla ayni
   genislige gelir (200px -> 258px); satir yuksekligi, select'ler ve
   buton konumu DEGISMEZ (1400px'te olculdu). */
.table-filter input {
    width: 100%;
    margin-inline-start: 0;
}

/* =====================================================================
   KURUM HARITASI (public/js/harita.js)

   HARICI KUTUPHANE YOKTUR — harita saf SVG'dir. Renkler TEMA NOTR
   secildi: yogunluk boyamasi tema degiskeni --primary-rgb uzerinden
   saydamlikla uretilir, kenarliklar rgba gridir. Boylece acik ve koyu
   temada ayri kural yazmaya gerek kalmaz (pano-sade gorunumundeki
   ayni yaklasim).

   --harita-olcek: JS tarafindan viewBox genisligine gore yazilir.
   Yakinlasinca cizgi ve yazi kalinliklari kucultulmezse isaretler
   ekrani kaplar; bu yuzden olcege bagli hesaplanirlar.
   ===================================================================== */
.harita-kutu {
    position: relative;
    border: 1px solid var(--default-border, var(--koop-notr-cizgi));
    border-radius: .5rem;
    overflow: hidden;
    background: rgba(var(--koop-notr-rgb), .06);
}

.harita-svg {
    display: block;
    width: 100%;
    height: clamp(320px, 52vh, 620px);
    --harita-olcek: 1;
}

.harita-yukleniyor {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 3;
    background: rgba(var(--koop-notr-rgb), .08);
}

/* --- il poligonlari --- */
.harita-il {
    fill: rgba(var(--koop-notr-rgb), .13);
    stroke: rgba(var(--koop-notr-rgb), .55);
    stroke-width: calc(var(--harita-olcek) * .006);
    stroke-linejoin: round;
    transition: fill .15s ease;
    cursor: default;
}

.harita-il[data-kademe="1"] { fill: rgba(var(--primary-rgb, 23, 80, 107), .16); }
.harita-il[data-kademe="2"] { fill: rgba(var(--primary-rgb, 23, 80, 107), .32); }
.harita-il[data-kademe="3"] { fill: rgba(var(--primary-rgb, 23, 80, 107), .48); }
.harita-il[data-kademe="4"] { fill: rgba(var(--primary-rgb, 23, 80, 107), .66); }
.harita-il[data-kademe="5"] { fill: rgba(var(--primary-rgb, 23, 80, 107), .84); }

.harita-il:hover { fill: rgba(var(--primary-rgb, 23, 80, 107), .92); }

/* Katman 2'de faaliyet disindaki iller geride kalir ama SILINMEZ —
   kullanici hangi bolgeye yakinlastigini ulke icinde konumlandirabilsin. */
.harita-il.sonuk {
    fill: rgba(var(--koop-notr-rgb), .07);
    stroke: rgba(var(--koop-notr-rgb), .25);
    pointer-events: none;
}

/* --- bolge birligi isareti ---
   ⚠ BURADA `fill` TANIMLANMAZ. Renk her isaretin kendi `fill` NITELIGINE
   yazilir, cunku her birlik turu farkli renktedir ve renk veritabanindan
   gelir (birlik_turleri.renk, bkz. sql/46). CSS'te bir fill birakilirsa
   stil sayfasi nitelige gore ONCELIKLI oldugu icin TUM isaretler ayni
   renge doner. Ayni sebeple hover/focus da renk DEGISTIRMEZ, parlaklikla
   oynar — boylece hangi renk gelirse gelsin calisir. */
.harita-birlik { cursor: pointer; }

.harita-birlik-daire {
    stroke: #fff;
    stroke-width: calc(var(--harita-olcek) * .012);
    transition: filter .12s ease;
}

.harita-birlik:hover .harita-birlik-daire,
.harita-birlik:focus .harita-birlik-daire {
    filter: brightness(1.15);
}

.harita-birlik:focus { outline: none; }

.harita-birlik:focus .harita-birlik-daire {
    stroke: var(--primary-color);
    stroke-width: calc(var(--harita-olcek) * .022);
}

/* ⚠ BIRIM ZORUNLU: font-size birimsiz sayi KABUL ETMEZ. Once
   `calc(var(--harita-olcek) * .1)` yazilmisti; deger gecersiz sayilip
   tarayici devralinan 14px'e dusuyordu ve viewBox genisligi ~16 kullanici
   birimi olan bir haritada 14px'lik rakamlar neredeyse tum haritayi
   kaplayan siyah bir leke olusturuyordu (2026-08-15 testinde goruldu).
   stroke-width ayni sorunu YASAMAZ, cunku SVG'de birimsiz sayi gecerlidir. */
.harita-birlik-yazi,
.harita-kume-yazi {
    font-size: calc(var(--harita-olcek) * .1px);
    font-weight: 700;
    text-anchor: middle;
    dominant-baseline: central;
    pointer-events: none;
    /* Tur renklerinin dordu de beyaz yaziyi tasiyacak kadar koyudur
       (bkz. sql/46). Yeni bir tur eklenirken bu goz onunde tutulmali. */
    fill: #fff;
}

/* --- merkez birligi isareti (eskenar dortgen) --- */
.harita-merkez-sekil {
    fill: var(--koop-seri-3);
    stroke: #fff;
    stroke-width: calc(var(--harita-olcek) * .012);
}

/* --- kooperatif kumesi --- */
.harita-kume { cursor: pointer; }

/* Kume rengi de nitelikten gelir (icinde bulunulan birligin tur rengi),
   bu yuzden burada `fill` YOK — bkz. yukaridaki not. */
.harita-kume-daire {
    stroke: #fff;
    stroke-width: calc(var(--harita-olcek) * .01);
    transition: filter .12s ease;
}

.harita-kume:hover .harita-kume-daire,
.harita-kume:focus .harita-kume-daire { filter: brightness(1.15); }

.harita-kume:focus { outline: none; }

.harita-kume:focus .harita-kume-daire {
    stroke: var(--primary-color);
    stroke-width: calc(var(--harita-olcek) * .02);
}

/* --- ipucu --- */
.harita-ipucu {
    position: absolute;
    z-index: 5;
    max-width: 260px;
    padding: .45rem .6rem;
    border-radius: .35rem;
    font-size: .78rem;
    line-height: 1.35;
    pointer-events: none;
    color: #fff;
    background: rgba(23, 28, 42, .93);
    box-shadow: 0 4px 14px rgba(0, 0, 0, .25);
}

.harita-ipucu-alt {
    opacity: .75;
    font-size: .72rem;
}

.harita-kaynak {
    position: absolute;
    right: .5rem;
    bottom: .35rem;
    font-size: .66rem;
    opacity: .6;
    pointer-events: none;
}

/* --- yan panel --- */
.harita-panel {
    border: 1px solid var(--default-border, var(--koop-notr-cizgi));
    border-radius: .5rem;
    height: clamp(320px, 52vh, 620px);
    overflow: hidden;
}

.harita-panel-icerik {
    height: 100%;
    overflow-y: auto;
    padding: .75rem;
}

.harita-panel-baslik {
    font-weight: 600;
    margin-bottom: .35rem;
}

.harita-kucuk { font-size: .76rem; }

.harita-liste-oge { cursor: pointer; }

.harita-il-basligi {
    font-size: .78rem;
    font-weight: 600;
    margin-top: .6rem;
    padding-bottom: .15rem;
    border-bottom: 1px solid var(--default-border, var(--koop-notr-cizgi));
}

.harita-liste-satir {
    display: flex;
    justify-content: space-between;
    gap: .5rem;
    padding: .2rem 0;
    font-size: .8rem;
}

.harita-kart {
    padding: .5rem .6rem;
    margin-bottom: .5rem;
    border: 1px solid var(--default-border, var(--koop-notr-cizgi));
    border-radius: .35rem;
}

.harita-kart-baslik { font-weight: 600; font-size: .86rem; }

/* --- gosterge (legend) --- */
.harita-gosterge-serit {
    display: flex;
    gap: 2px;
    margin-bottom: .2rem;
}

.harita-gosterge-kutu {
    flex: 1;
    height: 12px;
    border-radius: 2px;
}

.harita-gosterge-kutu[data-kademe="1"] { background: rgba(var(--primary-rgb, 23, 80, 107), .16); }
.harita-gosterge-kutu[data-kademe="2"] { background: rgba(var(--primary-rgb, 23, 80, 107), .32); }
.harita-gosterge-kutu[data-kademe="3"] { background: rgba(var(--primary-rgb, 23, 80, 107), .48); }
.harita-gosterge-kutu[data-kademe="4"] { background: rgba(var(--primary-rgb, 23, 80, 107), .66); }
.harita-gosterge-kutu[data-kademe="5"] { background: rgba(var(--primary-rgb, 23, 80, 107), .84); }

/* Panel ve ipucundaki kucuk renk noktasi — haritadaki isaret rengiyle
   metni eslestirir. Renk satir ici style ile verilir (veritabanindan
   geldigi icin sinif adiyla eslenemez). */
.harita-renk-nokta {
    display: inline-block;
    width: 9px;
    height: 9px;
    margin-right: .35rem;
    border-radius: 50%;
    vertical-align: middle;
    flex: 0 0 auto;
}

.harita-tur-satir {
    display: flex;
    align-items: center;
    padding: .2rem 0;
}

/* =====================================================================
   FAALIYET ALANI SECIMI (kurum formu, yalniz BB)
   81 il icin acilir liste kullanilamaz: 4 ili ctrl+tik ile secmek hataya
   acik. Kaydirilabilir bir onay kutusu izgarasi + arama kutusu kullanildi;
   harici kutuphane YOKTUR.
   ===================================================================== */
.faaliyet-il-kutu {
    max-height: 220px;
    overflow-y: auto;
    padding: .5rem .65rem;
    border: 1px solid var(--default-border, var(--koop-notr-cizgi));
    border-radius: .35rem;
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));
    gap: .15rem .75rem;
}

.faaliyet-il-oge {
    display: flex;
    align-items: center;
    gap: .4rem;
    font-size: .82rem;
    padding: .1rem 0;
    cursor: pointer;
    margin-bottom: 0;
}

.faaliyet-il-oge.gizli { display: none; }

/* Merkez il: kapsamdan cikarilamaz, gorsel olarak da ayrisir. */
.faaliyet-il-oge.merkez {
    font-weight: 600;
    color: var(--primary-color);
}

.faaliyet-il-oge.merkez::after {
    content: '(merkez)';
    font-size: .68rem;
    font-weight: 400;
    opacity: .7;
}

/* Kurum detayindaki kapsam rozetleri */
.kapsam-rozet {
    display: inline-block;
    padding: .15rem .45rem;
    margin: 0 .25rem .25rem 0;
    border-radius: .25rem;
    font-size: .75rem;
    background: rgba(var(--primary-rgb, 23, 80, 107), .12);
    color: var(--primary-color);
}

.kapsam-rozet.merkez {
    background: var(--primary-color);
    color: #fff;
}

/* Faaliyet alanindaki ama ortagi BULUNMAYAN il (harita katman 2).
   Cizgili desen SVG pattern gerektirmesin diye repeating-linear-gradient
   yerine cizgi rengi + kesikli kenarlik kullanildi; boylece harici tanim
   (defs/pattern) olmadan hem acik hem koyu temada okunur kalir. */
.harita-il.kapsam-bos {
    fill: rgba(var(--primary-rgb, 23, 80, 107), .10);
    stroke: var(--primary-color);
    stroke-width: calc(var(--harita-olcek) * .014);
    stroke-dasharray: calc(var(--harita-olcek) * .05) calc(var(--harita-olcek) * .035);
}

/* =====================================================================
   MOBIL DUZELTMELERI  (<= 991.98px)

   Bu blok BILEREK dosyanin sonundadir ve YALNIZ mobil kirilimini
   etkiler — masaustu kurallarinin hicbiri degistirilmemistir
   (kullanici onceligi, 2026-08-18). Sablonun kendi kirilimi da
   991.98px oldugu icin ayni esik kullanilir.
   ===================================================================== */
@media (max-width: 991.98px) {

    /* --- 1) iOS otomatik yakinlasmasi ---
       iOS Safari, 16px'ten KUCUK yazili bir alana dokunuldugunda sayfayi
       kendiliginden yakinlastirir ve geri CIKMAZ. Sablon tum form
       alanlarini 0.875rem (14px) veriyor (styles.css:5163 ve :5234), bu
       yuzden veri girisi yapilan her ekranda yasaniyordu. -sm varyantlari
       da ayrica yazilir: ayni ozgullukte olduklari icin yalnizca kaynak
       sirasina guvenmek kirilgan olurdu. */
    .form-control,
    .form-select,
    .form-control-sm,
    .form-select-sm,
    textarea {
        font-size: 16px;
    }

    /* --- 2) Tablolarin yatay uzunlugu ---
       33 tabloda .text-nowrap var; sutunlar hic sarmadigi icin icerik
       390px ekranda 1200-1300px'e cikiyordu (4-5 kat yatay kaydirma).
       Mobilde sarmaya izin verilir.
       ⚠ KURAL BURADAN TASINDI: ayni sorun 1024px projeksiyonda da
       yasandi, kirilim 1399.98px'e cekildi. Dosyanin SONUNDAKI
       "DUSUK COZUNURLUK / PROJEKSIYON" bolumune bak. */

    /* --- 3) Kurum haritasi ---
       Masaustu yuksekligi clamp(320px, 52vh, 620px) sabittir. Telefonda
       kutu 284x620 olurken harita 260x110 ciziliyor, yani alanin %82'si
       BOS kaliyordu (olcum, 2026-08-18) ve harita ilk ekranin disina
       dusuyordu. Kok sebep harita.js:168 hedefGorunum(): viewBox yalniz
       veri sinirlarindan uretilir, kutunun en-boy oranina BAKILMAZ.
       CSS burada yalniz israfi keser; oranin viewBox'a gore tam
       uyarlanmasi JS isidir (bolgeye yakinlasinca viewBox degisir).
       min-height: bolge gorunumunde kutu asiri kisalmasin diye. */
    .harita-svg {
        height: auto;
        aspect-ratio: 12 / 5;
        min-height: 160px;
    }
}

/* =====================================================================
   MOBIL — 3. asama: tabloda sutun gizleme (2026-08-19)
   Nowrap iptali (yukaridaki 2. madde) tablolari 1239 -> 787px'e indirdi
   ama YETMEDI; kalan genisligi uzun kurum adlari ve sutun SAYISI
   belirliyor. Telefonda ikincil sutunlar gizlenir.

   Kirilim burada 767.98px'tir (yukaridaki blok 991.98px degil):
   768-991px arasi tabletlerde nowrap zaten iptal oldugu icin icerik
   sarip sigiyor, sutun gizlemeye gerek kalmiyor.

   Kullanim: gizlenecek sutunun HEM <th> HEM <td> hucrelerine
   class="mobil-gizle" yazilir. Bootstrap'in "d-none d-md-table-cell"
   ikilisi yerine tek sinif secildi: her hucrede iki sinif yazmak
   hataya acik ve kirilim tek yerden degistirilemez oluyordu.
   Sinif tabloya ozgu DEGILDIR, herhangi bir ogede kullanilabilir.

   DIKKAT: gizli hucre DOM'da durur; tablo.js aramasi ve colspan
   sayilari etkilenmez. Gizlenen sutun ISLEM sutunu OLMAMALIDIR.
   ===================================================================== */
@media (max-width: 767.98px) {
    .mobil-gizle {
        display: none !important;
    }

    /* ISLEM sutunu gizlenemez ama en genis sutun ODUR: iki dugmeli
       satirlarda 211px olculdu (anket kayitlari, 2026-08-19). Yukaridaki
       nowrap iptali <table class="text-nowrap"> icindir; ISLEM hucresi
       AYRICA <td class="text-nowrap"> tasidigi icin ondan etkilenmiyor,
       dugmeler yan yana kaliyordu. Telefonda alt alta gecerler:
       sutun daralir, dokunma hedefi de buyur. */
    .table-responsive .table td.text-nowrap {
        white-space: normal !important;
    }
}

/* =====================================================================
   ANASAYFA PANOSU — YENIDEN TASARIM (md/PANO_TASARIMI.md §8)

   Uc katman: kunye seridi, manset rakamlari, kanit bloklari.
   EK KUTUPHANE YOKTUR; sekmeler Bootstrap 5'in kendi nav-tabs'idir.

   TEMA NOTRLUGU: pano-sade ve harita bolumlerindeki ayni yaklasim burada
   da gecerlidir — renkler ya tema degiskeninden (--primary-rgb) saydamlikla
   ya da notr griden (rgba(var(--koop-notr-rgb),...)) uretilir. Boylece acik ve koyu
   temada AYRI kural yazmaya gerek kalmaz. Sabit #fff / #000 KULLANILMAZ.

   KOSE YARICAPI: tek olcek. Kutular ve serit .5rem, rozetler .6rem
   (pano-sade-rozet ile ayni), cubuklar tam yuvarlak. Karisik yaricap
   sistemi kirik tasarimdir.
   ===================================================================== */

/* ---- 1. KUNYE SERIDI ---------------------------------------------
   Kart DEGILDIR, ince seritdir: eski "Hoş geldiniz" karti + filtre karti
   birlikte ~320px dikey yer kapliyordu, bu serit ~90px. Kazanilan yer
   8 Eylul sunumunda projeksiyona ilk dusen ekrandir.                    */
.pano-kunye {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: .75rem 1rem;
    padding: .7rem .9rem;
    border: 1px solid var(--default-border, var(--koop-notr-cizgi));
    border-radius: .5rem;
    background: rgba(var(--koop-notr-rgb), .06);
}

.pano-kunye-kimlik {
    min-width: 0;
}

.pano-kunye-baslik {
    font-size: 1rem;
    font-weight: 600;
    line-height: 1.2;
}

.pano-kunye-alt {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .3rem;
    margin-top: .15rem;
    font-size: .78rem;
    color: var(--koop-notr-metin);
}

/* Ayrac: ortadaki nokta yerine ince cizgi. Bir satirda uc dort nokta
   yan yana gelince serit okunmaz oluyordu. */
.pano-kunye-ayrac {
    display: inline-block;
    width: 1px;
    height: .85rem;
    margin: 0 .35rem;
    background: rgba(var(--koop-notr-rgb), .4);
}

/* Tamamlanma cubugu: VERI KALITESI gostergesi. Manset kutusu degildir
   (§8 K5) — baskanin bakana okuyacagi bir rakam degil, bizim ic isimiz. */
.pano-kunye-ilerleme {
    display: flex;
    align-items: center;
    gap: .5rem;
    margin-top: .35rem;
}

.pano-kunye-ilerleme-yol {
    width: 140px;
    height: 5px;
    border-radius: 999px;
    background: rgba(var(--koop-notr-rgb), .25);
    overflow: hidden;
}

.pano-kunye-ilerleme-dolu {
    height: 100%;
    border-radius: 999px;
    background: var(--primary-color);
}

.pano-kunye-ilerleme-deger {
    font-size: .72rem;
    color: var(--koop-notr-metin);
}

.pano-kunye-araclar {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .4rem;
    margin-left: auto;
}

/* Yil kutusu icerigi kadar yer kaplar; select'lerle ayni satirda kalsin
   diye sabit dar genislik. */
.pano-kunye-yil {
    width: 7.5rem;
}

.pano-kunye-araclar .form-control {
    width: auto;
    min-width: 8rem;
}

@media (max-width: 767.98px) {
    .pano-kunye-araclar {
        width: 100%;
        margin-left: 0;
    }

    .pano-kunye-araclar .form-control,
    .pano-kunye-yil {
        flex: 1 1 45%;
        min-width: 0;
        width: auto;
    }
}

/* ---- 2. KADEME SEKMELERI (§8 K3) ---------------------------------
   Bakanlik eskiden uc dev karti alt alta goruyordu. Sekme cubugu YALNIZ
   birden fazla kirilim varsa cizilir (bb_kullanici'de hic yok).        */
.pano-kademe {
    border-bottom: 1px solid var(--default-border, var(--koop-notr-cizgi));
}

.pano-kademe .nav-link {
    display: inline-flex;
    align-items: center;
    gap: .4rem;
    padding: .5rem .9rem;
    font-size: .85rem;
    font-weight: 600;
    color: var(--koop-notr-metin);
    border: 0;
    border-bottom: 2px solid transparent;
    background: none;
}

.pano-kademe .nav-link:hover {
    color: var(--primary-color);
}

.pano-kademe .nav-link.active {
    color: var(--primary-color);
    background: none;
    border-bottom-color: var(--primary-color);
}

/* Sekme basligindaki kurum sayisi: sekmeye tiklamadan da bilgi verir. */
.pano-kademe-sayi {
    display: inline-block;
    min-width: 1.5rem;
    padding: .05rem .35rem;
    font-size: .7rem;
    font-weight: 600;
    text-align: center;
    border-radius: 999px;
    color: var(--primary-color);
    background: rgba(var(--primary-rgb, 23, 80, 107), .12);
}

/* ---- 3. MANSET RAKAMLARI (§8 K4-K5) ------------------------------
   Baskanin makama girmeden once "yuksek sesle okuyabilecegi" rakamlar.
   Sekmenin ICINDEDIR — kademe toplamlari cifte sayim olur.             */
.pano-manset-kutu {
    display: block;
    height: 100%;
    padding: .7rem .8rem;
    border: 1px solid var(--default-border, var(--koop-notr-cizgi));
    border-radius: .5rem;
    background: rgba(var(--koop-notr-rgb), .05);
    text-decoration: none;
    color: inherit;
}

/* Detaya inen kutu tiklanabilir OLDUGUNU belli eder (§1: "detay her
   ipucunu vermelidir"). Hedefi olmayan kutu <div>'dir, bu sinifi almaz. */
.pano-manset-baglanti {
    transition: border-color .15s ease, background-color .15s ease;
}

.pano-manset-baglanti:hover {
    border-color: rgba(var(--primary-rgb, 23, 80, 107), .5);
    background: rgba(var(--primary-rgb, 23, 80, 107), .07);
    color: inherit;
}

.pano-manset-deger {
    font-size: 1.5rem;
    font-weight: 600;
    line-height: 1.15;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.pano-manset-birim {
    margin-left: .25rem;
    font-size: .72rem;
    font-weight: 500;
    color: var(--koop-notr-metin);
}

.pano-manset-etiket {
    margin-top: .1rem;
    font-size: .74rem;
    font-weight: 600;
    line-height: 1.2;
}

/* Ipucu satiri BOSKEN DE yer kaplar (&nbsp;): kutular esit yukseklikte
   kalsin, satir zikzak yapmasin. */
.pano-manset-ipucu {
    margin-top: .15rem;
    font-size: .7rem;
    line-height: 1.25;
    color: var(--koop-notr-metin);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

@media (max-width: 575.98px) {
    .pano-manset-deger {
        font-size: 1.25rem;
    }
}

/* ---- 4. DURUSTLUK SERIDI (§8 K9) ---------------------------------
   Manset cirosu 56 kurumun ANKET BEYANI, mali blok 6 kurumun MALI
   TABLOSU. Fark ekranda yazili olmazsa baskan bakana yanlis rakam okur.
   Kurum sayilari esitlenince serit kendiliginden kaybolur.             */
.pano-uyari-serit {
    display: flex;
    align-items: flex-start;
    gap: .5rem;
    padding: .5rem .7rem;
    font-size: .76rem;
    line-height: 1.45;
    border: 1px solid rgba(255, 193, 7, .35);
    border-left: 3px solid rgba(255, 193, 7, .8);
    border-radius: .5rem;
    background: rgba(255, 193, 7, .08);
}

.pano-uyari-serit i {
    margin-top: .1rem;
    color: rgba(255, 193, 7, .95);
}

/* ---- 5. KAR / ZARAR DAGILIM BANDI (§8 K10) -----------------------
   "Kaci zarar etmis, kaci 1 milyondan fazla kar etmis" bir DAGILIM
   sorusudur. Bant sinirlari sistem_ayarlari.pano_kar_bantlari'ndan
   gelir (sql/56), koda yazilmaz. Saf CSS, grafik kutuphanesi yok.      */
.pano-kar-bant {
    display: flex;
    width: 100%;
    height: 1.6rem;
    border-radius: .5rem;
    overflow: hidden;
    background: rgba(var(--koop-notr-rgb), .15);
}

.pano-kar-bant-parca {
    display: flex;
    align-items: center;
    justify-content: center;
    min-width: 1.6rem;
    font-size: .7rem;
    font-weight: 600;
    color: #fff;
    background: var(--primary-color);
    border-right: 1px solid rgba(255, 255, 255, .35);
}

.pano-kar-bant-parca:last-child {
    border-right: 0;
}

/* Zarar bandi tek AYRI renktir; geri kalan bantlar tema vurgusunun
   tonlaridir. Sayfada birden fazla vurgu rengi kullanilmaz. */
.pano-kar-bant-zarar {
    background: var(--koop-grafik-zarar);
}

.pano-kar-bant-parca:nth-child(2) { background: rgba(var(--primary-rgb, 23, 80, 107), .45); }
.pano-kar-bant-parca:nth-child(3) { background: rgba(var(--primary-rgb, 23, 80, 107), .7); }
.pano-kar-bant-parca:nth-child(4) { background: var(--primary-color); }

/* nth-child kurallari zarar bandini EZMESIN diye tekrar yazilir. */
.pano-kar-bant-parca.pano-kar-bant-zarar { background: var(--koop-grafik-zarar); }

.pano-kar-bant-anahtar {
    display: flex;
    flex-wrap: wrap;
    gap: .25rem 1rem;
    margin-top: .4rem;
    font-size: .72rem;
    color: var(--koop-notr-metin);
}

.pano-kar-bant-etiket {
    display: inline-flex;
    align-items: center;
    gap: .3rem;
}

.pano-kar-bant-nokta {
    width: .55rem;
    height: .55rem;
    border-radius: 2px;
    background: var(--primary-color);
}

.pano-kar-bant-nokta.pano-kar-bant-zarar {
    background: var(--koop-grafik-zarar);
}

/* ---- 6. KISAYOL KARTLARI (mb_yonetici, §8 K11) -------------------
   Veri goremeyen yonetici hesabi eskiden tek cumle goruyordu. Veri yok,
   yalniz yol var.                                                      */
.pano-kisayol {
    text-decoration: none;
    color: inherit;
    transition: border-color .15s ease;
    border: 1px solid var(--default-border, var(--koop-notr-cizgi));
}

.pano-kisayol:hover {
    color: inherit;
    border-color: rgba(var(--primary-rgb, 23, 80, 107), .5);
}

/* ===== PANO TASLAGI ==================================================
   md/PANO_KADEME_TASARIMI.md §8c-8e. Mevcut panonun YERINE degil,
   yaninda duran ikinci bir gosterim; yoneticiler hangisini secerse o
   kalici olacak. Sinif oneki "pt-" — mevcut pano/harita sinif adlariyla
   carpismasin, biri silinirken digeri bozulmasin diye.
   Renkler --koop-pano-* tokenlarindan ve birlik_turleri.renk'ten gelir.
   ===================================================================== */
.pt-manset {
    display: flex;
    flex-wrap: wrap;
    gap: 1.6rem 2.4rem;
    margin-bottom: 1.1rem;
}

.pt-manset div { line-height: 1.2; }

.pt-manset strong {
    display: block;
    font-size: 1.6rem;
    font-weight: 600;
    font-variant-numeric: tabular-nums;
}

.pt-manset span {
    font-size: .78rem;
    color: var(--koop-notr-metin);
}

.pt-secici-satir {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .45rem;
    margin-bottom: .6rem;
}

.pt-etiket {
    font-size: .7rem;
    font-weight: 600;
    letter-spacing: .05em;
    text-transform: uppercase;
    color: var(--koop-notr-metin);
    margin-right: .25rem;
}

.pt-etiket-ara { margin-left: .6rem; }

.pt-bilgi {
    font-size: .78rem;
    color: var(--koop-notr-metin);
}

.pt-secim { width: auto; max-width: 420px; }

/* Olcu dugmeleri — sayfanin ASIL eylemi degiller. Secili olan dolu
   gorunur ama o bir DURUM, eylem degil; ekrandaki tek dolu birincil
   buton kurali (CLAUDE.md 12) bozulmus olmuyor. */
.pt-olcu {
    appearance: none;
    border: 1px solid var(--default-border, var(--koop-notr-cizgi));
    background: transparent;
    color: inherit;
    font: inherit;
    font-size: .78rem;
    padding: .3rem .7rem;
    border-radius: 999px;
    cursor: pointer;
}

.pt-olcu:hover { border-color: rgba(var(--koop-primary-fill), .6); }

.pt-olcu[aria-pressed="true"] {
    background: rgb(var(--koop-primary-fill));
    border-color: rgb(var(--koop-primary-fill));
    color: #fff;
    font-weight: 600;
}

/* Gostergeler AYRI grupta ve kesikli cerceveli: pano once envanter
   anlatir, puan sonra gelir (tasarim §6). */
.pt-olcu.gosterge { border-style: dashed; }

.pt-ayrac {
    border: 0;
    border-top: 1px solid var(--koop-notr-cizgi);
    margin: .9rem 0;
    opacity: 1;
}

.pt-sarmal { position: relative; }

.pt-harita {
    display: block;
    width: 100%;
    height: auto;
    background: var(--koop-pano-deniz);
    border-radius: 10px;
}

.pt-harita path.pt-il {
    stroke: var(--koop-pano-il-kenar);
    stroke-width: .5;
    stroke-linejoin: round;
    cursor: pointer;
}

.pt-harita path.pt-il:hover { stroke: var(--koop-pano-secim); stroke-width: 1.5; }
.pt-harita path.pt-il.secili { stroke: var(--koop-pano-secim); stroke-width: 2; }
/* Kapsam disi il .3 opaklikta neredeyse kayboluyordu; bu ekranda
   illerin COGU veri disi oldugu icin ulke silueti tamamen siliniyor.
   Kurum haritasindaki ayni ders (.25 -> .6). */
.pt-harita path.pt-il.kapsamdisi { opacity: .6; }

/* BOLGE CERCEVESI — iki katman gerekiyor: once zemin renginde kalin bir
   HALE, ustune ince koyu hat. Tek katman hem sari (#ffef00) hem lacivert
   (#000060) dolgunun uzerinde ayni anda okunmuyor. */
.pt-harita path.pt-hale {
    fill: none;
    stroke: var(--koop-pano-il-kenar);
    stroke-width: 3.6;
    stroke-linecap: round;
    stroke-linejoin: round;
    opacity: .8;
    pointer-events: none;
}

.pt-harita path.pt-cerceve {
    fill: none;
    stroke: var(--koop-pano-murekkep);
    stroke-width: 1.5;
    stroke-linecap: round;
    stroke-linejoin: round;
    pointer-events: none;
}

.pt-harita path.pt-cerceve.uzerinde { stroke-width: 2.6; }

.pt-harita path.pt-cerceve.vurgulu {
    stroke: var(--koop-pano-secim);
    stroke-width: 2.8;
}

.pt-yukleniyor {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 2;
}

.pt-ipucu {
    position: absolute;
    pointer-events: none;
    background: var(--custom-white, #fff);
    border: 1px solid var(--default-border, var(--koop-notr-cizgi));
    box-shadow: 0 8px 26px rgba(var(--koop-notr-rgb), .28);
    border-radius: 8px;
    padding: .5rem .65rem;
    font-size: .76rem;
    line-height: 1.5;
    white-space: nowrap;
    opacity: 0;
    transition: opacity .1s;
    z-index: 5;
}

.pt-ipucu strong { display: block; font-size: .82rem; margin-bottom: .1rem; }
.pt-ipucu-alt { display: block; color: var(--koop-notr-metin); }

/* Basamakli olcek — surekli seridin yerine gecti. Aralik RAKAMLA yazilir;
   "koyu = cok" yetmiyor, kullanici "kac?" diye soruyor. */
.pt-olcek-siniflar {
    display: flex;
    flex-wrap: wrap;
    gap: .3rem 1.1rem;
    margin-top: .9rem;
}

.pt-olcek-siniflar figure {
    margin: 0;
    display: flex;
    align-items: center;
    gap: .4rem;
}

.pt-olcek-siniflar i {
    width: 17px;
    height: 17px;
    border-radius: 4px;
    display: block;
    flex: 0 0 auto;
    border: 1px solid rgba(var(--koop-notr-rgb), .35);
}

.pt-olcek-siniflar figcaption {
    font-size: .72rem;
    color: var(--koop-notr-metin);
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}

.pt-olcek-siniflar figure.yok figcaption { font-style: italic; }

.pt-kaynak {
    font-size: .68rem;
    color: var(--koop-notr-metin);
    margin: .6rem 0 0;
}

/* ----- panel ----- */
.pt-panel { position: sticky; top: 1rem; }

.pt-panel .pt-bos {
    font-size: .8rem;
    color: var(--koop-notr-metin);
    line-height: 1.6;
}

.pt-panel-ust {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: .5rem;
    margin-bottom: .7rem;
}

.pt-panel-ust h2 { margin: 0; font-size: 1.05rem; font-weight: 600; }
.pt-bb-ad { margin-top: .35rem !important; font-size: .95rem !important; }

.pt-plaka {
    display: block;
    font-size: .73rem;
    color: var(--koop-notr-metin);
}

.pt-kapat {
    appearance: none;
    border: 0;
    background: transparent;
    color: var(--koop-notr-metin);
    font-size: 1.2rem;
    line-height: 1;
    cursor: pointer;
    padding: 0 .2rem;
}

.pt-deger-liste { list-style: none; margin: 0; padding: 0; }

.pt-deger-liste li {
    display: flex;
    align-items: baseline;
    gap: .5rem;
    padding: .32rem 0;
    border-bottom: 1px solid var(--koop-notr-cizgi);
    font-size: .82rem;
}

.pt-deger-liste li:last-child { border-bottom: 0; }
.pt-deger-liste .ad { flex: 1 1 auto; }
.pt-deger-liste .yan { font-size: .73rem; color: var(--koop-notr-metin); }

.pt-deger-liste .deger {
    font-weight: 600;
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}

.pt-il-kirilim li.bu-il { font-weight: 600; }

.pt-il-kirilim li.bu-il .ad::before {
    content: "\25B8\00A0";
    color: var(--koop-pano-secim);
}

.pt-il-kirilim em { font-style: normal; font-size: .68rem; color: var(--koop-notr-metin); }

.pt-blok { margin-top: 1rem; }

.pt-blok h3 {
    margin: 0 0 .2rem;
    font-size: .7rem;
    font-weight: 600;
    letter-spacing: .05em;
    text-transform: uppercase;
    color: var(--koop-notr-metin);
}

.pt-not {
    font-size: .72rem;
    color: var(--koop-notr-metin);
    line-height: 1.5;
    margin: 0 0 .5rem;
}

.pt-bb-liste { list-style: none; margin: 0; padding: 0; }

.pt-bb-liste li {
    padding: .45rem 0;
    border-bottom: 1px solid var(--koop-notr-cizgi);
    font-size: .8rem;
    line-height: 1.45;
}

.pt-bb-liste li:last-child { border-bottom: 0; }

.pt-bb-liste .yer {
    display: block;
    font-size: .72rem;
    color: var(--koop-notr-metin);
}

.pt-solgun { color: var(--koop-notr-metin); }

/* Tur rozeti. Zemin birlik_turleri.renk'ten, yazi rengi o zeminin
   parlakligindan SECILIR: tek bir yazi rengi dort dolguya birden
   yetmez (#ffef00 uzerinde beyaz 1,19; #000060 uzerinde koyu 1,10). */
.pt-cip {
    display: inline-block;
    font-size: .64rem;
    font-weight: 700;
    letter-spacing: .04em;
    padding: .1rem .38rem;
    border-radius: 4px;
    vertical-align: .05em;
}

.pt-gosterge { margin-top: 1rem; }

.pt-gosterge summary {
    font-size: .78rem;
    cursor: pointer;
    color: var(--koop-notr-metin);
}

@media (max-width: 575.98px) {
    .pt-manset { gap: 1rem 1.4rem; }
    .pt-manset strong { font-size: 1.25rem; }
    .pt-panel { position: static; }
}

/* =====================================================================
   BELGE URETIMI  (sayfalar/belge/form.php, onizleme.php)
   ---------------------------------------------------------------------
   Dilekce/yazi metninin ekrandaki karsiligi. Renk YOK: belgenin
   kendisi siyah beyaz bir evraktir, ayrim yalniz hizalama ve
   bosluklarla yapilir. Kullanilan tek renk tokenlari notr ailesinden
   gelir, bu yuzden koyu tema icin ayrica bir blok GEREKMEZ.
   ===================================================================== */
.belge-onizleme {
    border: 1px solid var(--koop-notr-cizgi);
    border-radius: 6px;
    padding: 1.5rem 1.75rem;
    line-height: 1.7;
}

.belge-onizleme-baslik {
    font-size: .74rem;
    font-weight: 700;
    letter-spacing: .06em;
    text-transform: uppercase;
    color: var(--koop-notr-metin);
    margin-bottom: 1rem;
}

/* Dolu belge daha genis satir araligiyla, evrak gibi durur. */
.belge-onizleme--dolu { line-height: 1.9; }

.belge-baslik {
    text-align: center;
    font-weight: 700;
    margin: .35rem 0;
}

.belge-sag { text-align: right; }

.belge-satir { margin: .1rem 0; }

.belge-paragraf {
    text-align: justify;
    margin: .9rem 0;
}

.belge-madde { padding-left: 1.2rem; }

.belge-madde::before {
    content: "\2013";
    margin-left: -.9rem;
    margin-right: .35rem;
}

.belge-dipnot {
    margin-top: 1.2rem;
    padding-top: .5rem;
    border-top: 1px solid var(--koop-notr-cizgi);
    font-size: .82rem;
    font-style: italic;
    color: var(--koop-notr-metin);
}

.belge-imza-yeri {
    text-align: center;
    font-size: .82rem;
    color: var(--koop-notr-metin);
    margin: 1.2rem 0;
}

.belge-imza { margin: 1.6rem 0; }

.belge-imza--tek { text-align: right; }

/* Iki imza yan yana; dar ekranda alt alta duser. */
.belge-imza--ikili {
    display: flex;
    flex-wrap: wrap;
    gap: 1rem 3rem;
    justify-content: space-around;
    text-align: center;
}

.belge-imza-etiket {
    font-size: .82rem;
    color: var(--koop-notr-metin);
}

.belge-imza-tablo { margin: 1.4rem 0; }

.belge-imza-tablo th { width: 50%; }

@media (max-width: 575.98px) {
    .belge-onizleme { padding: 1rem; }
    .belge-imza--ikili { justify-content: flex-start; text-align: left; }
}


/* =====================================================================
   DUSUK COZUNURLUK / PROJEKSIYON  (2026-09-07)

   Bulgu: proje perdeye yansitilinca (projeksiyon 1024x768) liste
   tablolari kesiliyor, en sagdaki ISLEM butonlari hic gorunmuyordu.
   Ayni sey masaustunde tarayici yakinlastirmasinda da olur: 1280px
   ekran %125 yakinlastirilinca gorunum 1024 CSS px'e duser.

   Olcum (kurum listesi, 8 sutun, 2026-09-07):

     tablo en dar hali, nowrap ACIK ....... 1247 px
     nowrap kapaninca ......................  783 px
     ikincil sutunlar da gizlenince ........  369 px
     1024 px ekranda kullanilabilir alan ... ~736 px  (yan menu 240 px)

   Yani 768-1400 px araligi BOSTAYDI: nowrap hala aciktı, sutun gizleme
   ise yalnizca 768 px altinda calisiyordu. Bu, "mobil" diye baslayan
   duzeltmelerin aslinda DAR EKRAN duzeltmesi oldugunu gosteriyor.

   Ikinci bulgu: tablo tastiginda .table-responsive'in yatay kaydirma
   cubugu 25 satirlik tablonun EN ALTINDA kaliyor; 768 px yuksekligindeki
   perdede hic gorunmuyor. Kullanici sayfayi saga kaydirmayi deneyip
   "kaymiyor" saniyordu. Bu yuzden ISLEM sutunu saga yapistirildi ve
   tasma varken sol kenarina golge kondu (isaret + erisim).
   ===================================================================== */

/* --- 1) nowrap iptali: kirilim 991.98 -> 1399.98 px ---
   !important ZORUNLU: Bootstrap'in kendi .text-nowrap kurali da tasir.
   1400 px ustunde (tam ekran masaustu) nowrap AYNEN korunur. */
@media (max-width: 1399.98px) {
    .table-responsive .table.text-nowrap {
        white-space: normal !important;
    }
}

/* --- 2) Ikincil sutunlar 1199.98 px'ten itibaren gizlenir ---
   Secici BILEREK ".table-responsive .mobil-gizle": ayni sinif iki yerde
   tablo DISINDA da kullaniliyor (butce/kadro_cetveli.php ve butce/liste.php
   ikincil butonlari gizliyor). Onlarin 1200 px'te kaybolmasi dizustu
   kullanicisi icin islev kaybi olurdu; tablo disindaki .mobil-gizle
   767.98 px esiginde KALIR (asagidaki eski blok). */
@media (max-width: 1199.98px) {
    .table-responsive .mobil-gizle {
        display: none !important;
    }
}

/* --- 3) ISLEM sutunu saga yapisik ---
   Sinifi JS koyar (public/js/tablo.js): son sutunun ISLEM sutunu olup
   olmadigini yalnizca baslik metni soyler, CSS bunu goremez.

   Arka plan BILEREK yazilmadi: Bootstrap 5.3 zaten her hucreye
   background-color: var(--bs-table-bg) veriyor ve bu iki temada da
   opak (acik #fff, koyu rgb(14,14,35) — olculdu). Elle beyaz yazsaydik
   koyu temayi kirardik.

   Golge ::after ile ciziliyor, box-shadow ile DEGIL: Bootstrap satir
   vurgusunu (table-active, hover) hucrenin box-shadow'una inset olarak
   yaziyor, ustune yazsaydik "Kendi Kurumunuz" satirinin vurgusu o
   hucrede kaybolurdu. */
.table-responsive .islem-sabit {
    position: sticky;
    right: 0;
    z-index: 2;
}

.table-responsive thead .islem-sabit {
    z-index: 3;
}

.table-responsive.tablo-tasiyor .islem-sabit::after {
    content: "";
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    width: 10px;
    transform: translateX(-100%);
    pointer-events: none;
    background: linear-gradient(to left,
        rgba(var(--koop-notr-rgb), .30),
        rgba(var(--koop-notr-rgb), 0));
}

/* ------------------------------------------------------------------
   FAALİYET RAPORU — "Sistemden geldi" köşe işareti (2026-09-11)
   Metinli rozet her satırı büyütüp tabloları bozuyordu; artık girdinin
   sağ üst köşesinde küçük bir bulut ikonu. Anlamı title'da ve sayfa
   başındaki açıklamada. JS (yk_rapor.js) değer değişince işareti kaldırır.
   ------------------------------------------------------------------ */
.yk-alan {
    position: relative;
}

.yk-alan .yk-sistem-rozeti {
    position: absolute;
    top: 2px;
    right: 6px;
    font-size: 10px;
    line-height: 1;
    color: rgb(var(--koop-primary-fg));
    opacity: .75;
    pointer-events: none;
}

/* İkonun altında kalmasın diye işaretli girdinin sağına pay */
.yk-alan:has(.yk-sistem-rozeti) .yk-girdi {
    padding-right: 1.25rem;
}
