/* Tınaztepe Vakfı — Burs Başvuru Sistemi
   Tasarım dili: kurumsal güven. Vakfın mevcut kimliği açık mavi/beyaz; onu koyulaştırıp
   okunabilirlik ve ciddiyet ekledik. Tek dosya, bağımlılık yok. */

:root {
  --lacivert: #1b1b6b;
  --lacivert-700: #303090;
  --mavi: #0057a7;
  --mavi-acik: #eaeaf8;
  --altin: #0057a7;

  --metin: #16212e;
  --metin-2: #4a5a6d;
  /* En açık gri SÜS DEĞİL: ipucu, adım, belge notu, kontenjan alt satırı gibi işlevsel
     yönerge metnini taşır. Eski #7b8899 beyazda 3.61:1 kalıyordu (WCAG AA eşiği 4.5:1).
     #616b78 aynı mavi-gri tonda ama koyu: beyaz 5.41:1 · --zemin 5.07:1 ·
     --mavi-acik 4.54:1 · --amber-bg 4.92:1 — metin-3'ün oturduğu HER zemin eşiği geçiyor.
     Hiyerarşi korunur: metin 16.26:1 > metin-2 7.06:1 > metin-3 5.41:1 (beyaz üzerinde). */
  --metin-3: #616b78;
  --cizgi: #dfe5ec;
  --zemin: #f5f8fb;
  --kart: #ffffff;

  --yesil: #17734d;
  --yesil-bg: #e6f4ee;
  --kirmizi: #b3261e;
  --kirmizi-bg: #fceceb;
  --amber: #8a5a00;
  --amber-bg: #fdf3e2;

  --r: 10px;
  --golge: 0 1px 2px rgba(13,43,78,.06), 0 4px 16px rgba(13,43,78,.06);
  --olcu: 68rem;
}

* { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body {
  margin: 0;
  font-family: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", sans-serif;
  font-size: 16px;
  line-height: 1.6;
  color: var(--metin);
  background: var(--zemin);
  /* Sarma politikasının (1) numaralı parçası — gerekçesi aşağıdaki blokta. */
  overflow-wrap: break-word;
}
h1, h2, h3 { line-height: 1.25; text-wrap: balance; margin: 0 0 .5rem; color: var(--lacivert); }
h1 { font-size: clamp(1.6rem, 1.2rem + 1.6vw, 2.3rem); letter-spacing: -.02em; }
h2 { font-size: clamp(1.25rem, 1.05rem + .8vw, 1.6rem); letter-spacing: -.01em; }
h3 { font-size: 1.08rem; }
p { margin: 0 0 1rem; }
a { color: var(--mavi); }

/* ── Metin sarma ve taşma politikası ──────────────────────────────────────────
   Sunucu 120 karakter ad, 140 karakter okul adı, 500 karakter adres kabul ediyor ve
   bu alanlarda BOŞLUK ZORUNLU DEĞİL. Boşluksuz uzun bir dizi (yapıştırılmış bağlantı,
   dosya adı, tek parça yazılmış kurum adı) sarma kuralı yokken kırılamaz sayılır ve
   kabından taşar. Politika iki parçadır ve İKİSİ DE gerekir:

   (1) SARMA — `break-word` gövdeye konur, kalıtımla her yüzeye iner (tek kural, tek yer).
       Kırma yalnız kelime tek başına satıra sığmadığında devreye girer; normal Türkçe
       metin önce boşluktan sarar, okunabilirlik bozulmaz.
       `anywhere` gövdeye KONMAZ: o, kutuların en-küçük içerik boyunu da 1 karaktere
       indirir; düğme/rozet gibi boyutu içeriğinden gelen öğeler harf harf sarmaya başlar.

   (2) BOYUT — sarma tek başına yetmez. Izgara/esnek kutuların otomatik en-küçük boyu
       (min-width:auto) öğeyi İÇERİĞİNİN en-küçük boyuna kilitler; kırılamaz 120
       karakterlik dizi kabı ne kadar dar olursa olsun kutuyu şişirir ve sayfayı yatay
       kaydırır. Bu yüzden kullanıcı verisi taşıyan öğelerde otomatik en-küçük boy
       kapatılır: esnek/ızgara öğesinde min-width:0, ızgara izinde minmax(0,1fr).
       ⚠️ Yeni bir 1fr izi yazarken minmax(0,1fr) yaz: çıplak `1fr` = minmax(auto,1fr)
       demektir ve auto burada "içeriğin en-küçük boyu"dur.

   Tablo hücresi tek istisnadır: otomatik tablo düzeninde sütun genişliği hücrenin
   en-küçük boyundan hesaplanır ve orada min-width:0 diye bir kaldıraç yoktur — hücrede
   `anywhere` şart. Atomik hücreler (takip no, tarih, rozet) zaten white-space:nowrap
   ile korunduğu için tarih/numara ortadan bölünmez. */

/* (2) — kullanıcı verisi basan esnek/ızgara öğelerinde otomatik en-küçük boy kapalı.
   .detay-satir > *  : ad/okul/adres değeri · .kart-baslik h1 : başlıktaki başvuran adı
   .belge*           : belge adı + dosya adı · .kuyruk/.secim/.hesap : ad ve serbest not */
.detay-satir > *,
.kart-baslik h1, .kart-baslik h2, .kart-baslik h3,
.belge, .belge > div, .belge > span, .belge-ust > div, .satir-form,
.kuyruk-ust > div, .secim-uye, .hesap-ad { min-width: 0; }

td { overflow-wrap: anywhere; }

/* ── Kabuk ── */
.ust {
  background: var(--lacivert);
  color: #fff;
  border-bottom: 3px solid var(--altin);
}
.ust-ic {
  max-width: var(--olcu); margin: 0 auto; padding: 1rem 1.25rem;
  display: flex; align-items: center; gap: 1rem; flex-wrap: wrap;
}
.marka { display: flex; align-items: center; gap: .85rem; text-decoration: none; color: #fff; }
.marka-logo { height: 42px; width: auto; display: block; }
.marka-ayrac { width: 1px; height: 28px; background: rgba(255,255,255,.28); display: block; }
@media (max-width: 560px) {
  .marka-logo { height: 34px; }
  .marka-ayrac { display: none; }
  .marka-alt { display: none; }
}
.marka-ad { font-weight: 700; font-size: 1.05rem; letter-spacing: -.01em; }
.marka-alt { font-size: .82rem; opacity: .85; display: block; font-weight: 500; letter-spacing: .01em; }
.ust-sag { margin-left: auto; display: flex; gap: .75rem; align-items: center; font-size: .9rem; }
.ust-sag a { color: #cfe0f2; text-decoration: none; }
.ust-sag a:hover { color: #fff; text-decoration: underline; }

.kap { max-width: var(--olcu); margin: 0 auto; padding: 1.75rem 1.25rem 4rem; }
.kap-dar { max-width: 46rem; }

.alt {
  border-top: 1px solid var(--cizgi); background: #fff;
  padding: 1.5rem 1.25rem; margin-top: 3rem;
  color: var(--metin-3); font-size: .85rem;
}
.alt-ic { max-width: var(--olcu); margin: 0 auto; display: flex; gap: 1rem; flex-wrap: wrap; }
.alt a { color: var(--metin-2); }

/* ── Kart ── */
.kart {
  background: var(--kart); border: 1px solid var(--cizgi); border-radius: var(--r);
  padding: 1.5rem; box-shadow: var(--golge); margin-bottom: 1.25rem;
}
.kart-baslik { display: flex; align-items: center; gap: .6rem; margin-bottom: 1rem; }
.kart-baslik h2, .kart-baslik h3 { margin: 0; }

/* ── Hero ── */
.hero {
  background: linear-gradient(160deg, #1b1b6b 0%, #303090 55%, #0057a7 100%);
  color: #fff; border-radius: var(--r); padding: 2.5rem 2rem; margin-bottom: 1.75rem;
}
.hero h1 { color: #fff; margin-bottom: .75rem; }
.hero p { color: #d6e4f2; max-width: 46rem; margin-bottom: 1.5rem; }
.hero-rozet {
  display: inline-block; background: rgba(255,255,255,.14); border: 1px solid rgba(255,255,255,.24);
  padding: .3rem .75rem; border-radius: 999px; font-size: .82rem; margin-bottom: 1rem;
}

/* ── Buton ── */
.btn {
  display: inline-flex; align-items: center; justify-content: center; gap: .5rem;
  padding: .7rem 1.3rem; border-radius: 8px; border: 1px solid transparent;
  font: inherit; font-weight: 600; font-size: .95rem; cursor: pointer; text-decoration: none;
  transition: background .15s, border-color .15s;
}
.btn-ana { background: var(--mavi); color: #fff; }
.btn-ana:hover { background: #004a90; }
.btn-beyaz { background: #fff; color: var(--lacivert); }
.btn-beyaz:hover { background: #f0f5fa; }
.btn-cizgi { background: #fff; color: var(--lacivert); border-color: var(--cizgi); }
.btn-cizgi:hover { border-color: var(--mavi); color: var(--mavi); }
.btn-kucuk { padding: .4rem .8rem; font-size: .85rem; }
.btn:focus-visible, a:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible {
  outline: 3px solid #7fb2e0; outline-offset: 2px;
}
.btn-sira { display: flex; gap: .75rem; flex-wrap: wrap; }

/* ── Form ── */
.alan { margin-bottom: 1.15rem; }
.alan > label, .alan-baslik {
  display: block; font-weight: 600; font-size: .9rem; color: var(--metin); margin-bottom: .35rem;
}
.alan .ipucu { display: block; font-weight: 400; font-size: .82rem; color: var(--metin-3); margin-top: .15rem; }
.zorunlu { color: var(--kirmizi); font-weight: 700; }
input[type=text], input[type=tel], input[type=email], input[type=number], input[type=date],
input[type=password], select, textarea {
  width: 100%; padding: .6rem .7rem; font: inherit; font-size: .95rem;
  border: 1px solid #c5cfdb; border-radius: 8px; background: #fff; color: var(--metin);
}
input:focus, select:focus, textarea:focus { border-color: var(--mavi); }
textarea { min-height: 5.5rem; resize: vertical; }
/* Dosya girdisi tarayıcıdan ~258px İÇSEL genişlikle gelir; 375px telefonda kartın içine
   sığmayıp satırı yatay taşırıyordu. min-width:0 esnek satırda küçülmesine izin verir,
   max-width kabından taşmasını keser. Genişlik verilmez — dosya adı kadar yer kaplar. */
input[type=file] { min-width: 0; max-width: 100%; }
.izgara { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 0 1rem; }
.izgara-3 { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 0 1rem; }
.tam { grid-column: 1 / -1; }
@media (max-width: 640px) { .izgara, .izgara-3 { grid-template-columns: minmax(0,1fr); } }

.secim { display: flex; gap: 1.25rem; flex-wrap: wrap; padding-top: .2rem; }
.secim label { display: inline-flex; align-items: center; gap: .4rem; font-weight: 400; font-size: .95rem; cursor: pointer; }
.secim input { width: auto; margin: 0; }

.onay {
  display: flex; gap: .65rem; align-items: flex-start;
  background: var(--mavi-acik); border: 1px solid #cfe0f2; border-radius: 8px; padding: .9rem 1rem;
  margin-bottom: .85rem;
}
.onay input { width: auto; margin-top: .25rem; flex-shrink: 0; }
.onay label { font-weight: 400; font-size: .9rem; line-height: 1.5; }

/* ── Adım göstergesi ── */
.adimlar { display: flex; gap: .35rem; margin-bottom: 1.5rem; flex-wrap: wrap; }
.adim {
  flex: 1 1 5.5rem; min-width: 5.5rem; padding: .5rem .6rem; border-radius: 6px;
  background: #fff; border: 1px solid var(--cizgi); font-size: .78rem; color: var(--metin-3);
  text-decoration: none; text-align: center;
}
.adim-no { display: block; font-weight: 700; font-size: .95rem; color: var(--metin-3); }
.adim.aktif { background: var(--lacivert); border-color: var(--lacivert); color: #fff; }
.adim.aktif .adim-no { color: #fff; }
.adim.tamam { border-color: #a8cfae; background: var(--yesil-bg); color: var(--yesil); }
.adim.tamam .adim-no { color: var(--yesil); }

/* ── Rozet / durum ── */
.rozet {
  display: inline-flex; align-items: center; gap: .3rem; padding: .2rem .55rem;
  border-radius: 999px; font-size: .78rem; font-weight: 600; white-space: nowrap;
}
.rozet-gri { background: #eef2f6; color: var(--metin-2); }
.rozet-mavi { background: var(--mavi-acik); color: var(--mavi); }
.rozet-yesil { background: var(--yesil-bg); color: var(--yesil); }
.rozet-kirmizi { background: var(--kirmizi-bg); color: var(--kirmizi); }
.rozet-amber { background: var(--amber-bg); color: var(--amber); }

/* ── Uyarı kutuları ── */
.kutu { border-radius: 8px; padding: .9rem 1.1rem; margin-bottom: 1.25rem; font-size: .92rem; }
.kutu-bilgi { background: var(--mavi-acik); border-left: 4px solid var(--mavi); }
.kutu-uyari { background: var(--amber-bg); border-left: 4px solid var(--amber); }
.kutu-basari { background: var(--yesil-bg); border-left: 4px solid var(--yesil); }
.kutu-hata { background: var(--kirmizi-bg); border-left: 4px solid var(--kirmizi); }
.kutu p:last-child { margin-bottom: 0; }
.kutu strong { color: inherit; }

/* ── Tablo ── */
.tablo-sar { overflow-x: auto; border: 1px solid var(--cizgi); border-radius: var(--r); background: #fff; }
table { width: 100%; border-collapse: collapse; font-size: .92rem; }
th, td { padding: .55rem .75rem; text-align: left; border-bottom: 1px solid var(--cizgi); vertical-align: middle; }
th {
  background: #f7f9fc; font-size: .75rem; text-transform: uppercase; letter-spacing: .04em;
  color: var(--metin-2); font-weight: 600; white-space: nowrap;
  position: sticky; top: 0; z-index: 2; box-shadow: inset 0 -1px 0 var(--cizgi);
}
tbody tr:last-child td { border-bottom: none; }
tbody tr:hover { background: #f4f8fd; }
td.sayi { font-variant-numeric: tabular-nums; }
.satir-link { color: var(--lacivert); font-weight: 600; text-decoration: none; }
.satir-link:hover { color: var(--mavi); text-decoration: underline; }

/* ── Panel ── */
.panel-ust { background: var(--lacivert); }

/* Bölüm menüsü — panel tek ekran değil; başlığın altında ince bir şerit. */
.panel-menu { background: var(--lacivert-700); border-bottom: 1px solid rgba(255,255,255,.14); }
.panel-menu-ic {
  max-width: var(--olcu); margin: 0 auto; padding: 0 1.25rem;
  display: flex; gap: .25rem; overflow-x: auto; -webkit-overflow-scrolling: touch;
}
.panel-menu-oge {
  display: block; padding: .6rem .85rem; white-space: nowrap;
  color: rgba(255,255,255,.78); text-decoration: none;
  font-size: .9rem; font-weight: 500;
  border-bottom: 3px solid transparent;
}
.panel-menu-oge:hover { color: #fff; background: rgba(255,255,255,.07); }
.panel-menu-oge.aktif { color: #fff; border-bottom-color: #fff; font-weight: 600; }

/* Dağılım çubuğu — raporlarda grafik kütüphanesi yok, oran genişlikle veriliyor.
   Sunucuda render edilir; JavaScript kapalıyken de doğru okunur. */
.dagilim { display: grid; gap: .55rem; }
.dagilim-satir { display: grid; grid-template-columns: 11rem minmax(0,1fr) 4.5rem; gap: .75rem; align-items: center; }
.dagilim-ad { font-size: .9rem; color: var(--metin-2); }
.dagilim-cubuk { background: var(--mavi-acik); border-radius: 999px; height: .7rem; overflow: hidden; }
.dagilim-dolgu { display: block; height: 100%; background: var(--lacivert-700); border-radius: 999px; }
.dagilim-deger { font-variant-numeric: tabular-nums; font-weight: 600; text-align: right; }
@media (max-width: 40rem) {
  .dagilim-satir { grid-template-columns: minmax(0,1fr) 3.5rem; }
  .dagilim-cubuk { grid-column: 1 / -1; }
}

/* Puan rozetleri — komisyon değerlendirmesi. */
.puan-serit { display: flex; gap: .4rem; flex-wrap: wrap; align-items: center; }
.puan {
  background: var(--mavi-acik); color: var(--lacivert); border-radius: var(--r);
  padding: .3rem .6rem; font-size: .85rem;
}
.puan b { font-variant-numeric: tabular-nums; }
.puan-toplam { background: var(--lacivert); color: #fff; font-weight: 600; }

/* ── Kurul kontenjan şeridi ──
   Üyeler kontenjanı kendi aralarında paylaşıyor; kimin kaç seçtiğini görmeden bunu yapamazlar.
   Şerit dosya detayında ve liste üstünde AYNI bileşenle görünür. */
.kontenjan-serit {
  display: flex; gap: .4rem; flex-wrap: wrap; align-items: stretch;
  background: #fff; border: 1px solid var(--cizgi); border-radius: 10px;
  padding: .55rem; margin-bottom: 1rem;
}
.kontenjan-uye {
  flex: 1 1 7.5rem; min-width: 7.5rem; padding: .4rem .6rem;
  border-radius: 8px; background: var(--zemin); border: 1px solid transparent;
}
.kontenjan-uye.ben { border-color: var(--mavi); background: var(--mavi-acik); }
.kontenjan-uye.asim { border-color: var(--amber); background: var(--amber-bg); }
.kontenjan-ad { font-size: .78rem; color: var(--metin-2); display: block; margin-bottom: .15rem; }
.kontenjan-sayi { font-size: 1.05rem; font-weight: 700; color: var(--lacivert); font-variant-numeric: tabular-nums; }
.kontenjan-alt { font-size: .74rem; color: var(--metin-3); }

/* ── Kurul seçim kartı ── */
/* Tek sütun açıkça kapatılır — .belge-liste ile aynı gerekçe: örtük `auto` iz, satırın
   en-küçük boyuna (uzun üye adı / serbest not) büyüyüp kabından taşabiliyor. */
.secim-liste { display: grid; grid-template-columns: minmax(0,1fr); gap: .5rem; }
.secim-satir {
  display: flex; gap: .6rem; align-items: baseline; flex-wrap: wrap;
  padding: .6rem .75rem; border-radius: 8px; background: var(--zemin);
  border-left: 3px solid var(--cizgi);
}
.secim-satir.evet { border-left-color: var(--yesil); background: var(--yesil-bg); }
.secim-satir.hayir { border-left-color: var(--kirmizi); background: var(--kirmizi-bg); }
.secim-satir.bos { opacity: .7; }
.secim-uye { font-weight: 600; color: var(--metin); }
.secim-not { flex: 1 1 100%; font-size: .88rem; color: var(--metin-2); margin: .2rem 0 0; }

/* ── Hızlı erişim çipleri — "eksik belgesi olanlar", "karar bekleyenler" gibi ── */
.hizli-erisim { display: flex; gap: .45rem; flex-wrap: wrap; margin-bottom: 1rem; }
.cip {
  display: inline-flex; align-items: center; gap: .35rem;
  padding: .4rem .7rem; border-radius: 999px; text-decoration: none;
  background: #fff; border: 1px solid var(--cizgi); color: var(--metin-2);
  font-size: .86rem; white-space: nowrap;
}
.cip:hover { border-color: var(--mavi); color: var(--lacivert); }
.cip.aktif { background: var(--lacivert); border-color: var(--lacivert); color: #fff; }
.cip b { font-variant-numeric: tabular-nums; }
.cip-uyari { border-color: #e8c07a; background: var(--amber-bg); color: var(--amber); }

/* ── Geliştirme modu şeridi — açık olduğu GİZLENMEZ ── */
.gelistirme-serit {
  background: var(--kirmizi); color: #fff; text-align: center;
  padding: .45rem 1rem; font-size: .86rem; font-weight: 600;
  position: sticky; top: 0; z-index: 50;
}
.gelistirme-serit a { color: #fff; text-decoration: underline; }

/* ── Kullanıcı yönetimi ── */
.uye-tablo td.eylem { white-space: nowrap; text-align: right; }
.rol-rozet {
  display: inline-block; padding: .15rem .5rem; border-radius: 999px;
  font-size: .76rem; font-weight: 600;
}
.rol-yonetici { background: var(--lacivert); color: #fff; }
.rol-idari { background: var(--mavi-acik); color: var(--lacivert); }
.rol-komisyon { background: var(--yesil-bg); color: var(--yesil); }

/* Panel menüsü yapışkan — uzun listelerde gezinme kaybolmasın. */
.panel-menu { position: sticky; top: 0; z-index: 40; }

/* Rol etiketi — görevli hangi yetkiyle baktığını her ekranda görsün. */
.rol-etiket {
  margin-left: .45rem; padding: .1rem .45rem; border-radius: 999px;
  background: rgba(255,255,255,.16); font-size: .72rem; letter-spacing: .01em;
}
.filtre {
  display: flex; gap: .55rem; flex-wrap: wrap; align-items: flex-end;
  background: #fff; border: 1px solid var(--cizgi); border-radius: 10px;
  padding: .75rem .85rem; margin-bottom: 1.1rem;
}
.filtre .alan label { font-size: .75rem; color: var(--metin-3); margin-bottom: .15rem; }
.filtre input, .filtre select { padding: .45rem .6rem; font-size: .9rem; }
.filtre .btn { padding: .5rem 1rem; }
.filtre .alan { margin: 0; }
.filtre input, .filtre select { min-width: 9rem; }
.sayac-sira { display: flex; gap: .5rem; flex-wrap: wrap; margin-bottom: 1.1rem; }
.sayac {
  flex: 1 1 7rem; background: #fff; border: 1px solid var(--cizgi); border-radius: 10px;
  padding: .55rem .75rem; text-decoration: none; color: inherit;
  display: flex; flex-direction: column-reverse; gap: .1rem;
  transition: border-color .15s, box-shadow .15s;
}
.sayac:hover { border-color: var(--mavi); box-shadow: 0 1px 3px rgba(13,43,78,.08); }
.sayac-olumlu { border-color: #b7dcc9; background: linear-gradient(180deg,#f4fbf7 0%,#fff 60%); }
.sayac-olumlu .sayac-deger { color: var(--yesil); }
.sayac-deger { font-size: 1.35rem; font-weight: 700; color: var(--lacivert); line-height: 1.15; font-variant-numeric: tabular-nums; }
.sayac-ad { font-size: .76rem; color: var(--metin-2); letter-spacing: .01em; }

/* Değer sütunu minmax(0,1fr): çıplak 1fr iken iz, DEĞERİN en-küçük boyuna büyüyordu —
   boşluksuz 120 karakterlik ad sütunu ~998px yapıp masaüstünde bile sayfayı kaydırıyordu. */
.detay-satir { display: grid; grid-template-columns: 13rem minmax(0,1fr); gap: .5rem 1rem; padding: .45rem 0; border-bottom: 1px solid #eef2f6; font-size: .93rem; }
.detay-satir:last-child { border-bottom: none; }
.detay-ad { color: var(--metin-2); }
.detay-deger { color: var(--metin); font-weight: 500; }
.detay-bos { color: var(--metin-3); font-style: italic; font-weight: 400; }
@media (max-width: 560px) { .detay-satir { grid-template-columns: minmax(0,1fr); gap: 0; } }

/* Tek sütun AÇIKÇA minmax(0,1fr): örtük iz `auto` idi ve auto'nun alt sınırı satırın
   en-küçük boyu. Dosya girdisinin içsel genişliği (258px) + .belge dolgusu (27.2px) +
   kenarlıklar (2px) = 287.2px'lik bir taban oluşturuyor, iz kabından DAR olamıyordu:
   375px'te kart içi tam dolu (marj 0), 360px'te kutu kabından ~16px, 320px'te sayfa
   ~12px taşıyordu. İz artık kabı geçemez; kutunun kendisi de min-width:0 ile izin
   içinde kalır, dosya girdisi mevcut max-width:100% kuralıyla küçülür. */
.belge-liste { display: grid; grid-template-columns: minmax(0,1fr); gap: .5rem; }
/* Satır dar ekranda SARMALI: nowrap iken dosya girdisi + "Yükle" düğmesi 375px'e sığmıyor,
   düğme ekran dışında kalıyordu. wrap yalnız sığmadığında devreye girer — geniş ekranda
   satır tek satır kalır, ayrı kesme noktası gerekmez. */
.belge {
  display: flex; align-items: center; gap: .7rem; flex-wrap: wrap; padding: .65rem .85rem;
  border: 1px solid var(--cizgi); border-radius: 8px; background: #fff; font-size: .9rem;
}
.belge-ad { font-weight: 600; }
.belge-meta { color: var(--metin-3); font-size: .82rem; }
.belge .btn { margin-left: auto; }

/* ── Liste üst şeridi (kayıt sayısı + dışa aktarma) ── */
.liste-ust {
  display: flex; align-items: center; gap: .75rem; flex-wrap: wrap;
  justify-content: space-between; margin-bottom: .6rem;
}

/* (Sekme şeridi kuralları kaldırıldı: başvuru detayı 4 sekmeden tek sayfaya indi — 2026-08-10.) */

/* ── Belge doğrulama satırı (e-Devlet tek tık asistanı) ── */
.belge-blok { display: block; }
.belge-ust { display: flex; align-items: flex-start; gap: .7rem; flex-wrap: wrap; }
.belge-eylem { margin-left: auto; display: flex; align-items: center; gap: .5rem; flex-wrap: wrap; }
.belge-alt {
  display: flex; align-items: center; gap: .5rem; flex-wrap: wrap;
  margin-top: .65rem; padding-top: .65rem; border-top: 1px dashed var(--cizgi);
}
.belge-ust .btn, .belge-alt .btn { margin-left: 0; }
/* Etiket + girdi + düğme dar ekranda alt alta düşer; nowrap iken "Kaydet" ekran dışında
   kalıyordu. Girdinin min-width:0 alması şart: esnek öğenin varsayılan min-width:auto
   değeri onu İÇSEL genişliğine kilitler ve 13rem'lik genişlik hiç uygulanmaz. */
.satir-form { display: flex; align-items: center; gap: .4rem; flex-wrap: wrap; margin: 0; }
.satir-form label { margin: 0; }
input.giris-mini { width: 13rem; min-width: 0; max-width: 100%; padding: .35rem .55rem; font-size: .85rem; }
.belge-not { font-size: .8rem; color: var(--metin-3); }

.bos-durum { text-align: center; padding: 3rem 1rem; color: var(--metin-3); }
.bos-durum h3 { color: var(--metin-2); }

.yazdir { display: none; }
@media print {
  /* Kâğıda çıkmayanlar: gezinme, düğmeler, formlar (karar/seçim/not girişleri),
     yıldız, sayaçlar. Kâğıttaki dosya OKUNUR, üzerinde işlem yapılmaz. */
  .ust, .alt, .filtre, .btn, .btn-sira, .adimlar, .liste-ust .btn,
  .panel-menu, form, .sayac-sira, .hizli-erisim, .kontenjan-ozet,
  .kutu-basari, .kutu-bilgi { display: none !important; }
  body { background: #fff; font-size: 10.5pt; color: #000; }
  .kap { max-width: none; padding: 0; }
  .kart {
    box-shadow: none; border: 0; border-bottom: 1px solid #bbb; border-radius: 0;
    break-inside: avoid; padding: .6rem 0; margin-bottom: .4rem;
  }
  h1 { font-size: 15pt; } h2 { font-size: 12pt; margin-bottom: .3rem; }
  .detay-satir { padding: .15rem 0; }
  th, td { padding: .3rem .45rem; font-size: 9.5pt; }
  th { position: static; }
  .rozet { border: 1px solid #999; background: #fff !important; color: #000 !important; }
  a { color: #000; text-decoration: none; }
  /* Belge bağlantıları kâğıtta işlevsiz — adları kalır, "indir" görünümü kalkar. */
  .satir-link { text-decoration: none; }
}

/* Satır içi yıldız — tam boy düğme değil, tek işaret.
   Görsel boyut küçük kalır ama DOKUNMA hedefi küçük kalamaz: işaretin kendisi 24×22px
   idi, parmak ucu için dar. Çözüm iki adımlı — (a) dikey dolgu satırı ~45px'e çıkarır,
   böylece hedef kutusu satırın dışına taşmaz (üstteki/alttaki satırın yıldızından
   tıklama çalmaz), (b) ::after ile 44×44px'lik görünmez bir hedef kutusu serilir.
   Pseudo öğe düğmenin parçasıdır, tıklamayı düğme alır; yıldızın boyu değişmez. */
.yildiz-btn {
  background: none; border: 0; cursor: pointer; padding: .3rem .35rem;
  font-size: 1.1rem; line-height: 1; color: var(--metin-3);
  border-radius: 6px; transition: color .15s, background .15s;
  position: relative;
}
.yildiz-btn::after {
  content: ''; position: absolute; top: 50%; left: 50%;
  transform: translate(-50%, -50%);
  width: 44px; height: 44px; min-width: 100%; min-height: 100%;
}
.yildiz-btn:hover { color: var(--amber); background: var(--amber-bg); }
.yildiz-btn.dolu { color: #d99a1a; }


/* Ekran başlığı ile ilk kart arasındaki ritim — her sayfada aynı. */
.kap > h1:first-of-type { margin: .25rem 0 .35rem; font-size: 1.5rem; }
.kap > h1 + .ipucu, .kap > h1 + p { margin-top: 0; }

/* Kontenjan özeti — liste ekranı için tek satır. Tam tablo dosya ekranında. */
.kontenjan-ozet {
  display: flex; gap: 1.25rem; flex-wrap: wrap; align-items: baseline;
  background: #fff; border: 1px solid var(--cizgi); border-radius: 10px;
  padding: .5rem .8rem; margin-bottom: 1rem;
  font-size: .88rem; color: var(--metin-2);
}
.kontenjan-ozet strong { color: var(--lacivert); font-variant-numeric: tabular-nums; }
.kontenjan-ozet .asim { color: var(--amber); }
.kontenjan-ozet .asim strong { color: var(--amber); }

/* Rapor kırılımları — küçük kartlar yan yana, dar ekranda alt alta.
   auto-fit + minmax: sütun sayısını CSS seçer, JS yok.
   min(26rem, 100%) ŞART: çıplak 26rem (=416px) alt sınırı 375px görünüm penceresinden
   geniştir, auto-fit daha aşağı inemez ve ızgara sayfayı yatay taşırır. min() ile alt
   sınır dar ekranda kabın genişliğine düşer. */
.rapor-izgara {
  display: grid; gap: 1rem;
  grid-template-columns: repeat(auto-fit, minmax(min(26rem, 100%), 1fr));
  margin-bottom: 1rem;
}
.rapor-izgara > .kart { margin-bottom: 0; }

/* Açılır hesap kartı — <details>/<summary>, istemci JS yok. */
.hesap-kart { padding: 0; }
.hesap-kart > *:not(summary) { margin-left: 1.25rem; margin-right: 1.25rem; }
.hesap-kart > *:last-child { margin-bottom: 1.25rem; }
.hesap-ozet {
  display: flex; align-items: center; justify-content: space-between; gap: .75rem;
  flex-wrap: wrap; padding: .8rem 1.25rem; cursor: pointer; list-style: none;
  border-radius: var(--r); transition: background .15s;
}
.hesap-ozet::-webkit-details-marker { display: none; }
.hesap-ozet:hover { background: #f7f9fc; }
.hesap-ozet::before {
  content: '▸'; color: var(--metin-3); font-size: .9rem;
  transition: transform .15s; display: inline-block;
}
.hesap-kart[open] > .hesap-ozet::before { transform: rotate(90deg); }
.hesap-kart[open] > .hesap-ozet { border-bottom: 1px solid var(--cizgi); border-radius: var(--r) var(--r) 0 0; }
.hesap-ad { flex: 1 1 auto; font-weight: 600; }
.hesap-kadi { font-weight: 400; color: var(--metin-2); }
.hesap-rozet { display: flex; align-items: center; gap: .4rem; flex-wrap: wrap; }
.hesap-oturum { font-size: .78rem; color: var(--metin-3); }

/* Defter tablosunda mesaj özeti — iki satırda kırpılır, satır boyu sabit kalır. */
.ozet-hucre {
  display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical;
  overflow: hidden; font-size: .82rem; color: var(--metin-3);
}

/* Seçili sayaç — süzgeç olarak etkin olan sayaç çerçeveyle belli olur. */
.sayac-secili { border-color: var(--mavi); box-shadow: inset 0 0 0 1px var(--mavi); }

/* İşbaşı şeridi — açılışta rolüne göre sıradaki iş; tek cümle, tek düğme. */
.isbasi {
  display: flex; align-items: center; justify-content: space-between; gap: 1rem;
  flex-wrap: wrap; background: var(--mavi-acik); border: 1px solid var(--mavi);
  border-radius: 10px; padding: .7rem 1rem; margin-bottom: 1rem; font-size: .95rem;
}

/* Tuzak alan — insana ve ekran okuyucuya görünmez, botun DOM'unda durur.
   display:none KULLANILMAZ: gelişmiş botlar onu tanır; ekran dışı konum daha dayanıklı. */
.hp-alan { position: absolute; left: -10000px; top: auto; width: 1px; height: 1px; overflow: hidden; }

/* Karar kuyruğu satırı */
.kuyruk-satir {
  background: #fff; border: 1px solid var(--cizgi); border-radius: 10px;
  padding: .85rem 1rem; margin-bottom: .7rem;
}
.kuyruk-ust { display: flex; justify-content: space-between; align-items: flex-start; gap: .75rem; flex-wrap: wrap; }
.kuyruk-ad { font-weight: 600; font-size: 1.02rem; color: var(--lacivert); text-decoration: none; }
.kuyruk-ad:hover { text-decoration: underline; }
.kuyruk-meta { font-size: .82rem; color: var(--metin-3); margin-top: .15rem; }
.kuyruk-secimler { margin: .6rem 0 0 1.1rem; padding: 0; font-size: .9rem; }
.kuyruk-secimler li { margin-bottom: .2rem; }
.kuyruk-not { color: var(--metin-2); margin-left: .35rem; font-style: italic; }
.kuyruk-eylem {
  display: flex; gap: 1.25rem; align-items: flex-end; flex-wrap: wrap;
  margin-top: .7rem; padding-top: .7rem; border-top: 1px solid var(--cizgi);
}

/* Karar tutanağı */
.tutanak-baslik { text-align: center; margin-bottom: 1.1rem; }
.tutanak-vakif { font-weight: 700; font-size: 1.05rem; margin: 0; }
.tutanak-ad { font-size: .95rem; margin: .2rem 0 0; }
.tutanak-tarih { font-size: .82rem; color: var(--metin-3); margin: .2rem 0 0; }
.imza-sira { display: flex; gap: 2rem; flex-wrap: wrap; margin-top: 2.2rem; justify-content: space-around; }
.imza-kutu { text-align: center; min-width: 11rem; }
.imza-cizgi { border-bottom: 1px solid var(--metin-2); height: 2.6rem; margin-bottom: .3rem; }
.imza-ad { font-weight: 600; font-size: .92rem; }
.imza-rol { font-size: .8rem; color: var(--metin-3); }

/* Şifreyi göster anahtarı — şifre formlarının altında küçük onay kutusu. */
.sifre-goster {
  display: inline-flex; align-items: center; gap: .4rem;
  font-size: .85rem; color: var(--metin-2); margin: .2rem 0 .8rem; cursor: pointer;
}
.sifre-goster input { width: auto; margin: 0; }
