/* ============================================================
   DİJİTAL TESLİM · M1b (109. tur) · M2b (121) · M3b (132)
   Üretici formu ve liste denetleyicisi. Ortak parçalar (sorumluluk
   notu, cam grup, alan, rozet, sayaç) on-kontrol.css'ten gelir; burada
   yalnız bu sayfanın düzeni durur. YENİ RENK TANIMLANMAZ: durum renkleri
   styles.css'teki --durum-* değişkenleridir ve her durumda metin de
   yazılıdır (renk tek başına anlam taşımaz).
   Satır listesi 5.000 satıra kadar uzar: satırlara cam VERİLMEZ
   (styles.css CAM notu, başarım sınırı).
   ============================================================ */

.dt-kapsam {
  font-size: var(--text-sm);
  line-height: 1.7;
  color: var(--ink-muted);
  max-width: 720px;
  margin: 0 0 var(--space-8);
}

.dt-veri-yok {
  border-left: 3px solid var(--durum-hata);
  background: var(--durum-hata-bg);
  padding: var(--space-3) var(--space-4);
  margin: 0 0 var(--space-8);
  font-size: var(--text-sm);
  line-height: 1.6;
}

.dt-veri-yok small {
  display: block;
  margin-top: var(--space-2);
  font-family: var(--font-mono);
  font-size: var(--text-xs);
  color: var(--ink-muted);
  overflow-wrap: anywhere;
}

/* ---------- Bölüm ---------- */

.dt-bolum { margin: 0 0 var(--space-12); }

/* `.ok-grup > h2` mono göz kaşı başlığıdır; burada bölüm başlığı OKUNUR.
   Başlık grubun DIŞINDA durduğu için o kural buna değmez. */
.dt-bolum > h2 {
  font-family: var(--font-display);
  font-size: var(--text-xl);
  font-weight: var(--w-baslik);
  letter-spacing: -0.01em;
  margin: 0 0 var(--space-4);
}

.dt-bolum-ipucu { margin: 0 0 var(--space-4); }

/* ---------- Üretici formu ---------- */

.dt-form {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(15rem, 1fr));
  gap: var(--space-4) var(--space-6);
}

/* Izgaranın her hücresi kendi alanıdır; `.ok-alan:last-child` boşluğu
   ızgarada anlamsız, aralığı `gap` verir. */
.dt-form .ok-alan { margin: 0; min-width: 0; }

.dt-serbest { margin-top: var(--space-2); }
.dt-serbest > label {
  display: block;
  margin-bottom: var(--space-1);
  font-size: var(--text-xs);
}

/* ---------- Üretilen ad ---------- */

.dt-cikti {
  margin-top: var(--space-6);
  padding-top: var(--space-6);
  border-top: 1px solid var(--line);
}

.dt-cikti-bos {
  font-size: var(--text-sm);
  color: var(--ink-muted);
}

.dt-ad-kutu {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--space-3) var(--space-4);
  margin: 0 0 var(--space-4);
}

.dt-ad {
  font-family: var(--font-mono);
  font-size: var(--text-xl);
  line-height: 1.3;
  color: var(--ink);
  overflow-wrap: anywhere;
  min-width: 0;
}

/* ---------- Durum rozeti ---------- */
/* `.ok-rozet` biçimi; renk duruma göre. Uygun bir sinyal değildir,
   mürekkebin değer ekseninde kalır. */

.dt-durum--uygun { color: var(--ink-muted); }
.dt-durum--uyari { color: var(--durum-uyari-metin); }
.dt-durum--hata  { color: var(--durum-hata); }

/* ---------- Not listesi ---------- */

.dt-notlar {
  list-style: none;
  margin: 0;
  padding: 0;
  font-size: var(--text-sm);
  line-height: 1.6;
}

.dt-notlar li + li { margin-top: var(--space-2); }

/* Liste başında yazılmış notun satırdaki göndermesi: bilgi tekrar etmez,
   asıl bulgulardan bir kademe geri durur. */
.dt-ortak-ref { color: var(--ink-subtle); }

.dt-not-kaynak {
  display: block;
  font-family: var(--font-mono);
  font-size: var(--text-xs);
  color: var(--ink-subtle);
}

.dt-not-kaynak a { color: var(--ink-muted); text-decoration: underline; text-underline-offset: 0.18em; }

/* ---------- Liste özeti ---------- */

/* Özet ve notlar kullanıcının yazdığı değeri (müellif adı, kod) düz
   metin olarak da taşır: kırılmaz uzun bir değer kutudan taşmasın (121). */
.dt-ozet-satir {
  font-size: var(--text-sm);
  line-height: 1.6;
  margin: var(--space-2) 0 0;
  overflow-wrap: anywhere;
}

.dt-notlar,
.dt-ortak { overflow-wrap: anywhere; }

.dt-ozet-satir code,
.dt-dokum code {
  font-family: var(--font-mono);
  font-size: var(--text-xs);
  overflow-wrap: anywhere;
}

.dt-ortak {
  margin: 0 0 var(--space-6);
  padding: var(--space-3) var(--space-4);
  border-left: 3px solid var(--line-strong);
  background: var(--surface);
  font-size: var(--text-sm);
}

.dt-ortak h3 {
  font-family: var(--font-mono);
  font-size: var(--text-xs);
  text-transform: uppercase;
  letter-spacing: 0.08em;
  font-weight: var(--w-orta);
  color: var(--ink-subtle);
  margin: 0 0 var(--space-2);
}

/* ---------- Satır listesi ---------- */

.dt-satirlar {
  list-style: none;
  margin: 0;
  padding: 0;
  border-top: 1px solid var(--line);
}

.dt-satir { border-bottom: 1px solid var(--line); }
.dt-satir[data-durum="uyari"] { background: var(--durum-uyari-bg); }
.dt-satir[data-durum="hata"]  { background: var(--durum-hata-bg); }

.dt-satir > details > summary {
  display: grid;
  grid-template-columns: 4.5rem 3rem minmax(0, 2fr) minmax(0, 3fr);
  gap: var(--space-2) var(--space-4);
  align-items: baseline;
  padding: var(--space-2) var(--space-3);
  cursor: pointer;
  list-style: none;
}

.dt-satir > details > summary::-webkit-details-marker { display: none; }

.dt-satir-no {
  font-family: var(--font-mono);
  font-size: var(--text-xs);
  color: var(--ink-subtle);
  text-align: right;
}

.dt-satir-ad {
  font-family: var(--font-mono);
  font-size: var(--text-sm);
  overflow-wrap: anywhere;
  min-width: 0;
}

.dt-satir-bulgu {
  font-size: var(--text-sm);
  color: var(--ink-muted);
  overflow-wrap: anywhere;
  min-width: 0;
}

.dt-satir > details[open] > summary { border-bottom: 1px dashed var(--line); }

.dt-satir-govde { padding: var(--space-3) var(--space-3) var(--space-4); }

/* ---------- Dokuz alanın dökümü ---------- */
/* Sabit düzen: uzun ve kırılmaz bir değer (yapıştırılan bozuk ad) tabloyu
   genişletmez, hücre içinde kırılır. Yatay kaydırma sarmalayıcısı
   kullanılmadı: o, "sayfa kaymıyor" ölçümünü kör eder (CLAUDE.md 8). */
.dt-dokum {
  width: 100%;
  table-layout: fixed;
  border-collapse: collapse;
  font-size: var(--text-sm);
}

.dt-dokum th,
.dt-dokum td {
  text-align: left;
  vertical-align: top;
  padding: var(--space-2) var(--space-3) var(--space-2) 0;
  border-top: 1px solid var(--line);
  overflow-wrap: anywhere;
}

.dt-dokum thead th {
  border-top: none;
  font-family: var(--font-mono);
  font-size: var(--text-xs);
  text-transform: uppercase;
  letter-spacing: 0.08em;
  font-weight: var(--w-orta);
  color: var(--ink-subtle);
}

.dt-dokum tbody th { font-weight: var(--w-orta); color: var(--ink-muted); }

.dt-dokum col.dt-k-alan  { width: 24%; }
.dt-dokum col.dt-k-deger { width: 16%; }
.dt-dokum col.dt-k-durum { width: 14%; }

.dt-satir-notlar { margin: 0 0 var(--space-3); }

/* ---------- Sayfa içi bağlantılar (M2b) ---------- */

.dt-sayfa-ici { margin: 0 0 var(--space-6); }

.dt-sayfa-ici ul {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 0 var(--space-6);
  font-size: var(--text-sm);
}

.dt-sayfa-ici a {
  display: inline-block;
  padding: var(--space-1) 0;
  color: var(--ink-muted);
  text-decoration: underline;
  text-underline-offset: 0.18em;
}

/* ---------- Mahal satırı: üç hücre (M2b) ---------- */
/* Excel'e yapışacak üç hücre yan yana; ince çizgi hücre sınırıdır,
   anlam taşımaz. Dar ekranda hücreler alt satıra geçer. */

.dt-hucreler {
  display: inline-flex;
  flex-wrap: wrap;
  row-gap: var(--space-1);
}

.dt-hucre {
  padding: 0 var(--space-3);
  border-left: 1px solid var(--line-strong);
  min-width: 0;
  overflow-wrap: anywhere;
}

.dt-hucre:first-child { padding-left: 0; border-left: none; }

/* ---------- Tablo 3.2: arama sonucu ve tablonun tamamı (M2b) ---------- */

/* Canlı bölge boşken de erişilebilirlik ağacında kalmalı: gizlenmez,
   yalnız boşluğu sıfırlanır. */
.dt-ara-durum { margin: 0 0 var(--space-3); }
.dt-ara-durum:empty { margin: 0; }

.dt-ad-tablosu col.dt-k-mad   { width: 60%; }
.dt-ad-tablosu col.dt-k-mkod  { width: 22%; }
.dt-ad-tablosu col.dt-k-msayfa { width: 18%; }

/* Sayfa numarası bir sayıdır: mono (§7). */
.dt-ad-tablosu td:last-child {
  font-family: var(--font-mono);
  font-size: var(--text-xs);
}

.dt-tam-tablo { margin-top: var(--space-4); }

.dt-tam-tablo > summary {
  cursor: pointer;
  padding: var(--space-2) 0;
  font-size: var(--text-sm);
  font-weight: var(--w-orta);
}

.dt-tam-tablo[open] > summary { margin-bottom: var(--space-2); }

/* ---------- Katman ve blok adı (M3b) ---------- */

/* Adı denetlenmeyen satır (0, Defpoints, dış başvuru, anonim blok): durum
   değildir, sinyal rengi almaz; rozet metni ayırır. */
.dt-durum--denetlenmedi { color: var(--ink-muted); }

/* "DENETLENMEDİ" rozeti 4,5rem kolona sığmaz. */
.dt-satirlar--genis > .dt-satir > details > summary {
  grid-template-columns: 7.5rem 3rem minmax(0, 2fr) minmax(0, 3fr);
}

.dt-sablon {
  margin: var(--space-4) 0 0;
  font-size: var(--text-sm);
  line-height: 1.6;
  color: var(--ink-muted);
  overflow-wrap: anywhere;
}

/* `.ok-alan > label` (0,1,1) bloktur; onay kutusu etiketle yan yana. */
.ok-alan > label.dt-onay {
  display: flex;
  align-items: center;
  gap: var(--space-2);
}

/* Dosya seçici: tarayıcının kendi düğmesi, yalnız yazı tipi ve kenar
   sayfaya uyar. Global button kuralına dokunulmaz (CLAUDE.md 8). Kutunun
   sınırı metin kutusununkiyle aynı: bileşenin kendisidir (WCAG 1.4.11;
   erisilebilirlik_denetimi D3a sınırsız kutuyu yakaladı). */
#dt-k-dosya {
  display: block;
  width: 100%;
  padding: var(--space-2);
  border: 1px solid var(--grafik-sinir);
  border-radius: var(--radius);
  background: var(--bg-elevated);
  font-family: var(--font-body);
  font-size: var(--text-sm);
  color: var(--ink);
}

#dt-k-dosya::file-selector-button {
  font: inherit;
  margin-right: var(--space-3);
  padding: var(--space-2) var(--space-4);
  border: 1px solid var(--line-strong);
  border-radius: var(--radius-pill);
  background: transparent;
  color: var(--ink);
  cursor: pointer;
}

.dt-ilerleme {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--space-2) var(--space-4);
  margin-top: var(--space-4);
}

.dt-ilerleme progress { width: min(20rem, 100%); }

/* Yapısal hüküm (19.1): özetin ilk cümlesi. */
.dt-hukum { font-weight: var(--w-orta); margin-top: 0; }

.dt-k-sayac-grup h3,
.dt-sorunlar h3,
.dt-ozet-alt {
  font-family: var(--font-mono);
  font-size: var(--text-xs);
  text-transform: uppercase;
  letter-spacing: 0.08em;
  font-weight: var(--w-orta);
  color: var(--ink-subtle);
  margin: var(--space-4) 0 var(--space-1);
}

.dt-k-sayac-grup .ok-sayaclar { margin-top: 0; }

.dt-sorunlar { margin-top: var(--space-4); }

/* Kolon sınıfları dökümün `dt-k-durum`undan ayrı: mobildeki %18 kuralı
   bu tabloya değmesin (375 px'te "DURUM" bölünüyordu). */
.dt-sorun-tablosu col.dt-k-sorun  { width: auto; }
.dt-sorun-tablosu col.dt-k-sdurum { width: 7rem; }
.dt-sorun-tablosu col.dt-k-sayi   { width: 5.5rem; }

/* Sayı mono ve sağa yaslı (§7). */
.dt-sorun-tablosu .dt-sayi,
.dt-sorun-tablosu thead th:nth-child(n+3) {
  font-family: var(--font-mono);
  text-align: right;
}

.dt-dosya-adi { margin-top: var(--space-3); font-size: var(--text-sm); }
.dt-dosya-adi > summary { cursor: pointer; overflow-wrap: anywhere; }
.dt-dosya-adi[open] > summary { margin-bottom: var(--space-2); }

.ok-ozet-kunye code { font-family: var(--font-mono); overflow-wrap: anywhere; }

.dt-k-liste { margin-top: var(--space-6); }

/* ---------- Teslim kontrol listesi (M4b) ---------- */

/* Beyan bölümün başında, kalıcı (24.5). Gezinmenin altındaki sorumluluk
   kutusuyla aynı biçim, ayrı bir kutu. */
.dt-l-beyan { margin: 0 0 var(--space-4); }
.dt-l-giris { margin: 0 0 var(--space-4); }

.dt-l-turler { border: none; margin: 0 0 var(--space-4); padding: 0; min-width: 0; }
.dt-l-turler > legend {
  padding: 0;
  margin-bottom: var(--space-1);
  font-size: var(--text-sm);
  font-weight: var(--w-orta);
  color: var(--ink);
}
.dt-l-turler > .ipucu-mini { margin: 0 0 var(--space-3); }

.dt-l-tur-kutulari {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(min(15rem, 100%), 1fr));
  gap: var(--space-2) var(--space-4);
}
.dt-l-tur-kutulari label { color: var(--ink); font-weight: var(--w-normal); }
.dt-l-tur-ek { font-family: var(--font-mono); font-size: var(--text-xs); color: var(--ink-muted); }

.dt-l-secim-notu { margin: var(--space-4) 0 0; }
.dt-l-sayaclar { margin: var(--space-4) 0; }

.dt-l-grup { margin-top: var(--space-6); }
/* Grup başlığı sonuç listelerindeki ara başlıklarla aynı: mono etiket. */
.dt-l-grup > h3 {
  font-family: var(--font-mono);
  font-size: var(--text-xs);
  text-transform: uppercase;
  letter-spacing: 0.08em;
  font-weight: var(--w-orta);
  color: var(--ink-subtle);
  margin: 0 0 var(--space-2);
}
.dt-l-grup > .ipucu-mini { margin: 0 0 var(--space-2); }

.dt-l-maddeler {
  list-style: none;
  margin: 0;
  padding: 0;
  border-top: 1px solid var(--line);
}
.dt-l-madde { padding: var(--space-3) 0; border-bottom: 1px solid var(--line); }

/* Madde cümlesi gövde metnidir: global `label` kuralının soluk rengini ve
   orta ağırlığını almaz. */
.dt-l-metin {
  display: block;
  cursor: pointer;
  color: var(--ink);
  font-weight: var(--w-normal);
  line-height: 1.55;
}
.dt-l-no {
  font-family: var(--font-mono);
  font-size: var(--text-xs);
  color: var(--ink-muted);
}
.dt-l-not { margin: var(--space-1) 0 0; }

.dt-l-bag {
  margin: var(--space-1) 0 0;
  font-family: var(--font-mono);
  font-size: var(--text-xs);
  line-height: 1.6;
  color: var(--ink-muted);
  overflow-wrap: anywhere;
}
.dt-l-bag a { color: var(--ink-muted); text-decoration: underline; text-underline-offset: 0.18em; }

.dt-l-alinti { margin-top: var(--space-2); font-size: var(--text-sm); }
.dt-l-alinti > summary { cursor: pointer; color: var(--ink-muted); }
.dt-l-alinti[open] > summary { margin-bottom: var(--space-2); }
.dt-l-alintilar { list-style: none; margin: 0; padding: 0; line-height: 1.6; overflow-wrap: anywhere; }
.dt-l-alintilar li + li { margin-top: var(--space-2); }

.dt-l-disarida { margin-top: var(--space-8); }

/* Baskı başlığı yalnız kâğıtta. */
.dt-l-baski-baslik { display: none; }

@media print {
  .dt-l-baski-baslik { display: block; margin: 0 0 var(--space-4); font-size: 10pt; }
  .dt-l-baski-baslik p { margin: 0 0 var(--space-1); }
  .dt-l-baski-ad { font-weight: var(--w-baslik); }
  /* Kâğıtta seçim formu, alıntı ve dışarıda kalanlar yok; sayaç kalır. */
  .dt-l-secim, .dt-l-secim-notu, .dt-l-giris, .dt-l-alinti, .dt-l-disarida { display: none !important; }
  .dt-l-madde { break-inside: avoid; }
  /* "Listeyi yazdır" düğmesi: kâğıtta yalnız liste ve kaynak künyesi. */
  body.dt-yalniz-liste #ana-icerik > :not(#dt-kontrol-listesi):not(#dt-kunye) { display: none !important; }
  body.dt-yalniz-liste #dt-kontrol-listesi > h2 { display: none; }
}

@media (max-width: 600px) {
  .dt-satir > details > summary,
  .dt-satirlar--genis > .dt-satir > details > summary {
    grid-template-columns: auto minmax(0, 1fr);
  }
  .dt-sorun-tablosu col.dt-k-sdurum { width: 5.5rem; }
  .dt-sorun-tablosu col.dt-k-sayi   { width: 4rem; }
  .dt-satir-no { text-align: left; }
  .dt-satir-ad,
  .dt-satir-bulgu { grid-column: 1 / -1; }

  .dt-dokum col.dt-k-alan  { width: 30%; }
  .dt-dokum col.dt-k-deger { width: 22%; }
  .dt-dokum col.dt-k-durum { width: 18%; }
}
