/*
  ═══════════════════════════════════════════════════════════════════════════════
  Yağızlar ERP - Evrak Sayfası UI (Frontend)
  ═══════════════════════════════════════════════════════════════════════════════
  Katman: ui
  Bağlı Modüller:
  - Sayfalar/Evrak/Evrak.aspx
  - Content/erp.css (tema değişkenleri + button/input/grid temel stiller)
  - Scripts/app/ygz-evrak-page.js (UI init)
  - Scripts/app/ygz-evrak-actions.js (toolbar aksiyonları)

  Amaç:
  - Evrak ekranını 3 parçalı (üst/orta/alt) modern, responsive ve light/dark uyumlu hale getirmek.
  - Inline style YOK: tüm görsel davranış CSS sınıfları üzerinden.

  Versiyon: 2.2.0 — Depo Dropdown Çift Ok Düzeltmesi (appearance:auto kaldırıldı)
  Son Güncelleme: 2026-06-11
*/

:root {
  /* Emerald toolbar — Modern SaaS: biraz daha sofistike ton */
  --ygz-evrak-toolbar-bg: #10B981; /* emerald-500 */
  --ygz-evrak-toolbar-fg: #0B0D12;
  --ygz-evrak-toolbar-btn-bg: rgba(255, 255, 255, 0.14);
  --ygz-evrak-toolbar-btn-bg-hover: rgba(255, 255, 255, 0.22);
  --ygz-evrak-chip-bg: rgba(255, 255, 255, 0.12);
  --ygz-evrak-chip-border: rgba(255, 255, 255, 0.18);
}

html.dark {
  --ygz-evrak-toolbar-bg: #059669; /* emerald-600 */
  --ygz-evrak-toolbar-fg: #0B0D12;
  --ygz-evrak-toolbar-btn-bg: rgba(0, 0, 0, 0.18);
  --ygz-evrak-toolbar-btn-bg-hover: rgba(0, 0, 0, 0.28);
  --ygz-evrak-chip-bg: rgba(0, 0, 0, 0.16);
  --ygz-evrak-chip-border: rgba(0, 0, 0, 0.22);
}

.ygz-evrak-header {
  position: sticky;
  top: 0;
  z-index: 20;
  background: color-mix(in oklab, var(--ygz-bg2) 92%, var(--ygz-evrak-toolbar-bg));
  backdrop-filter: blur(12px) saturate(1.1);
  -webkit-backdrop-filter: blur(12px) saturate(1.1);
  border-bottom: 1px solid var(--ygz-border);
  transition: background var(--ygz-transition-normal);
}

.ygz-evrak-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  padding: 4px 12px;
  background: var(--ygz-evrak-toolbar-bg);
  color: var(--ygz-evrak-toolbar-fg);
  transition: background var(--ygz-transition-normal);
}

.ygz-evrak-toolbar__left,
.ygz-evrak-toolbar__right {
  display: flex;
  align-items: center;
  gap: 8px;
  /* TBY: wrap kullanma (yükseklik artmasın) */
  flex-wrap: nowrap;
  overflow-x: auto;
  overflow-y: hidden;
}

.ygz-evrak-toolbar__left {
  /* Başlık alanı, sağdaki "Yazdır" butonuna kadar uzasın */
  flex: 1 1 auto;
  min-width: 0;
}

.ygz-evrak-toolbar__right {
  flex: 0 0 auto;
}

.ygz-evrak-toolbar__title-inline {
  display: flex;
  align-items: center;
  gap: 10px;
  min-width: 0;
  /* TBY: dinamik; kalan alanı doldursun */
  flex: 1 1 auto;
  max-width: none;
  /* TBY: wrap yok; sığmıyorsa yatay scroll */
  flex-wrap: nowrap;
  overflow-x: auto;
  overflow-y: hidden;
}

.ygz-evrak-toolbar__title-inline .ygz-evrak-title {
  font-size: var(--ygz-fs-base);
  font-weight: 800;
  color: inherit; /* toolbar rengi */
  white-space: nowrap;
}

.ygz-evrak-toolbar__title-inline .ygz-evrak-subtitle {
  margin-top: 0;
  flex-wrap: nowrap;
  min-width: 0;
}

.ygz-evrak-toolbar__title-inline .ygz-evrak-chip {
  font-size: var(--ygz-fs-xs);
  font-weight: 500;
  padding: 3px 9px;
  color: inherit;
  background: rgba(0, 0, 0, 0.10);
  border-color: rgba(0, 0, 0, 0.12);
  letter-spacing: 0.01em;
}

html.dark .ygz-evrak-toolbar__title-inline .ygz-evrak-chip {
  background: rgba(0, 0, 0, 0.16);
  border-color: rgba(0, 0, 0, 0.20);
}

/* Evrak satır grid - input içinde birim adı (floating, sağda) */
.ygz-input-unit-wrap {
  position: relative;
  min-width: 0;
}

.ygz-input-unit {
  position: absolute;
  right: 4px;
  top: 50%;
  transform: translateY(-50%);
  font-size: var(--ygz-fs-xs);
  line-height: 1;
  color: rgb(100 116 139); /* slate-500 */
  pointer-events: none;
  max-width: 44px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-weight: 600;
  opacity: 0.8;
}

html.dark .ygz-input-unit {
  color: rgb(148 163 184); /* slate-400 */
}

.ygz-input-unit-input {
  padding-right: 8px; /* JS dinamik ayarlar: span genişliği + 10px */
  box-sizing: border-box;
  /* Sayı sağa yaslanır, birim etiketi hemen sonrasında durur */
  text-align: right;
}

.ygz-evrak-toolbar__info {
  white-space: nowrap;
}

.ygz-evrak-toolbar__sep {
  width: 1px;
  align-self: stretch;
  background: rgba(0, 0, 0, 0.12);
  margin: 0 6px;
  border-radius: 1px;
}

.ygz-evrak-toolbar__btn {
  background: var(--ygz-evrak-toolbar-btn-bg);
  border: 1px solid rgba(0, 0, 0, 0.08);
  color: var(--ygz-evrak-toolbar-fg);
  border-radius: var(--ygz-radius-sm);
  font-weight: 500;
  transition: all var(--ygz-transition-fast);
}

.ygz-evrak-toolbar__btn:hover {
  background: var(--ygz-evrak-toolbar-btn-bg-hover);
  transform: translateY(-1px);
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.12);
}

.ygz-evrak-toolbar__btn:active {
  transform: translateY(0);
}

.ygz-evrak-toolbar__icon {
  display: inline-flex;
  width: 18px;
  height: 18px;
  align-items: center;
  justify-content: center;
  font-weight: 700;
  margin-right: 4px;
}

.ygz-evrak-header__body {
  /* Üst form alanı mümkün olduğunca dar olsun (TBY) */
  padding: 4px 10px;
  background: color-mix(in oklab, var(--ygz-bg2) 96%, var(--ygz-evrak-toolbar-bg));
}

.ygz-evrak-title-row {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 8px;
}

.ygz-evrak-title {
  font-size: 14px;
  font-weight: 800;
  letter-spacing: 0.02em;
  color: var(--ygz-fg);
}

.ygz-evrak-subtitle {
  margin-top: 3px;
  display: flex;
  gap: 4px;
  /* TBY: wrap kullanma (yükseklik artmasın) */
  flex-wrap: nowrap;
  white-space: nowrap;
  min-width: 0;
  overflow-x: auto;
  overflow-y: hidden;
}

.ygz-evrak-chip {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  font-size: var(--ygz-fs-sm);
  font-weight: 500;
  padding: 2px 8px;
  border-radius: 9999px;
  background: var(--ygz-evrak-chip-bg);
  border: 1px solid var(--ygz-evrak-chip-border);
  color: var(--ygz-muted);
  flex: 0 0 auto;
  backdrop-filter: blur(4px);
}

/* Evrak tipi dropdown — JS hâlâ değerini okur, sadece kullanıcıya gösterilmez */
#pack_ddlEt { display: none; }

.ygz-evrak-form {
  margin-top: 2px;
  /* TBY: "paket paket" - her alan label+input(+F10) tek bir paket; paketler yan yana akar, sığmazsa alta iner */
  --ygz-evrak-pack-gap: 6px;
  --ygz-evrak-pack-w: clamp(240px, 20vw, 340px);
  display: flex;
  flex-wrap: wrap;
  /* Dikey gap minimize (TBY: header boşuna büyümesin) */
  gap: 2px var(--ygz-evrak-pack-gap);
  align-items: flex-start;
}

/* PS BİLGİLERİ butonu — Cari Ünvan input pack'inin içinde sağa dayalı.
   pack__control default block; PS button olduğunda flex container'a çevirilir
   (input shrink, F10 + PS sağ uçta). margin-left:auto PS'i en sağa iter. */
#pack_txtCariUnvan .ygz-evrak-pack__control {
  display: flex;
  align-items: center;
  gap: 4px;
}
#pack_txtCariUnvan .ygz-evrak-pack__control > input {
  flex: 1 1 0;
  min-width: 0;
  width: auto;
}
/* F10 ikon button'u absolute pozisyondan çıkar — flex item olarak input ve PS arasında otursun.
   Default CSS top:50%/transform:translateY(-50%) flex item'da yanlış konum verir; sıfırlanmalı. */
#pack_txtCariUnvan .ygz-evrak-pack__control > .ygz-evrak-pack__btn {
  position: static;
  flex: 0 0 auto;
  top: auto;
  transform: none;
}
.ygz-evrak-ps-info-btn {
  margin-left: auto;
  flex: 0 0 auto;
  width: auto;
  height: 22px;
  line-height: 1;
  white-space: nowrap;
  cursor: pointer;
  padding: 0 10px;
  background: var(--ygz-brand, #D4A017);
  color: #fff;
  border: 1px solid var(--ygz-brand, #D4A017);
  border-radius: 4px;
  font-weight: 600;
  font-size: 11px;
  letter-spacing: 0.3px;
}
.ygz-evrak-ps-info-btn:hover {
  filter: brightness(1.05);
}

/* Cari Bakiye floating overlay — Cari Ünvan input'unun sağ kenarında, F10/PS butonlarından
   önce gözükür. pointer-events:none ile input tıklama/focus akışı bozulmaz. Input metni ile
   üst üste binmemesi için pack__control'a "has-bakiye" sınıfı eklendiğinde input'un sağ
   padding'i artırılır. PS butonu visible (perakende) ise overlay sola kayar. */
.ygz-evrak-cari-bakiye {
  position: absolute;
  right: 32px; /* F10 (22px) + gap (4px) + buffer (6px) */
  top: 50%;
  transform: translateY(-50%);
  pointer-events: none;
  z-index: 2;
  font-family: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.2px;
  white-space: nowrap;
  color: var(--ygz-muted, #6b7280);
  background: transparent;
}
.ygz-evrak-cari-bakiye--positive {
  color: #1f8a3a;
}
.ygz-evrak-cari-bakiye--negative {
  color: #c53030;
}
.ygz-evrak-cari-bakiye--zero {
  color: var(--ygz-muted, #6b7280);
}
/* PS butonu visible iken bakiye sola kaysın (PS genişliği + gap kadar) */
#pack_txtCariUnvan .ygz-evrak-pack__control.has-ps-info .ygz-evrak-cari-bakiye {
  right: 120px;
}
/* Bakiye varken input metni bakiye ile çakışmasın diye right-padding bırak.
   .ygz-evrak-form .ygz-evrak-input shorthand !important verdiği için padding-right'ı
   !important ile ezmek zorundayız. */
#pack_txtCariUnvan .ygz-evrak-pack__control.has-bakiye > input {
  padding-right: 140px !important;
}
#pack_txtCariUnvan .ygz-evrak-pack__control.has-bakiye.has-ps-info > input {
  padding-right: 140px !important; /* bakiye PS soluna kaydı, input padding'i aynı kalır */
}
[data-ygz-theme="dark"] .ygz-evrak-cari-bakiye--zero,
[data-ygz-theme="dark"] .ygz-evrak-cari-bakiye {
  color: var(--ygz-muted, #94a3b8);
}
[data-ygz-theme="dark"] .ygz-evrak-cari-bakiye--positive {
  color: #4ade80;
}
[data-ygz-theme="dark"] .ygz-evrak-cari-bakiye--negative {
  color: #f87171;
}

/* Paket (label + control) */
.ygz-evrak-pack {
  flex: 0 1 var(--ygz-evrak-pack-w);
  min-width: min(220px, 100%);
  max-width: 100%;
  display: flex;
  align-items: center;
  gap: 4px;
  /* Dikey padding minimize (TBY: header boşuna büyümesin) — eski 3px → 1px */
  padding: 1px 6px;
  border: 1px solid var(--ygz-border-subtle);
  border-radius: var(--ygz-radius-md);
  background: color-mix(in oklab, var(--ygz-bg2) 86%, var(--ygz-bg3));
  transition: border-color var(--ygz-transition-fast);
}

.ygz-evrak-pack:focus-within {
  border-color: var(--ygz-border-strong);
}

/* 2x paket (sadece Cari Ünvan) */
.ygz-evrak-pack--2x {
  flex-basis: calc(var(--ygz-evrak-pack-w) * 2 + var(--ygz-evrak-pack-gap));
}

.ygz-evrak-pack__label {
  flex: 0 0 80px;
  font-size: var(--ygz-fs-sm);
  font-weight: 600;
  color: var(--ygz-muted2);
  white-space: nowrap;
}

.ygz-evrak-pack__body {
  flex: 1 1 auto;
  min-width: 0;
}

/* Form aksiyon paketi: sağa yasla, yükseklik artırmasın */
.ygz-evrak-pack--actions {
  flex: 0 0 auto;
  min-width: auto;
  margin-left: auto;
  padding: 0;
  border: 0;
  background: transparent;
}

.ygz-evrak-pack--actions .ygz-evrak-pack__label {
  display: none;
}

.ygz-evrak-pack__body--actions {
  display: flex;
  justify-content: flex-end;
}

.ygz-evrak-pack__inline {
  display: flex;
  gap: 4px;
  align-items: center;
}

.ygz-evrak-pack__cell {
  flex: 1 1 0;
  min-width: 0;
}

/* Control wrapper: ikon + floating hint için referans */
.ygz-evrak-pack__control {
  position: relative;
  width: 100%;
}

/* Not: eski row/pair/triple düzeni yerine paket düzeni kullanılır. */

.ygz-evrak-input {
  width: 100%;
  font-size: var(--ygz-fs-sm);
  padding: 6px 10px; /* erp.css table.ygz-grid td/th padding ile uyumlu */
  border-radius: var(--ygz-radius-md);
  line-height: 1.25; /* erp.css table.ygz-grid td/th line-height ile uyumlu */
}

/* Form inputları: grid-viewport (editable) inputları kadar kompakt */
.ygz-evrak-form .ygz-evrak-input {
  /* ygz-input global padding çok büyük; Evrak header alanları daha kompakt olmalı (föy sayfaları gibi) */
  padding: 1px 6px !important;
  padding-right: 2.5rem !important; /* Input içi ikon butonu alanı */
  line-height: 1.15;
  font-size: var(--ygz-fs-sm);
  height: 26px;
  min-height: 26px;
  width: 100% !important;
}

/* Readonly evrak header inputu (txtCins, txtKarsiKasaHizmetCinsi vb.) — URL parametreleri
   ile sabit; mevcut evrakta editable değil. Visual feedback: solgun arka plan + cursor.
   Form üst kuralı (.ygz-evrak-form .ygz-evrak-input) bazı özellikleri !important
   ile basıyor; readonly modifier'ı override edebilmek için bu kural form kuralından
   sonra ve !important ile yazılır.
   Spec: TBY 2026-05-04 EK REQUIREMENT 2 — pack_txtCins ve pack_ddlEt URL ile çelişmesin. */
.ygz-evrak-form .ygz-evrak-input--readonly,
.ygz-evrak-input--readonly {
  background-color: var(--ygz-readonly-bg, rgba(0, 0, 0, 0.06)) !important;
  color: var(--ygz-muted, #6b7280) !important;
  cursor: not-allowed !important;
  border-style: dashed !important;
  opacity: 0.85;
}
.ygz-evrak-form .ygz-evrak-input--readonly:focus,
.ygz-evrak-input--readonly:focus {
  outline: none !important;
  box-shadow: none !important;
}

[data-ygz-theme="dark"] .ygz-evrak-form .ygz-evrak-input--readonly,
[data-ygz-theme="dark"] .ygz-evrak-input--readonly {
  background-color: var(--ygz-readonly-bg, rgba(255, 255, 255, 0.08)) !important;
}

/* Header içi arama ikon butonları: input yüksekliğine sığacak şekilde */
.ygz-evrak-form .ygz-icon-btn {
  padding: 3px;
  width: 22px;
  height: 22px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  line-height: 0;
}

/* Paket içi arama butonu (semantik sınıf) */
.ygz-evrak-pack__btn {
  position: absolute;
  right: 6px;
  top: 50%;
  transform: translateY(-50%);
}

/* Floating hint + ikon aynı inputta çakışmasın */
.ygz-evrak-form .ygz-evrak-floating-hint {
  right: 40px;
  max-width: calc(100% - 48px);
}

/* Kısa veri gelen alanlar: fluid max-width */
.ygz-evrak-field--xs {
  max-width: min(96px, 100%);
  justify-self: start;
}
.ygz-evrak-field--sm {
  max-width: min(140px, 100%);
  justify-self: start;
}
.ygz-evrak-field--md {
  max-width: min(220px, 100%);
  justify-self: start;
}

.ygz-evrak-form .ygz-evrak-floating-input {
  padding-right: 160px;
}

.ygz-evrak-num {
  text-align: right;
}

.ygz-evrak-grid-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 6px;
  padding: 3px 10px;
  border-bottom: 1px solid var(--ygz-border-subtle);
  background: var(--ygz-bg2);
}

.ygz-evrak-grid-head__title {
  font-size: var(--ygz-fs-sm);
  font-weight: 600;
  color: var(--ygz-muted);
  text-transform: uppercase;
  letter-spacing: 0.03em;
}

.ygz-evrak-grid-head__actions {
  display: flex;
  gap: 4px;
  flex-wrap: wrap;
}

.ygz-evrak-header-actions {
  display: none;
}

.ygz-evrak-pill-btn {
  border-radius: 999px;
}

.ygz-evrak-footer {
  padding: 0;
}

.ygz-evrak-footer__grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 6px;
}

.ygz-evrak-panel {
  background: var(--ygz-card);
  border: 1px solid var(--ygz-border-subtle);
  border-radius: var(--ygz-radius-lg);
  overflow: hidden;
  box-shadow: var(--ygz-shadow-xs);
  transition: box-shadow var(--ygz-transition-normal);
}

.ygz-evrak-panel:hover {
  box-shadow: var(--ygz-shadow-sm);
}

.ygz-evrak-panel__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 6px;
  padding: 4px 10px;
  border-bottom: 1px solid var(--ygz-border-subtle);
  background: color-mix(in oklab, var(--ygz-bg2) 86%, var(--ygz-bg3));
}

.ygz-evrak-panel__title {
  font-size: var(--ygz-fs-sm);
  font-weight: 700;
  color: var(--ygz-fg);
  letter-spacing: -0.01em;
}

.ygz-evrak-panel__subtitle {
  margin-bottom: 4px;
  font-size: var(--ygz-fs-sm);
  font-weight: 600;
  color: var(--ygz-muted);
}

.ygz-evrak-panel__body {
  padding: 4px 10px;
  overflow: auto;
  -webkit-overflow-scrolling: touch;
}

/* Evrak Tipleri sayfası — kanonik ad + ilişki */
.ygz-evrak-canonical {
  color: var(--ygz-brand);
  font-weight: 600;
  font-size: 0.8125rem;
}
.ygz-evrak-relation {
  color: var(--ygz-muted2);
  font-style: italic;
}
.ygz-evrak-related {
  background: color-mix(in srgb, var(--ygz-brand) 6%, transparent);
}

.ygz-evrak-panel--totals .ygz-evrak-panel__body {
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.ygz-evrak-totals {
  display: flex;
  flex-direction: column;
  gap: 3px;
}

.ygz-evrak-totals__row {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 8px;
  font-size: var(--ygz-fs-sm);
  color: var(--ygz-muted);
}

.ygz-evrak-totals__row strong {
  color: var(--ygz-fg);
}

/* Yeni Tutar input — toplamlar panelinde duzenlenebilir alan */
.ygz-evrak-totals__input {
  width: 120px;
  text-align: right;
  font-size: var(--ygz-fs-sm);
  font-weight: 700;
  padding: 4px 8px;
  height: 28px;
  min-height: 28px;
  border: 1px solid var(--ygz-border);
  border-radius: var(--ygz-radius-sm);
  background: var(--ygz-bg2);
  color: var(--ygz-fg);
  transition: all var(--ygz-transition-fast);
}

.ygz-evrak-totals__input:focus {
  border-color: var(--ygz-primary);
  outline: none;
  box-shadow: 0 0 0 3px rgba(212, 160, 23, 0.12);
}

.ygz-evrak-tab {
  border: 1px solid var(--ygz-border-subtle);
  background: transparent;
  color: var(--ygz-muted);
  font-size: var(--ygz-fs-sm);
  font-weight: 500;
  padding: 3px 10px;
  border-radius: 9999px;
  transition: all var(--ygz-transition-fast);
  cursor: pointer;
}

.ygz-evrak-tab:hover {
  background: var(--ygz-primary-ghost);
  border-color: var(--ygz-border);
  color: var(--ygz-fg);
}

.ygz-evrak-tab.is-active {
  background: var(--ygz-primary-ghost);
  border-color: color-mix(in oklab, var(--ygz-primary) 45%, var(--ygz-border));
  color: var(--ygz-fg);
  font-weight: 600;
}

.ygz-evrak-panel__tabs {
  display: flex;
  gap: 4px;
  flex-wrap: wrap;
}

.ygz-evrak-floating-wrap {
  position: relative;
}

.ygz-evrak-floating-input {
  padding-right: 160px;
}

.ygz-evrak-floating-hint {
  position: absolute;
  right: 14px;
  top: 50%;
  transform: translateY(-50%);
  max-width: 140px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-size: var(--ygz-fs-sm);
  font-weight: 700;
  color: var(--ygz-muted2);
  pointer-events: none;
}

.is-hidden {
  display: none !important;
}

/* Evrak satır gridinde: sütunlar içeriğe göre dinamik genişlesin, padding minimum (~1 karakter) */
#tblEvrakLines.ygz-grid td,
#tblEvrakLines.ygz-grid th,
#tblEvrakCariLines.ygz-grid td,
#tblEvrakCariLines.ygz-grid th {
  padding: 4px 6px;
  line-height: 1.25;
  white-space: nowrap; /* hücre içeriği tek satırda kalsın, sütun genişliği içeriğe uysun */
}

/* v4.83 (TBY): Header padding input'larla hizali (2px 4px) — input td'leri zaten
   padding: 0 (v4.78) + input ic padding 2px 4px; th'yi de ayni 2px 4px yap →
   sutun basliklari ile sutun input'lari sol-sag hizali, dikey kompakt. */
#tblEvrakLines.ygz-grid th,
#tblEvrakCariLines.ygz-grid th {
  padding: 2px 4px;
}

/* v4.78: Input/select iceren td'lerde padding kaldir → input cell border'ina yapisir.
   TBY: "tablodaki inputlar neden hucrelerin kenarlarina kadar degiller padding mi var".
   Eski davranis: td 4px 6px padding + input width: 100% (content area) → input cell
   kenarinda 6px gorunmez bos alan birakirdi. Yeni: input/select varsa td padding 0;
   input kendi 2px 4px padding'i ile metin okunur kalir. Label-only td'ler (yoksa
   editable degil ama bilgi metni) eski 4px 6px korunur. */
#tblEvrakLines.ygz-grid td:has(.ygz-evrak-input),
#tblEvrakLines.ygz-grid td:has(input),
#tblEvrakLines.ygz-grid td:has(select),
#tblEvrakCariLines.ygz-grid td:has(.ygz-evrak-input),
#tblEvrakCariLines.ygz-grid td:has(input),
#tblEvrakCariLines.ygz-grid td:has(select) {
  padding: 0;
}

/* Editable grid inputlari: hucre icine kompakt otursun, sütun genişliğini gereksiz şişirmesin.
   v4.78: parent td padding 0 oldugu icin input hucreyi tam doldurur; input kendi
   2px 4px padding'i metin okunabilirligi saglar. */
#tblEvrakLines .ygz-evrak-input,
#tblEvrakCariLines .ygz-evrak-input {
  padding: 2px 4px;
  line-height: 1.15;
  font-size: var(--ygz-fs-sm);
  height: 24px;
  min-height: 24px;
  width: 100%; /* inputlar hücre genişliğine uyar */
  min-width: 0; /* intrinsic genişlik sütunu şişirmesin; sütun genişliği içerik+header'a göre belirlensin */
  box-sizing: border-box;
  /* v4.78: hucre kenarina yapisik gorulmesi icin border-radius'u sifirla — cell border'i
     ile birlikte tek bir cizgi gibi gorunsun (radius olursa input kosesi yuvarlak olup
     hucre kenari ile arasinda kucuk bos alan kalirdi). */
  border-radius: 0;
}

/* Select elementleri de aynı şekilde sütunu şişirmesin */
#tblEvrakLines .ygz-evrak-input[data-ygz-vergi-select],
#tblEvrakCariLines select.ygz-evrak-input {
  min-width: 0;
}

/* Miktar inputlarinda birim etiketi (sag taraf) icin padding korunmali.
   Yukaridaki ID-bazli kural (.ygz-evrak-input) padding-right'i ezer;
   ayni ID specificity ile override ediyoruz. */
#tblEvrakLines .ygz-input-unit-input,
#tblEvrakCariLines .ygz-input-unit-input {
  padding-right: 8px; /* JS dinamik ayarlar: span genişliği + 10px */
}

/* Toolbar renk tonu (föy grid şemasıyla uyumlu) */
.ygz-evrak-toolbar.ygz-rowtone-in {
  --ygz-evrak-toolbar-bg: color-mix(in oklab, var(--ygz-success) 88%, #000 0%);
  --ygz-evrak-toolbar-fg: var(--ygz-success-contrast);
}
.ygz-evrak-toolbar.ygz-rowtone-out {
  --ygz-evrak-toolbar-bg: color-mix(in oklab, var(--ygz-danger) 88%, #000 0%);
  --ygz-evrak-toolbar-fg: var(--ygz-danger-contrast);
}
.ygz-evrak-toolbar.ygz-rowtone-return {
  --ygz-evrak-toolbar-bg: color-mix(in oklab, var(--ygz-warning) 88%, #000 0%);
  --ygz-evrak-toolbar-fg: var(--ygz-warning-contrast);
}
.ygz-evrak-toolbar.ygz-rowtone-transfer {
  --ygz-evrak-toolbar-bg: color-mix(in oklab, var(--ygz-accent) 86%, #000 0%);
  --ygz-evrak-toolbar-fg: #FFFFFF;
}
.ygz-evrak-toolbar.ygz-rowtone-neutral {
  --ygz-evrak-toolbar-bg: color-mix(in oklab, var(--ygz-primary) 92%, #000 0%);
  --ygz-evrak-toolbar-fg: var(--ygz-primary-contrast);
}

/* Dark tema: toolbar tonlarını biraz daha sakin yap (daha az neon) */
html.dark .ygz-evrak-toolbar.ygz-rowtone-in { --ygz-evrak-toolbar-bg: color-mix(in oklab, var(--ygz-success) 70%, #000 30%); }
html.dark .ygz-evrak-toolbar.ygz-rowtone-out { --ygz-evrak-toolbar-bg: color-mix(in oklab, var(--ygz-danger) 70%, #000 30%); }
html.dark .ygz-evrak-toolbar.ygz-rowtone-return { --ygz-evrak-toolbar-bg: color-mix(in oklab, var(--ygz-warning) 70%, #000 30%); }
html.dark .ygz-evrak-toolbar.ygz-rowtone-transfer {
  --ygz-evrak-toolbar-bg: color-mix(in oklab, var(--ygz-accent) 62%, #000 38%);
  --ygz-evrak-toolbar-fg: #0B0D12;
}

/* Cins kırılımı: base tona küçük bir karışım */
.ygz-evrak-toolbar.ygz-cins-toptan { --ygz-evrak-toolbar-bg: color-mix(in oklab, var(--ygz-evrak-toolbar-bg) 78%, var(--ygz-primary)); }
.ygz-evrak-toolbar.ygz-cins-perakende { --ygz-evrak-toolbar-bg: color-mix(in oklab, var(--ygz-evrak-toolbar-bg) 78%, var(--ygz-accent3)); }
.ygz-evrak-toolbar.ygz-cins-disticaret { --ygz-evrak-toolbar-bg: color-mix(in oklab, var(--ygz-evrak-toolbar-bg) 78%, var(--ygz-accent2)); }

/* Tablet (768-1023px): footer 2 sütun */
@media (min-width: 768px) and (max-width: 1023px) {
  .ygz-evrak-footer__grid {
    grid-template-columns: 1fr 1fr;
    align-items: stretch;
  }
}

/* Desktop (1024px+): footer 3 sütun — 25% / 50% / 25% (Bağlı Evraklar / Satış Geçmişi / Toplamlar) */
@media (min-width: 1024px) {
  .ygz-evrak-footer__grid {
    grid-template-columns: 1fr 2fr 1fr;
    align-items: stretch;
  }
}

/* Cari evrak modunda footer: sadece cari alt toplam chip'i göster */
.ygz-evrak-footer--cari-mode .ygz-evrak-footer__grid {
  grid-template-columns: 1fr !important;
}
.ygz-evrak-footer--cari-mode .ygz-evrak-panel[aria-label="Bağlı evraklar"],
.ygz-evrak-footer--cari-mode .ygz-evrak-panel[aria-label="Satış geçmişi"],
.ygz-evrak-footer--cari-mode .ygz-evrak-totals,
.ygz-evrak-footer--cari-mode .ygz-evrak-panel--totals .ygz-evrak-panel__head {
  display: none !important;
}
.ygz-evrak-footer--cari-mode .ygz-evrak-panel--totals {
  border: none;
  background: transparent;
  box-shadow: none;
}

/* Teslimat evrak modunda footer: sadece "Bağlı Evraklar" paneli göster (Satış Geçmişi + Toplamlar gizli) */
.ygz-evrak-footer--delivery-only .ygz-evrak-footer__grid {
  grid-template-columns: 1fr !important;
}
.ygz-evrak-footer--delivery-only .ygz-evrak-panel[aria-label="Satış geçmişi"],
.ygz-evrak-footer--delivery-only .ygz-evrak-panel[aria-label="Toplamlar"] {
  display: none !important;
}

/* EvrakTipleri kolon genişlikleri: artık grid engine (data-ygz-grid-default-widths) yönetiyor. */

/* ═══════════════════════════════════════════════════════════════════════════════
   EVRAK - RESPONSIVE (2026 — Fluid, Mobile-First, Touch-Friendly)
   ═══════════════════════════════════════════════════════════════════════════════ */

/* Tablet (768-1024px): toolbar ve form ince ayar */
@media (min-width: 768px) and (max-width: 1024px) {
  .ygz-evrak-toolbar__btn {
    padding: 6px 10px;
    font-size: 12px;
  }
  /* Tablet: pack'ler 2'li satira gecebilsin */
  .ygz-evrak-pack {
    min-width: 180px;
  }
  /* Tablet: grid horizontal scroll iyilestirmesi */
  .ygz-evrak-grid-wrap {
    -webkit-overflow-scrolling: touch;
  }
}

/* Mobile (max 768px): toolbar wrap, pack fluid */
@media (max-width: 768px) {
  .ygz-evrak-toolbar {
    gap: 8px;
    padding: 6px 8px;
    /* Toolbar wrap: butonlar sığmazsa alta insin */
    flex-wrap: wrap;
  }
  .ygz-evrak-toolbar__left {
    flex-wrap: wrap;
    overflow-x: visible;
    gap: 4px;
  }
  .ygz-evrak-toolbar__right {
    /* Sağ taraf butonları da wrap olabilsin */
    flex-wrap: wrap;
    gap: 4px;
  }
  .ygz-evrak-toolbar__title-inline {
    flex-basis: 100%;
    order: -1;
    overflow-x: visible;
    flex-wrap: wrap;
  }
  /* Toolbar butonları: touch-friendly minimum yükseklik */
  .ygz-evrak-toolbar__btn {
    min-height: 36px;
  }
  .ygz-evrak-form {
    --ygz-evrak-pack-w: 100%;
  }
  .ygz-evrak-pack {
    min-width: 0;
    flex-basis: 100%;
  }
  .ygz-evrak-pack--2x {
    flex-basis: 100%;
  }
  .ygz-evrak-pack__label {
    flex: 0 0 80px;
    font-size: 11px;
  }
}

/* Small mobile (max 480px): toolbar kompakt */
@media (max-width: 480px) {
  .ygz-evrak-toolbar {
    flex-wrap: wrap;
    padding: 4px 6px;
  }
  .ygz-evrak-toolbar__left,
  .ygz-evrak-toolbar__right {
    flex-wrap: wrap;
    gap: 3px;
  }
  .ygz-evrak-toolbar__btn {
    padding: 6px 10px;
    font-size: 11px;
    /* Touch-friendly: minimum 44px yükseklik */
    min-height: 44px;
  }
  .ygz-evrak-pack__label {
    flex: 0 0 auto;
    font-size: 10px;
  }
  .ygz-evrak-footer {
    padding: 6px;
  }
  .ygz-evrak-panel__head {
    padding: 6px 8px;
  }
  .ygz-evrak-panel__body {
    padding: 6px 8px;
  }
  .ygz-evrak-header__body {
    padding: 4px 6px;
  }
  /* Evrak form inputları: küçük mobilde minimum touch target */
  .ygz-evrak-form .ygz-evrak-input {
    min-height: 36px !important;
  }
}

/* ═══════════════════════════════════════════════════════════════════════════════
   EVRAK - SATIŞ GEÇMIŞI PANELI (rozet, seçili satır, uyarı banner)
   ═══════════════════════════════════════════════════════════════════════════════ */

.ygz-grid-row.is-active {
  background: color-mix(in oklab, var(--ygz-brand) 12%, transparent);
  box-shadow: inset 3px 0 0 var(--ygz-brand);
}

.ygz-badge {
  display: inline-block;
  padding: 2px 8px;
  font-size: var(--ygz-fs-xs);
  font-weight: 600;
  line-height: 1.4;
  border-radius: 999px;
  text-transform: uppercase;
  letter-spacing: 0.03em;
}

.ygz-badge--satis {
  background: color-mix(in oklab, #10b981 20%, transparent);
  color: #047857;
  border: 1px solid color-mix(in oklab, #10b981 40%, transparent);
}

.ygz-badge--alis {
  background: color-mix(in oklab, #3b82f6 20%, transparent);
  color: #1d4ed8;
  border: 1px solid color-mix(in oklab, #3b82f6 40%, transparent);
}

.ygz-badge--teklif {
  background: color-mix(in oklab, #a855f7 20%, transparent);
  color: #7e22ce;
  border: 1px solid color-mix(in oklab, #a855f7 40%, transparent);
}

.ygz-badge--siparis {
  background: color-mix(in oklab, #f97316 20%, transparent);
  color: #c2410c;
  border: 1px solid color-mix(in oklab, #f97316 40%, transparent);
}

.ygz-badge--iade {
  text-decoration: line-through;
  background: color-mix(in oklab, #ef4444 15%, transparent);
  color: #b91c1c;
  border-color: color-mix(in oklab, #ef4444 40%, transparent);
}

[data-ygz-theme="dark"] .ygz-badge--satis {
  color: #6ee7b7;
  background: color-mix(in oklab, #10b981 15%, transparent);
}

[data-ygz-theme="dark"] .ygz-badge--alis {
  color: #93c5fd;
  background: color-mix(in oklab, #3b82f6 15%, transparent);
}

[data-ygz-theme="dark"] .ygz-badge--teklif {
  color: #d8b4fe;
  background: color-mix(in oklab, #a855f7 15%, transparent);
}

[data-ygz-theme="dark"] .ygz-badge--siparis {
  color: #fdba74;
  background: color-mix(in oklab, #f97316 15%, transparent);
}

.ygz-alert-warn {
  display: flex;
  align-items: center;
  gap: 6px;
  padding: 6px 10px;
  margin-bottom: 6px;
  background: color-mix(in oklab, #f59e0b 12%, transparent);
  border-left: 3px solid #f59e0b;
  border-radius: 4px;
  font-size: var(--ygz-fs-sm);
  color: var(--ygz-fg);
}

.ygz-link {
  color: var(--ygz-brand);
  text-decoration: none;
  cursor: pointer;
}

.ygz-link:hover {
  text-decoration: underline;
}

.ygz-btn.is-loading {
  opacity: 0.6;
  pointer-events: none;
  position: relative;
}

.ygz-btn.is-loading::after {
  content: "";
  position: absolute;
  top: 50%;
  right: 8px;
  width: 12px;
  height: 12px;
  margin-top: -6px;
  border: 2px solid currentColor;
  border-top-color: transparent;
  border-radius: 50%;
  animation: ygz-spin 0.6s linear infinite;
}

@keyframes ygz-spin {
  to { transform: rotate(360deg); }
}

/* ═══════════════════════════════════════════════════════════════════════════════
   EVRAK - PRİNT STİLLERİ
   ═══════════════════════════════════════════════════════════════════════════════ */

@media print {
  .ygz-evrak-toolbar,
  .ygz-evrak-header-actions,
  .ygz-evrak-toolbar__btn,
  .ygz-evrak-pack--actions {
    display: none !important;
  }

  .ygz-evrak-header {
    position: static;
    background: white !important;
    border-bottom: 1px solid #ccc !important;
    /* Glass/blur efektlerini kaldır */
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
  }

  .ygz-evrak-pack {
    border-color: #ccc !important;
    background: white !important;
  }

  /* Evrak chip: print'te backdrop kaldır */
  .ygz-evrak-chip {
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
    background: #f0f0f0 !important;
    border-color: #ccc !important;
    color: #333 !important;
  }

  /* Footer paneller: print'te solid arkaplan */
  .ygz-evrak-panel {
    box-shadow: none !important;
    border-color: #ccc !important;
    background: white !important;
  }

  /* Evrak tablo: print'te tum satirlar gorunsun */
  .ygz-evrak-grid-wrap {
    overflow: visible !important;
    max-height: none !important;
  }

  /* Evrak footer grid: tek sutun, break-inside engelle */
  .ygz-evrak-footer__grid {
    display: block !important;
  }
  .ygz-evrak-footer__grid > * {
    break-inside: avoid;
    margin-bottom: 8px !important;
  }

  /* Tab butonlari print'te gizle */
  .ygz-evrak-tabs {
    display: none !important;
  }

  /* Evrak form inputlari: print'te border */
  .ygz-evrak-input {
    border: 1px solid #ccc !important;
    background: white !important;
    color: black !important;
  }
}

/* ═══════════════════════════════════════════════════════════════════════════════
   Snapshot (Gecmis Surum) Modu — Evrak Sayfasi Ozellestirmeleri
   Temel stiller: Content/erp.css (.ygz-snapshot-banner, .ygz-evrak-snapshot)
   Bu bolum evrak sayfasina ozel overridelari ve erp.css'te olmayan siniflari icerir.
   ═══════════════════════════════════════════════════════════════════════════════ */

/* Banner: evrak sayfasinda full-width bar (erp.css'teki pill seklini override et) */
.ygz-snapshot-banner {
  border-radius: 0;
  border-bottom: 2px solid #F59E0B;
  letter-spacing: 0.02em;
  z-index: 100;
}

html.dark .ygz-snapshot-banner {
  border-bottom-color: #D97706;
}

/* Banner text bolumu (erp.css'te yok) */
.ygz-snapshot-banner__text {
  flex: 1 1 auto;
}

/* Banner close: link olarak stillendir (erp.css'te button tarzinda) */
.ygz-snapshot-banner__close {
  text-decoration: none;
  font-size: 18px;
  font-weight: 700;
  width: 26px;
  height: 26px;
  border-radius: 4px;
  justify-content: center;
  transition: background 0.15s ease;
}

.ygz-snapshot-banner__close:hover {
  background: rgba(0, 0, 0, 0.08);
}

html.dark .ygz-snapshot-banner__close:hover {
  background: rgba(255, 255, 255, 0.1);
}

/* Snapshot readonly: user-select text kalsin (erp.css'te yok) */
.ygz-evrak-snapshot input,
.ygz-evrak-snapshot select,
.ygz-evrak-snapshot textarea {
  user-select: text;
}

/* Ek butonlari gizle: createReturn ve addLine (erp.css'te sadece save/delete/new var) */
.ygz-evrak-snapshot [data-evrak-action="createReturn"],
.ygz-evrak-snapshot [data-evrak-action="addLine"] {
  display: none !important;
}

/* Snapshot modu: toolbar'a subtle overlay efekti */
.ygz-evrak-snapshot .ygz-evrak-toolbar {
  opacity: 0.75;
}

/* Snapshot modu: satir ekleme butonunu da gizle */
.ygz-evrak-snapshot .ygz-evrak-addline-btn {
  display: none !important;
}

/* ── Depo dropdown (evrak tablo hücresi) ─────────────────── */
/* v4.80: min-width 10rem (160px) → 8rem (128px). Eski deger Depo sutunu icin
   sabit 160px min zorluyordu; "5 Şvrm.-" 8 char ~70px yeterken hep genis
   kaliyordu. autoFit dinamik genisletmeye izin verir; 8rem dropdown listesi
   icin yeterli min, izinli daraltma destekler.
   v2.2.0: appearance:auto kaldirildi — global `select` kurali (erp.css)
   appearance:none + custom chevron background verir; auto native oku geri
   acip cift ok yaratiyordu. Kardes select'ler (vergi orani, teslim turu,
   header Fatura Cinsi) ile ayni tek-chevron gorunume donuldu. */
.ygz-depo-select {
  cursor: pointer;
  min-width: 8rem;
}

/* ── Miktar aşım uyarısı (sarı arkaplan) ─────────────────── */
.ygz-warn-exceed {
  background-color: color-mix(in oklab, var(--ygz-warning, #f59e0b) 25%, transparent) !important;
  transition: background-color 0.2s ease;
}
html.dark .ygz-warn-exceed {
  background-color: color-mix(in oklab, var(--ygz-warning, #f59e0b) 18%, transparent) !important;
}

/* ═══════════════════════════════════════════════════════════════════════════════
   Schema-Driven Kalem Grid — Width Helper Class'ları (Adım 3)
   ───────────────────────────────────────────────────────────────────────────────
   Adım 0 buildSchemaCellHtml fonksiyonu schema.lineFields[].widthHint değerine
   göre input/select'lere ygz-line-w-{xs|sm|md|lg|grow} class'ı ekler.
   Mevcut #tblEvrakLines .ygz-evrak-input width:100% kuralı (line 666) sütun
   genişliğine uyum sağlar — bu helper'lar başlangıç min-width hint'i sağlar.
   ═══════════════════════════════════════════════════════════════════════════════ */

/* widthHint hücre min-width hint — col-resize sonrası override edilebilir.
   v4.80: Hint'ler autoFit'in dogru olcumunu (v4.79 input content measurement)
   ezdigi icin 60/100/150/200 → 50/70/90/130 daraltildi. Bu degerler "bos input
   en az ne kadar gorunur kalsin" minimumudur; autoFit dinamik hesabini bozmaz.
   TBY: "bazilari gereksiz uzun statik inline boyutlandirmalar". */
#tblEvrakLines th.ygz-line-w-xs,
#tblEvrakLines td.ygz-line-w-xs,
.ygz-line-w-xs { min-width: 50px; }

#tblEvrakLines th.ygz-line-w-sm,
#tblEvrakLines td.ygz-line-w-sm,
.ygz-line-w-sm { min-width: 70px; }

#tblEvrakLines th.ygz-line-w-md,
#tblEvrakLines td.ygz-line-w-md,
.ygz-line-w-md { min-width: 90px; }

#tblEvrakLines th.ygz-line-w-lg,
#tblEvrakLines td.ygz-line-w-lg,
.ygz-line-w-lg { min-width: 130px; }

/* grow: sütun esner, içeriğe göre genişler */
#tblEvrakLines th.ygz-line-w-grow,
#tblEvrakLines td.ygz-line-w-grow,
.ygz-line-w-grow {
  min-width: 150px;
  width: auto;
}

/* Schema-driven line input — base styles
   (mevcut .ygz-evrak-input padding/height kuralları line 658-668'de var,
    ygz-line-input ek vurgu için: focus + readonly state) */
.ygz-line-input {
  padding: 4px 6px;
  border: 1px solid var(--ygz-border);
  border-radius: var(--ygz-radius-sm, 4px);
  background: var(--ygz-bg2);
  color: var(--ygz-fg);
  transition: border-color var(--ygz-transition-fast, 150ms);
}

.ygz-line-input:focus {
  outline: 2px solid var(--ygz-brand);
  outline-offset: -1px;
  border-color: var(--ygz-brand);
}

.ygz-line-input[readonly],
.ygz-line-input:read-only {
  background: var(--ygz-bg-disabled, var(--ygz-bg3));
  cursor: not-allowed;
  color: var(--ygz-fg-secondary, var(--ygz-muted));
}

/* Dark tema override: mevcut --ygz-bg-disabled fallback erp.css'de yoksa
   --ygz-bg3 (alternatif arkaplan) kullanılır; html.dark üzerinden tema mirası alınır */
html.dark .ygz-line-input {
  background: var(--ygz-bg2);
  color: var(--ygz-fg);
}
html.dark .ygz-line-input[readonly],
html.dark .ygz-line-input:read-only {
  background: var(--ygz-bg3);
  color: var(--ygz-fg-secondary, var(--ygz-muted));
}

/* ─────────────────────────────────────────────────────────────────
   Alan Dökümü (Field Dump) modal — debug/karşılaştırma aracı
   Toolbar'daki Yazdır butonunun solundaki "Alan Dökümü" tetikler.
   ygz-evrak-fielddump.js DOM API ile inject eder.
   ───────────────────────────────────────────────────────────────── */
.ygz-fd-modal {
  position: fixed;
  inset: 0;
  z-index: 9000;
  display: flex;
  align-items: stretch;
  justify-content: center;
  pointer-events: auto;
}
.ygz-fd-modal[hidden] { display: none; }
.ygz-fd-modal__backdrop {
  position: absolute;
  inset: 0;
  background: rgba(15, 23, 42, 0.55);
  backdrop-filter: blur(2px);
}
.ygz-fd-modal__panel {
  position: relative;
  margin: 28px auto;
  width: min(96vw, 1100px);
  max-height: calc(100vh - 56px);
  background: var(--ygz-bg, #ffffff);
  color: var(--ygz-fg, #0f172a);
  border: 1px solid var(--ygz-border, #e5e7eb);
  border-radius: 12px;
  box-shadow: 0 24px 60px rgba(0,0,0,0.35);
  display: flex;
  flex-direction: column;
  overflow: hidden;
}
.ygz-fd-modal__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 12px 16px;
  border-bottom: 1px solid var(--ygz-border, #e5e7eb);
  background: var(--ygz-bg2, #f8fafc);
}
.ygz-fd-modal__titlebar { min-width: 0; flex: 1; }
.ygz-fd-modal__title {
  font-weight: 700;
  font-size: 1rem;
  line-height: 1.2;
}
.ygz-fd-modal__subtitle {
  font-size: 0.78rem;
  color: var(--ygz-muted, #64748b);
  margin-top: 2px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.ygz-fd-modal__tools {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-shrink: 0;
}
.ygz-fd-filter {
  height: 30px;
  padding: 0 10px;
  font-size: 0.85rem;
  border: 1px solid var(--ygz-border, #cbd5e1);
  border-radius: 6px;
  background: var(--ygz-bg, #ffffff);
  color: var(--ygz-fg, #0f172a);
  min-width: 200px;
}
.ygz-fd-modal__body {
  flex: 1;
  overflow: auto;
  padding: 12px 16px;
}
.ygz-fd-loading,
.ygz-fd-empty-msg,
.ygz-fd-error {
  padding: 18px;
  text-align: center;
  font-size: 0.9rem;
  color: var(--ygz-muted, #64748b);
}
.ygz-fd-error { color: #b91c1c; }

.ygz-fd-table-block {
  margin-bottom: 16px;
  border: 1px solid var(--ygz-border, #e5e7eb);
  border-radius: 8px;
  overflow: hidden;
}
.ygz-fd-table-head {
  padding: 8px 12px;
  font-weight: 700;
  font-size: 0.9rem;
  background: var(--ygz-bg2, #f1f5f9);
  border-bottom: 1px solid var(--ygz-border, #e5e7eb);
  font-family: var(--ygz-font-mono, ui-monospace, "JetBrains Mono", monospace);
}
.ygz-fd-rowcount {
  font-weight: 400;
  font-size: 0.8rem;
  color: var(--ygz-muted, #64748b);
}
.ygz-fd-row-block { padding: 0; }
.ygz-fd-row-block + .ygz-fd-row-block { border-top: 1px dashed var(--ygz-border, #e5e7eb); }
.ygz-fd-row-head {
  padding: 6px 12px;
  font-size: 0.78rem;
  font-weight: 600;
  background: var(--ygz-bg3, #f8fafc);
  color: var(--ygz-muted, #475569);
  border-bottom: 1px solid var(--ygz-border, #e5e7eb);
}
.ygz-fd-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.82rem;
  font-family: var(--ygz-font-mono, ui-monospace, "JetBrains Mono", monospace);
}
.ygz-fd-table tr { border-bottom: 1px solid var(--ygz-border-soft, #f1f5f9); }
.ygz-fd-table tr:last-child { border-bottom: 0; }
.ygz-fd-table .ygz-fd-key {
  width: 36%;
  padding: 4px 10px;
  font-weight: 600;
  color: var(--ygz-fg, #0f172a);
  vertical-align: top;
  word-break: break-all;
}
.ygz-fd-table .ygz-fd-val {
  padding: 4px 10px;
  color: var(--ygz-fg, #0f172a);
  word-break: break-word;
  white-space: pre-wrap;
}
.ygz-fd-null { color: #94a3b8; font-style: italic; }
.ygz-fd-empty { color: #cbd5e1; font-style: italic; }
.ygz-fd-row.ygz-fd-hidden { display: none; }

html.ygz-fd-open body { overflow: hidden; }

/* Dark theme */
html.dark .ygz-fd-modal__panel {
  background: var(--ygz-bg, #0f172a);
  color: var(--ygz-fg, #e2e8f0);
  border-color: var(--ygz-border, #334155);
}
html.dark .ygz-fd-modal__head { background: var(--ygz-bg2, #1e293b); border-color: var(--ygz-border, #334155); }
html.dark .ygz-fd-filter {
  background: var(--ygz-bg, #0f172a);
  color: var(--ygz-fg, #e2e8f0);
  border-color: var(--ygz-border, #334155);
}
html.dark .ygz-fd-table-block { border-color: var(--ygz-border, #334155); }
html.dark .ygz-fd-table-head { background: var(--ygz-bg2, #1e293b); border-color: var(--ygz-border, #334155); }
html.dark .ygz-fd-row-head { background: var(--ygz-bg3, #0b1220); border-color: var(--ygz-border, #334155); color: var(--ygz-muted, #94a3b8); }
html.dark .ygz-fd-table tr { border-color: var(--ygz-border-soft, #1e293b); }
html.dark .ygz-fd-error { color: #fca5a5; }

/* ─────────────────────────────────────────────────────────────────────────────
   Föy "Alan Dökümü" butonu — ygz-filter-header içine inject edilen toolbar.
   ygz-foy-fielddump.js injectButton() ile eklenir.
   ───────────────────────────────────────────────────────────────────────────── */
.ygz-foy-fielddump-toolbar {
  display: flex;
  justify-content: flex-end;
  margin-top: 6px;
  gap: 6px;
  width: 100%;
}
.ygz-foy-fielddump-btn { white-space: nowrap; }

/* ─────────────────────────────────────────────────────────────────────────────
   Föy "Alan Dökümü" — SQL şema modal — ygz-foy-fielddump.js ile aç/kapat.
   v1.1 (2026-05-14): Eski Seri/Sıra prompt yerine direkt şema dökümü modal.
   .ygz-fd-modal'dan ayrı bir overlay (Evrak.aspx satır dökümü modal'ı korunur).
   data-fd-schema-close="1" elementlerine tıklayınca kapanır; Esc tuşu da kapatır.
   ───────────────────────────────────────────────────────────────────────────── */
.ygz-fd-schema {
  position: fixed;
  inset: 0;
  z-index: 9990;
  display: flex;
  align-items: center;
  justify-content: center;
}
.ygz-fd-schema[hidden] { display: none; }
.ygz-fd-schema__backdrop {
  position: absolute;
  inset: 0;
  background: rgba(2, 6, 23, 0.55);
}
.ygz-fd-schema__panel {
  position: relative;
  z-index: 1;
  width: min(960px, 96vw);
  max-height: 90vh;
  background: #ffffff;
  color: #0f172a;
  border: 1px solid #e2e8f0;
  border-radius: 12px;
  box-shadow: 0 18px 48px rgba(0, 0, 0, 0.30);
  display: flex;
  flex-direction: column;
  overflow: hidden;
}

/* Head — başlık + slug + kapat butonu */
.ygz-fd-schema__head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
  padding: 12px 14px;
  border-bottom: 1px solid #e2e8f0;
  background: #f8fafc;
}
.ygz-fd-schema__titlebar {
  min-width: 0;
  flex: 1;
}
.ygz-fd-schema__title {
  font-weight: 600;
  font-size: 1.05rem;
  line-height: 1.25;
  word-break: break-word;
}
.ygz-fd-schema__subtitle {
  font-size: 0.78rem;
  color: #64748b;
  margin-top: 2px;
  font-family: "JetBrains Mono", ui-monospace, monospace;
}
.ygz-fd-schema__close {
  font-size: 1.25rem;
  line-height: 1;
  padding: 2px 10px;
}

/* Body — scrollable bölümler */
.ygz-fd-schema__body {
  padding: 14px 16px;
  overflow-y: auto;
  flex: 1 1 auto;
  display: flex;
  flex-direction: column;
  gap: 14px;
}
.ygz-fd-schema__loading,
.ygz-fd-schema__error {
  padding: 14px;
  text-align: center;
  font-size: 0.9rem;
}
.ygz-fd-schema__error {
  color: #b91c1c;
  background: #fef2f2;
  border: 1px solid #fecaca;
  border-radius: 8px;
}

/* Section grupları */
.ygz-fd-schema__section {
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.ygz-fd-schema__section-title {
  font-size: 0.85rem;
  font-weight: 700;
  letter-spacing: 0.02em;
  text-transform: uppercase;
  color: #475569;
  margin: 0;
  padding-bottom: 4px;
  border-bottom: 1px dashed #e2e8f0;
}
.ygz-fd-schema__paragraph {
  margin: 0;
  font-size: 0.9rem;
  line-height: 1.45;
  color: #1e293b;
}

/* Listeler — düz açıklama + kod versiyonu */
.ygz-fd-schema__list {
  margin: 0;
  padding: 0 0 0 18px;
  list-style: disc;
  display: flex;
  flex-direction: column;
  gap: 3px;
}
.ygz-fd-schema__list--code {
  list-style: none;
  padding-left: 0;
}
.ygz-fd-schema__list-item {
  font-size: 0.88rem;
  color: #1e293b;
  line-height: 1.4;
}
.ygz-fd-schema__list--code .ygz-fd-schema__list-item {
  padding: 2px 0;
}
.ygz-fd-schema__code {
  font-family: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: 0.82rem;
  background: #f1f5f9;
  color: #0f172a;
  padding: 2px 6px;
  border-radius: 4px;
  white-space: pre-wrap;
  word-break: break-word;
  display: inline-block;
}
.ygz-fd-schema__code-block {
  margin: 0;
  padding: 8px 10px;
  background: #f1f5f9;
  border-radius: 6px;
  border: 1px solid #e2e8f0;
  overflow-x: auto;
}
.ygz-fd-schema__code-inline {
  font-family: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: 0.85rem;
  white-space: pre-wrap;
  word-break: break-word;
}

/* SQL bloğu (collapsible) */
.ygz-fd-schema__section--sql .ygz-fd-schema__section-title { border-bottom: none; padding-bottom: 0; }
.ygz-fd-schema__sql-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  padding-bottom: 4px;
  border-bottom: 1px dashed #e2e8f0;
}
.ygz-fd-schema__sql-block {
  margin: 0;
  padding: 10px 12px;
  background: #0f172a;
  color: #e2e8f0;
  border-radius: 8px;
  border: 1px solid #1e293b;
  overflow-x: auto;
  max-height: 420px;
  overflow-y: auto;
}
.ygz-fd-schema__sql-code {
  font-family: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: 0.82rem;
  line-height: 1.45;
  white-space: pre;
  color: inherit;
}

html.ygz-fd-schema-open body { overflow: hidden; }

/* Dark theme */
html.dark .ygz-fd-schema__panel {
  background: var(--ygz-bg, #0f172a);
  color: var(--ygz-fg, #e2e8f0);
  border-color: var(--ygz-border, #334155);
}
html.dark .ygz-fd-schema__head {
  background: var(--ygz-bg2, #1e293b);
  border-color: var(--ygz-border, #334155);
}
html.dark .ygz-fd-schema__subtitle { color: var(--ygz-muted, #94a3b8); }
html.dark .ygz-fd-schema__paragraph { color: var(--ygz-fg, #e2e8f0); }
html.dark .ygz-fd-schema__list-item { color: var(--ygz-fg, #e2e8f0); }
html.dark .ygz-fd-schema__section-title {
  color: var(--ygz-muted, #94a3b8);
  border-color: var(--ygz-border, #334155);
}
html.dark .ygz-fd-schema__code {
  background: #1e293b;
  color: #e2e8f0;
}
html.dark .ygz-fd-schema__code-block {
  background: #1e293b;
  border-color: #334155;
}
html.dark .ygz-fd-schema__sql-block {
  background: #020617;
  border-color: #1e293b;
  color: #f1f5f9;
}
html.dark .ygz-fd-schema__sql-header { border-color: var(--ygz-border, #334155); }
html.dark .ygz-fd-schema__error {
  background: rgba(239, 68, 68, 0.12);
  border-color: rgba(239, 68, 68, 0.35);
  color: #fca5a5;
}
