/* ==========================================================================
   İşGelir UI — tasarım sistemi CSS katmanı (İLK TASLAK, 2026-09-15)

   Amaç     : style.css + color_theme.css yerine geçecek tek dosya. Bootstrap
              5.0.0 bileşenlerini onaylı tasarım diline çeker ve Bootstrap
              karşılığı olmayan bileşenleri `ig-` önekiyle tanımlar.
   Sıra     : vendors_css.css → isgelir-ui.css → daterangepicker → DataTables → toastr.
   Kaynak   : docs/tasarim/web-genel/TUTARLILIK.md §1 (bağlayıcı) ve onaylı
              tuval üreticileri (gen_canvas, gen_bilesenler, gen_liste_c,
              gen_modul_c, gen_cari_detay, v3_dil/v4_dil, gen_modallar_v2b,
              gen_modallar, gen_kabuk_katman, k1_ortak).
   Durum    : header.php tüm panel sayfalarında yükler; style.css, color_theme.css, custom.css kalktı.
   Kurallar : !important yok; tek sınıf seçici; Bootstrap'in çok sınıflı
              seçicileri yalnız aynı özgüllükle ezildiği yerde tekrar edilir.
              Ölçüler px (kök 14px; rem kullanan Bootstrap ölçüleri korunur).
   ========================================================================== */


/* ==========================================================================
   1. TOKEN'LAR
   ========================================================================== */
:root {
  /* --- Renk: marka (gen_canvas.py) --- */
  --ig-koyu: #002318;              /* bant, odak kenarı */
  --ig-birincil: #1A7F37;          /* DUGME */
  --ig-birincil-hover: #146C2E;    /* DESIGN.md yesil-dugme-hover */
  --ig-yesil-metin: #157347;       /* YMETIN: bağlantı, seçili metin */
  --ig-yesil-acik: #E8F6EC;        /* YACIK: seçili hap, seçim çubuğu */
  --ig-yesil-cizgi: #BFE3C9;       /* YCIZGI */
  --ig-yesil-secili: #F4FAF6;      /* seçili satır / dropdown seçili */
  --ig-yesil-hover: #F7FBF8;       /* tablo satır hover */
  --ig-yesil-nokta: #34D399;       /* bant durum noktası, bildirim noktası */

  /* --- Renk: nötr --- */
  --ig-zemin: #FAFAFA;
  --ig-yuzey: #FFFFFF;
  --ig-gri-zemin: #F4F4F5;         /* pasif etiket, segment, iskelet */
  --ig-cizgi: #E4E4E7;
  --ig-cizgi-koyu: #D4D4D8;        /* toplam satırı üst çizgisi */
  --ig-girdi: #A1A1AA;             /* checkbox kenarı, soluk ikon, yer tutucu */
  --ig-siralama: #C4C4CA;          /* sıralanmayan sütun ikonu */
  --ig-metin: #09090B;
  --ig-metin-2: #3F3F46;           /* NOTR: ikincil metin, nötr ikon */
  --ig-soluk: #71717A;

  /* --- Renk: durum aileleri (zemin / kenar / metin) --- */
  --ig-kirmizi: #B91C1C;
  --ig-tehlike-hover: #991B1B;     /* tehlike düğmesi hover (kırmızı bir ton koyu) */
  --ig-kirmizi-zemin: #FEF2F2;     /* DESIGN.md hata-acik (form hatası, alert) */
  --ig-kirmizi-cizgi: #FECACA;
  --ig-kirmizi-etiket-zemin: #FDECEC; /* k1_ortak.etiket */
  --ig-kirmizi-etiket-cizgi: #F5C2C2;
  --ig-sari-zemin: #FDF3E3;        /* gecikmiş etiketi */
  --ig-sari-cizgi: #F0DDBC;
  --ig-sari-metin: #8A5A00;
  --ig-miras-uyari: #FFA800;       /* 5. MİRAS: color_theme --theme-warning, yalnız .bg-warning dolgusu */
  --ig-turuncu: #C2410C;           /* finans turuncu (k1_ortak) */
  --ig-mavi: #0B5ED7;              /* süreç etiketi, 2. grafik serisi */
  --ig-mavi-zemin: #EAF1FB;
  --ig-mavi-cizgi: #C9DBF4;

  /* --- Renk: gecikme / yaş dilimleri (k2b_alacak.DILIM) --- */
  --ig-gecikme-1: #F4A3A3;         /* 1–30 gün */
  --ig-gecikme-2: #E06666;         /* 31–60 gün */
  --ig-gecikme-3: #C62828;         /* 61–90 gün */
  --ig-gecikme-4: #8E1B1B;         /* 90+ gün */

  /* --- Renk: koyu bant üstü (gen_modul_c.py) --- */
  --ig-beyaz: #FFFFFF;
  --ig-beyaz-soluk: rgba(255, 255, 255, 0.72);
  --ig-beyaz-alt: rgba(255, 255, 255, 0.82);   /* sayfa alt metni */
  --ig-beyaz-cizgi: rgba(255, 255, 255, 0.14);
  --ig-beyaz-kenar: rgba(255, 255, 255, 0.28); /* bant ikincil düğme, ⋯ */
  /* Tek düz koyu zemin (2026-09-16): tekrarlayan çizgi dokusu ve radial leke kalktı.
     Üst çubuk + sekme şeridi + sayfa bandı tek yüzey; ayrım yalnız .ig-modul-sekme
     alt çizgisi (1px var(--ig-beyaz-cizgi)). Token'ı okuyan 5 kural birlikte düzleşir. */
  --ig-bant-doku: var(--ig-koyu);

  /* --- Tipografi --- */
  --ig-font: Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --ig-fs-12: 12px;
  --ig-fs-13: 13px;
  --ig-fs-14: 14px;
  --ig-fs-15: 15px;                /* kart başlığı (kart_bas) */
  --ig-fs-16: 16px;
  --ig-fs-20: 20px;
  --ig-fs-28: 28px;
  --ig-fw-normal: 400;
  --ig-fw-orta: 500;
  --ig-fw-kalin: 600;
  --ig-lh-govde: 1.5;
  --ig-lh-baslik: 1.3;
  --ig-ls-baslik: -0.015em;

  /* --- Radius --- */
  --ig-r-3: 3px;                   /* checkbox */
  --ig-r-4: 4px;                   /* durum etiketi, segment öğesi */
  --ig-r-6: 6px;                   /* kontrol, düğme */
  --ig-r-8: 8px;                   /* kart, panel, modal */
  --ig-r-12: 12px;                 /* mobil alt sayfa üst köşeleri */

  /* --- Gölge --- */
  --ig-golge-kart: 0 1px 2px rgba(9, 9, 11, 0.04);
  --ig-golge-popover: 0 8px 24px rgba(9, 9, 11, 0.12);   /* hap açılır paneli */
  --ig-golge-katman: 0 12px 32px rgba(9, 9, 11, 0.16);   /* dropdown, panel, modal, toast */
  --ig-golge-segment: 0 1px 2px rgba(9, 9, 11, 0.08);
  --ig-odak: 0 0 0 3px rgba(0, 35, 24, 0.14);            /* v3_dil.ODAK */
  --ig-odak-hata: 0 0 0 3px rgba(185, 28, 28, 0.14);     /* v3_dil.HATA_ODAK */
  --ig-ortu: rgba(9, 9, 11, 0.24);                       /* onay modalı örtüsü */

  /* --- Boşluk ölçeği --- */
  --ig-b-2: 2px;
  --ig-b-4: 4px;
  --ig-b-6: 6px;
  --ig-b-8: 8px;
  --ig-b-12: 12px;
  --ig-b-16: 16px;
  --ig-b-20: 20px;
  --ig-b-24: 24px;
  --ig-b-32: 32px;

  /* --- Bileşen ölçüleri --- */
  --ig-kontrol-h: 36px;            /* araç çubuğu dışı girdi, panel düğmesi */
  --ig-girdi-h: 40px;              /* sağ panel girdisi */
  --ig-tutar-h: 48px;              /* tutar alanı */
  --ig-dugme-kart-h: 32px;
  --ig-dugme-panel-h: 36px;
  --ig-dugme-bant-h: 40px;
  --ig-dugme-altlik-h: 44px;
  --ig-hap-h: 32px;
  --ig-arama-w: 320px;
  --ig-islem: 32px;                /* satır işlem düğmesi */
  --ig-satir-h: 44px;
  --ig-baslik-h: 40px;             /* tablo başlık satırı */
  --ig-arac-h: 52px;               /* tablo araç çubuğu */
  --ig-secim-h: 40px;
  --ig-modul-sekme-h: 44px;
  --ig-alt-serit-h: 48px;
  --ig-bant-x: 120px;              /* bant yan padding (1440 tuvalde) */
  --ig-bindirme: 44px;
  --ig-panel-w: 480px;             /* sağ panel (form) */
  --ig-hizli-w: 420px;             /* sağ panel (hızlı bakış) */
  --ig-panel-ust: 68px;
  --ig-onay-w: 400px;
  --ig-toast-w: 360px;
  --ig-popover-w: 240px;
  --ig-liste-sol-w: 380px;         /* liste+detay (C3) sol kart */
}


/* ==========================================================================
   2. KÖK
   ========================================================================== */
html {
  font-size: 14px; /* style.css ile aynı; değişirse tüm rem boşlukları kayar */
}

body {
  font-family: var(--ig-font);
  font-size: var(--ig-fs-14);
  line-height: var(--ig-lh-govde);
  color: var(--ig-metin);
  background-color: var(--ig-zemin);
  -webkit-font-smoothing: antialiased;
}


/* ==========================================================================
   3. BOOTSTRAP BİLEŞENLERİ — yeniden biçim
   ========================================================================== */

/* --- 3.1 Düğmeler (TUTARLILIK §1 Düğmeler; gen_bilesenler.dugme) ---------- */
.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--ig-b-8);
  height: var(--ig-dugme-panel-h);
  padding: 0 14px;
  font-family: var(--ig-font);
  font-size: var(--ig-fs-14);
  font-weight: var(--ig-fw-orta);
  line-height: 1;
  white-space: nowrap;
  border-radius: var(--ig-r-6);
  box-shadow: none;
}
.btn:focus,
.btn.focus {
  box-shadow: var(--ig-odak);
}
.btn:disabled,
.btn.disabled {
  opacity: 0.4; /* v2b dugme(pasif=True) */
}

.btn-sm {
  height: var(--ig-dugme-kart-h);
  padding: 0 12px;
  font-size: var(--ig-fs-13);
  border-radius: var(--ig-r-6);
}
.btn-lg {
  height: var(--ig-dugme-altlik-h);
  padding: 0 16px;
  font-size: var(--ig-fs-14);
  border-radius: var(--ig-r-6);
}

/* Birincil: yeşil dolu, beyaz 600 metin. btn-primary eski panelde koyu yeşildi; yeni dilde birincildir. */
.btn-success,
.btn-primary {
  color: var(--ig-beyaz);
  background-color: var(--ig-birincil);
  border-color: var(--ig-birincil);
  font-weight: var(--ig-fw-kalin);
}
.btn-success:hover,
.btn-primary:hover,
.btn-success:active,
.btn-primary:active {
  color: var(--ig-beyaz);
  background-color: var(--ig-birincil-hover);
  border-color: var(--ig-birincil-hover);
}

/* İkincil: beyaz, 1px çizgi, 500 */
.btn-secondary,
.btn-light,
.btn-outline-secondary,
.btn-outline-success,
.btn-outline-primary,
.btn-outline-dark,
.btn-outline-light {
  color: var(--ig-metin);
  background-color: var(--ig-yuzey);
  border-color: var(--ig-cizgi);
  font-weight: var(--ig-fw-orta);
}
.btn-secondary:hover,
.btn-light:hover,
.btn-outline-secondary:hover,
.btn-outline-success:hover,
.btn-outline-primary:hover,
.btn-outline-dark:hover,
.btn-outline-light:hover {
  color: var(--ig-metin);
  background-color: var(--ig-zemin);
  border-color: var(--ig-cizgi);
}

/* Tehlike dolu: yalnız onay modalında (§1 Düğmeler). Satırda .ig-islem.is-tehlike kullanılır. */
.btn-danger {
  color: var(--ig-beyaz);
  background-color: var(--ig-kirmizi);
  border-color: var(--ig-kirmizi);
}
.btn-danger:hover,
.btn-danger:active {
  color: var(--ig-beyaz);
  background-color: var(--ig-tehlike-hover);
  border-color: var(--ig-tehlike-hover);
  /* Karar (2026-09-15): hover bir ton koyu kırmızı (--ig-tehlike-hover). */
}
.btn-outline-danger {
  color: var(--ig-kirmizi);
  background-color: var(--ig-yuzey);
  border-color: var(--ig-cizgi);
}
.btn-outline-danger:hover {
  color: var(--ig-kirmizi);
  background-color: var(--ig-kirmizi-zemin);
  border-color: var(--ig-kirmizi-cizgi);
}

/* Metin bağlantı düğmesi: "Bağlantı →", "Tümünü temizle" */
.btn-link {
  height: auto;
  padding: 0;
  color: var(--ig-yesil-metin);
  font-size: var(--ig-fs-13);
  font-weight: var(--ig-fw-orta);
  text-decoration: none;
}
.btn-link:hover {
  color: var(--ig-yesil-metin);
  text-decoration: underline;
  text-underline-offset: 3px;
}

/* Kapat (×): 28×28, soluk (v3_dil.kapat) */
.btn-close {
  width: 28px;
  height: 28px;
  padding: 0;
  background-size: 12px;
  border-radius: var(--ig-r-6);
  opacity: 0.55;
}
.btn-close:hover {
  opacity: 0.85;
}
.btn-close:focus {
  box-shadow: var(--ig-odak);
  opacity: 0.85;
}

/* --- 3.2 Form (v3_dil.alan/kutu/etiket; §1 Sağ panel) --------------------- */
.form-label {
  display: flex;
  align-items: baseline;
  gap: var(--ig-b-8);
  margin-bottom: var(--ig-b-6);
  font-size: var(--ig-fs-13);
  font-weight: var(--ig-fw-orta);
  line-height: 1.2;
  color: var(--ig-metin);
}
.form-text {
  margin-top: var(--ig-b-6);
  font-size: var(--ig-fs-12);
  color: var(--ig-soluk);
}

.form-control,
.form-select {
  height: var(--ig-girdi-h);
  padding: 0 12px;
  font-family: var(--ig-font);
  font-size: var(--ig-fs-14);
  color: var(--ig-metin);
  background-color: var(--ig-yuzey);
  border: 1px solid var(--ig-cizgi);
  border-radius: var(--ig-r-6);
  box-shadow: none;
}
.form-select {
  padding-right: 36px;
  background-position: right 12px center;
  background-size: 14px 10px;
}
textarea.form-control {
  height: auto;
  min-height: 72px;
  padding: 10px 12px;
}
.form-control::placeholder {
  color: var(--ig-girdi);
}
.form-control:focus,
.form-select:focus {
  border-color: var(--ig-koyu);
  box-shadow: var(--ig-odak);
}
.form-control:disabled,
.form-control[readonly],
.form-select:disabled {
  color: var(--ig-soluk);
  background-color: var(--ig-zemin);
}
.form-control-sm,
.form-select-sm {
  height: var(--ig-hap-h);
  font-size: var(--ig-fs-13);
}

/* Geçersiz durum: kırmızı kenar + 13px kırmızı satır */
.form-control.is-invalid,
.form-select.is-invalid {
  border-color: var(--ig-kirmizi);
  background-image: none;
  padding-right: 12px;
}
.form-control.is-invalid:focus,
.form-select.is-invalid:focus {
  border-color: var(--ig-kirmizi);
  box-shadow: var(--ig-odak-hata);
}
.invalid-feedback {
  margin-top: var(--ig-b-6);
  font-size: var(--ig-fs-13);
  color: var(--ig-kirmizi);
}

/* Seçim kutusu: 16×16, radius 3, seçili yeşil dolu (gen_bilesenler.onay) */
.form-check-input {
  width: 16px;
  height: 16px;
  margin-top: 0.2em;
  border: 1px solid var(--ig-girdi);
  box-shadow: none;
}
.form-check-input[type="checkbox"] {
  border-radius: var(--ig-r-3);
}
.form-check-input:checked,
.form-check-input[type="checkbox"]:indeterminate {
  background-color: var(--ig-birincil);
  border-color: var(--ig-birincil);
}
.form-check-input:focus {
  border-color: var(--ig-koyu);
  box-shadow: var(--ig-odak);
}
.form-check-label {
  font-size: var(--ig-fs-14);
  color: var(--ig-metin);
}

.input-group-text {
  height: var(--ig-girdi-h);
  padding: 0 12px;
  font-size: var(--ig-fs-14);
  color: var(--ig-soluk);
  background-color: var(--ig-yuzey);
  border: 1px solid var(--ig-cizgi);
  border-radius: var(--ig-r-6);
}

/* --- 3.3 Kart (gen_panel.kart, gen_bilesenler.kart_kabuk) ----------------- */
.card {
  background-color: var(--ig-yuzey);
  border: 1px solid var(--ig-cizgi);
  border-radius: var(--ig-r-8);
  box-shadow: var(--ig-golge-kart);
}
.card-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: var(--ig-b-12);
  padding: var(--ig-b-16) var(--ig-b-20);
  background-color: var(--ig-yuzey);
  border-bottom: 0;
}
.card-header:first-child {
  border-radius: var(--ig-r-8) var(--ig-r-8) 0 0;
}
.card-body {
  padding: var(--ig-b-20);
}
.card-footer {
  padding: var(--ig-b-12) var(--ig-b-16);
  background-color: var(--ig-yuzey);
  border-top: 1px solid var(--ig-cizgi);
}
.card-title {
  margin: 0;
  font-size: var(--ig-fs-15);
  font-weight: var(--ig-fw-kalin);
  line-height: var(--ig-lh-baslik);
}

/* --- 3.4 Tablo (§1 Tablo başlık satırı / Tablo satırı) -------------------- */
.table {
  --bs-table-hover-bg: var(--ig-yesil-hover);
  --bs-table-hover-color: var(--ig-metin);
  --bs-table-active-bg: var(--ig-yesil-secili);
  margin-bottom: 0;
  font-size: var(--ig-fs-13);
  color: var(--ig-metin);
  vertical-align: middle;
  border-color: var(--ig-cizgi);
}
/* Bootstrap seçicisiyle aynı özgüllük gerekir (padding ve kenar burada) */
.table > :not(caption) > * > * {
  height: var(--ig-satir-h);
  padding: 0 12px;
  border-bottom-width: 0;
  border-top: 1px solid var(--ig-cizgi);
}
.table > :not(caption) > * > :first-child {
  padding-left: 12px;
}
.table > :not(caption) > * > :last-child {
  padding-right: 16px;
}
.table > thead > tr > th {
  height: var(--ig-baslik-h);
  padding: 0 12px;
  vertical-align: middle;
  font-size: var(--ig-fs-12);
  font-weight: var(--ig-fw-kalin);
  letter-spacing: 0.01em;
  color: var(--ig-soluk);
  white-space: nowrap;
  background-color: var(--ig-zemin);
  border-bottom: 1px solid var(--ig-cizgi);
}
/* Bootstrap 5.0 thead altında currentColor kenar çiziyor; nötrle */
.table > :not(:last-child) > :last-child > * {
  border-bottom-color: var(--ig-cizgi);
}
.table > thead > tr > th[aria-sort="ascending"],
.table > thead > tr > th[aria-sort="descending"] {
  color: var(--ig-metin);
}
.table > tbody > tr.is-secili {
  --bs-table-accent-bg: var(--ig-yesil-secili);
}
.table > tbody > tr > td:first-child {
  font-weight: var(--ig-fw-kalin);
}
.table-responsive {
  -webkit-overflow-scrolling: touch;
}
/* Toplam / devreden satırı: ZEMIN, 600 (§1 Toplam satırı) */
.table > tfoot > tr > *,
.table > tbody > tr.is-toplam > * {
  --bs-table-accent-bg: var(--ig-zemin);
  font-weight: var(--ig-fw-kalin);
}

/* --- 3.5 Etiket (.badge → yazılı durum etiketi dili; gen_bilesenler.rozet) - */
.badge {
  display: inline-flex;
  align-items: center;
  height: 22px;
  padding: 0 8px;
  font-size: var(--ig-fs-12);
  font-weight: var(--ig-fw-orta);
  line-height: 1;
  white-space: nowrap;
  color: var(--ig-soluk);
  background-color: var(--ig-gri-zemin);
  border: 1px solid var(--ig-cizgi);
  border-radius: var(--ig-r-4);
}
/* Renkli etiket .ig-durum--* ile verilir (bölüm 4). Bootstrap .bg-* utility'leri
   bu derlemede !important taşıdığı için .badge.bg-* dolu renkte kalır; ezmek için
   !important gerekir, bu da kural dışı.
   TODO: view aktarımında `badge bg-success` → `ig-durum ig-durum--basarili` eşlemesi yapılsın. */

/* --- 3.6 Sekme şeridi (§1 Detay sekme şeridi; gen_liste_c.sekmeler) ------- */
.nav-tabs {
  gap: var(--ig-b-20);
  padding: 0 var(--ig-b-20);
  border-bottom: 1px solid var(--ig-cizgi);
}
.nav-tabs .nav-link {
  display: flex;
  align-items: center;
  gap: var(--ig-b-6);
  height: var(--ig-alt-serit-h);
  margin-bottom: -1px;
  padding: 0 4px;
  font-size: var(--ig-fs-14);
  font-weight: var(--ig-fw-orta);
  color: var(--ig-soluk);
  background: none;
  border: 0;
  border-bottom: 2px solid transparent;
  border-radius: 0;
}
.nav-tabs .nav-link:hover,
.nav-tabs .nav-link:focus {
  color: var(--ig-metin);
  border-color: transparent;
}
/* Bootstrap seçicisi 3 sınıf; aynı özgüllükle eziliyor */
.nav-tabs .nav-link.active,
.nav-tabs .nav-item.show .nav-link {
  font-weight: var(--ig-fw-kalin);
  color: var(--ig-yesil-metin);
  background: none;
  border-color: transparent;
  border-bottom-color: var(--ig-birincil);
}
.nav-tabs .nav-link .ig-sayac {
  font-size: var(--ig-fs-12);
  font-weight: var(--ig-fw-normal);
  color: var(--ig-soluk);
  font-variant-numeric: tabular-nums;
}

/* --- 3.7 Dropdown (gen_kabuk_katman.panel / satir) ------------------------ */
.dropdown-menu {
  min-width: 200px;
  padding: var(--ig-b-4) 0;
  font-size: var(--ig-fs-14);
  color: var(--ig-metin);
  background-color: var(--ig-yuzey);
  border: 1px solid var(--ig-cizgi);
  border-radius: var(--ig-r-8);
  box-shadow: var(--ig-golge-katman);
}
.dropdown-item {
  display: flex;
  align-items: center;
  gap: 10px;
  width: auto;
  height: 40px;
  margin: 0 var(--ig-b-4);
  padding: 0 10px;
  color: var(--ig-metin-2);
  border-radius: var(--ig-r-6);
}
.dropdown-item:hover,
.dropdown-item:focus,
.dropdown-item.active,
.dropdown-item:active {
  color: var(--ig-metin);
  background-color: var(--ig-yesil-secili);
}
.dropdown-header {
  padding: 12px 12px 4px;
  font-size: var(--ig-fs-12);
  font-weight: var(--ig-fw-orta);
  color: var(--ig-soluk);
}
.dropdown-divider {
  margin: var(--ig-b-4) 0;
  border-top-color: var(--ig-cizgi);
}

/* --- 3.8 Modal = onay/eylem modalı (§1 Onay/eylem modalı; v2b.onay_kutu) --
   Veri girişi modalda yapılmaz; sağ panel (.offcanvas-end) kullanılır. */
.modal-backdrop {
  background-color: var(--ig-metin); /* örtü rengi = METIN, opaklık aşağıda */
}
.modal-backdrop.show {
  opacity: 0.24; /* v2b.ortu(opak=0.24); 5.0 seçicisi 2 sınıf */
}
.modal-content {
  background-color: var(--ig-yuzey);
  border: 1px solid var(--ig-cizgi);
  border-radius: var(--ig-r-8);
  box-shadow: var(--ig-golge-katman);
  overflow: hidden;
}
.modal-header {
  align-items: flex-start;
  gap: var(--ig-b-12);
  padding: var(--ig-b-16) var(--ig-b-20) 0;
  border-bottom: 0;
}
.modal-title {
  font-size: var(--ig-fs-16);
  font-weight: var(--ig-fw-kalin);
  line-height: 1.4;
  color: var(--ig-metin);
}
.modal-header .btn-close {
  margin: -4px -6px 0 auto;
}
.modal-body {
  padding: var(--ig-b-8) var(--ig-b-20) var(--ig-b-16);
  font-size: var(--ig-fs-14);
  line-height: var(--ig-lh-govde);
  color: var(--ig-metin-2);
}
.modal-footer {
  gap: var(--ig-b-8);
  padding: var(--ig-b-12) var(--ig-b-20);
  background-color: var(--ig-zemin);
  border-top: 1px solid var(--ig-cizgi);
}
.modal-footer > * {
  margin: 0;
}
@media (min-width: 576px) {
  .modal-sm {
    max-width: var(--ig-onay-w); /* onay 400–420; frontend-kurallari silme onayı modal-sm */
  }
  /* TODO: onay modalı üstten 140–160px; modal-dialog-centered ile çakışıyor, ekran aktarımında karar */
}

/* --- 3.9 Offcanvas = sağ panel (§1 Sağ panel form 480 / hızlı bakış 420) --
   Arkadaki sayfa karartılmaz: markup'ta data-bs-backdrop="false".
   Bootstrap 5.0.0'da .offcanvas-backdrop yok; örtü .modal-backdrop kullanır. */
.offcanvas {
  background-color: var(--ig-yuzey);
  box-shadow: var(--ig-golge-katman);
}
.offcanvas-end {
  top: var(--ig-panel-ust);
  right: var(--ig-b-24);
  bottom: var(--ig-b-24);
  width: var(--ig-panel-w);
  max-width: calc(100vw - 48px);
  border: 1px solid var(--ig-cizgi);
  border-radius: var(--ig-r-8);
  transform: translateX(calc(100% + 24px)); /* right:24 boşluğu kapansın diye */
}
.offcanvas-end.ig-hizli-bakis {
  width: var(--ig-hizli-w);
}
.offcanvas-header {
  align-items: flex-start;
  gap: var(--ig-b-12);
  padding: var(--ig-b-16) var(--ig-b-16) var(--ig-b-12) var(--ig-b-20);
  border-bottom: 1px solid var(--ig-cizgi);
}
.offcanvas-title {
  font-size: var(--ig-fs-16);
  font-weight: var(--ig-fw-kalin);
  line-height: 1.4;
}
.offcanvas-body {
  padding: var(--ig-b-4) var(--ig-b-20) var(--ig-b-20);
}
@media (max-width: 575.98px) {
  .offcanvas-end {
    top: 0;
    right: 0;
    bottom: 0;
    max-width: 100%;
    width: 100%;
    border: 0;
    border-radius: 0;
    transform: translateX(100%); /* mobilde panel tam ekran sayfa (v4_dil.mobil_sayfa) */
  }
}

/* --- 3.10 Sayfalama (gen_bilesenler.sayfalama: ← → 32×32 kenarlı) -------- */
.pagination {
  gap: var(--ig-b-6);
  margin: 0;
}
.page-link {
  display: flex;
  align-items: center;
  justify-content: center;
  min-width: 32px;
  height: 32px;
  padding: 0 8px;
  font-size: var(--ig-fs-13);
  color: var(--ig-metin);
  font-variant-numeric: tabular-nums;
  background-color: var(--ig-yuzey);
  border: 1px solid var(--ig-cizgi);
  border-radius: var(--ig-r-6);
}
.page-link:hover {
  color: var(--ig-metin);
  background-color: var(--ig-zemin);
  border-color: var(--ig-cizgi);
}
.page-link:focus {
  box-shadow: var(--ig-odak);
}
.page-item:first-child .page-link,
.page-item:last-child .page-link {
  border-radius: var(--ig-r-6);
}
.page-item:not(:first-child) .page-link {
  margin-left: 0;
}
.page-item.active .page-link {
  color: var(--ig-yesil-metin);
  background-color: var(--ig-yesil-acik);
  border-color: var(--ig-yesil-cizgi);
}
.page-item.disabled .page-link {
  color: var(--ig-girdi);
  background-color: var(--ig-yuzey);
  border-color: var(--ig-cizgi);
}

/* --- 3.11 Uyarı bandı (DESIGN.md Alert Banner) ---------------------------- */
.alert {
  display: flex;
  align-items: flex-start;
  gap: var(--ig-b-8);
  padding: 10px 12px;
  font-size: var(--ig-fs-13);
  line-height: 1.45;
  color: var(--ig-metin-2);
  background-color: var(--ig-zemin);
  border: 1px solid var(--ig-cizgi);
  border-radius: var(--ig-r-6);
}
.alert-danger  { color: var(--ig-kirmizi);     background-color: var(--ig-kirmizi-zemin); border-color: var(--ig-kirmizi-cizgi); }
.alert-success { color: var(--ig-yesil-metin); background-color: var(--ig-yesil-acik);    border-color: var(--ig-yesil-cizgi); }
.alert-warning { color: var(--ig-sari-metin);  background-color: var(--ig-sari-zemin);    border-color: var(--ig-sari-cizgi); }
.alert-info    { color: var(--ig-mavi);        background-color: var(--ig-mavi-zemin);    border-color: var(--ig-mavi-cizgi); }
/* TODO: .alert-* bileşen dili onaylı tuvalde yalnız giriş hatası için var; diğer üç renk durum etiketi ailesinden türetildi */

/* --- 3.12 Toast (§1 Toast; gen_modallar.toast) ---------------------------- */
.toast-container {
  top: 20px;
  right: 24px;
  gap: var(--ig-b-8);
}
.toast {
  width: var(--ig-toast-w);
  font-size: var(--ig-fs-13);
  background-color: var(--ig-yuzey);
  border: 1px solid var(--ig-cizgi);
  border-radius: var(--ig-r-8);
  box-shadow: var(--ig-golge-katman);
  /* TODO: gen_modallar.GOLGE iki katmanlı (0 16px 40px .16 + 0 2px 6px .06); DESIGN.md tek gölge kuralı gereği katman gölgesi seçildi */
}
.toast-header {
  gap: 10px;
  padding: 14px 12px 2px 16px;
  font-size: var(--ig-fs-14);
  font-weight: var(--ig-fw-kalin);
  color: var(--ig-metin);
  background-color: transparent;
  border-bottom: 0;
}
.toast-body {
  padding: 0 12px 14px 16px;
  font-size: var(--ig-fs-13);
  line-height: 1.45;
  color: var(--ig-soluk);
}

/* --- 3.13 Breadcrumb (liste-c.konum_cubugu; §1: sayfa başlığında yok) ----- */
.breadcrumb {
  gap: var(--ig-b-8);
  margin: 0;
  font-size: var(--ig-fs-14);
}
.breadcrumb-item {
  color: var(--ig-soluk);
}
.breadcrumb-item a {
  color: var(--ig-soluk);
  text-decoration: none;
}
.breadcrumb-item.active {
  font-weight: var(--ig-fw-orta);
  color: var(--ig-metin);
}
.breadcrumb-item + .breadcrumb-item {
  padding-left: 0;
}
.breadcrumb-item + .breadcrumb-item::before {
  padding-right: var(--ig-b-8);
  color: var(--ig-girdi);
}

/* --- 3.14 İlerleme çubuğu -------------------------------------------------- */
.progress {
  height: 8px;
  font-size: var(--ig-fs-12);
  background-color: var(--ig-gri-zemin);
  border-radius: var(--ig-r-4);
}
.progress-bar {
  background-color: var(--ig-birincil);
}
/* TODO: progress ölçüsü onaylı tuvalde tanımsız; 8px / radius 4 iskelet çubuğundan (r2v2.iskelet_cubuk) türetildi */


/* ==========================================================================
   4. İG- BİLEŞENLERİ (Bootstrap karşılığı olmayanlar)
   ========================================================================== */

/* --- 4.1 Bant (§1 Kabuk, Sayfa başlığı, Bant sağı, Bindirme; gen_modul_c) - */
.ig-bant {
  padding: var(--ig-b-20) var(--ig-bant-x) calc(var(--ig-bindirme) + 40px);
  color: var(--ig-beyaz);
  background: var(--ig-bant-doku);
}
.ig-bant-bas {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: var(--ig-b-32);
  margin-top: var(--ig-b-32);
}
.ig-bant-baslik {
  margin: 0;
  font-size: var(--ig-fs-28);
  font-weight: var(--ig-fw-kalin);
  line-height: 1.2;
  letter-spacing: var(--ig-ls-baslik);
  color: var(--ig-beyaz);
}
.ig-bant-alt {
  margin: var(--ig-b-8) 0 0;
  font-size: var(--ig-fs-14);
  color: var(--ig-beyaz-alt);
}
.ig-bant-geri {
  display: inline-flex;
  align-self: flex-start;
  align-items: center;
  gap: var(--ig-b-6);
  margin-bottom: var(--ig-b-6);
  font-size: var(--ig-fs-13);
  font-weight: var(--ig-fw-orta);
  color: var(--ig-beyaz);
  text-decoration: none;
}
.ig-bant-sag {
  display: flex;
  align-items: flex-end;
  gap: var(--ig-b-24);
}
.ig-bant-ayrac {
  width: 1px;
  height: 40px;
  background: var(--ig-beyaz-cizgi);
}
.ig-bant-govde {
  margin: calc(var(--ig-bindirme) * -1) var(--ig-bant-x) 0;
}
/* --- 4.1b Bant altı ek bölüm (KPI şeridi .ig-bant-govde içinde kalıp,
   ALTINDAKİ blokların .ig-muh-ozet gibi tek kapta değil ayrı bölümlerde
   durduğu modüller için). Yatay margin ve mobil kırılım .ig-bant-govde ile
   BİREBİR AYNI — hizalama garantisi bu eşitlikten gelir, tek başına clamp'e
   geçirilmedi (KPI şeridiyle yeniden ayrışmasın diye; 1024–1366 ara değeri
   .ig-bant-govde'de de yok, bkz. alttaki TODO). Kaynak: dört modülün ayrı
   kopyası buraya indirildi — eski 12.9.1 .ik-ozet-bolum, eski 13 (Üretim)
   .urt-ozet-bolum, eski 11.3.5 .ig-is-ozet-bolum (İş). SPS (11.6, view'da
   eskiden Bootstrap .px-4) ve svk/anasayfa (SPS_Uyumluluk::anasayfa'dan
   sps/anasayfa'ya 302 redirect — ayrı view'ı yok) de bunu kullanır. */
.ig-ozet-bolum {
  margin: 0 var(--ig-bant-x);
  padding: var(--ig-b-16) 0 0;
}
.ig-ozet-bolum--son { padding-bottom: var(--ig-b-32); }
.ig-bant-dugme {
  height: var(--ig-dugme-bant-h);
  padding: 0 16px;
  font-weight: var(--ig-fw-kalin);
  color: var(--ig-koyu);
  background-color: var(--ig-beyaz);
  border: 0;
}
.ig-bant-dugme-ikincil {
  height: var(--ig-dugme-panel-h);
  color: var(--ig-beyaz);
  background: transparent;
  border: 1px solid var(--ig-beyaz-kenar);
}
@media (max-width: 767.98px) {
  .ig-bant { padding: var(--ig-b-16) var(--ig-b-16) calc(var(--ig-bindirme) + 24px); }
  .ig-bant-bas { flex-direction: column; align-items: stretch; gap: var(--ig-b-16); }
  .ig-bant-baslik { font-size: 22px; }
  .ig-bant-govde { margin: calc(var(--ig-bindirme) * -1) var(--ig-b-16) 0; }
  .ig-ozet-bolum { margin: 0 var(--ig-b-16); }
}
/* TODO: 120px yan padding 1440 tuvale göre; 1024–1366 arası için ara değer tuvalde yok
   (.ig-bant-govde ve .ig-ozet-bolum ikisi de etkileniyor, kasıtlı olarak eşit bırakıldı) */

/* --- 4.2 Modül sekmeleri (bant içi, 44px; gen_modul_c.sekme_satiri) ------- */
.ig-modul-sekme {
  display: flex;
  align-items: center;
  gap: var(--ig-b-16);
  margin-top: var(--ig-b-16);
  border-bottom: 1px solid var(--ig-beyaz-cizgi);
}
.ig-modul-sekme-liste {
  display: flex;
  flex: 1;
  min-width: 0;
  overflow-x: auto;
  scrollbar-width: none;
}
.ig-modul-sekme-oge {
  display: flex;
  flex: none;
  align-items: center;
  gap: var(--ig-b-8);
  height: var(--ig-modul-sekme-h);
  padding: 0 8px;
  font-size: var(--ig-fs-13);
  font-weight: var(--ig-fw-orta);
  color: var(--ig-beyaz-soluk);
  white-space: nowrap;
  text-decoration: none;
  border-bottom: 2px solid transparent;
}
.ig-modul-sekme-oge:hover {
  color: var(--ig-beyaz);
}
.ig-modul-sekme-oge.is-aktif {
  font-weight: var(--ig-fw-kalin);
  color: var(--ig-beyaz);
  border-bottom-color: var(--ig-beyaz);
}
.ig-hizli-islem {
  display: flex;
  flex: none;
  align-items: center;
  gap: var(--ig-b-8);
  height: 32px;
  padding: 0 12px;
  font-size: var(--ig-fs-13);
  font-weight: var(--ig-fw-orta);
  color: var(--ig-beyaz);
  background: transparent;
  border: 1px solid var(--ig-beyaz-kenar);
  border-radius: var(--ig-r-6);
}

/* --- 4.3 Alt şerit (beyaz, 48px; k1_ortak.alt_serit / detay sekme kartı) -- */
.ig-alt-serit {
  display: flex;
  align-items: center;
  gap: var(--ig-b-8);
  padding: 0 var(--ig-b-8) 0 var(--ig-b-4);
  overflow-x: auto;
  background-color: var(--ig-yuzey);
  border: 1px solid var(--ig-cizgi);
  border-radius: var(--ig-r-8);
  box-shadow: var(--ig-golge-kart);
}
.ig-alt-serit-oge {
  display: flex;
  flex: none;
  align-items: center;
  gap: var(--ig-b-6);
  height: var(--ig-alt-serit-h);
  padding: 0 12px;
  font-size: var(--ig-fs-14);
  font-weight: var(--ig-fw-orta);
  color: var(--ig-metin-2);
  white-space: nowrap;
  text-decoration: none;
  border-bottom: 2px solid transparent;
}
.ig-alt-serit-oge.is-aktif {
  font-weight: var(--ig-fw-kalin);
  color: var(--ig-yesil-metin);
  border-bottom-color: var(--ig-birincil);
}
.ig-alt-serit-ayrac {
  flex: none;
  width: 1px;
  height: 20px;
  background: var(--ig-cizgi);
}
.ig-alt-serit-sag {
  display: flex;
  flex: none;
  gap: var(--ig-b-8);
  margin-left: auto;
}

/* --- 4.4 Araç çubuğu (52px; gen_liste_c.arac_cubugu) ---------------------- */
.ig-arac {
  display: flex;
  align-items: center;
  gap: var(--ig-b-8);
  min-height: var(--ig-arac-h);
  padding: 0 var(--ig-b-16);
}
.ig-arac-ayrac {
  flex: none;
  width: 1px;
  height: 20px;
  margin: 0 var(--ig-b-4);
  background: var(--ig-cizgi);
}
.ig-arac-sag {
  display: flex;
  flex: none;
  align-items: center;
  gap: var(--ig-b-8);
  margin-left: auto;
}
.ig-kayit-sayisi {
  font-size: var(--ig-fs-13);
  color: var(--ig-soluk);
  white-space: nowrap;
  font-variant-numeric: tabular-nums;
}
.ig-ikon-dugme {
  display: inline-flex;
  flex: none;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  padding: 0;
  color: var(--ig-metin-2);
  background-color: var(--ig-yuzey);
  border: 1px solid var(--ig-cizgi);
  border-radius: var(--ig-r-6);
}
.ig-ikon-dugme:hover {
  background-color: var(--ig-zemin);
}
.ig-ikon-dugme:focus-visible {
  outline: 0;
  box-shadow: var(--ig-odak);
}
.ig-temizle {
  flex: none;
  padding: 0;
  font-size: var(--ig-fs-13);
  color: var(--ig-yesil-metin);
  white-space: nowrap;
  text-decoration: underline;
  text-underline-offset: 3px;
  background: none;
  border: 0;
}
@media (max-width: 767.98px) {
  .ig-arac { flex-wrap: wrap; padding: var(--ig-b-8) var(--ig-b-12); }
  .ig-arac-sag { margin-left: 0; }
}

/* --- 4.5 Hap filtre + arama (§1 Hap filtre çubuğu; gen_liste_c.hap/arama) - */
.ig-arama {
  display: flex;
  flex: none;
  align-items: center;
  gap: var(--ig-b-8);
  width: var(--ig-arama-w);
  height: var(--ig-hap-h);
  padding: 0 10px;
  color: var(--ig-girdi);
  background-color: var(--ig-yuzey);
  border: 1px solid var(--ig-cizgi);
  border-radius: var(--ig-r-6);
}
.ig-arama:focus-within {
  border-color: var(--ig-koyu);
  box-shadow: var(--ig-odak);
}
.ig-arama input {
  flex: 1;
  min-width: 0;
  height: 100%;
  padding: 0;
  font-size: var(--ig-fs-13);
  color: var(--ig-metin);
  background: transparent;
  border: 0;
  outline: 0;
}
.ig-arama input::placeholder {
  color: var(--ig-soluk);
}
.ig-hap {
  display: inline-flex;
  flex: none;
  align-items: center;
  gap: var(--ig-b-6);
  height: var(--ig-hap-h);
  padding: 0 8px 0 10px;
  font-size: var(--ig-fs-13);
  color: var(--ig-metin);
  white-space: nowrap;
  background-color: var(--ig-yuzey);
  border: 1px solid var(--ig-cizgi);
  border-radius: var(--ig-r-6);
}
.ig-hap.is-secili {
  padding-right: 6px;
  color: var(--ig-yesil-metin);
  background-color: var(--ig-yesil-acik);
  border-color: var(--ig-yesil-cizgi);
}
.ig-hap.is-acik {
  border-color: var(--ig-yesil-metin);
}
.ig-hap-deger {
  font-weight: var(--ig-fw-kalin);
}
.ig-hap-kapat {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 20px;
  height: 20px;
  padding: 0;
  color: inherit;
  background: none;
  border: 0;
  border-radius: var(--ig-r-4);
}
.ig-hap-ekle {
  display: inline-flex;
  flex: none;
  align-items: center;
  gap: var(--ig-b-6);
  height: var(--ig-hap-h);
  padding: 0 8px;
  font-size: var(--ig-fs-13);
  font-weight: var(--ig-fw-orta);
  color: var(--ig-soluk);
  background: none;
  border: 0;
  border-radius: var(--ig-r-6);
}
.ig-hap-panel {
  width: var(--ig-popover-w);
  padding: 0;
  border-radius: var(--ig-r-8);
  box-shadow: var(--ig-golge-popover);
}
.ig-hap-secenek {
  display: flex;
  align-items: center;
  gap: 10px;
  height: 36px;
  padding: 0 8px;
  font-size: var(--ig-fs-13);
  border-radius: var(--ig-r-6);
}
.ig-hap-secenek.is-secili {
  font-weight: var(--ig-fw-kalin);
  background-color: var(--ig-yesil-secili);
}

/* --- 4.6 Satır işlemleri (§1 Satır işlemleri; gen_bilesenler.islem_ikonlari) */
.ig-islemler {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: var(--ig-b-2);
}
.ig-islem {
  display: inline-flex;
  flex: none;
  align-items: center;
  justify-content: center;
  width: var(--ig-islem);
  height: var(--ig-islem);
  padding: 0;
  color: var(--ig-metin-2);
  background: transparent;
  border: 0;
  border-radius: var(--ig-r-6);
}
.ig-islem svg {
  width: 18px;
  height: 18px;
}
.ig-islem:hover {
  color: var(--ig-metin);
  background-color: var(--ig-zemin);
}
.ig-islem:focus-visible {
  outline: 0;
  box-shadow: var(--ig-odak);
}
.ig-islem.is-tehlike {
  color: var(--ig-kirmizi);
}
.ig-islem.is-tehlike:hover {
  background-color: var(--ig-kirmizi-zemin);
}
/* Karar (2026-09-15): işlem hover = --ig-zemin arka plan + koyu ikon (--ig-metin);
   tehlike işleminde kırmızı ikon ve hata-açık zemin korunur. */

/* --- 4.7 Seçim çubuğu (40px; gen_bilesenler.secim_cubugu) ----------------- */
.ig-secim-cubugu {
  display: flex;
  align-items: center;
  gap: 10px;
  height: var(--ig-secim-h);
  padding: 0 var(--ig-b-16);
  font-size: var(--ig-fs-13);
  color: var(--ig-yesil-metin);
  background-color: var(--ig-yesil-acik);
  border-top: 1px solid var(--ig-yesil-cizgi);
  border-bottom: 1px solid var(--ig-yesil-cizgi);
}
.ig-secim-sayi { font-weight: var(--ig-fw-kalin); }
.ig-secim-ayrac { color: var(--ig-yesil-cizgi); }
.ig-secim-eylem {
  display: inline-flex;
  align-items: center;
  gap: var(--ig-b-6);
  padding: 0;
  font-weight: var(--ig-fw-orta);
  color: var(--ig-yesil-metin);
  background: none;
  border: 0;
}
.ig-secim-eylem.is-tehlike { color: var(--ig-kirmizi); }
.ig-secim-birak {
  margin-left: auto;
  padding: 0;
  color: var(--ig-soluk);
  background: none;
  border: 0;
}

/* --- 4.8 Sayfalama satırı (gen_bilesenler.sayfalama) ---------------------- */
.ig-sayfalama {
  display: flex;
  align-items: center;
  gap: var(--ig-b-12);
  padding: var(--ig-b-12) var(--ig-b-16);
  font-size: var(--ig-fs-13);
  color: var(--ig-soluk);
  border-top: 1px solid var(--ig-cizgi);
}
.ig-sayfalama-adet { display: flex; gap: var(--ig-b-6); }
.ig-sayfalama-adet-oge {
  min-width: 34px;
  height: 28px;
  padding: 0 8px;
  font-size: var(--ig-fs-13);
  color: var(--ig-metin);
  font-variant-numeric: tabular-nums;
  background-color: var(--ig-yuzey);
  border: 1px solid var(--ig-cizgi);
  border-radius: var(--ig-r-6);
}
.ig-sayfalama-adet-oge.is-secili {
  color: var(--ig-yesil-metin);
  background-color: var(--ig-yesil-acik);
  border-color: var(--ig-yesil-cizgi);
}
.ig-sayfalama-aralik {
  margin-left: auto;
  font-variant-numeric: tabular-nums;
}
.ig-sayfalama-oklar { display: flex; gap: var(--ig-b-6); }

/* --- 4.9 Durum etiketi (§1 Durum etiketi; gen_bilesenler.rozet) ---------- */
.ig-durum {
  display: inline-flex;
  align-items: center;
  gap: var(--ig-b-6);
  height: 22px;
  padding: 0 8px;
  font-size: var(--ig-fs-12);
  font-weight: var(--ig-fw-orta);
  line-height: 1;
  white-space: nowrap;
  color: var(--ig-soluk);
  background-color: var(--ig-gri-zemin);
  border: 1px solid var(--ig-cizgi);
  border-radius: var(--ig-r-4);
}
.ig-durum--basarili { color: var(--ig-yesil-metin); background-color: var(--ig-yesil-acik); border-color: var(--ig-yesil-cizgi); }
.ig-durum--uyari    { color: var(--ig-sari-metin);  background-color: var(--ig-sari-zemin);  border-color: var(--ig-sari-cizgi); }
.ig-durum--bilgi    { color: var(--ig-mavi);        background-color: var(--ig-mavi-zemin);  border-color: var(--ig-mavi-cizgi); }
.ig-durum--notr     { color: var(--ig-soluk);       background-color: var(--ig-gri-zemin);   border-color: var(--ig-cizgi); }
/* §1: onaylı sette kırmızı etiket yok; finans (k1_ortak.etiket) karşılıksız çek vb. için tanımlı */
.ig-durum--tehlike  { color: var(--ig-kirmizi);     background-color: var(--ig-kirmizi-etiket-zemin); border-color: var(--ig-kirmizi-etiket-cizgi); }
/* Koyu bant içi etiket (gen_cari_detay.bant_rozet): kenarlı + yeşil nokta */
.ig-durum--bant { color: var(--ig-beyaz); background: transparent; border-color: var(--ig-beyaz-kenar); }
.ig-durum--bant::before {
  content: "";
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--ig-yesil-nokta);
}

/* --- 4.10 Bilgi satırı (§1 Bilgi satırı; gen_cari_detay.bilgi_satiri) ----- */
.ig-bilgi-satir {
  display: flex;
  justify-content: space-between;
  gap: var(--ig-b-16);
  padding: 10px 0;
  font-size: var(--ig-fs-13);
  border-bottom: 1px solid var(--ig-cizgi);
}
.ig-bilgi-satir:last-child { border-bottom: 0; }
.ig-bilgi-etiket { color: var(--ig-soluk); white-space: nowrap; }
.ig-bilgi-deger { font-weight: var(--ig-fw-orta); color: var(--ig-metin); text-align: right; }
.ig-bilgi-izgara {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--ig-b-16) var(--ig-b-24);
}
.ig-bilgi-izgara .ig-bilgi-etiket { display: block; font-size: var(--ig-fs-12); }
.ig-bilgi-izgara .ig-bilgi-deger { display: block; margin-top: 2px; font-size: var(--ig-fs-14); text-align: left; }
/* TODO: §1 yan kart etiket/değer 14px diyor, gen_cari_detay.bilgi_satiri 13px çiziyor; üretici esas alındı */

/* --- 4.11 Kart başlığı (§1 Kart başlığı; gen_panel.kart_bas) -------------- */
.ig-kart-baslik {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: var(--ig-b-12);
  padding: var(--ig-b-16) var(--ig-b-20);
}
.ig-kart-baslik-metin { margin: 0; font-size: var(--ig-fs-15); font-weight: var(--ig-fw-kalin); line-height: var(--ig-lh-baslik); }
.ig-kart-baslik-alt { margin: 2px 0 0; font-size: var(--ig-fs-13); color: var(--ig-soluk); }
.ig-kart-baglanti {
  display: inline-flex;
  align-items: center;
  gap: var(--ig-b-4);
  font-size: var(--ig-fs-13);
  font-weight: var(--ig-fw-orta);
  color: var(--ig-yesil-metin);
  white-space: nowrap;
  text-decoration: none;
}
.ig-kart-baglanti:hover { color: var(--ig-yesil-metin); text-decoration: underline; }

/* --- 4.12 Boş durum (§1 Boş durum; gen_bilesenler.durum_govde) ------------ */
.ig-bos {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--ig-b-6);
  padding: 56px var(--ig-b-24);
  text-align: center;
}
.ig-bos-baslik { margin: 8px 0 0; font-size: var(--ig-fs-16); font-weight: var(--ig-fw-kalin); color: var(--ig-metin); }
.ig-bos-metin { max-width: 320px; margin: 0; font-size: var(--ig-fs-13); line-height: var(--ig-lh-govde); color: var(--ig-soluk); }
.ig-bos-eylem { display: flex; gap: var(--ig-b-8); margin-top: var(--ig-b-12); }

/* --- 4.13 İskelet (yükleniyor; r2v2.iskelet_cubuk) ------------------------ */
.ig-iskelet {
  display: block;
  height: 10px;
  background-color: var(--ig-gri-zemin);
  border-radius: var(--ig-r-4);
}
.ig-iskelet--baslik { height: 14px; }
.btn.is-kaydediliyor { pointer-events: none; opacity: 0.7; } /* §1: "Kaydediliyor…" metni view'dan gelir */
/* TODO: iskelet nabız animasyonu tuvalde yok; eklenmedi */

/* --- 4.14 Panel başlık / altlık (offcanvas içi sabit; v3_dil.bas/ayak) ---- */
.ig-panel-baslik {
  display: flex;
  flex: none;
  align-items: flex-start;
  gap: var(--ig-b-12);
  padding: var(--ig-b-16) var(--ig-b-16) var(--ig-b-12) var(--ig-b-20);
}
.ig-panel-baslik-metin { margin: 0; font-size: var(--ig-fs-16); font-weight: var(--ig-fw-kalin); line-height: 1.4; }
.ig-panel-baslik-alt { margin: 4px 0 0; font-size: var(--ig-fs-13); color: var(--ig-soluk); }
.ig-panel-altlik {
  display: flex;
  flex: none;
  align-items: center;
  gap: var(--ig-b-8);
  padding: var(--ig-b-12) var(--ig-b-20);
  background-color: var(--ig-zemin);
  border-top: 1px solid var(--ig-cizgi);
}
.ig-panel-ipucu { flex: 1; min-width: 0; font-size: var(--ig-fs-13); color: var(--ig-soluk); }
.ig-istege { font-size: var(--ig-fs-12); font-weight: var(--ig-fw-normal); color: var(--ig-soluk); }
.ig-capa { display: flex; flex: none; gap: var(--ig-b-20); padding: 0 var(--ig-b-20); border-bottom: 1px solid var(--ig-cizgi); }
.ig-capa-oge {
  display: flex; align-items: center; height: 40px;
  font-size: var(--ig-fs-13); font-weight: var(--ig-fw-orta); color: var(--ig-soluk);
  text-decoration: none; border-bottom: 2px solid transparent;
}
.ig-capa-oge.is-aktif { font-weight: var(--ig-fw-kalin); color: var(--ig-metin); border-bottom-color: var(--ig-koyu); }
.ig-segment { display: flex; gap: var(--ig-b-4); height: var(--ig-girdi-h); padding: 4px; background-color: var(--ig-gri-zemin); border-radius: var(--ig-r-6); }
.ig-segment-oge {
  flex: 1; padding: 0 12px; font-size: var(--ig-fs-14); font-weight: var(--ig-fw-orta);
  color: var(--ig-soluk); background: transparent; border: 0; border-radius: var(--ig-r-4);
}
.ig-segment-oge.is-secili { font-weight: var(--ig-fw-kalin); color: var(--ig-metin); background-color: var(--ig-yuzey); box-shadow: var(--ig-golge-segment); }
.form-control.ig-tutar-alan { height: var(--ig-tutar-h); font-size: var(--ig-fs-20); font-weight: var(--ig-fw-kalin); text-align: right; font-variant-numeric: tabular-nums; }

/* --- 4.15 KPI (bant içi kutusuz; gen_liste_c.bant_kpi) -------------------- */
.ig-kpi-grup { display: flex; align-items: flex-end; gap: var(--ig-b-20); }
.ig-kpi { display: flex; flex-direction: column; gap: 2px; }
.ig-kpi + .ig-kpi { padding-left: var(--ig-b-20); border-left: 1px solid var(--ig-beyaz-cizgi); }
.ig-kpi-etiket { font-size: var(--ig-fs-12); color: var(--ig-beyaz-soluk); white-space: nowrap; }
.ig-kpi-deger { font-size: var(--ig-fs-20); font-weight: var(--ig-fw-kalin); line-height: 1.2; color: var(--ig-beyaz); white-space: nowrap; font-variant-numeric: tabular-nums; }
@media (max-width: 767.98px) {
  .ig-kpi-grup { display: grid; grid-template-columns: 1fr 1fr; gap: var(--ig-b-12); }
  .ig-kpi + .ig-kpi { padding-left: 0; border-left: 0; }
  .ig-kpi-deger { font-size: var(--ig-fs-16); }
}

/* --- 4.16 Tutar (§1 Para biçimi; tablo sayısı sağa, tabular) -------------- */
.ig-tutar { white-space: nowrap; font-variant-numeric: tabular-nums; }
.ig-tutar--giren { color: var(--ig-yesil-metin); }
.ig-tutar--cikan,
.ig-tutar--negatif { color: var(--ig-kirmizi); }
.ig-tutar--gecikmis { color: var(--ig-sari-metin); }
/* TODO: §1 "giren" rengi açık tanımlı değil (yeşil yalnız birincil/bağlantı); YMETIN seçildi, onay bekliyor */


/* ==========================================================================
   5. MİRAS (style.css / color_theme.css'ten taşınan asgari çalışma kuralları)
   Tüm panel sayfalarında yüklenir. Bugünkü view'lar eski şablon
   sınıflarıyla çalışmayı sürdürsün diye var; görsel dil 1–4. bölümlerden gelir.
   Değerler token'a bağlandı; düzen, konum ve görünürlük korundu. View'lar
   yeni ekranlara aktarıldıkça bu bölüm küçülür.
   Envanter: docs/tasarim/web-genel/CSS-GECIS.md · taşınmayanlar: §12.
   ========================================================================== */

/* --- 5.1 Utility'ler (boşluk, yoğunluk, renk) -----------------------------
   !important GEREKÇESİ (dosyada yalnız bu alt bölümde): Bootstrap 5.0
   utility'leri !important taşır. style.css ve color_theme.css aynı sınıf
   adlarını farklı değerle !important olarak yeniden tanımlıyordu; eski değeri
   korumanın tek yolu Bootstrap'ten SONRA yüklenen bu dosyada yine !important
   kullanmaktır. Bootstrap ile aynı değeri veren p-0, pt-0, pb-0, px-0, py-0,
   m-0, mb-0, mt-0, h-100, rounded taşınmadı. */

/* 5.1.1 Aynı ad, farklı değer: Bootstrap "-5" adımı 3rem (14px kökte 42px),
   style.css'te 5px. Ölçekte 5px yok; eski değer olduğu gibi korundu.
   Kaynak: style.css:1079 (.p-5), :1325 (.pb-5), :1859 (.py-5), :7806 (.mt-5), :7929 (.mb-5)
   Kullanım (view grep): py-5 17 · p-5 9 · pb-5 2 · mb-5 1 · mt-5 1 */
.p-5 {
  padding: 5px !important;
}
.py-5 {
  padding-top: 5px !important;
  padding-bottom: 5px !important;
}
.pb-5 {
  padding-bottom: 5px !important;
}
.mt-5 {
  margin-top: 5px !important;
}
.mb-5 {
  margin-bottom: 5px !important;
}

/* 5.1.2 Bootstrap'te karşılığı olmayan px adımı. style.css:1457.
   Kullanım: muh/evrak/irsaliye/irsaliye_listele_tablosu.php,
   muh/evrak/fatura/irsaliyeden_fatura.php (.filled-in etiketi, bkz. 5.2).
   !important: style.css önceliği; etiketin kendi padding'ini ezer. */
.ps-20 {
  padding-left: var(--ig-b-20) !important;
}

/* 5.1.3 Yoğun tablo. color_theme.css:2579-2591 · 4 fatura listesi.
   !important: custom.css:10544 `.content-wrapper .card > .table-responsive >
   .table > tbody > tr > td` (4 sınıflı) hücre padding'ini ezer; eski yoğun
   düzen de color_theme'da !important ile ayakta duruyordu. */
.table-compact tbody tr td,
.table-compact tfoot tr th,
.table-compact tfoot tr td {
  padding: var(--ig-b-2) 1rem !important;
}

/* 5.1.4 Renk utility'leri. Bootstrap 5.0 paleti (mavi primary, koyu yeşil success …)
   yerine marka renkleri. color_theme.css:239-250, :382-388, :1124-1185, :4583.
   Kullanım: text-success 416 · text-danger 408 · text-dark 158 · bg-success 155 ·
   text-warning 79 · bg-secondary 75 · bg-warning 70 · bg-info 53 · bg-primary 40 ·
   text-primary 25 · text-info 22. Eşleme tablosu 5.6'da.
   Dolu zeminlerde metin rengi color_theme'daki gibi !important'sız verilir:
   `.text-*` sınıfı ve 3.5 `.badge` rengi aynı öğede olduğunda davranış aynı kalır. */
.text-primary,
.text-success {
  color: var(--ig-yesil-metin) !important;
}
.text-danger {
  color: var(--ig-kirmizi) !important;
}
.text-warning {
  color: var(--ig-sari-metin) !important;
}
.text-info {
  color: var(--ig-mavi) !important;
}
.text-dark {
  color: var(--ig-metin) !important;
}
.bg-primary,
.bg-success {
  color: var(--ig-beyaz);
  background-color: var(--ig-birincil) !important;
}
.bg-danger {
  color: var(--ig-beyaz);
  background-color: var(--ig-kirmizi) !important;
}
.bg-warning {
  color: var(--ig-beyaz);
  background-color: var(--ig-miras-uyari) !important;
}
.bg-info {
  color: var(--ig-beyaz);
  background-color: var(--ig-mavi) !important;
}
.bg-secondary {
  color: var(--ig-metin-2) !important;
  background-color: var(--ig-gri-zemin) !important;
}

/* --- 5.2 Style-özel sınıflar ------------------------------------------------
   Bootstrap 5'te olmayan, header.php'li view'larda gerçekten kullanılan sınıflar.
   Taşınmayanlar (kendi <html>'i ve <style>'ı olan bağımsız sayfalarda; header.php
   yüklemedikleri için önizleme anahtarından etkilenmezler): .label (yazdırma
   şablonları, makbuz), .step / .error (auth/login.php, errors/html/*),
   .h-p100 / .ps-15 / .p-20 / .mt-10 (auth/register.php style.css'i doğrudan yükler).
   .min-w-0 6. bölümde; .box-title custom.css:8846 (h4.box-title), .bb-5 custom.css:9128. */

/* BS4 form grubu. style.css:26063, :26457 · 141 kullanım.
   .form-label hariç: 3.x etiket ağırlığını ezmesin (custom.css:9303 de 500 verir). */
.form-group {
  margin-bottom: 1rem;
}
.form-group label:not(.form-label) {
  font-weight: var(--ig-fw-normal);
}

/* style.css:401 · 40 kullanım */
.fw-medium {
  font-weight: var(--ig-fw-orta);
}

/* Açık zeminli renk sınıfları. color_theme.css:4778-4990 (son tanım; ilk
   tanım :243, :1127-1156). Kullanım: success 30 · warning 23 · primary 13 ·
   info 7 · danger 3 · secondary 1. primary/secondary custom.css:9555 ve :109'da
   da var; custom sonra yüklendiği için orada kazanır.
   Bootstrap'te bu adlar yok, !important gerekmez; 3.5 .badge'den sonra gelir. */
.bg-success-light {
  color: var(--ig-yesil-metin);
  background-color: var(--ig-yesil-acik);
}
.bg-primary-light {
  color: var(--ig-koyu);
  background-color: var(--ig-yesil-acik);
}
.bg-warning-light {
  color: var(--ig-sari-metin);
  background-color: var(--ig-sari-zemin);
}
.bg-danger-light {
  color: var(--ig-kirmizi);
  background-color: var(--ig-kirmizi-zemin);
}
.bg-info-light {
  color: var(--ig-mavi);
  background-color: var(--ig-mavi-zemin);
}
.bg-secondary-light {
  color: var(--ig-metin-2);
  background-color: var(--ig-gri-zemin);
}

/* Küçük etiket. style.css:27501 · muh/evrak/irsaliye/irsaliye_duzenle.php (6) */
.badge-sm {
  height: 18px;
  padding: 0 var(--ig-b-6);
  font-size: var(--ig-fs-12);
}

/* İlerleme grubu. style.css:22470-22491 · muh/ekstre/yaslandirma_raporu.php
   (progress-sm 4, progress-text 3, progress-group 3). Yükseklik custom.css:1568'de 6px'e iner. */
.progress-sm {
  height: 10px;
  border-radius: var(--ig-r-4);
}
.progress-sm .progress-bar {
  border-radius: inherit;
}
.progress-group .progress-text {
  font-weight: var(--ig-fw-kalin);
}
.progress-group .progress-number {
  float: right;
}

/* Yazdırma düğme satırı. style.css:24838 · is/teklifler/teklif_detay_onizleme.php
   (kabuk içi). Yazdırmada gizleme custom.css:6766 @media print. */
.no-print {
  margin: 15px 10px;
}

/* Seçim kutusu (materialize deseni). style.css:26351-26410, color_theme.css:1988-2002.
   Kullanım: irsaliye_listele_tablosu.php:46, irsaliyeden_fatura.php:421 →
   `input.filled-in` + boş `label.ps-20`. Eski katman input'u gizleyip kutuyu
   etiketin pseudo-elemanıyla çiziyordu; bu DOM sözleşmesi korunur (etikete
   tıklamak seçer), çizim 3.x .form-check-input diline bağlanır (16px, radius 3).
   style.css'in TÜM checkbox'ları gizleyen genel kuralı taşınmadı (custom.css:3142). */
[type="checkbox"].filled-in {
  position: absolute;
  width: 1px;
  height: 1px;
  margin: 0;
  opacity: 0;
  pointer-events: none;
}
[type="checkbox"].filled-in + label {
  position: relative;
  display: inline-block;
  min-width: 16px;
  height: 20px;
  line-height: 20px;
  vertical-align: middle;
  cursor: pointer;
  user-select: none;
}
[type="checkbox"].filled-in + label::before,
[type="checkbox"].filled-in + label::after {
  content: "";
  position: absolute;
  box-sizing: border-box;
}
[type="checkbox"].filled-in + label::after {
  top: 2px;
  left: 0;
  width: 16px;
  height: 16px;
  background-color: var(--ig-yuzey);
  border: 1px solid var(--ig-girdi);
  border-radius: var(--ig-r-3);
  transition: background-color 0.15s, border-color 0.15s;
}
[type="checkbox"].filled-in + label::before {
  z-index: 1;
  top: 4px;
  left: 5px;
  width: 6px;
  height: 10px;
  border-right: 2px solid var(--ig-beyaz);
  border-bottom: 2px solid var(--ig-beyaz);
  transform: rotate(45deg);
  opacity: 0;
}
[type="checkbox"].filled-in:checked + label::after {
  background-color: var(--ig-birincil);
  border-color: var(--ig-birincil);
}
[type="checkbox"].filled-in:checked + label::before {
  opacity: 1;
}
[type="checkbox"].filled-in:focus-visible + label::after {
  border-color: var(--ig-koyu);
  box-shadow: var(--ig-odak);
}
[type="checkbox"].filled-in:disabled + label {
  cursor: default;
  opacity: 0.5;
}

/* --- 5.3 Kabuk / layout -----------------------------------------------------
   Kabuk: body > .wrapper > sidebar.php (header.ig-kabuk, 7. bölüm) + .content-wrapper
   > .container-full. Kenar menü (.app-sidebar, sf-*) ve daraltma sınıfları
   (sidebar-collapse, sidebar-mini, hold-transition) kaldırıldı. Taşınmayanlar:
   - #loader/.spinner: kural yok; sidebar.php load'da gizler.
   - .container-full: hiçbir CSS'te tanımlı değil (yapısal sarmalayıcı).
   - .main-footer: footer.php'de öğe yok (yalnız custom.css:2219 sohbet gizlemesi).
   - .box / .box-title / .bb-5: .box yalnız developer/tasarim_rehberi.php;
     h4.box-title custom.css:8846, .bb-5 custom.css:9128'de tanımlı. */

/* style.css:103. Yükseklik: template.js:66 çalışma anında body, html ve
   .wrapper'a inline height/min-height yazar; html/body bu katmanda %100
   olmadığı için height:100% bir şey kırpmaz. */
.wrapper {
  position: relative;
  height: 100%;
  overflow-x: hidden;
  overflow-y: hidden;
  background-color: transparent;
}

/* .content-wrapper (style.css:20354 min-height) tek blok hâlinde 7. KABUK'ta. */

/* Avatar. style.css:23829-23895, color_theme.css:3970-4225.
   Ölçü, radius ve flex hizası custom.css:199-216'da (sonra yüklenir, kazanır).
   Burada custom'ın vermediği özellikler: konum, büyük harf, hizalama, img dolgusu,
   beyaz zemin. Kullanım: avatar 27 · avatar-sm 21 · avatar-lg 4 (+ avatar-md 1).
   Zemin :where() ile sıfır özgüllükte: .bg-*-light gibi sınıflar her zaman kazanır. */
.avatar {
  position: relative;
  display: inline-block;
  width: 36px;
  height: 36px;
  line-height: 36px;
  text-align: center;
  text-transform: uppercase;
  border-radius: var(--ig-r-8);
}
:where(.avatar:not(img)) {
  background-color: var(--ig-yuzey);
}
.avatar img {
  width: 100%;
  height: 100%;
  border-radius: 50%;
  vertical-align: top;
}
.avatar-sm {
  width: 29px;
  height: 29px;
  line-height: 29px;
  font-size: var(--ig-fs-12);
}
.avatar-lg {
  width: 48px;
  height: 48px;
  line-height: 48px;
  font-size: var(--ig-fs-20);
}

/* --- 5.4 Eklenti temaları ---------------------------------------------------
   Yükleme sırası (header.php): vendors_css.css (select2,
   bootstrap-datepicker, touchspin, fullcalendar 3.9 css) → isgelir-ui.css →
   daterangepicker.css → DataTables bs4 CDN CSS → toastr.min.css.
   Bu dosyadan SONRA gelen vendor CSS'i ezmek için seçici bir adım daha özgül.
   Taşınmayanlar: toastr (style/theme'da kural 0), bootstrap-select (init 0),
   ApexCharts (kullanım 0), daterangepicker td.active ve .ranges li
   (color_theme.css:1829-1838 → custom.css:1900, :1921-1943 aynı özellikleri
   tanımlar), select2 çoklu seçim etiketi ve × (custom.css:7106-7120). */

/* 5.4.1 DataTables. CDN paketi YALNIZ eklenti CSS'i taşır (Buttons, ColReorder,
   FixedColumns, Responsive, RowReorder, Select); çekirdek dataTables.bootstrap4.css
   yok (dt-1.10.22 yalnız JS URL'inde). Sıralama okları custom.css:9225, sayfalama
   3.10 .page-link + custom.css:9173. Kullanılan: Responsive (25 view), Buttons (2).
   Select / ColReorder / FixedColumns / RowReorder init 0 → dokunulmadı.
   Özgüllük: CDN `table.dataTable…td.dtr-control:before` (0,5,5); başa .table → (0,6,4). */
.table.dataTable.dtr-inline.collapsed > tbody > tr[role="row"] > td.dtr-control::before,
.table.dataTable.dtr-inline.collapsed > tbody > tr[role="row"] > th.dtr-control::before {
  color: var(--ig-beyaz);
  background-color: var(--ig-birincil);
  border-color: var(--ig-yuzey);
  box-shadow: var(--ig-golge-segment);
}
.table.dataTable.dtr-inline.collapsed > tbody > tr.parent > td.dtr-control::before,
.table.dataTable.dtr-inline.collapsed > tbody > tr.parent > th.dtr-control::before {
  background-color: var(--ig-kirmizi);
}
.table.dataTable > tbody > tr.child ul.dtr-details > li {
  border-bottom-color: var(--ig-cizgi);
}
/* Buttons bilgi kutusu ("Kopyalandı"), body'ye eklenir. CDN (0,1,1) → (0,1,2). */
body div.dt-button-info {
  background-color: var(--ig-yuzey);
  border: 1px solid var(--ig-cizgi);
  border-radius: var(--ig-r-8);
  box-shadow: var(--ig-golge-katman);
}
body div.dt-button-info h2 {
  font-size: var(--ig-fs-15);
  font-weight: var(--ig-fw-kalin);
  background-color: var(--ig-zemin);
  border-bottom-color: var(--ig-cizgi);
}

/* 5.4.2 Select2 (33 view). style.css:31430-31503 + color_theme.css:2117-2131.
   Vendor select2.min.css önce yüklenir; aynı özgüllük yeter. Tek seçim kutusu,
   açılır panel, vurgulu seçenek custom.css:8989, :9132-9153'te; burada kalanlar. */
.select2-container--default.select2-container--focus,
.select2-container--default:focus,
.select2-selection:focus {
  outline: 0;
}
.select2-container--default .select2-selection--multiple {
  border: 1px solid var(--ig-cizgi);
  border-radius: var(--ig-r-6);
}
.select2-container--default.select2-container--focus .select2-selection--multiple,
.select2-container--default .select2-selection--multiple:focus {
  border-color: var(--ig-koyu);
}
.select2-container--default .select2-search--dropdown .select2-search__field {
  border-color: var(--ig-cizgi);
  border-radius: var(--ig-r-6);
}
.select2-container--default .select2-results__option[aria-selected="true"] {
  color: var(--ig-metin);
  background-color: var(--ig-yesil-secili);
}
.select2-container--default .select2-results__option[aria-disabled="true"] {
  color: var(--ig-soluk);
}
.select2-results__option {
  padding: 6px 12px;
  font-size: var(--ig-fs-13);
  user-select: none;
}
.select2-container .select2-selection--single .select2-selection__rendered {
  height: auto;
  margin-top: -4px;
  padding-left: 0;
  padding-right: 10px;
}

/* 5.4.3 bootstrap-datepicker (ikInitDatepicker, 45 view). style.css:31505.
   Vendor css önce yüklenir, aynı seçici yeter; !important kaldırıldı. */
.datepicker .datepicker-switch:hover,
.datepicker .prev:hover,
.datepicker .next:hover,
.datepicker tfoot tr th:hover {
  background: var(--ig-gri-zemin);
}

/* 5.4.4 daterangepicker (11 view). color_theme.css:1833. daterangepicker.css
   bu dosyadan sonra gelir: body öneki (0,3,1). */
body .daterangepicker .input-mini.active {
  border-color: var(--ig-koyu);
}

/* 5.4.5 Bootstrap TouchSpin. style.css:26615-26622 · muh/siparis/siparis_urun_detay.php.
   height:auto eklendi: 3.1 .btn sabit 36px verir, dikey düğmeler ikiye bölünür. */
.bootstrap-touchspin .input-group-btn-vertical > .btn {
  height: auto;
  padding: 9px 10px;
}
.btn.bootstrap-touchspin-up,
.btn.bootstrap-touchspin-down {
  border-radius: var(--ig-r-6);
}

/* 5.4.6 FullCalendar. style.css:24946-25107 (43 kural) FullCalendar 3.x DOM'una
   yazılmış; görünümler 5.11 (CDN: ik/takvim_sistem.php, is/ziyaretler/ziyaret_takvim.php)
   ve 6.1 (assets/js/fullcalendar.js: is/takvim.php) kullanıyor. Yalnız 5/6 DOM'unda
   karşılığı olan kurallar taşındı, özgüllükleri aynı bırakıldı: FC CSS'iyle eşitlikte
   bugün hangisi kazanıyorsa yine o kazanır. v3'e özgü fc-widget-*, fc-state-*,
   fc-unthemed, fc-basic-view, fc-day-number, fc-grid, fc-header-*, fc-color-picker,
   fc-text-arrow, fc-time-grid, .dask, .evt-cal, .box-body .fc taşınmadı (DOM'da yok). */
.fc-toolbar {
  padding: 1rem 0;
}
/* style.css:25018 `margin: 0 .75rem !important` → !important yerine özgüllük (0,4,0) */
.content-wrapper .fc .fc-toolbar.fc-toolbar {
  margin: 0 0.75rem;
}
.fc-toolbar h2 {
  font-size: 1.286rem;
  font-weight: var(--ig-fw-orta);
  line-height: 30px;
}
.fc-button {
  color: var(--ig-metin-2);
  text-transform: capitalize;
  background: var(--ig-yuzey);
  border: 1px solid var(--ig-cizgi);
}
.fc-button:hover,
.fc-button:active,
.fc-button.active {
  background-color: var(--ig-gri-zemin);
  opacity: 0.8;
}
.fc-day {
  background: var(--ig-yuzey);
}
.fc-view {
  margin-top: 0;
}
/* style.css:25068 + color_theme.css:2010 */
.fc-event {
  margin: 1px -1px 0;
  padding: 5px;
  font-size: var(--ig-fs-12);
  text-align: center;
  cursor: move;
  background: var(--ig-birincil);
  border: none;
  border-radius: 0;
}
/* Metin rengi eskiden !important; özgüllükle (0,3,0) FC 5/6 metin kurallarının üstünde. */
.fc .fc-event.fc-event {
  color: var(--ig-beyaz);
}

/* --- 5.5 İkon fontu yedeği (Font Awesome) -----------------------------------
   style.css:81 `@import font-awesome.css` TAŞINMADI (proje standardı Lucide).
   Gerçek kullanım (view grep):
   - `fa fa-spinner fa-spin` düğme yükleniyor durumu: is/projeler/proje_detay_cepheler.php:1812,
     admin/entegrasyonlar.php:215, admin/api_ayarlari.php:217,
     muh/ayarlar/ayarlar_dara_secenekleri.php:200
   - ik/takvim_sistem.php:268-270, :312 → fa-user-clock, fa-flag, fa-birthday-cake (rozet içi)
   - ik/ayarlar_birimler.php:635, :674-680 → fa-building, fa-folder-open, fa-user-tag,
     fa-layer-group, fa-circle (örgüt ağacı düğüm ikonu)
   - fa-chevron-down/right/up sınıf değiştirme: ayarlar_birimler.php:517, :598,
     muh/uretim/listesi.php:315 (hedef öğe artık data-lucide SVG; glif yine tanımlı)
   Envanterdeki "6 view"un ikisi (takvim_sistem, ayarlar_birimler) spinner değil glif kullanır.
   Kullanılmayan paketler taşınmadı: glyphicon, mdi, iconsmind, icomoon,
   simple-line-icons, cryptocoins, weather-icons (flag-icon da).
   Yöntem: font yok. Spinner kenarlık halkası; glifler mask-image + currentColor
   (Lucide çizimleri, 24px ızgara, 2px çizgi). Metin rengini ve boyutunu izler. */
.fa {
  display: inline-block;
  flex: none;
  width: 1em;
  height: 1em;
  vertical-align: -0.125em;
}
.fa-spinner {
  box-sizing: border-box;
  border: 2px solid currentColor;
  border-right-color: transparent;
  border-radius: 50%;
}
.fa-spin {
  animation: ig-miras-don 0.75s linear infinite;
}
@keyframes ig-miras-don {
  to {
    transform: rotate(360deg);
  }
}
/* Hareket azaltma: dönüş durur, açık halka "işleniyor" işareti olarak kalır. */
@media (prefers-reduced-motion: reduce) {
  .fa-spin {
    animation: none;
  }
}

.fa-chevron-down,
.fa-chevron-right,
.fa-chevron-up,
.fa-circle,
.fa-flag,
.fa-building,
.fa-folder-open,
.fa-user-tag,
.fa-user-clock,
.fa-layer-group,
.fa-birthday-cake {
  background-color: currentColor;
  -webkit-mask: var(--ig-miras-glif) center / contain no-repeat;
  mask: var(--ig-miras-glif) center / contain no-repeat;
}
.fa-chevron-down {
  --ig-miras-glif: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
}
.fa-chevron-right {
  --ig-miras-glif: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m9 18 6-6-6-6'/%3E%3C/svg%3E");
}
.fa-chevron-up {
  --ig-miras-glif: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m18 15-6-6-6 6'/%3E%3C/svg%3E");
}
.fa-circle {
  --ig-miras-glif: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='black'%3E%3Ccircle cx='12' cy='12' r='6'/%3E%3C/svg%3E");
}
.fa-flag {
  --ig-miras-glif: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 15s1-1 4-1 5 2 8 2 4-1 4-1V3s-1 1-4 1-5-2-8-2-4 1-4 1z'/%3E%3Cpath d='M4 22v-7'/%3E%3C/svg%3E");
}
.fa-building {
  --ig-miras-glif: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect width='16' height='20' x='4' y='2' rx='2'/%3E%3Cpath d='M9 22v-4h6v4M8 6h.01M16 6h.01M12 6h.01M12 10h.01M12 14h.01M16 10h.01M16 14h.01M8 10h.01M8 14h.01'/%3E%3C/svg%3E");
}
.fa-folder-open {
  --ig-miras-glif: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 14 1.5-2.9A2 2 0 0 1 9.24 10H20a2 2 0 0 1 1.94 2.5l-1.54 6a2 2 0 0 1-1.95 1.5H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H18a2 2 0 0 1 2 2v2'/%3E%3C/svg%3E");
}
.fa-user-tag {
  --ig-miras-glif: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2'/%3E%3Ccircle cx='12' cy='7' r='4'/%3E%3C/svg%3E");
}
.fa-user-clock {
  --ig-miras-glif: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cpath d='M12 6v6l4 2'/%3E%3C/svg%3E");
}
.fa-layer-group {
  --ig-miras-glif: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12.83 2.18a2 2 0 0 0-1.66 0L2.6 6.08a1 1 0 0 0 0 1.83l8.58 3.91a2 2 0 0 0 1.66 0l8.58-3.9a1 1 0 0 0 0-1.83z'/%3E%3Cpath d='m22 17.65-9.17 4.16a2 2 0 0 1-1.66 0L2 17.65M22 12.65l-9.17 4.16a2 2 0 0 1-1.66 0L2 12.65'/%3E%3C/svg%3E");
}
.fa-birthday-cake {
  --ig-miras-glif: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 21v-8a2 2 0 0 0-2-2H6a2 2 0 0 0-2 2v8M4 16s.5-1 2-1 2.5 2 4 2 2.5-2 4-2 2.5 2 4 2 2-1 2-1M2 21h20M7 8v3M12 8v3M17 8v3M7 4h.01M12 4h.01M17 4h.01'/%3E%3C/svg%3E");
}

/* --- 5.6 color_theme.css tema mekanizması -----------------------------------
   Tema tek temaya indi. color_theme.css:4501-4531 `:root --theme-*` (28 değişken)
   isgelir-ui 1. bölüm token'larıyla karşılandı:
     primary / success #279245 → --ig-birincil (dolgu), --ig-yesil-metin (metin)
     accent #00de97, *-light      → --ig-yesil-acik ailesi (5.2)
     danger  #f64e60 → --ig-kirmizi · danger-light #ffe2e5 → --ig-kirmizi-zemin
     warning #ffa800 → --ig-miras-uyari (dolgu), --ig-sari-metin (metin) · light → --ig-sari-zemin
     info    #8950fc → --ig-mavi (onaylı palette mor yok; süreç mavisi) · light → --ig-mavi-zemin
     ink     #002318 → --ig-koyu · secondary #e5eaee → --ig-gri-zemin
   body sınıfları `light-skin theme-primary` (header.php:115-117) hiçbir renk kuralına
   bağlı değil: .theme-primary seçicisi 0, .light-skin yalnız kullanılmayan
   .switch-on/.switch-off. var(--theme-*) okuyan kural custom.css'te ve view'larda 0
   (grep) → takma ad tanımlanmadı. !important isteyen renk utility'leri 5.1.4'te. */

/* color_theme.css:1357 · ik/personel_detayi_izin.php */
.progress-bar-success {
  background-color: var(--ig-birincil);
}

/* BS4 rozet adları. color_theme.css:1502, :1512 · muh/evrak/irsaliye/irsaliye_siparisten.php.
   Dolu yeşil/turuncu yerine 3.5 yazılı etiket dilinin renkli hali. */
.badge-success {
  color: var(--ig-yesil-metin);
  background-color: var(--ig-yesil-acik);
  border-color: var(--ig-yesil-cizgi);
}
.badge-warning {
  color: var(--ig-sari-metin);
  background-color: var(--ig-sari-zemin);
  border-color: var(--ig-sari-cizgi);
}


/* ==========================================================================
   6. YARDIMCILAR
   ========================================================================== */
.tabular { font-variant-numeric: tabular-nums; }
.metin-soluk { color: var(--ig-soluk); }
.min-w-0 { min-width: 0; }


/* ==========================================================================
   7. KABUK
   Koyu bant (gen_modul_c.kabuk_masaustu) + üst çubuk (logo, modül değiştirici,
   arama, bildirim, kullanıcı) + modül sekmeleri (4.2 sınıfları) + açılır
   listeler (gen_kabuk_katman) + mobil menü (menu_mobil). Kenar menü yok.
   Markup: views/layout/sidebar.php. Kabuk sekme satırıyla biter; page_header /
   record_header bandı (.ig-bant) aynı zeminle boşluksuz devam eder ve kartlar
   yalnız .ig-bant-govde ile 44px biner. Bandsız eski sayfa ZEMIN'de 24px aşağıda.
   ========================================================================== */
.ig-kabuk {
  --ig-kabuk-kenar: rgba(255, 255, 255, 0.18);   /* gen_panel.ikon_dugme / arama kenarı */
  --ig-kabuk-girdi: rgba(255, 255, 255, 0.08);   /* gen_panel.arama zemini */
  padding: var(--ig-b-20) clamp(var(--ig-b-16), 8.33vw, var(--ig-bant-x)) 0;
  font-family: var(--ig-font);
  color: var(--ig-beyaz);
  background: var(--ig-bant-doku);
}
.content-wrapper {
  min-height: 100%;
  margin-left: 0;
  background-color: transparent;
}
.ig-kabuk ~ .content-wrapper {
  padding-top: var(--ig-b-24);
}
/* Sayfa/detay bandı (page_header .ig-bant--sayfa, record_header .ig-bant--detay)
   kabuğun altında kesintisiz sürer: −24 margin, content-wrapper'ın 24px zemin
   boşluğunu geri alır. Üst boşluk bandın PADDING'inden gelir; .ig-bant-bas
   margin-top 0. Padding 0 + çocuk margin'i çöker (32 − 24 = 8px beyaz şerit).
   gen_modul_c: sekme → 32px → başlık; mobil kabuk_mobil gap 16. */
.ig-kabuk ~ .content-wrapper:not(.common-dashboard-page) .ig-bant--sayfa,
.ig-kabuk ~ .content-wrapper:not(.common-dashboard-page) .ig-bant--ozet,
.ig-kabuk ~ .content-wrapper:not(.common-dashboard-page) .ig-bant--detay {
  margin-top: calc(var(--ig-b-24) * -1);
  padding-top: var(--ig-b-32);
}
.ig-bant--sayfa > .ig-bant-bas,
.ig-bant--ozet > .ig-bant-bas,
.ig-bant--detay > .ig-bant-bas {
  margin-top: 0;
}
@media (max-width: 767.98px) {
  .ig-kabuk ~ .content-wrapper:not(.common-dashboard-page) .ig-bant--sayfa,
  .ig-kabuk ~ .content-wrapper:not(.common-dashboard-page) .ig-bant--detay {
    padding-top: var(--ig-b-16);
  }
}

/* 7.1 İkon (paket SVG; dolgu/aksan rengi burada) */
.ig-ikon {
  display: block;
  flex: none;
}
.ig-ikon .dolgu {
  fill: var(--ig-yesil-cizgi);
}
.ig-ikon .aksan {
  fill: var(--ig-birincil);
}
.ig-kabuk-ust .ig-ikon .aksan,
.ig-modul-sekme .ig-ikon .aksan {
  fill: var(--ig-yesil-cizgi);
}
.ig-kabuk-soluk {
  display: flex;
  color: var(--ig-beyaz-soluk);
}

/* 7.2 Üst çubuk (gen_modul_c.kabuk_masaustu::ust) */
.ig-kabuk-ust {
  display: flex;
  align-items: center;
  gap: var(--ig-b-16);
  min-height: var(--ig-dugme-bant-h);
}
.ig-kabuk-marka {
  display: flex;
  flex: none;
  align-items: center;
  gap: var(--ig-b-8);
  max-width: 240px;
  overflow: hidden;
  font-size: var(--ig-fs-16);
  font-weight: var(--ig-fw-kalin);
  letter-spacing: var(--ig-ls-baslik);
  color: var(--ig-beyaz);
  white-space: nowrap;
  text-decoration: none;
}
.ig-kabuk-marka:hover,
.ig-kabuk-marka:focus {
  color: var(--ig-beyaz);
}
.ig-kabuk-marka-logo {
  flex: none;
  width: 24px;
  height: 24px;
  object-fit: contain;
}
.ig-kabuk-marka-ad {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.ig-kabuk-ayrac {
  flex: none;
  width: 1px;
  height: 24px;
  margin: 0 var(--ig-b-4);
  background: var(--ig-beyaz-cizgi);
}
.ig-kabuk-modul {
  position: relative;
  flex: none;
}
.ig-kabuk-modul-dugme,
.ig-kabuk-ikon-dugme,
.ig-kabuk-hamburger,
.ig-kabuk-kullanici {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: var(--ig-b-8);
  height: var(--ig-dugme-kart-h);
  padding: 0 10px;
  font-family: inherit;
  font-size: var(--ig-fs-13);
  font-weight: var(--ig-fw-kalin);
  color: var(--ig-beyaz);
  background: transparent;
  border: 1px solid var(--ig-kabuk-kenar);
  border-radius: var(--ig-r-6);
}
.ig-kabuk-ikon-dugme,
.ig-kabuk-hamburger {
  width: var(--ig-dugme-kart-h);
  padding: 0;
}
.ig-kabuk-hamburger {
  display: none;
}
.ig-kabuk-modul-dugme:hover,
.ig-kabuk-ikon-dugme:hover,
.ig-kabuk-hamburger:hover,
.ig-kabuk-kullanici:hover {
  background: var(--ig-kabuk-girdi);
}
.ig-kabuk button:focus-visible,
.ig-kabuk a:focus-visible {
  outline: 2px solid var(--ig-beyaz);
  outline-offset: 2px;
}

/* 7.3 Arama (gen_panel.arama, 380px) */
.ig-kabuk-ara {
  display: flex;
  flex: 1;
  justify-content: center;
  min-width: 0;
}
.ig-kabuk-ara-kutu {
  position: relative;
  display: flex;
  align-items: center;
  gap: 10px;
  width: 380px;
  max-width: 100%;
  height: var(--ig-dugme-kart-h);
  padding: 0 12px;
  background: var(--ig-kabuk-girdi);
  border: 1px solid var(--ig-kabuk-kenar);
  border-radius: var(--ig-r-6);
}
.ig-kabuk-ara-kutu:focus-within {
  border-color: var(--ig-beyaz-kenar);
}
.ig-kabuk-ara-girdi {
  flex: 1;
  min-width: 0;
  height: 100%;
  padding: 0;
  font-family: inherit;
  font-size: var(--ig-fs-13);
  color: var(--ig-beyaz);
  background: transparent;
  border: 0;
  outline: 0;
}
.ig-kabuk-ara-girdi::placeholder {
  color: var(--ig-beyaz-soluk);
}
.ig-kabuk-araclar {
  display: flex;
  flex: none;
  align-items: center;
  gap: var(--ig-b-8);
}

/* 7.4 Kullanıcı (gen_panel.kullanici, gen_kabuk_katman.kullanici_menusu) */
.ig-kabuk-kullanici {
  gap: var(--ig-b-8);
  padding: 0 8px 0 4px;
}
.ig-kabuk-avatar {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 24px;
  height: 24px;
  font-size: var(--ig-fs-12);
  font-weight: var(--ig-fw-kalin);
  color: var(--ig-koyu);
  background: var(--ig-beyaz);
  border-radius: var(--ig-r-4);
}
.ig-kabuk-kullanici-metin {
  display: flex;
  flex-direction: column;
  line-height: 1.2;
  text-align: left;
}
.ig-kabuk-kullanici-ad {
  max-width: 160px;
  overflow: hidden;
  font-size: var(--ig-fs-13);
  font-weight: var(--ig-fw-kalin);
  white-space: nowrap;
  text-overflow: ellipsis;
}
.ig-kabuk-kullanici-rol {
  font-size: var(--ig-fs-12);
  font-weight: var(--ig-fw-normal);
  color: var(--ig-beyaz-soluk);
}
.ig-kabuk-kullanici-menu {
  min-width: 0;
  width: 240px;
  border-radius: var(--ig-r-6);
}
.ig-kabuk-kullanici-bas {
  display: flex;
  flex-direction: column;
  gap: 2px;
  padding: var(--ig-b-12) var(--ig-b-16);
  font-size: var(--ig-fs-12);
  color: var(--ig-soluk);
}
.ig-kabuk-kullanici-bas-ad {
  font-size: var(--ig-fs-14);
  font-weight: var(--ig-fw-kalin);
  color: var(--ig-metin);
}

/* 7.5 Açılır listeler: modül menüsü, arama sonucu, sekme alt sayfaları */
.ig-kabuk-menu,
.ig-kabuk-acilir {
  position: absolute;
  top: calc(100% + var(--ig-b-8));
  left: 0;
  z-index: 1000;
  display: none;
  min-width: 200px;
  max-width: 240px;
  padding: var(--ig-b-4);
  color: var(--ig-metin);
  background: var(--ig-yuzey);
  border: 1px solid var(--ig-cizgi);
  border-radius: var(--ig-r-6);
  box-shadow: var(--ig-golge-katman);
}
.ig-kabuk-acilir {
  top: 100%;
}
.ig-kabuk-modul-menu {
  width: 240px;
}
.ig-kabuk-ara-sonuc {
  right: 0;
  max-width: none;
}
.ig-kabuk-acilir--sag {
  right: 0;
  left: auto;
}
.is-acik > .ig-kabuk-menu,
.is-acik > .ig-kabuk-acilir {
  display: block;
}
.ig-kabuk-menu-oge,
.ig-kabuk-acilir-oge {
  display: flex;
  align-items: center;
  gap: 10px;
  width: 100%;
  min-height: 34px;
  padding: 0 10px;
  font-family: inherit;
  font-size: var(--ig-fs-13);
  font-weight: var(--ig-fw-normal);
  color: var(--ig-metin-2);
  text-align: left;
  white-space: nowrap;
  text-decoration: none;
  background: transparent;
  border: 0;
  border-radius: var(--ig-r-6);
}
.ig-kabuk-menu-oge:hover,
.ig-kabuk-acilir-oge:hover {
  color: var(--ig-metin);
  background: var(--ig-zemin);
}
.ig-kabuk-menu-oge.is-aktif,
.ig-kabuk-acilir-oge.is-aktif {
  font-weight: var(--ig-fw-kalin);
  color: var(--ig-metin);
  background: var(--ig-yesil-secili);
}
.ig-kabuk-menu-tik {
  margin-left: auto;
  color: var(--ig-yesil-metin);
  visibility: hidden;
}
.is-aktif > .ig-kabuk-menu-tik {
  visibility: visible;
}
.ig-kabuk-menu-yol {
  margin-left: auto;
  font-size: var(--ig-fs-12);
  color: var(--ig-soluk);
}
.ig-kabuk-menu-bas {
  padding: var(--ig-b-12) 10px var(--ig-b-4);
  font-size: var(--ig-fs-12);
  font-weight: var(--ig-fw-kalin);
  color: var(--ig-soluk);
}
.ig-kabuk-menu-ayrac {
  height: 1px;
  margin: var(--ig-b-4) calc(var(--ig-b-4) * -1);
  background: var(--ig-cizgi);
}
.ig-kabuk-menu-bos {
  padding: 10px;
  font-size: var(--ig-fs-13);
  color: var(--ig-soluk);
}

/* 7.6 Modül sekmeleri (4.2 üstüne: modül başına satır, açılır sekme) */
.ig-kabuk-sekmeler {
  display: none;
}
.ig-kabuk-sekmeler.is-aktif {
  display: flex;
}
.ig-kabuk-sekme {
  position: relative;
  display: flex;
  flex: none;
}
.ig-kabuk-sekme > .ig-modul-sekme-oge {
  font-family: inherit;
  cursor: pointer;
}
.ig-kabuk-sekme > .ig-modul-sekme-oge {
  background: transparent;
  border-width: 0 0 2px;
  border-style: solid;
}
.ig-kabuk-sekme-ok {
  display: flex;
  color: var(--ig-beyaz-soluk);
}
@media (min-width: 992px) {
  /* Tek satır: sarma yok. Kaydırma kullanılamaz; overflow-x kutusu açılır listeyi
     de kırpar (dropdown mutlak konumlu ve şeridin içinde). Yer sekme padding'i
     (8 → 6) ve 1600px altında şeridin banttan taşmasıyla kazanılır. */
  .ig-kabuk .ig-modul-sekme-liste {
    flex-wrap: nowrap;
    overflow: visible;
  }
  .ig-kabuk .ig-modul-sekme-oge {
    padding: 0 6px;
  }
}
@media (min-width: 992px) and (max-width: 1599.98px) {
  .ig-kabuk .ig-modul-sekme {
    margin-right: calc(var(--ig-b-16) - clamp(var(--ig-b-16), 8.33vw, var(--ig-bant-x)));
    margin-left: calc(var(--ig-b-16) - clamp(var(--ig-b-16), 8.33vw, var(--ig-bant-x)));
  }
}
@media (hover: hover) and (min-width: 992px) {
  .ig-kabuk-sekme:hover > .ig-kabuk-acilir {
    display: block;
  }
}

/* 7.7 Mobil (≤991.98px): hamburger + tam ekran menü (kabuk_mobil, menu_mobil) */
@media (max-width: 991.98px) {
  .ig-kabuk {
    padding: var(--ig-b-16) var(--ig-b-16) calc(var(--ig-bindirme) + var(--ig-b-16));
  }
  .ig-kabuk-hamburger {
    display: flex;
  }
  .ig-kabuk-ayrac,
  .ig-kabuk-modul,
  .ig-kabuk-ara,
  .ig-kabuk-kullanici-metin,
  .ig-kabuk-kullanici-ok {
    display: none;
  }
  .ig-kabuk-marka {
    flex: 1;
    min-width: 0;
    max-width: none;
  }
  .ig-kabuk-kullanici {
    padding: 0 4px;
  }
  .ig-kabuk .ig-modul-sekme {
    margin: var(--ig-b-16) calc(var(--ig-b-16) * -1) 0;
    padding: 0 var(--ig-b-8);
  }
}
.ig-kabuk-mobil {
  position: fixed;
  inset: 0;
  z-index: 1040;
  display: none;
  flex-direction: column;
  font-family: var(--ig-font);
  color: var(--ig-metin);
  background: var(--ig-yuzey);
}
.ig-kabuk-mobil.is-acik {
  display: flex;
}
.ig-kabuk-mobil-acik {
  overflow: hidden;
}
.ig-kabuk-mobil-bas {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--ig-b-12);
  padding: var(--ig-b-12) var(--ig-b-16);
  border-bottom: 1px solid var(--ig-cizgi);
}
.ig-kabuk-mobil-baslik {
  font-size: var(--ig-fs-16);
  font-weight: var(--ig-fw-kalin);
}
.ig-kabuk-mobil-kapat {
  padding: 0;
  font-family: inherit;
  font-size: var(--ig-fs-14);
  font-weight: var(--ig-fw-orta);
  color: var(--ig-yesil-metin);
  background: transparent;
  border: 0;
}
.ig-kabuk-mobil-ara {
  padding: var(--ig-b-12) var(--ig-b-16) var(--ig-b-4);
}
.ig-kabuk-mobil-ara-girdi {
  width: 100%;
  height: var(--ig-dugme-altlik-h);
  padding: 0 12px;
  font-family: inherit;
  font-size: var(--ig-fs-15);
  color: var(--ig-metin);
  background: var(--ig-yuzey);
  border: 1px solid var(--ig-cizgi);
  border-radius: var(--ig-r-6);
}
.ig-kabuk-mobil-ara-girdi:focus {
  border-color: var(--ig-birincil);
  outline: 0;
  box-shadow: 0 0 0 3px var(--ig-yesil-acik);
}
.ig-kabuk-mobil-govde {
  flex: 1;
  overflow-y: auto;
  padding: var(--ig-b-4) var(--ig-b-8) var(--ig-b-24);
}
.ig-kabuk-mobil-moduller .ig-kabuk-menu-oge {
  min-height: 48px;
  font-size: var(--ig-fs-15);
}
.ig-kabuk-mobil-moduller {
  padding-bottom: var(--ig-b-8);
  border-bottom: 1px solid var(--ig-cizgi);
}
.ig-kabuk-mobil-panel {
  display: none;
}
.ig-kabuk-mobil-panel.is-aktif,
.ig-kabuk-mobil.is-araniyor .ig-kabuk-mobil-panel {
  display: block;
}
.ig-kabuk-mobil.is-araniyor .ig-kabuk-mobil-grup,
.ig-kabuk-mobil.is-araniyor .ig-kabuk-mobil-moduller {
  display: none;
}
.ig-kabuk-mobil-oge {
  display: flex;
  align-items: center;
  min-height: 48px;
  padding: 0 12px;
  font-size: var(--ig-fs-15);
  color: var(--ig-metin-2);
  text-decoration: none;
  border-radius: var(--ig-r-6);
}
.ig-kabuk-mobil-oge--alt {
  padding-left: var(--ig-b-24);
}
.ig-kabuk-mobil-oge.is-aktif {
  font-weight: var(--ig-fw-kalin);
  color: var(--ig-yesil-metin);
  background: var(--ig-yesil-secili);
}
.ig-kabuk-mobil-oge.is-gizli {
  display: none;
}
@media (min-width: 992px) {
  .ig-kabuk-mobil.is-acik {
    display: none;
  }
}


/* ==========================================================================
   8. GİRİŞ
   Kaynak : docs/tasarim/web-genel/giris-onayli (V3Masaustu 1440, V3Mobil 390;
            üretici giris-canvas/gen_c.py::v3_kart).
   Kapsam : views/auth/login.php. Sayfa header.php ve Bootstrap yüklemez;
            kutu modeli ve form sıfırlaması bu bölümde yapılır.
   ========================================================================== */
.ig-giris {
  margin: 0;
  min-height: 100vh;
  color: var(--ig-metin);
  background: var(--ig-bant-doku);
}
.ig-giris *,
.ig-giris *::before,
.ig-giris *::after {
  box-sizing: border-box;
}
.ig-giris [hidden] {
  display: none;
}
.ig-giris-sahne {
  min-height: 100vh;
  padding: var(--ig-b-16);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: var(--ig-b-24);
}
.ig-giris-marka {
  display: flex;
  align-items: center;
  gap: 10px;
}
.ig-giris-sembol {
  width: 32px;
  height: 32px;
  display: block;
  filter: brightness(0) invert(1);
}
.ig-giris-marka-ad {
  font-size: 22px;
  font-weight: var(--ig-fw-kalin);
  letter-spacing: -0.01em;
  color: var(--ig-beyaz);
}
.ig-giris-kart {
  width: 100%;
  max-width: 440px;
  padding: var(--ig-b-32);
  display: flex;
  flex-direction: column;
  gap: var(--ig-b-20);
  background: var(--ig-yuzey);
  border-radius: var(--ig-r-12);
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.2);
}
.ig-giris-baslik {
  display: flex;
  flex-direction: column;
  gap: var(--ig-b-4);
}
.ig-giris-baslik-metin {
  margin: 0;
  font-size: var(--ig-fs-20);
  font-weight: var(--ig-fw-kalin);
  line-height: var(--ig-lh-baslik);
  letter-spacing: -0.01em;
  color: var(--ig-metin);
}
.ig-giris-firma {
  margin: 0;
  font-size: var(--ig-fs-14);
  color: var(--ig-soluk);
}
.ig-giris-form {
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: var(--ig-b-20);
}
.ig-giris-alan {
  display: flex;
  flex-direction: column;
  gap: var(--ig-b-8);
}
.ig-giris-etiket {
  font-size: var(--ig-fs-14);
  font-weight: var(--ig-fw-orta);
  line-height: 1;
  color: var(--ig-metin);
}
.ig-giris-kutu {
  height: 44px;
  padding: 0 6px 0 12px;
  display: flex;
  align-items: center;
  gap: 10px;
  background: var(--ig-zemin);
  border: 1px solid var(--ig-cizgi);
  border-radius: var(--ig-r-6);
}
.ig-giris-kutu:focus-within {
  background: var(--ig-yuzey);
  border-color: var(--ig-koyu);
  box-shadow: 0 0 0 3px rgba(0, 35, 24, 0.12);
}
.ig-giris-kutu.is-acik {
  border-radius: var(--ig-r-6) var(--ig-r-6) 0 0;
}
.ig-giris-kutu.is-hatali {
  border-color: var(--ig-kirmizi);
  box-shadow: var(--ig-odak-hata);
}
.ig-giris-ikon {
  width: 18px;
  height: 18px;
  flex: none;
  display: block;
  color: var(--ig-soluk);
}
.ig-giris-girdi {
  flex: 1;
  min-width: 0;
  height: 100%;
  padding: 0;
  font-family: var(--ig-font);
  font-size: var(--ig-fs-15);
  color: var(--ig-metin);
  background: transparent;
  border: 0;
  outline: 0;
}
.ig-giris-girdi::placeholder {
  color: var(--ig-soluk);
}
.ig-giris-ikon-dugme {
  width: 32px;
  height: 32px;
  flex: none;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  color: var(--ig-soluk);
  background: transparent;
  border: 0;
  border-radius: var(--ig-r-6);
  cursor: pointer;
}
.ig-giris-ikon-dugme:hover {
  background: var(--ig-gri-zemin);
}
.ig-giris-ikon-dugme:focus-visible,
.ig-giris-onay-kutu:focus-visible {
  outline: 2px solid transparent;
  box-shadow: var(--ig-odak);
}
/* Kayıtlı hesaplar: alanın altına yapışık liste (gen_c.py::v3_kart) */
.ig-giris-hesaplar {
  margin-top: -8px;
  overflow: hidden;
  background: var(--ig-yuzey);
  border: 1px solid var(--ig-koyu);
  border-top-color: var(--ig-cizgi);
  border-radius: 0 0 var(--ig-r-6) var(--ig-r-6);
  box-shadow: 0 8px 16px -8px rgba(9, 9, 11, 0.18);
}
.ig-giris-hesaplar-baslik {
  margin: 0;
  padding: 8px 12px 4px;
  font-size: var(--ig-fs-13);
  font-weight: var(--ig-fw-orta);
  color: var(--ig-soluk);
}
.ig-giris-hesap-liste {
  margin: 0;
  padding: 0;
  max-height: 208px;
  overflow-y: auto;
  list-style: none;
}
.ig-giris-hesap {
  height: 52px;
  padding-right: var(--ig-b-8);
  display: flex;
  align-items: center;
  gap: var(--ig-b-4);
}
.ig-giris-hesap:hover,
.ig-giris-hesap:focus-within {
  background: var(--ig-zemin);
}
.ig-giris-hesap-sec {
  flex: 1;
  min-width: 0;
  height: 100%;
  padding: 0 0 0 12px;
  display: flex;
  align-items: center;
  gap: 10px;
  font-family: var(--ig-font);
  font-size: var(--ig-fs-14);
  font-weight: var(--ig-fw-orta);
  color: var(--ig-metin);
  text-align: left;
  background: transparent;
  border: 0;
  outline: 0;
  cursor: pointer;
}
.ig-giris-avatar {
  width: 30px;
  height: 30px;
  flex: none;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: var(--ig-fs-12);
  font-weight: var(--ig-fw-kalin);
  color: var(--ig-yesil-metin);
  background: var(--ig-yesil-acik);
  border-radius: 50%;
}
.ig-giris-hesap-kod {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.ig-giris-hesap-sil .ig-giris-ikon {
  width: 14px;
  height: 14px;
}
/* Onay kutusu: Bootstrap yok; appearance none + yerel işaret (legacy hijack'e kapalı) */
.ig-giris-onay {
  align-self: flex-start;
  display: inline-flex;
  align-items: center;
  gap: var(--ig-b-8);
  font-size: var(--ig-fs-14);
  color: var(--ig-metin);
  cursor: pointer;
}
.ig-giris-onay-kutu {
  -webkit-appearance: none;
  appearance: none;
  width: 16px;
  height: 16px;
  margin: 0;
  flex: none;
  background: var(--ig-yuzey) no-repeat center / 12px 12px;
  border: 1px solid var(--ig-soluk);
  border-radius: var(--ig-r-4);
  cursor: pointer;
}
.ig-giris-onay-kutu:checked {
  background-color: var(--ig-birincil);
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m5 12.5 4.5 4.5L19 7.5'/%3E%3C/svg%3E");
  border-color: var(--ig-birincil);
}
.ig-giris-dugme {
  width: 100%;
  height: var(--ig-dugme-altlik-h);
  padding: 0 var(--ig-b-16);
  font-family: var(--ig-font);
  font-size: var(--ig-fs-15);
  font-weight: var(--ig-fw-orta);
  color: var(--ig-beyaz);
  background: var(--ig-birincil);
  border: 0;
  border-radius: var(--ig-r-6);
  cursor: pointer;
}
.ig-giris-dugme:hover {
  background: var(--ig-birincil-hover);
}
.ig-giris-dugme:focus-visible {
  outline: 2px solid transparent;
  box-shadow: 0 0 0 3px rgba(26, 127, 55, 0.28);
}
.ig-giris-uyari {
  margin: 0;
  padding: 10px 12px;
  font-size: var(--ig-fs-13);
  font-weight: var(--ig-fw-orta);
  line-height: 1.4;
  color: var(--ig-kirmizi);
  background: var(--ig-kirmizi-zemin);
  border: 1px solid var(--ig-kirmizi-cizgi);
  border-radius: var(--ig-r-6);
}
.ig-giris-uyari.is-basari {
  color: var(--ig-yesil-metin);
  background: var(--ig-yesil-acik);
  border-color: var(--ig-yesil-cizgi);
}
.ig-giris-telif {
  display: flex;
  flex-direction: column;
  gap: var(--ig-b-2);
  font-size: var(--ig-fs-13);
  color: var(--ig-beyaz-soluk);
  text-align: center;
}
@media (max-width: 480px) {
  .ig-giris-sembol {
    width: 28px;
    height: 28px;
  }
  .ig-giris-marka-ad {
    font-size: 18px;
  }
  .ig-giris-kart {
    padding: var(--ig-b-20);
  }
}

/* 8.x Giriş sayfası Bootstrap yüklemez; reCAPTCHA kutusu için utility karşılığı (dogrulayici bulgusu) */
.ig-giris .d-none, body.ig-giris-govde .d-none { display: none !important; }

/* ==========================================================================
   8b. ORTAK PARÇALAR (partial'lar: page_header, filter_bar, card_header, row_actions, side_panel …)
   ========================================================================== */
/* 8. ORTAK PARÇALAR */
/* ==========================================================================
   views/layout/ ortak partial'larının eklediği sınıflar (2026-09-15).
   Token'lar (1.) ve 4. bölüm bileşenleri yeniden tanımlanmaz; yalnız eksik parçalar.
   Ölçüler: TUTARLILIK §1 (32/36/40 yükseklik, 12/13/14 punto).
   ========================================================================== */

/* --- 8.1 Bant başlık bloğu (page_header, record_header, dashboard_hero) --- */
.ig-ik { flex: none; }
.ig-bant-baslik-blok {
  display: flex;
  flex-direction: column;
  min-width: 0;
}
.ig-bant-geri:hover {
  color: var(--ig-beyaz);
  text-decoration: underline;
  text-underline-offset: 3px;
}
.ig-bant-araclar {
  display: flex;
  align-items: center;
  gap: var(--ig-b-8);
}
.btn.ig-bant-dugme:hover,
.btn.ig-bant-dugme:active {
  color: var(--ig-koyu);
  background-color: var(--ig-zemin);
}
/* Detay bandında birincil 36px (§2 #5: bant detay düğmeleri 36) */
.btn.ig-bant-dugme--detay {
  height: var(--ig-dugme-panel-h);
  padding: 0 14px;
}
.btn.ig-bant-dugme-ikincil:hover,
.btn.ig-bant-dugme-ikincil:active {
  color: var(--ig-beyaz);
  background-color: var(--ig-beyaz-cizgi);
  border-color: var(--ig-beyaz-kenar);
}
.btn.ig-bant-kare {
  width: var(--ig-dugme-panel-h);
  padding: 0;
}
.ig-bant-sag--detay {
  flex-direction: column;
  align-items: flex-end;
  gap: var(--ig-b-20);
}
.ig-bant-dugmeler {
  display: flex;
  align-items: center;
  gap: var(--ig-b-8);
}
.ig-bant-kimlik {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--ig-b-8);
  margin: var(--ig-b-8) 0 0;
  font-size: var(--ig-fs-14);
  color: var(--ig-beyaz-alt);
  font-variant-numeric: tabular-nums;
}
.ig-bant-kimlik-ayrac { color: var(--ig-beyaz-kenar); }
.ig-durum--bant.is-sade::before { display: none; }
.dropdown-item.ig-menu-tehlike,
.dropdown-item.ig-menu-tehlike:hover { color: var(--ig-kirmizi); }
@media (max-width: 767.98px) {
  .ig-bant-sag,
  .ig-bant-sag--detay { flex-direction: column; align-items: stretch; }
  .ig-bant-ayrac { display: none; }
  .btn.ig-bant-dugme { justify-content: center; width: 100%; }
}

/* --- 8.2 Detay sekme kartı (detail_tabs; §1 Detay sekme şeridi) --------- */
.ig-detay-sekme {
  gap: var(--ig-b-20);
  margin-bottom: var(--ig-b-16);
  padding: 0 var(--ig-b-20);
}
.ig-detay-sekme .ig-alt-serit-oge { padding: 0 4px; }
.ig-alt-serit-oge .ig-sayac {
  font-size: var(--ig-fs-12);
  font-weight: var(--ig-fw-normal);
  color: var(--ig-soluk);
  font-variant-numeric: tabular-nums;
}
.ig-alt-serit-grup {
  flex: none;
  font-size: var(--ig-fs-12);
  color: var(--ig-soluk);
  white-space: nowrap;
}

/* --- 8.3 Hap filtre formu (filter_bar; §1 Hap filtre çubuğu) -------------- */
.ig-filtre { margin: 0; }
.ig-hap--alan { cursor: pointer; }
.ig-hap-etiket { color: var(--ig-soluk); }
.ig-hap.is-secili .ig-hap-etiket { color: inherit; }
.ig-hap-girdi {
  min-width: 0;
  height: 30px;
  padding: 0;
  font-family: inherit;
  font-size: var(--ig-fs-13);
  color: inherit;
  background: transparent;
  border: 0;
  outline: 0;
}
.ig-hap--alan.is-secili .ig-hap-girdi { font-weight: var(--ig-fw-kalin); }
input.ig-hap-girdi { width: 172px; cursor: pointer; }
.ig-hap--sm input.ig-hap-girdi { width: 120px; }
.ig-hap--lg input.ig-hap-girdi { width: 200px; }
select.ig-hap-girdi { cursor: pointer; }
.ig-hap:focus-within {
  border-color: var(--ig-koyu);
  box-shadow: var(--ig-odak);
}
a.ig-hap,
a.ig-hap:hover { color: var(--ig-metin); text-decoration: none; }
.ig-hap-kapat:hover { color: inherit; background-color: var(--ig-yesil-cizgi); }
.ig-hap-ekle:hover { color: var(--ig-metin); background-color: var(--ig-zemin); }
.ig-temizle:hover { color: var(--ig-yesil-metin); }
@media (max-width: 767.98px) {
  .ig-filtre .ig-arama { width: 100%; }
}

/* --- 8.4 Kart başlığı ekleri (card_header; §1 Kart başlığı) --------------- */
.ig-kart-baslik-sol { flex: 1; min-width: 0; }
.ig-kart-baslik--sik { padding: var(--ig-b-12) var(--ig-b-16); }
.ig-kart-ust-etiket {
  margin-bottom: var(--ig-b-2);
  font-size: var(--ig-fs-12);
  font-weight: var(--ig-fw-orta);
  color: var(--ig-soluk);
}
.ig-kart-baslik-sag {
  display: flex;
  flex: none;
  align-items: center;
  gap: var(--ig-b-12);
}
.ig-kart-metrik {
  display: inline-flex;
  align-items: baseline;
  gap: var(--ig-b-6);
  white-space: nowrap;
}
.ig-kart-metrik-deger {
  font-size: var(--ig-fs-16);
  font-weight: var(--ig-fw-kalin);
  color: var(--ig-metin);
  font-variant-numeric: tabular-nums;
}
.ig-kart-metrik-etiket { font-size: var(--ig-fs-13); color: var(--ig-soluk); }

/* --- 8.5 Sayfalama ekleri (pagination) ------------------------------------ */
.ig-sayfalama--dar { padding: 0; border-top: 0; }
a.ig-sayfalama-adet-oge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  text-decoration: none;
}
a.ig-sayfalama-adet-oge:hover { color: var(--ig-metin); background-color: var(--ig-zemin); }
a.ig-ikon-dugme { text-decoration: none; }
.ig-ikon-dugme.is-pasif { color: var(--ig-girdi); pointer-events: none; }

/* --- 8.6 Sağ panel ekleri (side_panel; offcanvas 3.9 + 4.14) -------------- */
.ig-panel-form {
  display: flex;
  flex: 1;
  flex-direction: column;
  min-height: 0;
}
.ig-panel-baslik-sol { flex: 1; min-width: 0; }

/* --- 8.7 Kart içi KPI (dash_kpi_grid; §1 Tipografi kart içi KPI 20–24/600) - */
.ig-kpi-kart {
  display: flex;
  flex-direction: column;
  gap: var(--ig-b-4);
  height: 100%;
  padding: var(--ig-b-16) var(--ig-b-20);
  color: var(--ig-metin);
  text-decoration: none;
}
a.ig-kpi-kart:hover { color: var(--ig-metin); border-color: var(--ig-cizgi-koyu); }
.ig-kpi-kart-etiket { font-size: var(--ig-fs-13); color: var(--ig-soluk); }
.ig-kpi-kart-deger {
  font-size: 22px; /* §1 aralığı 20–24; token yok */
  font-weight: var(--ig-fw-kalin);
  line-height: 1.2;
  white-space: nowrap;
  font-variant-numeric: tabular-nums;
}
.ig-kpi-kart-not { font-size: var(--ig-fs-12); color: var(--ig-soluk); }

/* --- 8.8 Klavye odağı (bağlantı ve düğme biçimli parçalar) ---------------- */
.ig-bant-geri:focus-visible,
.btn.ig-bant-dugme:focus-visible,
.btn.ig-bant-dugme-ikincil:focus-visible {
  outline: 0;
  box-shadow: 0 0 0 3px var(--ig-beyaz-kenar);
}
a.ig-hap:focus-visible,
button.ig-hap:focus-visible,
.ig-hap-kapat:focus-visible,
.ig-hap-ekle:focus-visible,
.ig-temizle:focus-visible,
a.ig-sayfalama-adet-oge:focus-visible,
.ig-alt-serit-oge:focus-visible,
.ig-kart-baglanti:focus-visible,
a.ig-kpi-kart:focus-visible {
  outline: 0;
  box-shadow: var(--ig-odak);
}

/* --- 8.9 Boş durum tablo satırı (empty_state as_row) ---------------------- */
.table td.ig-bos-hucre { padding: 0; }

/* ==========================================================================
   9. MİRAS — custom.css köprüsü (custom.css artık yüklenmiyor; eski sınıflar yeni tasarım diliyle)
   ========================================================================== */
/* 9. MİRAS — custom.css köprüsü */
/* ==========================================================================
   custom.css header'dan kalkınca view'larda tanımsız kalan sınıflar (envanter
   CSS-KIRILMA-ENVANTERI.md §4, 60 sınıf) YENİ dil ile yeniden tanımlanır.
   Eski görünüm kopyalanmaz; yalnız --ig-* token'ları (1. bölüm) kullanılır.
   Markup değişmez. Kaynak satırlar custom.css (2026-09-15, 12.104 satır).
   !important yalnız inline style / Bootstrap utility çakışmasında, gerekçeli.
   ========================================================================== */

/* --- 9.1 Lucide ikon köprüsü · custom.css:3-28 --------------------------------
   lucide.createIcons() <i data-lucide> yerine svg.lucide basar; boyut kuralı
   yalnız custom.css'teydi. Yeni ikon kuralı değil, mevcut view köprüsü.
   Dönüş animasyonu isgelir-ui 5.5 @keyframes ig-miras-don'u kullanır (çift tanım yok). */
.lucide {
  width: 1em;
  height: 1em;
  vertical-align: -0.125em;
  stroke-width: 2;
}
.lucide-lg { width: 1.33em; height: 1.33em; }
.lucide-2x { width: 2em; height: 2em; }
.lucide-3x { width: 3em; height: 3em; }
.lucide-spin { animation: ig-miras-don 0.75s linear infinite; }
@media (prefers-reduced-motion: reduce) {
  .lucide-spin { animation: none; }
}

/* --- 9.2 Satır işlemleri · custom.css:8275-8340 (.action-btn*), 43-60 (.btn-icon),
   2145-2156 (.sil-btn) — TUTARLILIK §1 "Satır işlemleri": 32×32, çerçevesiz,
   radius 6, ikon 18px; Sil kırmızı, diğerleri nötr. Renkli dolgu zeminler kalktı.
   Görünüm isgelir-ui 4.6 .ig-islem ile birebir. */
.action-btn {
  display: inline-flex;
  flex: none;
  align-items: center;
  justify-content: center;
  width: var(--ig-islem);
  height: var(--ig-islem);
  padding: 0;
  color: var(--ig-metin-2);
  text-decoration: none;
  cursor: pointer;
  background: transparent;
  border: 0;
  border-radius: var(--ig-r-6);
}
.action-btn .lucide,
.action-btn svg {
  width: 18px;
  height: 18px;
}
.action-btn i:not(.lucide) { font-size: 18px; }
.action-btn:hover,
.action-btn-view:hover,
.action-btn-edit:hover,
.action-btn-info:hover,
.action-btn-approve:hover,
.action-btn-warning:hover {
  color: var(--ig-metin);
  background-color: var(--ig-zemin);
}
.action-btn:focus-visible {
  outline: 0;
  box-shadow: var(--ig-odak);
}
.action-btn-view,
.action-btn-edit,
.action-btn-info,
.action-btn-approve,
.action-btn-warning {
  color: var(--ig-metin-2);
  background: transparent;
}
.action-btn-delete { color: var(--ig-kirmizi); background: transparent; }
.action-btn-delete:hover { color: var(--ig-kirmizi); background-color: var(--ig-kirmizi-zemin); }
.action-btn:disabled,
.action-btn.disabled { color: var(--ig-girdi); pointer-events: none; }

/* .btn-icon: araç çubuğu ikon düğmesi (AGENTS.md: toolbar/geri). §1 Hap filtre
   çubuğu Yazdır/Excel: 32×32 kenarlı. */
.btn-icon {
  display: inline-flex;
  flex: none;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  padding: 0;
  color: var(--ig-metin-2);
  cursor: pointer;
  background-color: var(--ig-yuzey);
  border: 1px solid var(--ig-cizgi);
  border-radius: var(--ig-r-6);
}
.btn-icon .lucide,
.btn-icon svg { width: 16px; height: 16px; }
.btn-icon:hover { color: var(--ig-metin); background-color: var(--ig-zemin); }
.btn-icon:focus-visible { outline: 0; box-shadow: var(--ig-odak); }
.btn-icon.active { color: var(--ig-yesil-metin); background-color: var(--ig-yesil-acik); border-color: var(--ig-yesil-cizgi); }

/* .sil-btn: irsaliye kalem satırında `btn btn-danger sil-btn` (JS ile basılır).
   §1 Düğmeler: satırda dolu kırmızı düğme yok, kırmızı ikon. .btn.sil-btn (0,2,0)
   .btn-danger'ı (0,1,0), :hover (0,3,0) .btn-danger:hover'ı (0,2,0) ezer. */
.sil-btn,
.btn.sil-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: var(--ig-islem);
  height: var(--ig-islem);
  padding: 0;
  color: var(--ig-kirmizi);
  cursor: pointer;
  background: transparent;
  border: 0;
  border-radius: var(--ig-r-6);
  box-shadow: none;
}
.sil-btn svg,
.sil-btn .lucide { width: 18px; height: 18px; }
.sil-btn:hover,
.btn.sil-btn:hover,
.btn.sil-btn:focus {
  color: var(--ig-kirmizi);
  background-color: var(--ig-kirmizi-zemin);
  border: 0;
}

/* --- 9.3 Filtre girdileri · custom.css:7496-7527 (temel), 258 (.datepicker-input),
   412 (.search-wrapper), 7395/8979/10503/10571 (bağlam override'ları)
   §1 Hap filtre çubuğu: 32px, radius 6, 13px. Modal/panel içinde §1 Sağ panel 40px.
   .form-control ile birlikte yazılmış .datepicker-input 3.2 ölçüsünü korur. */
.filter-input,
.filter-select,
.datepicker-input:not(.form-control) {
  width: 100%;
  height: var(--ig-hap-h);
  padding: 0 10px;
  font-family: var(--ig-font);
  font-size: var(--ig-fs-13);
  color: var(--ig-metin);
  background-color: var(--ig-yuzey);
  border: 1px solid var(--ig-cizgi);
  border-radius: var(--ig-r-6);
  box-shadow: none;
}
.filter-select {
  padding-right: 30px;
  cursor: pointer;
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  /* Chevron 14px, --ig-soluk (#71717A %23-kodlu; data URI var() okuyamaz) */
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2371717A' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 10px center;
  background-size: 14px 14px;
}
.datepicker-input { cursor: pointer; }
.filter-input::placeholder { color: var(--ig-soluk); }
.filter-input:focus,
.filter-select:focus,
.datepicker-input:not(.form-control):focus {
  outline: 0;
  border-color: var(--ig-koyu);
  box-shadow: var(--ig-odak);
}
.filter-input:disabled,
.filter-input[readonly]:not(.datepicker-input),
.filter-select:disabled {
  color: var(--ig-soluk);
  background-color: var(--ig-zemin);
}
textarea.filter-input {
  height: auto;
  min-height: 72px;
  padding: 8px 10px;
  resize: vertical;
}
/* Modal / sağ panel içi: 40px, 14px (§1 Sağ panel "Girdi 40px, radius 6") */
.modal .filter-input,
.modal .filter-select,
.modal .datepicker-input:not(.form-control),
.offcanvas .filter-input,
.offcanvas .filter-select,
.offcanvas .datepicker-input:not(.form-control) {
  height: var(--ig-girdi-h);
  padding-left: 12px;
  font-size: var(--ig-fs-14);
}
.modal .filter-select,
.offcanvas .filter-select { padding-right: 36px; background-position: right 12px center; }
.modal textarea.filter-input,
.offcanvas textarea.filter-input { height: auto; }
/* input-group içinde esneme · custom.css:8962-8970 */
.input-group > .filter-input,
.input-group > .filter-select {
  flex: 1 1 auto;
  width: 1%;
  min-width: 0;
}
/* Arama sarmalayıcısı · custom.css:400-417: sol ikon için boşluk */
.search-wrapper { position: relative; }
.search-wrapper > .lucide,
.search-wrapper > svg,
.search-wrapper > i {
  position: absolute;
  top: 50%;
  left: 10px;
  width: 16px;
  height: 16px;
  color: var(--ig-girdi);
  pointer-events: none;
  transform: translateY(-50%);
}
.search-wrapper .filter-input { padding-left: 32px; }

/* --- 9.4 Boş durum · custom.css:220-243, 9269-9275 --------------------------
   §1 Boş durum: kart içinde ortalı, 16/600 başlık, 13–14 SOLUK açıklama, tek düğme.
   Kapı 67: ikon kutusu yok; ikon 24px soluk, çıplak. layout/empty_state.php
   yapısı: .empty-state > i.empty-state-icon + h4.empty-state-title + p.empty-state-text. */
.empty-state {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--ig-b-4);
  padding: 48px var(--ig-b-24);
  text-align: center;
}
.empty-state-icon,
.empty-state > .lucide,
.empty-state > svg {
  display: block;
  flex: none;
  width: 24px;
  height: 24px;
  margin: 0 0 var(--ig-b-8);
  font-size: 24px;
  color: var(--ig-girdi);
}
.empty-state-icon .lucide,
.empty-state-icon svg { width: 24px; height: 24px; }
.empty-state-title {
  margin: 0;
  font-size: var(--ig-fs-16);
  font-weight: var(--ig-fw-kalin);
  line-height: var(--ig-lh-baslik);
  letter-spacing: 0;
  color: var(--ig-metin);
}
.empty-state-text {
  max-width: 360px;
  margin: 0;
  font-size: var(--ig-fs-13);
  line-height: var(--ig-lh-govde);
  color: var(--ig-soluk);
}
.empty-state > .btn,
.empty-state > a,
.empty-state > div { margin-top: var(--ig-b-12); }
/* .empty-cell: tablo satırındaki boş hücre (empty_state.php as_row; report_detail.php
   düz metin). isgelir-ui 3.4 hücre kuralları (.table > :not(caption) > * > *, 0,1,1;
   td:first-child 600, 0,2,3) aynı/üst özgüllükle ve sonra gelerek ezilir. */
.empty-cell,
.table > tbody > tr > td.empty-cell {
  height: auto;
  padding: 32px var(--ig-b-16);
  font-size: var(--ig-fs-13);
  font-weight: var(--ig-fw-normal);
  color: var(--ig-soluk);
  text-align: center;
  white-space: normal;
}
.empty-cell > .empty-state { padding: 16px 0; }
.empty-cell > .lucide,
.empty-cell > svg {
  display: block;
  width: 24px;
  height: 24px;
  margin: 0 auto var(--ig-b-8);
  color: var(--ig-girdi);
}
.table > tbody > tr:hover > td.empty-cell { --bs-table-accent-bg: transparent; }

/* --- 9.5 Filtre hapı · custom.css:7551-7570 ---------------------------------
   §1 Hap filtre çubuğu: 32px, radius 6, 13px; seçili hap yeşil zemin "Etiket: değer ×".
   .chip view'larda aktif filtre gösterir → seçili hap dili (isgelir-ui 4.5 .ig-hap.is-secili). */
.chip {
  display: inline-flex;
  flex: none;
  align-items: center;
  gap: var(--ig-b-6);
  height: var(--ig-hap-h);
  padding: 0 6px 0 10px;
  font-size: var(--ig-fs-13);
  font-weight: var(--ig-fw-orta);
  line-height: 1;
  color: var(--ig-yesil-metin);
  white-space: nowrap;
  background-color: var(--ig-yesil-acik);
  border: 1px solid var(--ig-yesil-cizgi);
  border-radius: var(--ig-r-6);
}
.chip-close {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 20px;
  height: 20px;
  margin-left: 2px;
  padding: 0;
  font-size: var(--ig-fs-16);
  line-height: 1;
  color: inherit;
  cursor: pointer;
  background: none;
  border: 0;
  border-radius: var(--ig-r-4);
}
.chip-close:hover { background-color: var(--ig-yesil-cizgi); }
.chip-close .lucide,
.chip-close svg { width: 14px; height: 14px; }

/* --- 9.6 Tablo ve sayı · custom.css:7574-7598 (.modern-table), 11762 (.num) -----
   §1 Tablo başlık satırı 40px ZEMIN 12/600 SOLUK; satır 44px 13px; sayılar sağa,
   tabular-nums. .modern-table view'larda `table modern-table` ile gelir; .table
   (3.4) yoksa da aynı ölçüyü versin diye kendi kuralları var. */
.modern-table {
  width: 100%;
  margin-bottom: 0;
  font-size: var(--ig-fs-13);
  color: var(--ig-metin);
  border-collapse: collapse;
  border-spacing: 0;
}
.modern-table > thead > tr > th {
  height: var(--ig-baslik-h);
  padding: 0 12px;
  font-size: var(--ig-fs-12);
  font-weight: var(--ig-fw-kalin);
  color: var(--ig-soluk);
  white-space: nowrap;
  vertical-align: middle;
  background-color: var(--ig-zemin);
  border-top: 1px solid var(--ig-cizgi);
  border-bottom: 1px solid var(--ig-cizgi);
}
.modern-table > tbody > tr > td {
  height: var(--ig-satir-h);
  padding: 0 12px;
  vertical-align: middle;
  border-top: 1px solid var(--ig-cizgi);
}
.modern-table > thead > tr > th:first-child,
.modern-table > tbody > tr > td:first-child { padding-left: 16px; }
.modern-table > thead > tr > th:last-child,
.modern-table > tbody > tr > td:last-child { padding-right: 16px; }
.modern-table > tbody > tr:hover > td { background-color: var(--ig-yesil-hover); }

.num {
  font-variant-numeric: tabular-nums;
  text-align: right;
  white-space: nowrap;
}
/* custom.css:11768 rapor kapsamındaki sağa hizalı hücreler de tabular */
.report-page .text-end { font-variant-numeric: tabular-nums; }

/* .fw-semibold · custom.css:12079 bağlamı. Bootstrap 5.0.0'da yok (5.1+ ekler).
   !important: Bootstrap fw-* utility'leri !important; aynı aile davranışı ve
   .btn/.table td:first-child gibi bileşen ağırlıklarını ezmesi için (5.1 birebir). */
.fw-semibold { font-weight: var(--ig-fw-kalin) !important; }

/* --- 9.7 Rapor / veri sunum katmanı · custom.css:11774-12012 -----------------
   AGENTS.md: report-* yalnız rapor değil, liste filtre barı ve durum etiketi
   katmanı. --rpt-* token'ları (11684-11707) taşınmadı: view'da var(--rpt-*) 0
   (grep); tüm renkler --ig-*. */

/* 9.7.1 Oransal şerit · 11774-11846. Segment genişliği inline style (yüzde).
   Renk: §1 Renk — yeşil birincil, mavi süreç, yaş dilimi yeşil→turuncu→kırmızı. */
.report-band {
  display: flex;
  align-items: stretch;
  gap: 2px;
  height: 24px;
  overflow: hidden;
  background-color: var(--ig-gri-zemin);
  border-radius: var(--ig-r-6);
}
.report-band-seg {
  display: flex;
  align-items: center;
  justify-content: center;
  min-width: 4px;
  overflow: hidden;
  font-size: var(--ig-fs-12);
  font-weight: var(--ig-fw-kalin);
  color: var(--ig-beyaz);
  white-space: nowrap;
  font-variant-numeric: tabular-nums;
  background-color: var(--ig-girdi);
}
.report-band-seg--ok,    .report-band-item--ok    { --ig-rb-renk: var(--ig-birincil); }
.report-band-seg--info,  .report-band-item--info  { --ig-rb-renk: var(--ig-mavi); }
.report-band-seg--warn,  .report-band-item--warn  { --ig-rb-renk: var(--ig-turuncu); }
.report-band-seg--risk,  .report-band-item--risk  { --ig-rb-renk: var(--ig-kirmizi); }
.report-band-seg--inert, .report-band-item--inert { --ig-rb-renk: var(--ig-girdi); }
.report-band-seg--n1,    .report-band-item--n1    { --ig-rb-renk: var(--ig-metin-2); }
.report-band-seg--n2,    .report-band-item--n2    { --ig-rb-renk: var(--ig-soluk); }
.report-band-seg--n3,    .report-band-item--n3    { --ig-rb-renk: var(--ig-girdi); }
.report-band-seg--n4,    .report-band-item--n4    { --ig-rb-renk: var(--ig-cizgi-koyu); }
.report-band-seg[class*="report-band-seg--"] { background-color: var(--ig-rb-renk); }
.report-band-seg--n4 { color: var(--ig-metin); }

/* Açıklama = kutusuz KPI (§1 Bant sağı ölçüsü, beyaz zeminde): 12px SOLUK etiket,
   20/600 değer, aralarında 1px ayraç ve 20px boşluk. Eski 3px renkli sol şerit
   yerine etiket önünde 8px renk anahtarı (lejant işlevi; süs ikon değil). */
.report-band-legend {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: var(--ig-b-12) 0;
  margin-top: var(--ig-b-12);
}
.report-band-item {
  min-width: 0;
  padding: 0 var(--ig-b-20);
  border-left: 1px solid var(--ig-cizgi);
}
.report-band-item:first-child { padding-left: 0; border-left: 0; }
.report-band-item-label {
  display: flex;
  align-items: center;
  gap: var(--ig-b-6);
  font-size: var(--ig-fs-12);
  font-weight: var(--ig-fw-normal);
  line-height: 1.3;
  color: var(--ig-soluk);
}
.report-band-item[class*="report-band-item--"] .report-band-item-label::before {
  flex: none;
  width: 8px;
  height: 8px;
  content: "";
  background-color: var(--ig-rb-renk);
  border-radius: 2px;
}
.report-band-item-value {
  display: block;
  margin-top: 2px;
  font-size: var(--ig-fs-20);
  font-weight: var(--ig-fw-kalin);
  line-height: 1.2;
  color: var(--ig-metin);
  white-space: nowrap;
  font-variant-numeric: tabular-nums;
}
@media (max-width: 767.98px) {
  .report-band-legend { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .report-band-item,
  .report-band-item:first-child { padding: 0 var(--ig-b-12) 0 0; border-left: 0; }
  .report-band-item-value { font-size: var(--ig-fs-16); }
}

/* 9.7.2 Filtre barı · 11854-11901. §1 Hap filtre çubuğu: 52px, padding 0 16px,
   aralık 8px, kontroller 32px. Markup (filter_bar.php, report_detail.php) etiket
   taşır: etiket ayrı satır değil, kontrolün solunda 12px SOLUK ("Etiket ↓" hap
   okuması); dar ekranda üstte. Ayrı bar kutusu markup gereği kalır. */
.report-filter-bar {
  display: block;
  min-height: var(--ig-arac-h);
  padding: 10px var(--ig-b-16);
  background-color: var(--ig-yuzey);
  border: 1px solid var(--ig-cizgi);
  border-radius: var(--ig-r-8);
  box-shadow: var(--ig-golge-kart);
}
.report-filter-row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--ig-b-8) var(--ig-b-12);
  min-height: var(--ig-hap-h);
}
.report-filter-field {
  display: flex;
  flex: 0 1 auto;
  align-items: center;
  gap: var(--ig-b-8);
  min-width: 0;
}
.report-filter-label {
  flex: none;
  margin: 0;
  font-size: var(--ig-fs-12);
  font-weight: var(--ig-fw-orta);
  line-height: 1.2;
  color: var(--ig-soluk);
  white-space: nowrap;
}
.report-filter-field .filter-input,
.report-filter-field .filter-select,
.report-filter-field .form-control,
.report-filter-field .form-select { width: 200px; height: var(--ig-hap-h); font-size: var(--ig-fs-13); }
.report-filter-field--sm .filter-input,
.report-filter-field--sm .filter-select,
.report-filter-field--sm .form-control,
.report-filter-field--sm .form-select { width: 140px; }
.report-filter-field--md .filter-input,
.report-filter-field--md .filter-select,
.report-filter-field--md .form-control,
.report-filter-field--md .form-select { width: 200px; }
.report-filter-field--lg { flex: 1 1 280px; }
.report-filter-field--lg .filter-input,
.report-filter-field--lg .filter-select,
.report-filter-field--lg .form-control,
.report-filter-field--lg .form-select { width: 100%; min-width: 200px; }
.report-filter-field .select2-container--default .select2-selection--single { height: var(--ig-hap-h); padding-top: 0; padding-bottom: 0; }
.report-filter-field .select2-container--default .select2-selection--single .select2-selection__rendered { line-height: 30px; font-size: var(--ig-fs-13); }
.report-filter-field .select2-container--default .select2-selection--single .select2-selection__arrow { height: 30px; }
.report-filter-actions {
  display: flex;
  flex: none;
  align-items: center;
  gap: var(--ig-b-8);
  margin-left: auto;
}
.report-filter-actions .btn { height: var(--ig-dugme-kart-h); padding: 0 12px; font-size: var(--ig-fs-13); }
@media (max-width: 575.98px) {
  .report-filter-field,
  .report-filter-field--sm,
  .report-filter-field--md,
  .report-filter-field--lg {
    flex: 1 1 100%;
    flex-direction: column;
    align-items: stretch;
    gap: var(--ig-b-4);
  }
  .report-filter-field .filter-input,
  .report-filter-field .filter-select,
  .report-filter-field .form-control,
  .report-filter-field .form-select { width: 100%; }
  .report-filter-actions { width: 100%; margin-left: 0; }
}

/* 9.7.3 Durum etiketi · 11971-11994. §1 Durum etiketi: 22px, padding 0 8px,
   radius 4, 1px kenar, 12px/500. Anlam haritası custom.css yorumu korunur:
   ok=tamam, info=süreçte, warn=bekleyen, risk=gerçek risk, inert=iptal/pasif (gri). */
.report-chip {
  display: inline-flex;
  align-items: center;
  gap: var(--ig-b-4);
  height: 22px;
  padding: 0 8px;
  font-size: var(--ig-fs-12);
  font-weight: var(--ig-fw-orta);
  line-height: 1;
  color: var(--ig-soluk);
  white-space: nowrap;
  vertical-align: middle;
  background-color: var(--ig-gri-zemin);
  border: 1px solid var(--ig-cizgi);
  border-radius: var(--ig-r-4);
}
.report-chip .lucide,
.report-chip svg { width: 12px; height: 12px; }
.report-chip--ok    { color: var(--ig-yesil-metin); background-color: var(--ig-yesil-acik);  border-color: var(--ig-yesil-cizgi); }
.report-chip--info  { color: var(--ig-mavi);        background-color: var(--ig-mavi-zemin);  border-color: var(--ig-mavi-cizgi); }
.report-chip--warn  { color: var(--ig-sari-metin);  background-color: var(--ig-sari-zemin);  border-color: var(--ig-sari-cizgi); }
/* §1 "onaylı sette kırmızı etiket yok"; risk yalnız aksiyon gerektiren durumda (k1_ortak.etiket) */
.report-chip--risk  { color: var(--ig-kirmizi);     background-color: var(--ig-kirmizi-etiket-zemin); border-color: var(--ig-kirmizi-etiket-cizgi); }
.report-chip--inert { color: var(--ig-soluk);       background-color: var(--ig-gri-zemin);   border-color: var(--ig-cizgi); }

/* 9.7.4 Not ve bölüm · 11997-12012. Not: yazılı uyarı bandı (3.11 .alert dili);
   renkli sol şerit yok, tam ton zemin. Bölüm: kartlar arası 16px (§1 Bindirme/sekme). */
.report-note {
  padding: 10px 14px;
  font-size: var(--ig-fs-13);
  line-height: var(--ig-lh-govde);
  color: var(--ig-metin-2);
  background-color: var(--ig-yuzey);
  border: 1px solid var(--ig-cizgi);
  border-radius: var(--ig-r-8);
}
.report-note--info { color: var(--ig-metin-2); background-color: var(--ig-mavi-zemin);    border-color: var(--ig-mavi-cizgi); }
.report-note--warn { color: var(--ig-sari-metin); background-color: var(--ig-sari-zemin);  border-color: var(--ig-sari-cizgi); }
.report-note--risk { color: var(--ig-kirmizi);  background-color: var(--ig-kirmizi-zemin); border-color: var(--ig-kirmizi-cizgi); }
.report-section { padding: var(--ig-b-16) var(--ig-b-24) 0; }
.report-section--last { padding-bottom: var(--ig-b-24); }
@media (max-width: 767.98px) {
  .report-section { padding: var(--ig-b-12) var(--ig-b-12) 0; }
}

/* --- 9.8 Detay sekme şeridi · custom.css:1073-1120 (.detail-nav) ------------
   layout/detail_tabs.php: ul.nav.nav-pills.detail-nav.gap-1 (sarmalayıcı
   d-flex justify-content-center). §1 Detay sekme şeridi: 48–52px, 14px, aktif
   600 + 2px alt çizgi, sayaç 12px SOLUK. Hap/dolu koyu aktif sekme kalktı.
   Bootstrap .nav-pills .nav-link.active (0,3,0) aynı özgüllükle, sonra gelerek ezilir. */
.detail-nav {
  display: flex;
  flex-wrap: nowrap;
  justify-content: flex-start;
  width: 100%;
  margin: 0;
  padding: 0 var(--ig-b-4);
  overflow-x: auto;
  list-style: none;
  background: transparent;
  border: 0;
  border-bottom: 1px solid var(--ig-cizgi);
  border-radius: 0;
  scrollbar-width: none;
}
.detail-nav::-webkit-scrollbar { display: none; }
.detail-nav .nav-item { flex: none; margin: 0; }
.detail-nav .nav-link {
  display: inline-flex;
  align-items: center;
  gap: var(--ig-b-6);
  height: var(--ig-alt-serit-h);
  margin-bottom: -1px;
  padding: 0 12px;
  font-size: var(--ig-fs-14);
  font-weight: var(--ig-fw-orta);
  color: var(--ig-soluk);
  text-decoration: none;
  white-space: nowrap;
  background: transparent;
  border: 0;
  border-bottom: 2px solid transparent;
  border-radius: 0;
  box-shadow: none;
}
.detail-nav .nav-link:hover,
.detail-nav .nav-link:focus { color: var(--ig-metin); background: transparent; }
.detail-nav .nav-link:focus-visible { outline: 0; box-shadow: inset var(--ig-odak); }
.nav-pills.detail-nav .nav-link.active,
.detail-nav .nav-link.active {
  font-weight: var(--ig-fw-kalin);
  color: var(--ig-metin);
  background: transparent;
  border-bottom-color: var(--ig-koyu);
  box-shadow: none;
}
.detail-nav .nav-link .lucide,
.detail-nav .nav-link svg { width: 16px; height: 16px; }
.detail-nav .nav-link .tab-count {
  font-size: var(--ig-fs-12);
  font-weight: var(--ig-fw-normal);
  color: var(--ig-soluk);
  font-variant-numeric: tabular-nums;
  background: none;
}
.detail-nav .nav-link small { font-size: var(--ig-fs-12); color: var(--ig-soluk); }
.detail-nav .nav-item.flex-fill .nav-link { justify-content: center; width: 100%; }

/* --- 9.9 Kart ve bölüm başlıkları · custom.css:8846 (h4.box-title), 4039-4095
   (.dash-chart-*), 4033 (.modal-scroll-panel). §1 Kart başlığı 15–16/600 + 13px SOLUK. */
.box-title,
h4.box-title {
  margin-bottom: 0;
  font-size: var(--ig-fs-16);
  font-weight: var(--ig-fw-kalin);
  line-height: var(--ig-lh-baslik);
  letter-spacing: 0;
  color: var(--ig-metin);
}
.dash-chart-card {
  display: flex;
  flex-direction: column;
  height: 100%;
  padding: var(--ig-b-16) var(--ig-b-20);
  background-color: var(--ig-yuzey);
  border: 1px solid var(--ig-cizgi);
  border-radius: var(--ig-r-8);
  box-shadow: var(--ig-golge-kart);
}
.dash-chart-header { margin-bottom: var(--ig-b-12); }
.dash-chart-header h6,
.dash-chart-header h5,
.dash-chart-header h4 {
  margin: 0;
  font-size: var(--ig-fs-15);
  font-weight: var(--ig-fw-kalin);
  line-height: var(--ig-lh-baslik);
  color: var(--ig-metin);
}
.dash-chart-header small { display: block; margin-top: 2px; font-size: var(--ig-fs-13); color: var(--ig-soluk); }
.dash-chart-legend { margin-bottom: var(--ig-b-12); font-size: var(--ig-fs-12); color: var(--ig-soluk); text-align: center; }
.dash-legend-dot,
.dash-legend-square { display: inline-block; width: 8px; height: 8px; margin-right: 4px; vertical-align: middle; border-radius: 2px; }
.dash-legend-dot { border-radius: 50%; }
/* Grafik tuvali yüksekliği işlevsel (Chart.js responsive kabı) */
.dash-chart-body { position: relative; flex: 1; height: 280px; min-height: 250px; }
.dash-chart-body--donut { height: 300px; min-height: 270px; }
.modal-scroll-panel { max-height: 60vh; overflow-y: auto; }

/* --- 9.10 İşlevsel küçükler ---------------------------------------------------
   .belge-dropzone* / .dragover · 1047-1075 (JS dragover sınıfı ekler) ·
   .phone-prefix · 31-41 · .bb-5 · 9128 · .container-full · yapısal (9120) ·
   .org-tree-collapsed · 1684 (SortableJS: kap DOM'da kalır, gizlenir). */
.belge-dropzone {
  padding: var(--ig-b-20);
  text-align: center;
  cursor: pointer;
  background-color: var(--ig-zemin);
  border: 1px dashed var(--ig-cizgi-koyu);
  border-radius: var(--ig-r-8);
}
.belge-dropzone:hover { border-color: var(--ig-soluk); }
.belge-dropzone.dragover,
.dragover {
  background-color: var(--ig-yesil-secili);
  border-style: solid;
  border-color: var(--ig-birincil);
}
.belge-dropzone-content {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--ig-b-4);
  font-size: var(--ig-fs-13);
  color: var(--ig-soluk);
  text-align: center;
}
.belge-dropzone-file { text-align: left; }
.phone-prefix {
  display: inline-flex;
  flex: none;
  align-items: center;
  justify-content: center;
  padding: 0 12px;
  font-size: var(--ig-fs-13);
  white-space: nowrap;
  border: 1px solid var(--ig-cizgi);
  border-right: 0;
  border-radius: var(--ig-r-6) 0 0 var(--ig-r-6);
}
.bb-5 { border-bottom: 1px solid var(--ig-cizgi); }
.container-full { padding: 0; }
.content-wrapper > .container-full > section { padding-bottom: var(--ig-b-20); }
.org-tree-children.org-tree-collapsed { display: none; }

/* --- 9.11 KPI kartı · custom.css:3819-4030 (.dash-kpi-*; layout/dash_kpi_grid.php)
   §1 Tipografi: kart içi KPI 20–24/600; etiket 12px SOLUK. §1 İkonlar: KPI
   köşesinde süs ikon yok (kapı 67) → .dash-kpi-icon markup'ta kalır, gösterilmez. */
.dash-kpi-card {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: var(--ig-b-12);
  min-width: 0;
  padding: var(--ig-b-16) var(--ig-b-20);
  color: inherit;
  text-decoration: none;
  background-color: var(--ig-yuzey);
  border: 1px solid var(--ig-cizgi);
  border-radius: var(--ig-r-8);
  box-shadow: var(--ig-golge-kart);
}
.dash-kpi-card > div:first-child { flex: 1; min-width: 0; }
a.dash-kpi-card:hover { color: inherit; border-color: var(--ig-cizgi-koyu); }
a.dash-kpi-card:focus-visible { outline: 0; box-shadow: var(--ig-odak); }
.dash-kpi-label {
  display: flex;
  align-items: center;
  gap: var(--ig-b-4);
  margin: 0;
  font-size: var(--ig-fs-12);
  font-weight: var(--ig-fw-normal);
  line-height: 1.3;
  color: var(--ig-soluk);
}
.dash-kpi-label .lucide { width: 14px; height: 14px; }
.dash-kpi-value {
  margin: 4px 0 0;
  font-size: 22px;
  font-weight: var(--ig-fw-kalin);
  line-height: 1.2;
  letter-spacing: var(--ig-ls-baslik);
  color: var(--ig-metin);
  overflow-wrap: anywhere;
  font-variant-numeric: tabular-nums;
}
.dash-kpi-value small { font-size: var(--ig-fs-13); font-weight: var(--ig-fw-orta); color: var(--ig-soluk); }
.dash-kpi-note { display: block; margin-top: 4px; font-size: var(--ig-fs-12); line-height: 1.35; color: var(--ig-soluk); }
.dash-kpi-icon,
.dash-kpi-icon--green,
.dash-kpi-icon--accent { display: none; }
.dash-kpi-card--dashboard { min-height: 0; }
.dash-kpi-card--dashboard .dash-kpi-value { font-size: 24px; }
.dash-kpi-card--compact { padding: var(--ig-b-12) var(--ig-b-16); }
.dash-kpi-card--compact .dash-kpi-value { font-size: var(--ig-fs-20); }
@media (max-width: 767.98px) {
  .dash-kpi-card--dashboard .dash-kpi-value,
  .dash-kpi-value { font-size: var(--ig-fs-20); }
}

/* --- 9.12 Modül dashboard bandı · custom.css:5047-5440 (.module-dashboard-*;
   layout/dashboard_hero.php). §1 Kabuk/Sayfa başlığı/Bant sağı/Bindirme:
   #002318 dokulu bant, başlık 28/600, alt metin 14px beyaz %82, kutusuz KPI
   (12px beyaz-soluk etiket, 20/600 değer, 1px ayraç + 20px), bindirme 44px.
   Eski yeşil gradyan, ::before/::after lekeleri, kutulu metrik/tarih kalktı. */
.module-dashboard-hero {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: var(--ig-b-24);
  align-items: end;
  padding: 28px var(--ig-bant-x) 32px;
  color: var(--ig-beyaz);
  background: var(--ig-bant-doku);
  border: 0;
}
.module-dashboard-hero::before,
.module-dashboard-hero::after { display: none; content: none; }
.module-dashboard-hero-main,
.module-dashboard-hero-side { position: relative; min-width: 0; }
.module-dashboard-hero-side { display: flex; flex-direction: column; align-items: flex-end; gap: var(--ig-b-16); }
.module-dashboard-eyebrow {
  display: block;
  margin: 0 0 6px;
  font-size: var(--ig-fs-13);
  font-weight: var(--ig-fw-kalin);
  color: var(--ig-beyaz-alt);
  background: none;
  border: 0;
}
.module-dashboard-hero h1 {
  margin: 0;
  font-size: var(--ig-fs-28);
  font-weight: var(--ig-fw-kalin);
  line-height: var(--ig-lh-baslik);
  letter-spacing: var(--ig-ls-baslik);
  color: var(--ig-beyaz);
}
.module-dashboard-hero p {
  max-width: 720px;
  margin: 6px 0 0;
  font-size: var(--ig-fs-14);
  line-height: var(--ig-lh-govde);
  color: var(--ig-beyaz-alt);
}
.module-dashboard-actions { display: flex; flex-wrap: wrap; gap: var(--ig-b-8); margin-top: var(--ig-b-20); }
/* Bant ikincil düğmesi (§1 Detay başlığı: beyaz-kenarlı ikincil, 36px) */
.module-dashboard-action {
  display: inline-flex;
  align-items: center;
  gap: var(--ig-b-8);
  height: var(--ig-dugme-panel-h);
  padding: 0 12px;
  font-size: var(--ig-fs-14);
  font-weight: var(--ig-fw-kalin);
  color: var(--ig-beyaz);
  text-decoration: none;
  background: transparent;
  border: 1px solid var(--ig-beyaz-kenar);
  border-radius: var(--ig-r-6);
}
.module-dashboard-action:hover,
.module-dashboard-action:focus { color: var(--ig-beyaz); text-decoration: none; background-color: var(--ig-beyaz-cizgi); }
.module-dashboard-action:focus-visible { outline: 0; box-shadow: 0 0 0 3px var(--ig-beyaz-kenar); }
.module-dashboard-action .lucide,
.module-dashboard-action svg { width: 16px; height: 16px; }
/* Tarih: kutusuz iki satır; ikon kutusu yok (kapı 67), ikon gizli */
.module-dashboard-date { display: flex; flex-direction: column; align-items: flex-end; gap: 2px; padding: 0; background: none; border: 0; box-shadow: none; }
.module-dashboard-date .lucide,
.module-dashboard-date svg { display: none; }
.module-dashboard-date span { font-size: var(--ig-fs-12); color: var(--ig-beyaz-soluk); }
.module-dashboard-date strong { font-size: var(--ig-fs-14); font-weight: var(--ig-fw-kalin); color: var(--ig-beyaz); }
.module-dashboard-metrics { display: flex; align-items: flex-end; gap: var(--ig-b-20); }
.module-dashboard-metric { min-width: 0; padding: 0; background: none; border: 0; border-radius: 0; }
.module-dashboard-metric + .module-dashboard-metric { padding-left: var(--ig-b-20); border-left: 1px solid var(--ig-beyaz-cizgi); }
.module-dashboard-metric span,
.module-dashboard-metric strong { display: block; }
.module-dashboard-metric span { min-height: 0; font-size: var(--ig-fs-12); font-weight: var(--ig-fw-normal); line-height: 1.3; color: var(--ig-beyaz-soluk); white-space: nowrap; }
.module-dashboard-metric strong { margin-top: 2px; font-size: var(--ig-fs-20); font-weight: var(--ig-fw-kalin); line-height: 1.2; color: var(--ig-beyaz); white-space: nowrap; font-variant-numeric: tabular-nums; }
/* Bindirme 44px: dashboard bandından sonraki içerik (KPI ızgarası, kartlar) banda biner */
.module-dashboard-hero--dashboard { padding-bottom: calc(32px + var(--ig-bindirme)); }
.module-dashboard-hero--dashboard + * { position: relative; margin-top: calc(-1 * var(--ig-bindirme)); }
/* Kompakt: liste/araç sayfası başlığı; bindirme yok */
.module-dashboard-hero--compact { align-items: center; padding-top: var(--ig-b-16); padding-bottom: var(--ig-b-16); }
.module-dashboard-hero--compact h1 { font-size: var(--ig-fs-20); }
.module-dashboard-hero--compact p { margin-top: 2px; font-size: var(--ig-fs-13); }
.module-dashboard-heading-row { display: flex; align-items: center; gap: var(--ig-b-12); min-width: 0; }
.module-dashboard-hero-copy { min-width: 0; }
.module-dashboard-hero-tools { display: flex; align-items: center; justify-content: flex-end; gap: var(--ig-b-8); min-width: 0; }
.module-dashboard-back-btn {
  display: inline-flex;
  flex: none;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  color: var(--ig-beyaz);
  background: transparent;
  border: 1px solid var(--ig-beyaz-kenar);
  border-radius: var(--ig-r-6);
}
.module-dashboard-back-btn:hover { color: var(--ig-beyaz); background-color: var(--ig-beyaz-cizgi); }
.module-dashboard-user-dropdown { position: relative; }
@media (max-width: 1199.98px) {
  .module-dashboard-hero { padding-right: var(--ig-b-24); padding-left: var(--ig-b-24); }
}
@media (max-width: 767.98px) {
  .module-dashboard-hero { grid-template-columns: 1fr; padding: var(--ig-b-20) var(--ig-b-16) var(--ig-b-24); }
  .module-dashboard-hero--dashboard { padding-bottom: calc(24px + var(--ig-bindirme)); }
  .module-dashboard-hero h1 { font-size: 22px; }
  .module-dashboard-hero-side { align-items: stretch; }
  .module-dashboard-date { align-items: flex-start; }
  .module-dashboard-metrics { display: grid; grid-template-columns: 1fr 1fr; gap: var(--ig-b-12); }
  .module-dashboard-metric + .module-dashboard-metric { padding-left: 0; border-left: 0; }
  .module-dashboard-metric strong { font-size: var(--ig-fs-16); }
}

/* --- 9.13 Ortak ana sayfa · custom.css:4096-4370, 4509-4524, 4947-5046
   (.common-dashboard-*; views/anasayfa.php, sidebar-user-area 3637-3701).
   Koyu bant kuralı; kapsam yerleşim + bant içi kontroller. Kart içerikleri
   (.common-module-card, .common-chat-*, .common-reminder-*) bu bölümde yok → Kalan. */
body.common-dashboard-body { overflow-x: hidden; background-color: var(--ig-zemin); }
body.common-dashboard-body .wrapper { min-height: 100vh; background: transparent; }
/* 5.3 .content-wrapper margin-left 17.6rem ve .sidebar-mini.sidebar-collapse (0,3,0) → (0,3,0), sonra gelir */
.wrapper > .content-wrapper.common-dashboard-page { min-height: 100vh; margin-top: 0; margin-left: 0; padding: 0; background-color: var(--ig-zemin); }
.common-dashboard-stage { position: relative; min-height: 100vh; padding: 0; background: transparent; }
.common-dashboard-frame { position: relative; width: 100%; min-height: 100vh; margin: 0; overflow: hidden; background-color: var(--ig-zemin); border: 0; box-shadow: none; }
.common-dashboard-hero { position: relative; min-height: 0; padding: var(--ig-b-24) var(--ig-bant-x) var(--ig-b-32); overflow: hidden; color: var(--ig-beyaz); background: var(--ig-bant-doku); border: 0; }
.common-dashboard-hero::before,
.common-dashboard-hero::after { display: none; content: none; }
.common-dashboard-topbar { position: relative; display: grid; grid-template-columns: minmax(220px, 1fr) minmax(240px, var(--ig-arama-w)) minmax(320px, 1fr); gap: var(--ig-b-24); align-items: center; margin-bottom: var(--ig-b-32); }
.common-dashboard-brand { display: inline-flex; align-items: center; gap: var(--ig-b-12); min-width: 0; color: var(--ig-beyaz); text-decoration: none; }
.common-dashboard-brand:hover,
.common-dashboard-brand:focus { color: var(--ig-beyaz); text-decoration: none; }
.common-dashboard-logo { display: inline-flex; flex: none; align-items: center; justify-content: center; width: 32px; height: 32px; }
.common-dashboard-logo img { width: 100%; height: 100%; object-fit: contain; filter: brightness(0) invert(1); }
.common-dashboard-brand-text { max-width: 308px; overflow: hidden; font-size: var(--ig-fs-20); font-weight: var(--ig-fw-kalin); line-height: 1.2; color: var(--ig-beyaz); text-overflow: ellipsis; white-space: nowrap; }
.common-dashboard-search { position: relative; width: 100%; }
.common-dashboard-search .lucide { position: absolute; top: 50%; left: 12px; z-index: 1; width: 16px; height: 16px; color: var(--ig-beyaz-soluk); transform: translateY(-50%); }
.common-dashboard-search .filter-input { height: var(--ig-dugme-bant-h); padding: 0 12px 0 36px; font-size: var(--ig-fs-14); color: var(--ig-beyaz); background-color: var(--ig-beyaz-cizgi); border: 1px solid var(--ig-beyaz-kenar); }
.common-dashboard-search .filter-input::placeholder { color: var(--ig-beyaz-soluk); }
.common-dashboard-search .filter-input:focus { color: var(--ig-beyaz); background-color: var(--ig-beyaz-cizgi); border-color: var(--ig-beyaz-alt); box-shadow: 0 0 0 3px var(--ig-beyaz-cizgi); }
.common-dashboard-actions { display: flex; align-items: center; justify-content: flex-end; gap: var(--ig-b-8); min-width: 0; }
.common-dashboard-icon-btn { position: relative; display: inline-flex; flex: none; align-items: center; justify-content: center; width: 36px; height: 36px; color: var(--ig-beyaz); text-decoration: none; background: transparent; border: 1px solid var(--ig-beyaz-kenar); border-radius: var(--ig-r-6); }
.common-dashboard-icon-btn:hover,
.common-dashboard-icon-btn:focus { color: var(--ig-beyaz); text-decoration: none; background-color: var(--ig-beyaz-cizgi); }
.common-dashboard-icon-btn .lucide { width: 16px; height: 16px; }
.common-dashboard-icon-btn--alert::after { position: absolute; top: 6px; right: 6px; width: 8px; height: 8px; content: ""; background-color: var(--ig-yesil-nokta); border-radius: 50%; box-shadow: 0 0 0 2px var(--ig-koyu); }
.common-dashboard-user-menu { position: relative; min-width: 0; }
.common-dashboard-user,
.common-dashboard-user-toggle { display: inline-flex; align-items: center; gap: var(--ig-b-8); min-width: 0; padding: 0; color: var(--ig-beyaz); background: none; border: 0; }
.common-dashboard-user-avatar { display: inline-flex; flex: none; align-items: center; justify-content: center; width: 32px; height: 32px; font-size: var(--ig-fs-12); font-weight: var(--ig-fw-kalin); color: var(--ig-beyaz); background-color: var(--ig-beyaz-cizgi); border: 1px solid var(--ig-beyaz-kenar); border-radius: 50%; }
.common-dashboard-user-text { display: flex; flex-direction: column; min-width: 0; font-size: var(--ig-fs-13); font-weight: var(--ig-fw-kalin); line-height: 1.25; text-align: left; }
.common-dashboard-user-text span { max-width: 190px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.common-dashboard-user-text small { margin-top: 2px; font-size: var(--ig-fs-12); font-weight: var(--ig-fw-normal); color: var(--ig-beyaz-soluk); }
.common-dashboard-user-chevron { width: 16px; height: 16px; color: var(--ig-beyaz-soluk); }
.common-dashboard-welcome { position: relative; max-width: 900px; }
.common-dashboard-welcome h1 { margin: 0; font-size: var(--ig-fs-28); font-weight: var(--ig-fw-kalin); line-height: var(--ig-lh-baslik); letter-spacing: var(--ig-ls-baslik); color: var(--ig-beyaz); }
.common-dashboard-welcome h1 strong { font-weight: var(--ig-fw-kalin); }
.common-dashboard-welcome p { margin: 6px 0 0; font-size: var(--ig-fs-14); color: var(--ig-beyaz-alt); }
.common-dashboard-surface { min-height: 0; padding: var(--ig-b-24) var(--ig-bant-x) var(--ig-b-32); background: transparent; }
.common-dashboard-layout { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 0.9fr) minmax(280px, 0.75fr); gap: var(--ig-b-16); align-items: start; }
.common-dashboard-modules { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--ig-b-16); align-items: stretch; }
.common-dashboard-middle,
.common-dashboard-side { display: flex; flex-direction: column; gap: var(--ig-b-16); min-width: 0; }
.common-dashboard-block h2 { margin: 0 0 var(--ig-b-12); font-size: var(--ig-fs-15); font-weight: var(--ig-fw-kalin); line-height: var(--ig-lh-baslik); text-transform: none; color: var(--ig-metin); }
@media (max-width: 1199.98px) {
  .common-dashboard-hero,
  .common-dashboard-surface { padding-right: var(--ig-b-24); padding-left: var(--ig-b-24); }
  .common-dashboard-topbar { grid-template-columns: 1fr; gap: var(--ig-b-12); margin-bottom: var(--ig-b-24); }
  .common-dashboard-actions { justify-content: flex-start; }
  .common-dashboard-layout { grid-template-columns: 1fr; }
}
@media (max-width: 767.98px) {
  .common-dashboard-hero { padding: var(--ig-b-20) var(--ig-b-16) var(--ig-b-24); }
  .common-dashboard-surface { padding: var(--ig-b-16); }
  .common-dashboard-welcome h1 { font-size: 22px; }
  .common-dashboard-modules { grid-template-columns: 1fr; }
  .common-dashboard-user-text { display: none; }
}

/* --- 9.14 DataTables çekirdek · custom.css:9157-9233 --------------------------
   Çekirdek dataTables.bootstrap4.css yüklenmiyor (CSS-GECIS §12); sayfalama
   isgelir-ui 3.10 .page-link, Responsive/Buttons 5.4.1'de. Burada: sarmalayıcı,
   arama/uzunluk girdisi, sıralama işareti (§1 Tablo başlık: 14px #C4C4CA ikon,
   sıralanan sütun METIN + yeşil ok), boş satır, işleniyor. */
.dataTables_wrapper.container-fluid { padding-right: 0; padding-left: 0; }
.dataTables_wrapper { font-size: var(--ig-fs-13); color: var(--ig-metin); }
/* !important: DataTables JS tabloya inline style="width: …px" yazar */
.dataTables_wrapper table.dataTable { width: 100% !important; margin: 0; border-collapse: collapse; }
.dataTables_wrapper .dataTables_filter { text-align: right; }
.dataTables_wrapper .dataTables_filter label,
.dataTables_wrapper .dataTables_length label { display: inline-flex; align-items: center; gap: var(--ig-b-8); margin: 0; font-size: var(--ig-fs-13); font-weight: var(--ig-fw-normal); color: var(--ig-soluk); white-space: nowrap; }
.dataTables_wrapper .dataTables_filter input,
.dataTables_wrapper .dataTables_length select { height: var(--ig-hap-h); padding: 0 10px; font-size: var(--ig-fs-13); color: var(--ig-metin); background-color: var(--ig-yuzey); border: 1px solid var(--ig-cizgi); border-radius: var(--ig-r-6); }
.dataTables_wrapper .dataTables_filter input { width: var(--ig-arama-w); max-width: 100%; }
.dataTables_wrapper .dataTables_filter input:focus,
.dataTables_wrapper .dataTables_length select:focus { outline: 0; border-color: var(--ig-koyu); box-shadow: var(--ig-odak); }
.dataTables_wrapper .dataTables_info { padding-top: 6px; font-size: var(--ig-fs-13); color: var(--ig-soluk); white-space: nowrap; font-variant-numeric: tabular-nums; }
.dataTables_wrapper .dataTables_paginate { margin: 0; white-space: nowrap; text-align: right; }
.dataTables_wrapper .dataTables_paginate .pagination { justify-content: flex-end; }
.dataTables_wrapper .dataTables_processing { position: absolute; top: 50%; left: 50%; z-index: 5; width: 200px; margin: -20px 0 0 -100px; padding: 10px; font-size: var(--ig-fs-13); color: var(--ig-soluk); text-align: center; background-color: var(--ig-yuzey); border: 1px solid var(--ig-cizgi); border-radius: var(--ig-r-8); box-shadow: var(--ig-golge-popover); }
table.dataTable > thead .sorting,
table.dataTable > thead .sorting_asc,
table.dataTable > thead .sorting_desc { position: relative; padding-right: 30px; cursor: pointer; }
table.dataTable > thead .sorting_asc,
table.dataTable > thead .sorting_desc { color: var(--ig-metin); }
table.dataTable > thead .sorting::before,
table.dataTable > thead .sorting_asc::before,
table.dataTable > thead .sorting_desc::before { display: none; content: none; }
table.dataTable > thead .sorting::after,
table.dataTable > thead .sorting_asc::after,
table.dataTable > thead .sorting_desc::after {
  position: absolute;
  top: 50%;
  right: 10px;
  width: 14px;
  height: 14px;
  margin-top: -7px;
  content: "";
  opacity: 1;
  background-color: var(--ig-siralama);
  -webkit-mask: var(--ig-dt-ok) center / contain no-repeat;
  mask: var(--ig-dt-ok) center / contain no-repeat;
}
table.dataTable > thead .sorting::after { --ig-dt-ok: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m7 15 5 5 5-5M7 9l5-5 5 5'/%3E%3C/svg%3E"); }
table.dataTable > thead .sorting_asc::after { --ig-dt-ok: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 19V5M5 12l7-7 7 7'/%3E%3C/svg%3E"); background-color: var(--ig-birincil); }
table.dataTable > thead .sorting_desc::after { --ig-dt-ok: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 5v14M19 12l-7 7-7-7'/%3E%3C/svg%3E"); background-color: var(--ig-birincil); }
table.dataTable > thead .sorting_disabled { padding-right: 12px; cursor: default; }
table.dataTable > tbody > tr > td.dataTables_empty { height: auto; padding: 32px var(--ig-b-16); font-size: var(--ig-fs-13); font-weight: var(--ig-fw-normal); color: var(--ig-soluk); text-align: center; }
@media (max-width: 767.98px) {
  .dataTables_wrapper .dataTables_filter,
  .dataTables_wrapper .dataTables_paginate { text-align: left; }
  .dataTables_wrapper .dataTables_paginate .pagination { justify-content: flex-start; }
}

/* --- 9.15 Select2 · custom.css:7100-7120, 9132-9153 (isgelir-ui 5.4.2'de olmayanlar)
   Tek seçim kutusu 40px (3.2 girdi), çoklu seçim etiketi = §1 durum etiketi dili,
   açılır panel = 3.7 dropdown. 5.4.2 .select2-selection__rendered height/margin/
   padding tanımlı → burada yalnız line-height ve renk. */
/* !important: select2 JS kaba inline style="width: …px" yazar */
.select2-container { width: 100% !important; }
.select2-container--default .select2-selection--single { height: var(--ig-girdi-h); padding: 5px 10px; background-color: var(--ig-yuzey); border: 1px solid var(--ig-cizgi); border-radius: var(--ig-r-6); }
.select2-container--default .select2-selection--single .select2-selection__rendered { line-height: 38px; font-size: var(--ig-fs-14); color: var(--ig-metin); }
.select2-container--default .select2-selection--single .select2-selection__placeholder { color: var(--ig-girdi); }
.select2-container--default .select2-selection--single .select2-selection__arrow { height: 38px; }
.select2-container--default.select2-container--focus .select2-selection--single,
.select2-container--default.select2-container--open .select2-selection--single { border-color: var(--ig-koyu); box-shadow: var(--ig-odak); }
.select2-container .select2-selection--multiple { min-height: var(--ig-girdi-h); }
.select2-container .select2-selection--multiple .select2-selection__rendered { padding: 3px 8px; }
.select2-container--default .select2-selection--multiple .select2-selection__choice { height: 22px; margin: 5px 4px 0 0; padding: 0 8px; font-size: var(--ig-fs-12); font-weight: var(--ig-fw-orta); line-height: 20px; color: var(--ig-yesil-metin); background-color: var(--ig-yesil-acik); border: 1px solid var(--ig-yesil-cizgi); border-radius: var(--ig-r-4); }
.select2-container--default .select2-selection--multiple .select2-selection__choice__remove { margin-right: 4px; color: inherit; }
.select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover { color: var(--ig-kirmizi); }
.select2-dropdown { margin-top: 4px; overflow: hidden; background-color: var(--ig-yuzey); border: 1px solid var(--ig-cizgi); border-radius: var(--ig-r-8); box-shadow: var(--ig-golge-katman); }
.select2-container--default .select2-results__option--highlighted[aria-selected] { color: var(--ig-metin); background-color: var(--ig-zemin); }
/* input-group içinde esneme · custom.css:8962-8974. !important: yukarıdaki inline-width ezmesini grup içinde geri alır */
.input-group > .select2-container { flex: 1 1 auto; width: 1% !important; min-width: 0; }

/* --- 9.16 daterangepicker · custom.css:1820-2000 (td.active/in-range/off, .ranges)
   daterangepicker.css isgelir-ui'den SONRA yüklenir → body öneki ile bir adım özgül
   (5.4.4 ile aynı yöntem, !important yok). Kutu = 3.7 dropdown dili. */
body .daterangepicker { font-family: var(--ig-font); color: var(--ig-metin); border: 1px solid var(--ig-cizgi); border-radius: var(--ig-r-8); box-shadow: var(--ig-golge-katman); }
body .daterangepicker::before,
body .daterangepicker::after { display: none; }
body .daterangepicker td.available:hover,
body .daterangepicker th.available:hover { color: var(--ig-metin); background-color: var(--ig-zemin); }
body .daterangepicker td.in-range { color: var(--ig-metin); background-color: var(--ig-yesil-acik); border-radius: 0; }
body .daterangepicker td.active,
body .daterangepicker td.active:hover { font-weight: var(--ig-fw-kalin); color: var(--ig-beyaz); background-color: var(--ig-birincil); border-color: transparent; }
body .daterangepicker td.start-date { border-radius: var(--ig-r-6) 0 0 var(--ig-r-6); }
body .daterangepicker td.end-date { border-radius: 0 var(--ig-r-6) var(--ig-r-6) 0; }
body .daterangepicker td.start-date.end-date { border-radius: var(--ig-r-6); }
body .daterangepicker td.off,
body .daterangepicker td.off.in-range,
body .daterangepicker td.off.start-date,
body .daterangepicker td.off.end-date { color: var(--ig-girdi); background-color: transparent; }
body .daterangepicker td.disabled { color: var(--ig-cizgi-koyu); }
body .daterangepicker .ranges { padding: var(--ig-b-8); }
body .daterangepicker .ranges li { margin-bottom: 2px; padding: 8px 12px; font-size: var(--ig-fs-13); color: var(--ig-metin-2); border-radius: var(--ig-r-6); }
body .daterangepicker .ranges li:hover { color: var(--ig-metin); background-color: var(--ig-zemin); }
body .daterangepicker .ranges li.active { font-weight: var(--ig-fw-kalin); color: var(--ig-yesil-metin); background-color: var(--ig-yesil-secili); }
body .daterangepicker .drp-buttons { padding: var(--ig-b-8) var(--ig-b-12); border-top: 1px solid var(--ig-cizgi); }

/* --- 9.17 Sayfa yükleniyor · custom.css:3200-3230 (#loader, .spinner) -----------
   header.php #loader; template.js kaldırır. Halka birincil renkte, hareket azaltmada durur. */
#loader { position: fixed; top: 0; left: 0; z-index: 99999; display: flex; align-items: center; justify-content: center; width: 100%; height: 100%; background-color: var(--ig-yuzey); }
.spinner { position: relative; box-sizing: border-box; width: 28px; height: 28px; border: 3px solid var(--ig-gri-zemin); border-top-color: var(--ig-birincil); border-radius: 50%; animation: ig-miras-don 0.75s linear infinite; }
@media (prefers-reduced-motion: reduce) {
  .spinner { animation: none; }
}

/* --- 9.18 Yazdırma · custom.css:6761-6767 --------------------------------------
   .no-print ekran ölçüsü isgelir-ui 5.2'de; gizleme davranışı burada.
   !important: .d-flex/.d-inline-flex gibi Bootstrap display utility'leri !important. */
@media print {
  .no-print,
  #loader,
  .global-chat-fab,
  .global-chat-panel,
  .global-chat-backdrop { display: none !important; }
  .report-band-seg,
  .report-chip,
  .module-dashboard-hero,
  .common-dashboard-hero { -webkit-print-color-adjust: exact; print-color-adjust: exact; }
}

/* --- 9.19 Sohbet · işlevsel yerleşim: liste/mesaj kaydırma, balon hizası,
   giriş kutusu. Sohbetin tam sayfa hali 2026-09-22'de kaldırıldı; .chat-page-wrapper
   ve .chat-layout kuralları o gün silindi (ölü kod, hiçbir view basmıyordu).
   Görsel karar ve yeniden tasarım 15.2'de.
   Kapı 67: kanal satırı başındaki ikon kutusu gösterilmez (ad metni yeterli). */
.global-chat-shell { --chat-sidebar-width: 100%; }
.chat-sidebar { display: flex; flex-direction: column; width: min(100%, var(--chat-sidebar-width)); min-width: min(100%, var(--chat-sidebar-width)); min-height: 0; background-color: var(--ig-yuzey); border-right: 1px solid var(--ig-cizgi); }
.chat-sidebar-top { padding: var(--ig-b-16); border-bottom: 1px solid var(--ig-cizgi); }
.chat-sidebar-header { display: flex; align-items: center; justify-content: space-between; gap: var(--ig-b-12); padding: 0; }
.chat-sidebar-title { font-size: var(--ig-fs-16); font-weight: var(--ig-fw-kalin); color: var(--ig-metin); }
.chat-sidebar-search { padding: var(--ig-b-12) 0 0; }
.chat-search-wrap { display: flex; align-items: center; gap: var(--ig-b-8); height: var(--ig-hap-h); padding: 0 10px; color: var(--ig-girdi); background-color: var(--ig-yuzey); border: 1px solid var(--ig-cizgi); border-radius: var(--ig-r-6); }
.chat-search-wrap:focus-within { border-color: var(--ig-koyu); box-shadow: var(--ig-odak); }
.chat-search-wrap i,
.chat-search-wrap svg { flex: none; width: 16px; height: 16px; }
.chat-search-input { width: 100%; height: 100%; padding: 0; font-size: var(--ig-fs-13); color: var(--ig-metin); background: transparent; border: 0; outline: 0; }
.chat-search-input::placeholder { color: var(--ig-soluk); }
.chat-sidebar-list,
.chat-messages { scrollbar-width: thin; scrollbar-color: var(--ig-cizgi-koyu) transparent; }
.chat-sidebar-list { flex: 1 1 auto; min-height: 0; padding: var(--ig-b-8); overflow-y: auto; }
.chat-kanal-item { position: relative; display: flex; align-items: center; gap: var(--ig-b-12); min-height: 56px; padding: var(--ig-b-8) var(--ig-b-12); color: var(--ig-metin); text-decoration: none; cursor: pointer; border-radius: var(--ig-r-6); }
.chat-kanal-item:hover { background-color: var(--ig-zemin); }
.chat-kanal-item--active { background-color: var(--ig-yesil-secili); }
.chat-kanal-meta { flex: 1; min-width: 0; }
.chat-kanal-line { display: flex; align-items: baseline; justify-content: space-between; gap: var(--ig-b-8); }
.chat-kanal-name { overflow: hidden; font-size: var(--ig-fs-14); font-weight: var(--ig-fw-kalin); color: var(--ig-metin); text-overflow: ellipsis; white-space: nowrap; }
.chat-kanal-item--active .chat-kanal-name { color: var(--ig-yesil-metin); }
.chat-kanal-time { flex: none; font-size: var(--ig-fs-12); color: var(--ig-soluk); font-variant-numeric: tabular-nums; }
.chat-kanal-preview { display: block; overflow: hidden; margin-top: 2px; font-size: var(--ig-fs-13); color: var(--ig-soluk); text-overflow: ellipsis; white-space: nowrap; }
.chat-kanal-unread { display: inline-flex; align-items: center; justify-content: center; min-width: 20px; height: 20px; padding: 0 6px; font-size: var(--ig-fs-12); font-weight: var(--ig-fw-kalin); color: var(--ig-beyaz); background-color: var(--ig-birincil); border-radius: 10px; }
.chat-main { display: flex; flex: 1 1 auto; flex-direction: column; min-width: 0; min-height: 0; background-color: var(--ig-zemin); }
#chat-area { flex: 1 1 auto; min-width: 0; min-height: 0; }
.chat-header { display: flex; align-items: center; justify-content: space-between; gap: var(--ig-b-16); padding: var(--ig-b-12) var(--ig-b-20); background-color: var(--ig-yuzey); border-bottom: 1px solid var(--ig-cizgi); }
.chat-header-main { display: flex; align-items: center; gap: var(--ig-b-12); min-width: 0; }
.chat-header-body { min-width: 0; }
.chat-header-title { margin: 0; font-size: var(--ig-fs-16); font-weight: var(--ig-fw-kalin); color: var(--ig-metin); }
.chat-header-status { overflow: hidden; font-size: var(--ig-fs-13); color: var(--ig-soluk); text-overflow: ellipsis; white-space: nowrap; }
.chat-status-pill { display: inline-flex; align-items: center; gap: var(--ig-b-6); height: 22px; padding: 0 8px; font-size: var(--ig-fs-12); font-weight: var(--ig-fw-orta); color: var(--ig-soluk); white-space: nowrap; background-color: var(--ig-gri-zemin); border: 1px solid var(--ig-cizgi); border-radius: var(--ig-r-4); }
.chat-status-pill::before { width: 6px; height: 6px; content: ""; background-color: var(--ig-girdi); border-radius: 50%; }
.chat-status-pill--live::before { background-color: var(--ig-birincil); }
.chat-status-pill--fallback::before { background-color: var(--ig-sari-metin); }
.chat-messages { flex: 1 1 auto; min-height: 0; padding: var(--ig-b-20); overflow-y: auto; background-color: var(--ig-zemin); }
.chat-date-sep,
.chat-system-msg { display: flex; justify-content: center; margin: var(--ig-b-12) 0; }
.chat-date-sep span,
.chat-system-msg span { padding: 2px 8px; font-size: var(--ig-fs-12); color: var(--ig-soluk); background-color: var(--ig-gri-zemin); border-radius: var(--ig-r-4); }
.chat-row { display: flex; margin-bottom: var(--ig-b-8); }
.chat-row--own { justify-content: flex-end; }
.chat-row--other { justify-content: flex-start; }
.chat-bubble { position: relative; max-width: min(720px, 72%); padding: 8px 12px; font-size: var(--ig-fs-14); line-height: var(--ig-lh-govde); white-space: pre-wrap; word-break: break-word; border: 1px solid var(--ig-cizgi); border-radius: var(--ig-r-8); }
.chat-bubble--own { color: var(--ig-metin); background-color: var(--ig-yesil-acik); border-color: var(--ig-yesil-cizgi); }
.chat-bubble--other { color: var(--ig-metin); background-color: var(--ig-yuzey); }
.chat-sender { display: block; margin-bottom: 2px; font-size: var(--ig-fs-12); font-weight: var(--ig-fw-kalin); color: var(--ig-metin-2); }
.chat-meta { display: flex; align-items: center; justify-content: flex-end; gap: var(--ig-b-6); margin-top: 4px; }
.chat-row--other .chat-meta { justify-content: flex-start; }
.chat-time { font-size: var(--ig-fs-12); color: var(--ig-soluk); white-space: nowrap; font-variant-numeric: tabular-nums; }
.chat-input-area { display: flex; align-items: flex-end; gap: var(--ig-b-12); padding: var(--ig-b-12) var(--ig-b-20); background-color: var(--ig-yuzey); border-top: 1px solid var(--ig-cizgi); }
.chat-composer { display: flex; flex-direction: column; gap: var(--ig-b-8); width: 100%; min-width: 0; }
.chat-composer-row { display: flex; align-items: flex-end; gap: var(--ig-b-8); }
.chat-input-area textarea { flex: 1 1 auto; min-height: var(--ig-girdi-h); max-height: 140px; padding: 9px 12px; font-size: var(--ig-fs-14); line-height: 1.45; resize: none; background-color: var(--ig-yuzey); border: 1px solid var(--ig-cizgi); border-radius: var(--ig-r-6); outline: 0; }
.chat-input-area textarea:focus { border-color: var(--ig-koyu); box-shadow: var(--ig-odak); }
.chat-attach-wrap { position: relative; }
.chat-attach-trigger,
.chat-send-btn { display: inline-flex; flex: none; align-items: center; justify-content: center; width: var(--ig-girdi-h); height: var(--ig-girdi-h); padding: 0; cursor: pointer; border-radius: var(--ig-r-6); }
.chat-attach-trigger { color: var(--ig-metin-2); background-color: var(--ig-yuzey); border: 1px solid var(--ig-cizgi); }
.chat-attach-trigger:hover,
.chat-attach-trigger[aria-expanded="true"] { color: var(--ig-metin); background-color: var(--ig-zemin); }
.chat-send-btn { color: var(--ig-beyaz); background-color: var(--ig-birincil); border: 0; }
.chat-send-btn:hover,
.chat-send-btn:focus { color: var(--ig-beyaz); background-color: var(--ig-birincil-hover); }
.chat-attach-menu { position: absolute; bottom: calc(100% + 8px); left: 0; z-index: 20; min-width: 240px; padding: 4px; background-color: var(--ig-yuzey); border: 1px solid var(--ig-cizgi); border-radius: var(--ig-r-8); box-shadow: var(--ig-golge-katman); }
.chat-attach-option { display: flex; align-items: center; gap: var(--ig-b-8); width: 100%; min-height: 36px; padding: 6px 8px; text-align: left; background: none; border: 0; border-radius: var(--ig-r-6); }
.chat-attach-option:hover,
.chat-attach-option:focus { background-color: var(--ig-zemin); }
.chat-attach-option-body strong { display: block; font-size: var(--ig-fs-13); font-weight: var(--ig-fw-kalin); color: var(--ig-metin); }
.chat-attach-option-body small { display: block; font-size: var(--ig-fs-12); color: var(--ig-soluk); }
.chat-attachment-list { display: flex; gap: var(--ig-b-8); overflow-x: auto; }
.chat-attachment-item { position: relative; flex: none; }
.chat-attachment-item--image img,
.chat-attachment-image { display: block; max-width: 100%; object-fit: cover; border-radius: var(--ig-r-6); }
.chat-attachment-item--image img { width: 64px; height: 64px; }
.chat-attachment-item--file,
.chat-attachment-file { display: flex; align-items: center; gap: var(--ig-b-8); padding: 6px 10px; font-size: var(--ig-fs-13); color: var(--ig-metin); text-decoration: none; background-color: var(--ig-yuzey); border: 1px solid var(--ig-cizgi); border-radius: var(--ig-r-6); }
.chat-attachment-remove { position: absolute; top: -6px; right: -6px; display: inline-flex; align-items: center; justify-content: center; width: 20px; height: 20px; padding: 0; color: var(--ig-beyaz); background-color: var(--ig-metin-2); border: 0; border-radius: 50%; }
.chat-message-attachments { display: flex; flex-wrap: wrap; gap: var(--ig-b-6); margin-top: 6px; }
.chat-attachment-image-btn { padding: 0; background: none; border: 0; }
.chat-image-preview-image { display: block; max-width: 100%; max-height: 80vh; margin: 0 auto; }
.chat-icon-md { width: 18px; height: 18px; }
.chat-icon-sm { width: 14px; height: 14px; }
.chat-empty-state { display: flex; flex: 1 1 auto; flex-direction: column; align-items: center; justify-content: center; padding: var(--ig-b-32); color: var(--ig-soluk); text-align: center; background-color: var(--ig-zemin); }
.chat-empty-state h5 { margin: 0 0 4px; font-size: var(--ig-fs-16); font-weight: var(--ig-fw-kalin); color: var(--ig-metin); }
.chat-empty-state small { display: block; max-width: 420px; font-size: var(--ig-fs-13); line-height: var(--ig-lh-govde); }
/* Global sohbet paneli: sabit düğme + sağdan kayan panel (z-index yığını korunur) */
.global-chat-fab { position: fixed; right: 24px; bottom: 24px; z-index: 100000; display: inline-flex; align-items: center; justify-content: center; width: 48px; height: 48px; color: var(--ig-beyaz); cursor: pointer; background-color: var(--ig-birincil); border: 0; border-radius: 50%; box-shadow: var(--ig-golge-katman); }
.global-chat-fab:hover,
.global-chat-fab:focus { color: var(--ig-beyaz); background-color: var(--ig-birincil-hover); }
.global-chat-widget--fab-hidden .global-chat-fab { display: none; }
.global-chat-fab-badge { position: absolute; top: -2px; right: -2px; min-width: 18px; height: 18px; padding: 0 5px; font-size: 11px; font-weight: var(--ig-fw-kalin); line-height: 18px; color: var(--ig-beyaz); text-align: center; background-color: var(--ig-kirmizi); border-radius: 9px; }
.global-chat-backdrop { position: fixed; inset: 0; z-index: 100001; visibility: hidden; opacity: 0; background-color: var(--ig-ortu); transition: opacity 0.2s ease, visibility 0.2s ease; }
.global-chat-panel { position: fixed; top: 0; right: 0; bottom: 0; z-index: 100002; width: min(460px, 100vw); background-color: var(--ig-yuzey); border-left: 1px solid var(--ig-cizgi); box-shadow: var(--ig-golge-katman); transform: translateX(100%); transition: transform 0.24s ease; }
.global-chat-widget--open .global-chat-backdrop { visibility: visible; opacity: 1; }
.global-chat-widget--open .global-chat-panel { transform: translateX(0); }
.global-chat-panel-inner,
.global-chat-shell { height: 100%; min-height: 0; }
@media (prefers-reduced-motion: reduce) {
  .global-chat-panel,
  .global-chat-backdrop { transition: none; }
}
@media (max-width: 575.98px) {
  .chat-sidebar-top,
  .chat-header,
  .chat-input-area { padding: var(--ig-b-12); }
}


/* --- 9c. YERLEŞİM HOTFIX (2026-09-15) ------------------------------------------
   Kök neden: custom.css:6859-6900 global sohbet panelinde .global-chat-shell
   display:flex + position:relative idi; .chat-sidebar ve .chat-main aynı kutuda
   üst üste (position:absolute; inset:0) durup liste ↔ konuşma arasında kayıyordu.
   9.19 bu gövdeyi taşımadı → iki bölme alt alta dizildi, .chat-main 1194px'e düştü.
   Yükseklik zinciri: .global-chat-panel (fixed top/bottom) → .global-chat-panel-inner
   (flex column, %100) → .global-chat-shell (flex:1, min-height 0, overflow hidden)
   → .chat-sidebar / .chat-main (absolute inset 0) → .chat-sidebar-list /
   .chat-messages (flex:1, overflow-y auto). */
.global-chat-panel-inner {
  display: flex;
  flex-direction: column;
  height: 100%;
  min-height: 0;
}
.global-chat-shell {
  position: relative;
  display: flex;
  flex: 1 1 auto;
  height: 100%;
  min-height: 0;
  overflow: hidden;
  background-color: var(--ig-yuzey);
}
.global-chat-shell .chat-sidebar,
.global-chat-shell .chat-main {
  position: absolute;
  inset: 0;
  width: 100%;
  min-width: 0;
  height: 100%;
  transition: transform 0.24s ease, opacity 0.24s ease;
}
.global-chat-shell .chat-sidebar { border-right: 0; }
.global-chat-shell .chat-main { opacity: 0; pointer-events: none; transform: translateX(100%); }
.global-chat-widget--conversation .global-chat-shell .chat-sidebar { opacity: 0; pointer-events: none; transform: translateX(-24%); }
.global-chat-widget--conversation .global-chat-shell .chat-main { opacity: 1; pointer-events: auto; transform: translateX(0); }
/* #chat-area: JS d-none ↔ d-flex; yön .flex-column utility'sinden, burada güvence */
#chat-area.d-flex { flex-direction: column; }
#chat-area { height: 100%; }
.global-chat-shell .chat-kanal-item { width: 100%; text-align: left; background: transparent; border: 1px solid transparent; }
.global-chat-shell .chat-kanal-item--active { background-color: var(--ig-yesil-secili); }
.global-chat-shell .chat-header { padding: var(--ig-b-12) var(--ig-b-16); }
.global-chat-shell .chat-header-main { gap: var(--ig-b-8); }
.global-chat-shell .chat-messages { padding: var(--ig-b-16); }
.global-chat-shell .chat-bubble { max-width: 86%; }
.global-chat-shell .chat-input-area { padding: var(--ig-b-12) var(--ig-b-16); }
.chat-sidebar-header .btn-icon,
.global-chat-back-btn,
.global-chat-close-btn { flex: none; }
.chat-sidebar-header > div { display: flex; align-items: center; gap: var(--ig-b-8); min-width: 0; }
.global-chat-fab--alert { box-shadow: 0 0 0 3px var(--ig-yesil-cizgi), var(--ig-golge-katman); }
.chat-text { color: inherit; }
/* Ekler: satır flex korunur; ikon kutusu yok (kapı 67), dosya ikonu 16px çıplak */
.chat-attach-option-icon,
.chat-attachment-item-icon,
.chat-attachment-file-icon { display: inline-flex; flex: none; align-items: center; justify-content: center; width: 16px; height: 16px; color: var(--ig-soluk); background: none; }
.chat-attach-option-body,
.chat-attachment-item-meta,
.chat-attachment-file-meta { display: flex; flex: 1 1 auto; flex-direction: column; min-width: 0; }
.chat-attachment-item-meta strong,
.chat-attachment-file-name { overflow: hidden; font-size: var(--ig-fs-13); font-weight: var(--ig-fw-kalin); color: inherit; text-overflow: ellipsis; white-space: nowrap; }
.chat-attachment-item-meta small,
.chat-attachment-file-sub { font-size: var(--ig-fs-12); color: var(--ig-soluk); }
.chat-attachment-item--file { min-width: 220px; max-width: 260px; }
.chat-attachment-item--image { width: 64px; height: 64px; overflow: hidden; border: 1px solid var(--ig-cizgi); border-radius: var(--ig-r-6); }
.chat-message-attachments { flex-direction: column; }
.chat-attachment { display: block; max-width: min(280px, 100%); }
.chat-attachment--image { overflow: hidden; background-color: var(--ig-gri-zemin); border: 1px solid var(--ig-cizgi); border-radius: var(--ig-r-6); }
.chat-attachment-image { width: 100%; max-height: 280px; }
.chat-attachment-image-btn { display: block; width: 100%; cursor: pointer; }
.chat-attachment-image-caption { display: block; padding: 6px 8px; font-size: var(--ig-fs-12); }
.chat-attachment-file:hover { color: inherit; text-decoration: none; background-color: var(--ig-zemin); }
.chat-attachment-file-action { flex: none; color: var(--ig-soluk); }
@media (prefers-reduced-motion: reduce) {
  .global-chat-shell .chat-sidebar,
  .global-chat-shell .chat-main { transition: none; }
}
@media (max-width: 575.98px) {
  .global-chat-fab { right: 16px; bottom: 16px; }
  .global-chat-panel { width: 100vw; }
  .global-chat-shell .chat-status-pill { display: none; }
  .global-chat-shell .chat-attach-menu { width: min(280px, calc(100vw - 48px)); }
}

/* 9c.2 Kullanılan (a) yerleşimleri · flex-eksik.txt. Kaynak satırlar custom.css. */
/* FullCalendar 5/6 (is/takvim, ziyaret_takvim, ik/takvim_sistem) · 1239-1262, 1333.
   FC CSS'i JS ile <head> sonuna enjekte olur → .content-wrapper öneki (0,3,0). */
.content-wrapper .fc .fc-button-primary { display: inline-flex; align-items: center; justify-content: center; height: var(--ig-dugme-kart-h); padding: 0 10px; font-size: var(--ig-fs-13); font-weight: var(--ig-fw-orta); line-height: 1; color: var(--ig-metin-2); background-color: var(--ig-yuzey); border-color: var(--ig-cizgi); }
.content-wrapper .fc .fc-button-primary .fc-icon { width: 14px; height: 14px; font-size: 14px; line-height: 1; }
.content-wrapper .fc .fc-button-primary:not(:disabled).fc-button-active,
.content-wrapper .fc .fc-button-primary:not(:disabled):active { color: var(--ig-metin); background-color: var(--ig-gri-zemin); border-color: var(--ig-cizgi-koyu); }
.content-wrapper .fc .fc-day-today .fc-daygrid-day-number { display: inline-flex; align-items: center; justify-content: center; min-width: 24px; height: 24px; font-weight: var(--ig-fw-kalin); color: var(--ig-beyaz); background-color: var(--ig-koyu); border-radius: 50%; }
/* muh/fiyatlandirma/fiyatlandirma_detay.php · 2102 (görünüm 10. bölüm .ekle-btn) */
.urun-satir .ekle-btn { display: inline-flex; align-items: center; justify-content: center; }
/* layout/header_toolbar.php · 5477-5503 */
.module-dashboard-user-dropdown .dropdown-item { display: flex; align-items: center; gap: var(--ig-b-8); min-height: 36px; padding: 0 10px; font-size: var(--ig-fs-13); color: var(--ig-metin); border-radius: var(--ig-r-6); }
.module-dashboard-user-dropdown .dropdown-item:hover,
.module-dashboard-user-dropdown .dropdown-item:focus { color: var(--ig-metin); background-color: var(--ig-zemin); }
.module-dashboard-user-dropdown .dropdown-item.text-danger:hover,
.module-dashboard-user-dropdown .dropdown-item.text-danger:focus { background-color: var(--ig-kirmizi-zemin); }
.module-dashboard-user-dropdown .dropdown-item .lucide { width: 16px; height: 16px; }
/* Kart başlığı kalıbı (140 view satırı) · 7174-7300, 7357-7378. §1 Kart başlığı 15–16/600.
   Başlık önündeki avatar/ikon kutusu gizli (kapı 67); satır flex'i korunur. */
.card-header.bg-white.px-3.py-3 .avatar.avatar-sm { display: none; }
.card-header.bg-white.px-3.py-3 .small.text-muted.d-inline-flex.align-items-center.gap-1 { display: inline-flex; align-items: center; font-size: var(--ig-fs-12); }
.card-header.bg-white.px-3.py-3 .small.text-muted.d-inline-flex.align-items-center.gap-1 .lucide { width: 14px; height: 14px; }
.card > .border-bottom.p-3,
.card > .border-bottom.px-3.py-3,
.card > .border-bottom.px-3.py-2 { position: relative; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--ig-b-12); background-color: var(--ig-yuzey); }
.card > .border-bottom.p-3 > div:first-child,
.card > .border-bottom.px-3.py-3 > div:first-child,
.card > .border-bottom.px-3.py-2 > div:first-child { min-width: 0; }
.card > .border-bottom.p-3 > div:last-child:not(:first-child),
.card > .border-bottom.px-3.py-3 > div:last-child:not(:first-child),
.card > .border-bottom.px-3.py-2 > div:last-child:not(:first-child) { display: flex; flex-wrap: wrap; align-items: center; gap: var(--ig-b-8); }
.card > .border-bottom.p-3 > h6,
.card > .border-bottom.p-3 > h5,
.card > .border-bottom.px-3.py-3 > h6,
.card > .border-bottom.px-3.py-3 > h5,
.card > .border-bottom.px-3.py-2 > h6,
.card > .border-bottom.px-3.py-2 > h5,
.card > .border-bottom.p-3 > div:first-child > h6,
.card > .border-bottom.p-3 > div:first-child > h5,
.card > .border-bottom.px-3.py-3 > div:first-child > h6,
.card > .border-bottom.px-3.py-3 > div:first-child > h5,
.card > .border-bottom.px-3.py-2 > div:first-child > h6,
.card > .border-bottom.px-3.py-2 > div:first-child > h5 { display: flex; align-items: center; gap: var(--ig-b-8); margin: 0; font-size: var(--ig-fs-15); font-weight: var(--ig-fw-kalin); line-height: var(--ig-lh-baslik); color: var(--ig-metin); }
.card.p-3 > h6:first-child,
.card.p-3 > h5:first-child { display: flex; align-items: center; gap: var(--ig-b-8); margin: -1rem -1rem 1rem; padding: var(--ig-b-16) var(--ig-b-20); font-size: var(--ig-fs-15); font-weight: var(--ig-fw-kalin); line-height: var(--ig-lh-baslik); color: var(--ig-metin); border-bottom: 1px solid var(--ig-cizgi); }
.card.p-3 > h6:first-child .lucide,
.card.p-3 > h5:first-child .lucide { width: 16px; height: 16px; padding: 0; color: var(--ig-soluk); background: none; }
/* is/gorevler/kanban.php · 6450-6480. §1 Durum etiketi 22px. */
.is-task-priority-pill,
.badge.is-task-priority-pill-0,
.badge.is-task-priority-pill-1,
.badge.is-task-priority-pill-2,
.badge.is-task-priority-pill-3 { display: inline-flex; align-items: center; gap: var(--ig-b-4); height: 22px; padding: 0 8px; font-size: var(--ig-fs-12); font-weight: var(--ig-fw-orta); line-height: 1; color: var(--ig-soluk); background-color: var(--ig-gri-zemin); border: 1px solid var(--ig-cizgi); border-radius: var(--ig-r-4); }
.badge.is-task-priority-pill-1 { color: var(--ig-mavi); background-color: var(--ig-mavi-zemin); border-color: var(--ig-mavi-cizgi); }
.badge.is-task-priority-pill-2 { color: var(--ig-sari-metin); background-color: var(--ig-sari-zemin); border-color: var(--ig-sari-cizgi); }
.badge.is-task-priority-pill-3 { color: var(--ig-kirmizi); background-color: var(--ig-kirmizi-etiket-zemin); border-color: var(--ig-kirmizi-etiket-cizgi); }
/* assets/js/smm-posts.js · 10248-10283 */
.smm-variation-card { display: flex; flex-direction: column; height: 100%; overflow: hidden; background-color: var(--ig-yuzey); border: 1px solid var(--ig-cizgi); border-radius: var(--ig-r-8); }
.smm-variation-image { position: relative; display: flex; align-items: center; justify-content: center; min-height: 260px; background-color: var(--ig-zemin); }
.smm-variation-image img { width: 100%; height: 100%; object-fit: cover; }
.smm-variation-body { display: flex; flex-direction: column; gap: var(--ig-b-8); padding: var(--ig-b-16); }
/* muh/cari/cari_listesi.php · 10923 */
.mobil-session-detail-value .badge { display: inline-flex; align-items: center; }

/* daterangepicker (b'den a'ya: 16 dosya) · custom.css:1834-1851, 1948-1954.
   daterangepicker.css sonra yüklenir → body öneki (9.16 ile aynı yöntem). */
body .daterangepicker .daterangepicker_input { position: relative; }
body .daterangepicker .input-mini { display: flex; align-items: center; height: var(--ig-hap-h); padding: 0 10px 0 32px; line-height: 30px; }
body .daterangepicker .daterangepicker_input i { position: absolute; top: 50%; left: 10px; width: 14px; line-height: 1; text-align: center; transform: translateY(-50%); }
body .daterangepicker .drp-buttons { display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-end; gap: var(--ig-b-8); }

/* ==========================================================================
   10. SAYFAYA ÖZEL
   ========================================================================== */
/* 10.3 ANA SAYFA + MUH DASHBOARD */
/* ==========================================================================
   views/anasayfa.php (panel-canvas/Ana.dc.html, AnaMobil.dc.html; gen_panel.ana_masaustu)
   views/muh/dashboard.php (modul-varyant-c/ModulC.dc.html; gen_modul_c.masaustu)
   Yalnız --ig-* token'ları; isgelir-ui.css 4. bölüm (.ig-bant, .ig-bant-govde, .ig-kart-baslik) üstüne.
   ========================================================================== */

/* --- 10.3.1 Ana sayfa kabuğu: sidebar yüklenmez, üst çubuk view'da ------- */
body.common-dashboard-body .ig-ana-kabuk .ig-kabuk-ara { margin: 0; }
body.common-dashboard-body .ig-ana-kabuk .ig-kabuk-kullanici { cursor: default; }

/* --- 10.3.2 Modül kartları (gen_panel.modul_kart; köşe ögesi yok, kapı 67) - */
.ig-ana-moduller {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: var(--ig-b-16);
}
a.card.ig-ana-modul {
  display: flex;
  flex-direction: column;
  height: 100%;
  color: var(--ig-metin);
  text-decoration: none;
}
a.card.ig-ana-modul:hover { color: var(--ig-metin); border-color: var(--ig-cizgi-koyu); }
a.card.ig-ana-modul:focus-visible { outline: 0; box-shadow: var(--ig-odak); }
.ig-ana-modul-govde {
  display: flex;
  flex: 1;
  flex-direction: column;
  gap: var(--ig-b-6);
  padding: 18px var(--ig-b-20) var(--ig-b-16);
}
.ig-ana-modul-bas { display: flex; align-items: center; gap: var(--ig-b-8); min-width: 0; }
.ig-ana-modul-ad { font-size: var(--ig-fs-16); font-weight: var(--ig-fw-kalin); letter-spacing: -0.005em; }
.ig-ana-modul-metin { font-size: var(--ig-fs-13); line-height: 1.45; color: var(--ig-soluk); }
.ig-ana-modul-alt {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: var(--ig-b-8);
  padding: var(--ig-b-12) var(--ig-b-20) 14px;
  border-top: 1px solid var(--ig-cizgi);
}
.ig-ana-modul-etiket { font-size: var(--ig-fs-12); color: var(--ig-soluk); }
.ig-ana-modul-deger {
  font-size: var(--ig-fs-20);
  font-weight: var(--ig-fw-kalin);
  letter-spacing: -0.01em;
  white-space: nowrap;
  font-variant-numeric: tabular-nums;
}

/* --- 10.3.3 Hatırlatma ve sohbet kartları (hatirlatmalar_kart, chat_kart) - */
.ig-ana-alt {
  display: grid;
  grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr);
  gap: var(--ig-b-16);
  align-items: start;
  margin-top: var(--ig-b-24);
  padding-bottom: var(--ig-b-32);
}
.ig-ana-alt > .card { overflow: hidden; }
.ig-ana-sayac { font-size: var(--ig-fs-13); color: var(--ig-soluk); white-space: nowrap; }
.ig-ana-sayac strong { font-weight: var(--ig-fw-kalin); color: var(--ig-metin); }
.ig-ana-satir,
.ig-ana-oda {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: var(--ig-b-12);
  align-items: center;
  padding: var(--ig-b-12) var(--ig-b-20);
  color: var(--ig-metin);
  text-decoration: none;
  border-top: 1px solid var(--ig-cizgi);
}
.ig-ana-satir { grid-template-columns: 56px minmax(0, 1fr) auto; gap: var(--ig-b-16); }
a.ig-ana-satir:hover,
a.ig-ana-oda:hover { color: var(--ig-metin); background-color: var(--ig-yesil-hover); }
.ig-ana-satir:focus-visible,
.ig-ana-oda:focus-visible { outline: 2px solid var(--ig-birincil); outline-offset: -2px; }
.ig-ana-satir-sayi {
  font-size: var(--ig-fs-20);
  font-weight: var(--ig-fw-kalin);
  letter-spacing: -0.01em;
  text-align: right;
  font-variant-numeric: tabular-nums;
}
.ig-ana-metin { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.ig-ana-metin-ad { font-size: var(--ig-fs-14); font-weight: var(--ig-fw-orta); }
.ig-ana-metin-alt {
  overflow: hidden;
  font-size: var(--ig-fs-13);
  color: var(--ig-soluk);
  white-space: nowrap;
  text-overflow: ellipsis;
}
.ig-ana-ok { display: flex; color: var(--ig-girdi); }
.ig-ana-oda-sag { display: flex; align-items: center; gap: var(--ig-b-8); }
.ig-ana-oda-zaman { font-size: var(--ig-fs-12); color: var(--ig-soluk); white-space: nowrap; }

/* --- 10.3.4 Muhasebe genel özet ızgarası (gen_modul_c.masaustu: 8 + 4, alt 12) */
.ig-muh-ozet {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: var(--ig-b-16);
  align-items: start;
  padding-bottom: var(--ig-b-32);
}
.ig-muh-ozet-sol,
.ig-muh-ozet-sag { display: flex; flex-direction: column; gap: var(--ig-b-16); min-width: 0; }
.ig-muh-ozet-sol { grid-column: span 8; }
.ig-muh-ozet-sag { grid-column: span 4; }
.ig-muh-ozet-alt { grid-column: span 12; min-width: 0; }
.ig-muh-ozet .card > .card-body { padding-top: 0; }
.ig-muh-ozet .card.p-0 { overflow: hidden; }
.ig-muh-cari {
  display: block;
  max-width: 220px;
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
}
.ig-muh-ozet-alt .ig-muh-cari { max-width: 480px; }

/* --- 10.3.5 Grafik kartı (kart_siparis, kart_depozito; dash-chart-card yerine) */
.ig-grafik-kutu { position: relative; height: 252px; margin-top: var(--ig-b-8); }
.ig-grafik-kutu--halka { height: 180px; margin: var(--ig-b-16) 0 var(--ig-b-8); }
.ig-grafik-not {
  margin: var(--ig-b-12) 0 0;
  padding-top: var(--ig-b-12);
  font-size: var(--ig-fs-13);
  color: var(--ig-soluk);
  border-top: 1px solid var(--ig-cizgi);
}
.ig-grafik-not strong { font-weight: var(--ig-fw-kalin); color: var(--ig-metin); }
.ig-lejant { display: flex; flex-wrap: wrap; gap: 14px; }
.ig-lejant-oge {
  display: inline-flex;
  align-items: center;
  gap: var(--ig-b-6);
  font-size: var(--ig-fs-12);
  color: var(--ig-metin-2);
  white-space: nowrap;
}
.ig-lejant-oge::before {
  content: "";
  width: 10px;
  height: 10px;
  border-radius: 2px;
  background-color: var(--ig-birincil);
}
.ig-lejant-oge--ikincil::before { background-color: var(--ig-mavi); }
.ig-lejant-oge--turuncu::before { background-color: var(--ig-turuncu); }
.ig-lejant-oge--cizgi::before { width: 14px; height: 2px; border-radius: 0; background-color: var(--ig-metin-2); }
.ig-lejant-nokta {
  display: inline-block;
  flex: none;
  width: 10px;
  height: 10px;
  border-radius: 2px;
  background-color: var(--ig-soluk);
}

/* --- 10.3.6 Sipariş aşamaları (kart_asama) -------------------------------- */
.ig-asama-ust {
  display: flex;
  flex-direction: column;
  gap: var(--ig-b-12);
  padding-bottom: var(--ig-b-16);
  border-bottom: 1px solid var(--ig-cizgi);
}
.ig-asama-toplam { display: flex; align-items: baseline; justify-content: space-between; gap: var(--ig-b-12); }
.ig-asama-etiket { font-size: var(--ig-fs-13); color: var(--ig-soluk); white-space: nowrap; }
.ig-asama-deger { font-size: 24px; font-weight: var(--ig-fw-kalin); letter-spacing: -0.01em; font-variant-numeric: tabular-nums; }
.ig-asama-adimlar { display: flex; align-items: center; justify-content: space-between; gap: var(--ig-b-8); }
.ig-asama-adim { display: flex; flex-direction: column; gap: var(--ig-b-4); }
.ig-asama-adim-ad { font-size: var(--ig-fs-12); color: var(--ig-soluk); white-space: nowrap; }
.ig-asama-adim-deger { font-size: var(--ig-fs-15); font-weight: var(--ig-fw-kalin); font-variant-numeric: tabular-nums; }
.ig-asama-ok { display: flex; color: var(--ig-girdi); }
.ig-asama-liste { display: flex; flex-direction: column; margin: 0; padding: 0; list-style: none; }
.ig-asama-satir {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--ig-b-12);
  padding: var(--ig-b-8) 0;
  font-size: var(--ig-fs-13);
  border-top: 1px solid var(--ig-cizgi);
}
.ig-asama-ad { display: flex; align-items: center; gap: var(--ig-b-8); min-width: 0; }
.ig-asama-sayi { white-space: nowrap; font-variant-numeric: tabular-nums; }
.ig-asama-sayi strong { font-weight: var(--ig-fw-kalin); }
.ig-asama-oran { color: var(--ig-soluk); }

/* --- 10.3.7 Dar ekran (AnaMobil, ModulCMobil) ----------------------------- */
@media (max-width: 1199.98px) {
  .ig-ana-moduller { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ig-ana-alt { grid-template-columns: minmax(0, 1fr); }
  .ig-muh-ozet-sol,
  .ig-muh-ozet-sag { grid-column: span 12; }
}
@media (max-width: 991.98px) {
  body.common-dashboard-body .ig-ana-kabuk .ig-kabuk-ust { flex-wrap: wrap; }
  body.common-dashboard-body .ig-ana-kabuk .ig-kabuk-ara { display: flex; flex-basis: 100%; order: 3; }
}
@media (max-width: 767.98px) {
  .ig-ana-moduller { grid-template-columns: minmax(0, 1fr); gap: var(--ig-b-8); }
  a.card.ig-ana-modul {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: var(--ig-b-12);
    padding: 14px var(--ig-b-16);
  }
  .ig-ana-modul-govde { gap: 3px; padding: 0; }
  .ig-ana-modul-ad { font-size: var(--ig-fs-15); }
  .ig-ana-modul-alt { flex-direction: column-reverse; align-items: flex-end; gap: 0; padding: 0; border-top: 0; }
  .ig-ana-modul-deger { font-size: var(--ig-fs-16); }
  .ig-ana-alt { margin-top: var(--ig-b-16); }
  .ig-grafik-kutu { height: 220px; }
  .ig-muh-cari,
  .ig-muh-ozet-alt .ig-muh-cari { max-width: 160px; }
}

/* 10.2 CARİ DETAY */
/* 10.2 CARİ DETAY */
/* ==========================================================================
   views/muh/cari/cari_detayi_{navbar,ozet,hareketler,genel}.php (2026-09-15).
   Kaynak: docs/tasarim/web-genel/cari-detay/gen_cari_detay.py (CariOzet, CariHareket, CariOzetMobil).
   Token (1.) ve 3-4. bölüm bileşenleri yeniden tanımlanmaz; yalnız sayfa yerleşimi.
   ========================================================================== */

/* --- 10.2.1 Gövde: sekme kartı ayrı sarmalayıcıda, içerik altında ---------- */
.ig-bant-govde.ig-cari-govde {
  margin-top: 0;
  padding-bottom: var(--ig-b-24);
}

/* --- 10.2.2 Birleşik kart: sekme şeridi + araç çubuğu + tablo (CariHareket) - */
.ig-cari-birlesik {
  overflow: hidden;
  margin-bottom: var(--ig-b-16);
}
.ig-cari-birlesik > .ig-detay-sekme {
  margin-bottom: 0;
  border: 0;
  border-bottom: 1px solid var(--ig-cizgi);
  border-radius: 0;
  box-shadow: none;
}
.ig-cari-birlesik > .ig-filtre {
  border-bottom: 1px solid var(--ig-cizgi);
}
.ig-cari-birlesik .table > thead > tr > th {
  border-top: 0;
}
.ig-cari-sayfalama {
  display: flex;
  justify-content: flex-end;
  padding: var(--ig-b-12) var(--ig-b-16);
  border-top: 1px solid var(--ig-cizgi);
}

/* --- 10.2.3 Ekstre tablosu (gen_cari_detay.e_satir / e_ozel_satir) --------- */
.ig-cari-tablo > tbody > tr:not(.is-toplam) > td:first-child {
  font-weight: var(--ig-fw-normal);
}
.ig-cari-tablo .ig-cari-belge {
  font-weight: var(--ig-fw-kalin);
  color: var(--ig-yesil-metin);
  text-decoration: none;
}
.ig-cari-tablo .ig-cari-belge:hover {
  text-decoration: underline;
  text-underline-offset: 3px;
}
.ig-cari-tablo .ig-cari-belge:focus-visible {
  outline: 0;
  border-radius: var(--ig-r-4);
  box-shadow: var(--ig-odak);
}
.ig-cari-etiketler {
  display: flex;
  gap: var(--ig-b-4);
}
.ig-cari-bos {
  color: var(--ig-girdi);
}
.ig-cari-alt-metin {
  display: block;
  margin-top: 2px;
  font-size: var(--ig-fs-12);
  font-weight: var(--ig-fw-normal);
  color: var(--ig-soluk);
  font-variant-numeric: tabular-nums;
}
.ig-cari-uyari {
  margin: 0 0 var(--ig-b-16);
  font-size: var(--ig-fs-13);
  color: var(--ig-sari-metin);
}

/* --- 10.2.4 Özet yerleşimi: ana sütun 8 + yan sütun 4 (CariOzet) ----------- */
.ig-cari-ozet {
  display: grid;
  grid-template-columns: minmax(0, 2fr) minmax(0, 1fr);
  gap: var(--ig-b-16);
  align-items: start;
}
.ig-cari-sutun {
  display: flex;
  flex-direction: column;
  gap: var(--ig-b-16);
  min-width: 0;
}
.ig-cari-kart-govde {
  padding: 0 var(--ig-b-20) var(--ig-b-20);
}
.ig-cari-kart-govde--liste {
  padding-bottom: var(--ig-b-8);
}
.ig-cari-deger-soluk {
  color: var(--ig-soluk);
}
@media (max-width: 991.98px) {
  .ig-cari-ozet { grid-template-columns: minmax(0, 1fr); gap: var(--ig-b-12); }
  .ig-cari-sutun { gap: var(--ig-b-12); }
  .ig-cari-ozet .ig-bilgi-izgara { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* 10.1 CARİ LİSTESİ */
/* 10.1 CARİ LİSTESİ */
/* muh/cari/cari_listesi.php (müşteriler / tedarikçiler / cari listesi) · liste-c/ListeC.
   Bant, araç çubuğu, seçim çubuğu, satır işlemleri, sayfalama ve panel ortak sınıflardan (3–4, 8) gelir;
   burada yalnız bu tabloya özgü hücreler var. */
.ig-cari-kart {
  margin-bottom: var(--ig-b-24);
  overflow: hidden;
}
.ig-cari-kart .table > :not(caption) > * > .ig-sec-hucre {
  width: 36px;
  padding-right: 0;
}
.ig-cari-kart .ig-sec-hucre .form-check-input {
  display: block;
}
/* Ünvan hücresi iki satır: ad (600) + kod · kişi · kategori · vergi no · telefon */
.ig-cari-kart .table > tbody > tr > td {
  padding-top: 6px;
  padding-bottom: 6px;
}
.ig-cari-unvan {
  font-weight: var(--ig-fw-kalin);
  color: var(--ig-metin);
  text-decoration: none;
}
.ig-cari-unvan:hover {
  color: var(--ig-yesil-metin);
  text-decoration: underline;
  text-underline-offset: 3px;
}
.ig-cari-meta {
  max-width: 420px;
  overflow: hidden;
  font-size: var(--ig-fs-12);
  font-weight: var(--ig-fw-normal);
  color: var(--ig-soluk);
  white-space: nowrap;
  text-overflow: ellipsis;
}
.ig-cari-soluk {
  color: var(--ig-soluk);
}
.ig-cari-baglanti {
  padding: 0;
  font-size: var(--ig-fs-13);
  color: var(--ig-yesil-metin);
  white-space: nowrap;
  text-decoration: none;
  background: none;
  border: 0;
}
.ig-cari-baglanti:hover {
  color: var(--ig-yesil-metin);
  text-decoration: underline;
  text-underline-offset: 3px;
}
.ig-cari-baglanti:focus-visible,
.ig-cari-unvan:focus-visible {
  outline: 0;
  border-radius: var(--ig-r-4);
  box-shadow: var(--ig-odak);
}
.ig-cari-bakiye {
  font-weight: var(--ig-fw-kalin);
}
.ig-cari-yon {
  font-size: var(--ig-fs-12);
  font-weight: var(--ig-fw-normal);
  color: var(--ig-soluk);
}
/* Yeni cari panelinde ilk adres bölümü (eski modaldaki iç kart yerine ayraçlı bölüm) */
.ig-cari-panel-bolum {
  margin-top: var(--ig-b-16);
  padding-top: var(--ig-b-16);
  border-top: 1px solid var(--ig-cizgi);
}
@media (max-width: 767.98px) {
  .ig-cari-meta {
    max-width: 240px;
  }
}

/* ==========================================================================
   9b. MİRAS ek — kalan sınıflar (envanter 2. tur)
   ========================================================================== */
/* 9b. MİRAS ek — kalan 260 sınıf */
/* ==========================================================================
   Kaynak: CSS-KIRILMA-ENVANTERI.md (2026-09-15 21:09, 57 view / 260 sınıf).
   9. bölümdeki gibi eski görünüm kopyalanmaz; yalnız --ig-* token'ları.
   Satır numaraları custom.css (yorumsuz tarama satırı ±100).
   Kapı 67: kutu-üstte-ikon / satır başı ikon kutusu gizlenir (stat-icon,
   settings-card-icon, is-tree-item-icon, is-stage-node-icon-wrap,
   is-workbench-detail-summary-icon, org-tree-node-icon).
   Kural yazılmayanlar (yapısal yanlış pozitif, 19):
   - label, line, content, header, footer: makbuz.php, bordro_yazdir.php,
     personel_yazdir.php, proje_yazdir.php kendi <style> bloğunu taşır ve
     isgelir-ui.css yüklemez; footer.php "header" JS ile açılan yazdırma
     penceresine kendi <style>'ıyla yazılır; tasarim_rehberi "content" <code> metni.
   - primary, success, warning, info: PHP ternary parçası ("bg-<?= … 'success' ?>"),
     gerçek sınıf bg-success / text-warning Bootstrap'te tanımlı.
   - bg-img, content-top-agile, h-p100, hold-transition, light-logo, mt-10,
     p-20, p-40, ps-15, rounded10: auth/register.php style.css'i kendisi yükler.
   ========================================================================== */

/* --- 9b.1 Seçim kutusu · custom.css:3058-3092 (.it-erisim-*) ------------------
   TUTARLILIK §1 "Seçim": 16×16, radius 3, seçiliyken yeşil dolu. Eski style.css
   [type=checkbox] gizleme hilesi (hafıza: legacy checkbox hijack) geri gelirse
   diye position/opacity açıkça sıfırlanır; appearance:none zorunlu. */
.it-erisim-checkbox.form-check-input,
.it-erisim-switch.form-check-input {
  position: static;
  left: auto;
  float: none;
  flex: none;
  margin: 0;
  opacity: 1;
  vertical-align: middle;
  cursor: pointer;
  -webkit-appearance: none;
  appearance: none;
  background-color: var(--ig-yuzey);
  background-repeat: no-repeat;
  background-position: center;
  border: 1px solid var(--ig-girdi);
  box-shadow: none;
  transition: background-color 0.12s ease, border-color 0.12s ease;
}
.it-erisim-checkbox.form-check-input {
  width: 16px;
  min-width: 16px;
  height: 16px;
  border-radius: var(--ig-r-3);
  background-size: 12px 12px;
}
.it-erisim-checkbox.form-check-input:checked,
.it-erisim-checkbox.form-check-input:indeterminate,
.it-erisim-switch.form-check-input:checked {
  background-color: var(--ig-birincil);
  border-color: var(--ig-birincil);
}
.it-erisim-checkbox.form-check-input:focus-visible,
.it-erisim-switch.form-check-input:focus-visible {
  border-color: var(--ig-koyu);
  outline: none;
  box-shadow: var(--ig-odak);
}
.it-erisim-checkbox.form-check-input:focus:not(:focus-visible),
.it-erisim-switch.form-check-input:focus:not(:focus-visible) { box-shadow: none; }
.it-erisim-checkbox.form-check-input:disabled,
.it-erisim-switch.form-check-input:disabled { cursor: not-allowed; opacity: 0.5; }
/* Anahtar: kutu dilinin yatay hali, 32×18 hap; düğüm Bootstrap form-switch görseli */
.it-erisim-switch.form-check-input {
  width: 32px;
  min-width: 32px;
  height: 18px;
  border-radius: 9px;
  background-position: left center;
  background-size: contain;
}
.it-erisim-switch.form-check-input:checked { background-position: right center; }
/* Etiket: 14px METIN, kutuyla 8px aralık (form-check-label 3.x dili) */
.it-erisim-checkbox + .form-check-label,
.it-erisim-switch + .form-check-label {
  margin-left: var(--ig-b-8);
  font-size: var(--ig-fs-14);
  color: var(--ig-metin);
  cursor: pointer;
}

/* --- 9b.2 Ayarlar kartı · custom.css:127-170 ---------------------------------
   Kart başlığı 15/600, alt satır 13 SOLUK. Renkli kutu içinde ikon yok → gizli. */
.settings-card {
  display: flex;
  align-items: center;
  gap: var(--ig-b-12);
  height: 100%;
  padding: var(--ig-b-16);
  color: var(--ig-metin);
  text-decoration: none;
  background: var(--ig-yuzey);
  border: 1px solid var(--ig-cizgi);
  border-radius: var(--ig-r-8);
  box-shadow: var(--ig-golge-kart);
  transition: border-color 0.12s ease;
}
.settings-card:hover,
.settings-card:focus-visible { color: var(--ig-metin); text-decoration: none; border-color: var(--ig-cizgi-koyu); }
.settings-card:focus-visible { outline: none; box-shadow: var(--ig-odak); }
.settings-card-icon,
.stat-icon { display: none; }
.settings-card-text { min-width: 0; }
.settings-card-text h5 { margin: 0 0 var(--ig-b-2); font-size: var(--ig-fs-15); font-weight: var(--ig-fw-kalin); line-height: var(--ig-lh-baslik); color: var(--ig-metin); }
.settings-card-text p { margin: 0; font-size: var(--ig-fs-13); line-height: 1.4; color: var(--ig-soluk); }

/* --- 9b.3 Hızlı erişim kartı · custom.css:5522-5562 (ik/svk anasayfa) ----------
   Kart başlığı 15/600, ikon başlıkla aynı satırda 16px (kutusuz). */
.dash-action-card {
  display: flex;
  flex-direction: column;
  height: 100%;
  overflow: hidden;
  color: var(--ig-metin);
  background: var(--ig-yuzey);
  border: 1px solid var(--ig-cizgi);
  border-radius: var(--ig-r-8);
  box-shadow: var(--ig-golge-kart);
  transition: border-color 0.12s ease;
}
.dash-action-card:hover { border-color: var(--ig-cizgi-koyu); }
.dash-action-header {
  display: flex;
  align-items: center;
  gap: var(--ig-b-8);
  padding: var(--ig-b-12) var(--ig-b-16);
  font-size: var(--ig-fs-15);
  font-weight: var(--ig-fw-kalin);
  border-bottom: 1px solid var(--ig-cizgi);
}
.dash-action-header strong { font-weight: var(--ig-fw-kalin); }
.dash-action-header .lucide { width: 16px; height: 16px; color: var(--ig-metin-2); }
.dash-action-body { display: flex; flex: 1; align-items: center; min-height: 56px; padding: var(--ig-b-12) var(--ig-b-16); font-size: var(--ig-fs-14); }
.dash-action-body a { color: var(--ig-yesil-metin); }
.dash-action-body a:hover { color: var(--ig-birincil-hover); }

/* --- 9b.4 Hap filtreleri · custom.css:343-372 (.pill-filter), 1353-1376
   (.takvim-filter-btn), 6882-6904 (.kasa-*), 6956-6968 (.odeme-tipi-btn) --------
   §1 Hap: 32px, radius 6, 13px; seçili yeşil zemin + yeşil metin, seçisiz beyaz kenarlı. */
.pill-filter,
.takvim-filter-btn,
.kasa-item,
.odeme-tipi-btn {
  display: inline-flex;
  align-items: center;
  gap: var(--ig-b-6);
  height: var(--ig-hap-h);
  padding: 0 var(--ig-b-12);
  font-size: var(--ig-fs-13);
  font-weight: var(--ig-fw-orta);
  line-height: 1;
  color: var(--ig-metin-2);
  white-space: nowrap;
  text-decoration: none;
  cursor: pointer;
  user-select: none;
  background: var(--ig-yuzey);
  border: 1px solid var(--ig-cizgi);
  border-radius: var(--ig-r-6);
  transition: background-color 0.12s ease, border-color 0.12s ease, color 0.12s ease;
}
.pill-filter:hover,
.takvim-filter-btn:hover,
.kasa-item:hover,
.odeme-tipi-btn:hover { color: var(--ig-metin); text-decoration: none; background: var(--ig-zemin); border-color: var(--ig-cizgi-koyu); }
.pill-filter.active,
.takvim-filter-btn.active,
.kasa-item.active,
.odeme-tipi-btn.active { color: var(--ig-yesil-metin); background: var(--ig-yesil-acik); border-color: var(--ig-yesil-cizgi); }
.pill-filter:focus-visible,
.takvim-filter-btn:focus-visible,
.odeme-tipi-btn:focus-visible { outline: none; box-shadow: var(--ig-odak); }
.pill-filter .pill-count,
.takvim-filter-btn .badge { font-size: var(--ig-fs-12); font-weight: var(--ig-fw-orta); color: var(--ig-soluk); background: none; }
.takvim-filter-btn.active .badge { color: var(--ig-yesil-metin); }
.kasa-list { display: flex; flex-wrap: wrap; gap: var(--ig-b-6); }
.filtre-temizle-btn { display: inline-flex; align-items: center; justify-content: center; width: var(--ig-hap-h); height: var(--ig-hap-h); padding: 0; }

/* --- 9b.5 Adres doğrulama notu · custom.css:311-330 (cari adres) ------------------
   Not bandı dili (3.11 .alert): 13px, radius 6, 1px kenar. Durum JS ile değişir. */
.adres-google-status,
.adres-selection-summary {
  margin-top: var(--ig-b-8);
  padding: var(--ig-b-8) var(--ig-b-12);
  font-size: var(--ig-fs-13);
  line-height: 1.45;
  color: var(--ig-metin-2);
  background: var(--ig-zemin);
  border: 1px solid var(--ig-cizgi);
  border-radius: var(--ig-r-6);
}
.adres-google-status.is-info { color: var(--ig-mavi); background: var(--ig-mavi-zemin); border-color: var(--ig-mavi-cizgi); }
.adres-google-status.is-error { color: var(--ig-kirmizi); background: var(--ig-kirmizi-zemin); border-color: var(--ig-kirmizi-cizgi); }
.adres-google-status.is-success { color: var(--ig-yesil-metin); background: var(--ig-yesil-acik); border-color: var(--ig-yesil-cizgi); }

/* --- 9b.6 Cari arama açılır listesi · custom.css:303-309 (teklif bilgiler) --------- */
.autocomplete-dropdown {
  position: absolute;
  top: 100%;
  right: 0;
  left: 0;
  z-index: 1050;
  max-height: 240px;
  margin-top: var(--ig-b-4);
  overflow-y: auto;
  background: var(--ig-yuzey);
  border: 1px solid var(--ig-cizgi);
  border-radius: var(--ig-r-6);
  box-shadow: var(--ig-golge-popover);
}
.cari-sonuc-item { display: block; padding: var(--ig-b-8) var(--ig-b-12); font-size: var(--ig-fs-13); color: var(--ig-metin); cursor: pointer; }
.cari-sonuc-item:hover,
.cari-sonuc-item:focus { background: var(--ig-yesil-secili); }

/* --- 9b.7 Fiyat listesi detayı · custom.css:1927-2083 (muh/fiyatlandirma) --------
   Gradyan başlık kalktı: kart başlığı 15/600 + 12px sayaç; satır 44px, 13px;
   ekle düğmesi §1 satır işlemi (32×32 çerçevesiz, 18px ikon). */
.fiyat-panel {
  height: calc(100vh - 200px);
  overflow-y: auto;
  background: var(--ig-yuzey);
  border: 1px solid var(--ig-cizgi);
  border-top: 0;
  border-radius: 0 0 var(--ig-r-8) var(--ig-r-8);
  scrollbar-width: thin;
}
.fiyat-panel-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--ig-b-8);
  padding: var(--ig-b-12) var(--ig-b-16);
  background: var(--ig-yuzey);
  border: 1px solid var(--ig-cizgi);
  border-radius: var(--ig-r-8) var(--ig-r-8) 0 0;
}
.fiyat-panel-header h5 { margin: 0; font-size: var(--ig-fs-15); font-weight: var(--ig-fw-kalin); color: var(--ig-metin); }
.fiyat-panel-header .badge { padding: 0; font-size: var(--ig-fs-12); font-weight: var(--ig-fw-orta); color: var(--ig-soluk); background: none; }
/* Aktif (listedeki) panel yeşil 2px üst çizgiyle ayrışır; kaynak panel nötr */
.fiyat-panel-header.panel-green { box-shadow: inset 0 2px 0 var(--ig-birincil); }
.fiyat-panel-header.panel-gray { background: var(--ig-zemin); }
.fiyat-search-box { padding: var(--ig-b-12) 0; background: var(--ig-yuzey); }
.fiyat-search-box input {
  width: 100%;
  height: var(--ig-hap-h);
  padding: 0 var(--ig-b-12);
  font-size: var(--ig-fs-13);
  color: var(--ig-metin);
  background: var(--ig-yuzey);
  border: 1px solid var(--ig-cizgi);
  border-radius: var(--ig-r-6);
}
.fiyat-search-box input:focus { border-color: var(--ig-koyu); outline: none; box-shadow: var(--ig-odak); }
.urun-satir,
.fiyat-listesi-satir {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--ig-b-12);
  min-height: var(--ig-satir-h);
  padding: var(--ig-b-6) var(--ig-b-16);
  font-size: var(--ig-fs-13);
  border-bottom: 1px solid var(--ig-cizgi);
}
.urun-satir { cursor: pointer; }
.urun-satir:hover,
.fiyat-listesi-satir:hover { background: var(--ig-yesil-hover); }
.urun-satir.eklendi { pointer-events: none; opacity: 0.6; background: var(--ig-yesil-secili); }
.urun-bilgi { flex: 1; min-width: 0; }
.urun-adi { font-size: var(--ig-fs-13); font-weight: var(--ig-fw-kalin); color: var(--ig-metin); }
.varyant-bilgi { font-size: var(--ig-fs-12); color: var(--ig-soluk); }
.ekle-btn {
  display: inline-flex;
  flex: none;
  align-items: center;
  justify-content: center;
  width: var(--ig-islem);
  height: var(--ig-islem);
  padding: 0;
  color: var(--ig-yesil-metin);
  cursor: pointer;
  background: none;
  border: 0;
  border-radius: var(--ig-r-6);
}
.ekle-btn:hover { background: var(--ig-yesil-acik); }
.ekle-btn .lucide,
.ekle-btn svg { width: 18px; height: 18px; }
.fiyat-input {
  width: 120px;
  height: var(--ig-hap-h);
  padding: 0 var(--ig-b-8);
  font-size: var(--ig-fs-13);
  font-variant-numeric: tabular-nums;
  text-align: right;
  background: var(--ig-yuzey);
  border: 1px solid var(--ig-cizgi);
  border-radius: var(--ig-r-6);
}
.fiyat-input:focus { border-color: var(--ig-koyu); outline: none; box-shadow: var(--ig-odak); }
/* §1 Boş durum: ortalı, 13–14px SOLUK; büyük süs ikonu gizli */
.empty-panel { padding: var(--ig-b-32) var(--ig-b-20); font-size: var(--ig-fs-14); color: var(--ig-soluk); text-align: center; }
.empty-panel i,
.empty-panel .lucide { display: none; }

/* --- 9b.8 İrsaliye satırları · custom.css:63-82, 1092-1107 ----------------------- */
.empty-row td { padding: var(--ig-b-24) var(--ig-b-16); font-size: var(--ig-fs-13); color: var(--ig-soluk); text-align: center; background: var(--ig-zemin); }
.birim-deger[readonly] { cursor: pointer; background: var(--ig-zemin); }
.birim-deger[readonly]:hover { background: var(--ig-gri-zemin); }
.dara-container { max-height: 120px; overflow-y: auto; }
/* Dara seçimi: segment dili (seçili yeşil kenar + açık yeşil zemin) */
.dara-btn { color: var(--ig-metin-2); background: var(--ig-yuzey); border: 1px solid var(--ig-cizgi); }
.dara-btn:hover { color: var(--ig-metin); background: var(--ig-zemin); }
.dara-btn.active { color: var(--ig-yesil-metin); background: var(--ig-yesil-acik); border-color: var(--ig-yesil-cizgi); }
/* Tartım girdisi: §1 tutar alanı 48px, 20px, sağa hizalı */
.tartim-modal-input { height: var(--ig-tutar-h); padding: 0 var(--ig-b-16); font-size: var(--ig-fs-20); line-height: var(--ig-tutar-h); font-variant-numeric: tabular-nums; text-align: right; }
.tartim-modal-input::placeholder { font-size: inherit; color: var(--ig-girdi); }

/* --- 9b.9 Puantaj çizelgesi · custom.css:1141-1177 (ik/puantaj) -----------------
   Hücre seçici .table ile birleşik: Bootstrap .table>:not(caption)>*>* (0,1,1)
   dolgusunu !important'sız ezmek için (0,2,0). */
.puantaj-sticky-col { position: sticky; left: 0; z-index: 2; min-width: 160px; max-width: 200px; background: var(--ig-yuzey); box-shadow: inset -1px 0 0 var(--ig-cizgi); }
thead .puantaj-sticky-col { z-index: 3; background: var(--ig-zemin); }
.table .puantaj-gun-th { min-width: 38px; padding: var(--ig-b-4) var(--ig-b-2); font-size: var(--ig-fs-12); text-align: center; }
.table .puantaj-cell,
.table .puantaj-cell-personal { padding: var(--ig-b-4) var(--ig-b-2); text-align: center; cursor: pointer; }
.table .puantaj-cell:hover,
.table .puantaj-cell-personal:hover { background: var(--ig-yesil-hover); }
.puantaj-badge { display: inline-flex; align-items: center; justify-content: center; min-width: 22px; height: 22px; padding: 0 var(--ig-b-4); font-size: var(--ig-fs-12); font-weight: var(--ig-fw-orta); border-radius: var(--ig-r-4); }

/* --- 9b.10 Yaklaşan etkinlikler · custom.css:1381-1402 (ik/takvim) --------------- */
.yaklasan-panel { max-height: 640px; overflow-y: auto; scrollbar-width: thin; }
.yaklasan-item { min-height: var(--ig-satir-h); transition: background-color 0.12s ease; }
.yaklasan-item:hover { background: var(--ig-yesil-hover); }
.yaklasan-tarih { width: 42px; line-height: 1.2; text-align: center; }
.yaklasan-tarih .fw-bold { font-size: var(--ig-fs-16); font-weight: var(--ig-fw-kalin); font-variant-numeric: tabular-nums; color: var(--ig-metin); }
.yaklasan-tarih small { font-size: var(--ig-fs-12); color: var(--ig-soluk); }

/* --- 9b.11 Tekil sınıflar ---------------------------------------------------------- */
/* custom.css:6992 · tahsilat_ekle iki sütun eşit boy */
.col-stretch { display: flex; flex-direction: column; }
.col-stretch > .card { flex: 1; }
/* custom.css:7541 · flex taşma */
.is-min-w-0 { min-width: 0; }
/* custom.css:7385 · Excel dışa aktarım kopyası (DataTables Buttons okur), ekranda yok */
.project-export-table { display: none; }
/* custom.css:9525-9530 · SVK GPS Leaflet haritası */
.svk-gps-map { height: 72vh; min-height: 520px; border-radius: var(--ig-r-8); }
.svk-gps-popup { min-width: 220px; font-size: var(--ig-fs-13); }
/* custom.css:9009-9011 · urt rapor ikinci seri rengi; §1 Renk: mor yok, ikinci seri mavi */
.bg-purple-light { background-color: var(--ig-mavi-zemin); }
.text-purple { color: var(--ig-mavi); }
/* custom.css:5565 · .border utility'si border-style'ı !important ile solid yazar;
   kesik çizgi yalnız !important ile kazanır (1/10). */
.border-dashed { border-style: dashed !important; }
/* style.css:23934 · Bootstrap 3 modal kapatma (fatura_olustur:203) → 5.x btn-close ölçüsü */
.modal-header .close {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: var(--ig-islem);
  height: var(--ig-islem);
  margin-left: auto;
  padding: 0;
  font-size: var(--ig-fs-20);
  line-height: 1;
  color: var(--ig-soluk);
  background: none;
  border: 0;
  border-radius: var(--ig-r-6);
}
.modal-header .close:hover { color: var(--ig-metin); background: var(--ig-gri-zemin); }

/* --- 9b.12 Chat kabuğu · custom.css:2640, 2867-2871, 6846-6854 (layout/footer) ----
   Ek menüsü seçeneği: renkli yuvarlak kutu yok, 16px ikon satırla aynı hizada. */
.chat-attach-option-icon { display: inline-flex; flex: none; align-items: center; justify-content: center; width: 16px; height: 16px; color: var(--ig-metin-2); background: none; }
.global-chat-back-btn { flex-shrink: 0; }
.chat-image-modal-content { color: var(--ig-beyaz); background: var(--ig-metin); }
.chat-image-preview-frame { display: flex; align-items: center; justify-content: center; width: 100%; min-height: 240px; max-height: 68vh; overflow: hidden; background: var(--ig-beyaz-cizgi); border-radius: var(--ig-r-8); }

/* --- 9b.13 Proje kartı · custom.css:7298-7444 (is/projeler liste, teklif/ziyaret oluştur)
   Kart radius 8, gölge kart; başlık 15/600; metrik = §1 bilgi ızgarası (12px etiket
   üstte, 14px değer altta); BÜYÜK HARF etiket kalktı. */
.is-project-card {
  overflow: hidden;
  background: var(--ig-yuzey);
  border: 1px solid var(--ig-cizgi);
  border-radius: var(--ig-r-8);
  box-shadow: var(--ig-golge-kart);
  transition: border-color 0.12s ease;
}
.is-project-card:hover { border-color: var(--ig-cizgi-koyu); }
.is-project-card-title { margin: 0; font-size: var(--ig-fs-15); font-weight: var(--ig-fw-kalin); line-height: var(--ig-lh-baslik); color: var(--ig-metin); }
.is-project-card-title a { color: inherit; text-decoration: none; }
.is-project-card-title a:hover { color: var(--ig-yesil-metin); }
.is-project-card-description {
  display: -webkit-box;
  margin: 0;
  overflow: hidden;
  font-size: var(--ig-fs-13);
  line-height: var(--ig-lh-govde);
  color: var(--ig-soluk);
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
}
.is-project-card .badge .lucide { width: 12px; height: 12px; margin-right: var(--ig-b-4); vertical-align: -2px; }
.is-project-action-icon { width: 16px; height: 16px; }
.is-project-metric,
.is-project-progress-panel { padding: var(--ig-b-12); background: var(--ig-zemin); border: 1px solid var(--ig-cizgi); border-radius: var(--ig-r-6); }
.is-project-progress-panel { background: var(--ig-yuzey); }
.is-project-metric-label { margin-bottom: var(--ig-b-4); font-size: var(--ig-fs-12); font-weight: var(--ig-fw-orta); color: var(--ig-soluk); }
.is-project-metric-value { font-size: var(--ig-fs-14); font-weight: var(--ig-fw-kalin); line-height: 1.4; color: var(--ig-metin); overflow-wrap: anywhere; }
.is-project-metric-note { margin-top: var(--ig-b-4); font-size: var(--ig-fs-12); color: var(--ig-soluk); }
.is-project-progress-bar { height: 6px; overflow: hidden; background: var(--ig-gri-zemin); border-radius: 3px; }
.is-project-progress-bar .progress-bar { background-color: var(--ig-birincil); }

/* --- 9b.14 Teklif çalışma masası · custom.css:11119-11534 (is/teklifler liste + detay)
   Segment = §1 detay sekme şeridi dili (seçili beyaz, gri zemin); kart = kart dili;
   fact = bilgi ızgarası; özet başlığındaki 44px ikon kutusu gizli (kapı 67). */
.is-workbench-segments { display: flex; gap: var(--ig-b-2); padding: var(--ig-b-4); overflow-x: auto; background: var(--ig-gri-zemin); border-radius: var(--ig-r-6); scrollbar-width: thin; }
.is-workbench-segment {
  display: inline-flex;
  flex: 1 0 auto;
  align-items: center;
  justify-content: space-between;
  gap: var(--ig-b-8);
  height: var(--ig-hap-h);
  padding: 0 var(--ig-b-12);
  font-size: var(--ig-fs-13);
  font-weight: var(--ig-fw-orta);
  color: var(--ig-metin-2);
  white-space: nowrap;
  text-decoration: none;
  border-radius: var(--ig-r-4);
}
.is-workbench-segment:hover { color: var(--ig-metin); text-decoration: none; }
.is-workbench-segment.active { font-weight: var(--ig-fw-kalin); color: var(--ig-metin); background: var(--ig-yuzey); box-shadow: var(--ig-golge-segment); }
.is-workbench-segment strong { font-size: var(--ig-fs-12); font-weight: var(--ig-fw-orta); font-variant-numeric: tabular-nums; color: var(--ig-soluk); }
.is-workbench-card,
.is-workbench-detail-summary { overflow: hidden; background: var(--ig-yuzey); border: 1px solid var(--ig-cizgi); border-radius: var(--ig-r-8); box-shadow: var(--ig-golge-kart); }
.is-workbench-card { transition: border-color 0.12s ease; }
.is-workbench-card:hover { border-color: var(--ig-cizgi-koyu); }
.is-workbench-card-body { display: flex; flex-direction: column; gap: var(--ig-b-12); height: 100%; padding: var(--ig-b-16); }
.is-workbench-card-head,
.is-workbench-detail-summary-head { display: flex; align-items: flex-start; justify-content: space-between; gap: var(--ig-b-12); }
.is-workbench-card-meta { display: flex; flex-wrap: wrap; align-items: center; gap: var(--ig-b-6); margin-bottom: var(--ig-b-4); font-size: var(--ig-fs-12); color: var(--ig-soluk); }
.is-workbench-card-meta span + span::before { content: "·"; margin-right: var(--ig-b-6); }
.is-workbench-card-code { font-weight: var(--ig-fw-kalin); color: var(--ig-yesil-metin); }
.is-workbench-card-title { margin: 0; font-size: var(--ig-fs-15); font-weight: var(--ig-fw-kalin); line-height: var(--ig-lh-baslik); color: var(--ig-metin); }
.is-workbench-card-title a { color: inherit; text-decoration: none; }
.is-workbench-card-title a:hover { color: var(--ig-yesil-metin); }
.is-workbench-card-customer,
.is-workbench-detail-summary-customer { display: flex; align-items: center; gap: var(--ig-b-6); margin-top: var(--ig-b-4); font-size: var(--ig-fs-13); color: var(--ig-soluk); }
.is-workbench-card-customer .lucide,
.is-workbench-detail-summary-customer .lucide { flex: none; width: 16px; height: 16px; color: var(--ig-soluk); }
.is-workbench-card-divider { height: 1px; background: var(--ig-cizgi); }
.is-workbench-card-facts { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--ig-b-12); }
.is-workbench-card-fact { min-width: 0; }
.is-workbench-card-fact span,
.is-workbench-card-fact small,
.is-workbench-detail-summary-facts span { display: block; font-size: var(--ig-fs-12); color: var(--ig-soluk); }
.is-workbench-card-fact strong,
.is-workbench-detail-summary-facts strong { display: block; margin-top: var(--ig-b-2); font-size: var(--ig-fs-14); font-weight: var(--ig-fw-kalin); font-variant-numeric: tabular-nums; color: var(--ig-metin); overflow-wrap: anywhere; }
.is-workbench-card-progress { padding: var(--ig-b-12); background: var(--ig-zemin); border-radius: var(--ig-r-6); }
.is-workbench-card-progress > div:first-child { display: flex; align-items: center; justify-content: space-between; gap: var(--ig-b-8); font-size: var(--ig-fs-12); color: var(--ig-soluk); }
.is-workbench-card-progress .progress { height: 6px; margin-top: var(--ig-b-8); background: var(--ig-gri-zemin); border-radius: 3px; }
.is-workbench-card-action { min-height: var(--ig-dugme-kart-h); }
.is-workbench-detail-summary { padding: var(--ig-b-16); }
.is-workbench-detail-summary-identity { display: flex; align-items: flex-start; gap: var(--ig-b-12); min-width: 0; }
.is-workbench-detail-summary-icon { display: none; }
.is-workbench-detail-summary-kicker { display: block; margin-bottom: var(--ig-b-2); font-size: var(--ig-fs-12); font-weight: var(--ig-fw-orta); color: var(--ig-soluk); }
.is-workbench-detail-summary h2 { margin: 0; font-size: var(--ig-fs-20); font-weight: var(--ig-fw-kalin); line-height: var(--ig-lh-baslik); letter-spacing: var(--ig-ls-baslik); color: var(--ig-metin); }
.is-workbench-detail-summary-facts { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--ig-b-12); margin-top: var(--ig-b-16); padding-top: var(--ig-b-12); border-top: 1px solid var(--ig-cizgi); }
.is-workbench-detail-summary-actions { display: flex; flex-wrap: wrap; gap: var(--ig-b-8); margin-top: var(--ig-b-16); }
.is-workbench-detail-summary-actions .lucide { width: 16px; height: 16px; }
.is-reference-tabs-scroll { overflow-x: auto; scrollbar-width: thin; }
.is-reference-tabs-scroll .detail-nav { flex-wrap: nowrap; justify-content: flex-start; min-width: max-content; }

/* --- 9b.15 Proje aşama akışı · custom.css:7565-8713 (is/projeler aşamalar, is/ayarlar)
   Eski --stage-* renk değişkenleri ve 4-5px renkli sol şerit kalktı; aşama durumu
   8px nokta (§1 detay durum şeridi nokta dili). Bölüm başlığı kart başlığı 15/600. */
.is-stage-page .card { border-color: var(--ig-cizgi); box-shadow: var(--ig-golge-kart); }
.is-stage-page .progress { height: 6px; background: var(--ig-gri-zemin); border-radius: 3px; }
.is-stage-flow-content { padding: 0; }
.is-stage-flow-section-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--ig-b-12);
  width: 100%;
  padding: var(--ig-b-12) var(--ig-b-16);
  color: inherit;
  text-align: left;
  cursor: pointer;
  background: var(--ig-yuzey);
  border: 1px solid var(--ig-cizgi);
  border-radius: var(--ig-r-8);
}
.is-stage-flow-section-head:hover { background: var(--ig-zemin); }
.is-stage-flow-section-head:focus-visible { outline: none; box-shadow: var(--ig-odak); }
.is-stage-flow-section-copy { min-width: 0; text-align: left; }
.is-stage-flow-section-title { margin: 0; font-size: var(--ig-fs-15); font-weight: var(--ig-fw-kalin); line-height: var(--ig-lh-baslik); color: var(--ig-metin); }
.is-stage-flow-section-side,
.is-stage-flow-section-arrow { display: flex; flex-shrink: 0; align-items: center; gap: var(--ig-b-8); color: var(--ig-soluk); }
.is-stage-flow-progress { min-width: 96px; }
.is-stage-flow-progress small { display: block; margin-top: var(--ig-b-4); font-size: var(--ig-fs-12); font-variant-numeric: tabular-nums; color: var(--ig-soluk); text-align: right; }
.is-stage-flow-tree { margin-top: var(--ig-b-12); }
.is-proje-asama-list { display: flex; flex-direction: column; gap: var(--ig-b-8); }
.asama-item { position: relative; min-width: 0; }
.asama-children { position: relative; display: flex; flex-direction: column; gap: var(--ig-b-8); margin: var(--ig-b-8) 0 0 var(--ig-b-16); padding-left: var(--ig-b-16); border-left: 1px solid var(--ig-cizgi); }
.asama-children:empty { display: none; }
.drag-handle { color: var(--ig-girdi); cursor: grab; }
.drag-handle:hover { color: var(--ig-metin-2); }
.drag-handle:active { cursor: grabbing; }
.is-proje-asama-trigger { display: block; width: 100%; padding: 0; text-align: left; cursor: pointer; background: none; border: 0; border-radius: var(--ig-r-8); }
.is-proje-asama-trigger:focus-visible { outline: none; box-shadow: var(--ig-odak); }
.is-proje-asama-trigger:hover .is-stage-node { border-color: var(--ig-cizgi-koyu); }
.is-proje-asama-trigger .is-stage-title { color: var(--ig-metin); }
.is-proje-asama-status { flex-shrink: 0; width: 8px; height: 8px; background: var(--ig-girdi); border-radius: 50%; }
.is-proje-asama-status.is-proje-asama-status-active { background: var(--ig-mavi); }
.is-proje-asama-status.is-proje-asama-status-complete { background: var(--ig-birincil); }
.is-stage-node-body { padding: var(--ig-b-12); }
.is-stage-node-head { display: flex; align-items: flex-start; justify-content: space-between; gap: var(--ig-b-12); margin-bottom: var(--ig-b-8); }
.is-stage-node-icon-wrap { display: none; }
.is-stage-node-heading { flex: 1 1 auto; min-width: 0; }
.is-stage-node-title { margin: 0; font-size: var(--ig-fs-14); line-height: 1.35; color: var(--ig-metin); }
.is-stage-title-level-0 { font-weight: var(--ig-fw-kalin); }
.is-stage-node-path { margin: var(--ig-b-2) 0 0; font-size: var(--ig-fs-12); color: var(--ig-soluk); }
.is-stage-node-cta { display: flex; flex-shrink: 0; align-items: center; gap: var(--ig-b-8); color: var(--ig-soluk); }

/* --- 9b.16 Proje ağacı paneli · custom.css:9211-9512 (aşamalar + ekip) ------------
   Satır 44px, 13px/600 başlık; seçili satır §1 seçili satır dili (yeşil zemin, koyu
   bant değil); satır başı renkli ikon kutusu gizli (kapı 67); sayaç rozeti durum etiketi. */
.is-tree-panel-shell { position: relative; overflow: hidden; }
.is-tree-panel-body { padding: var(--ig-b-8); overflow-y: auto; background: var(--ig-zemin); }
.is-tree-root { display: flex; flex-direction: column; gap: var(--ig-b-2); }
.is-tree-item { position: relative; }
.is-tree-children { margin-top: var(--ig-b-2); padding-left: var(--ig-b-16); }
.is-tree-item-row {
  display: flex;
  align-items: center;
  gap: var(--ig-b-4);
  min-height: var(--ig-satir-h);
  padding: var(--ig-b-6) var(--ig-b-8);
  cursor: pointer;
  background: var(--ig-yuzey);
  border: 1px solid var(--ig-cizgi);
  border-radius: var(--ig-r-6);
}
.is-tree-item-row:hover { background: var(--ig-yesil-hover); }
.is-tree-item.active > .is-tree-item-row { background: var(--ig-yesil-secili); border-color: var(--ig-yesil-cizgi); }
.is-tree-item.active > .is-tree-item-row .is-tree-item-title { color: var(--ig-yesil-metin); }
.is-tree-expand-btn { display: flex; flex-shrink: 0; align-items: center; justify-content: center; width: 20px; height: 20px; padding: 0; color: var(--ig-soluk); cursor: pointer; background: none; border: 0; }
.is-tree-expand-btn:hover { color: var(--ig-metin); }
.is-tree-expand-icon { width: 14px; height: 14px; transition: transform 0.2s ease; }
.is-tree-item-row[aria-expanded="true"] .is-tree-expand-icon { transform: rotate(90deg); }
.is-tree-expand-placeholder { flex-shrink: 0; width: 20px; }
.is-tree-item-content { flex: 1; min-width: 0; pointer-events: none; }
.is-tree-item-head { display: flex; align-items: center; gap: var(--ig-b-8); }
.is-tree-item-icon,
.is-tree-item-icon.is-tree-item-active,
.is-tree-item-icon.is-tree-item-empty { display: none; }
.is-tree-item-title { overflow: hidden; font-size: var(--ig-fs-13); font-weight: var(--ig-fw-kalin); color: var(--ig-metin); white-space: nowrap; text-overflow: ellipsis; }
.is-tree-item-badge { display: inline-flex; flex-shrink: 0; align-items: center; height: 22px; margin-left: auto; padding: 0 8px; font-size: var(--ig-fs-12); font-weight: var(--ig-fw-orta); color: var(--ig-yesil-metin); background: var(--ig-yesil-acik); border: 1px solid var(--ig-yesil-cizgi); border-radius: var(--ig-r-4); }
.is-tree-item-progress { display: flex; align-items: center; gap: var(--ig-b-8); margin-top: var(--ig-b-4); }
.is-tree-progress-bar { flex: 1; height: 4px; overflow: hidden; background: var(--ig-gri-zemin); border-radius: 2px; }
.is-tree-progress-bar span { display: block; height: 100%; background: var(--ig-birincil); }
.is-tree-progress-text { font-size: var(--ig-fs-12); font-variant-numeric: tabular-nums; color: var(--ig-soluk); white-space: nowrap; }

/* --- 9b.17 Görev panosu · custom.css:6268-6634 (is/gorevler/kanban, JS kartları) ---
   Kart 8 radius, gölge kart; başlık 14/600; ikincil metin 12 SOLUK; etiket = durum
   etiketi dili (22px, radius 4); translateY hover kalktı. */
.is-task-stage-card { overflow: hidden; }
.is-task-stage-card .card-body { background: var(--ig-zemin); }
/* Markup'ta bg-success-light/text-success utility'si var (!important); nötr avatar için 2/10, 3/10 */
.is-task-stage-avatar { color: var(--ig-metin-2) !important; background: var(--ig-gri-zemin) !important; }
.is-task-dropzone { display: flex; flex-direction: column; gap: var(--ig-b-8); min-height: 420px; }
.is-task-card {
  width: 100%;
  padding: var(--ig-b-12);
  text-align: left;
  background: var(--ig-yuzey);
  border: 1px solid var(--ig-cizgi);
  border-radius: var(--ig-r-8);
  box-shadow: var(--ig-golge-kart);
  transition: border-color 0.12s ease;
}
.is-task-card:hover { border-color: var(--ig-cizgi-koyu); }
.is-task-card:focus-visible { outline: none; box-shadow: var(--ig-odak); }
.is-task-card-head { display: flex; align-items: flex-start; justify-content: space-between; gap: var(--ig-b-6); }
.is-task-card-title { display: -webkit-box; margin-top: var(--ig-b-8); overflow: hidden; font-size: var(--ig-fs-14); font-weight: var(--ig-fw-kalin); line-height: 1.35; color: var(--ig-metin); -webkit-line-clamp: 2; -webkit-box-orient: vertical; }
.is-task-card > .is-task-card-title:first-child { margin-top: 0; }
.is-task-card-project { display: flex; align-items: center; gap: var(--ig-b-4); min-width: 0; margin-top: var(--ig-b-4); font-size: var(--ig-fs-12); color: var(--ig-soluk); }
.is-task-card-project span { min-width: 0; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
.is-task-card-facts { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--ig-b-4) var(--ig-b-8); margin-top: var(--ig-b-8); }
.is-task-card-fact { display: inline-flex; align-items: center; gap: var(--ig-b-4); min-width: 0; overflow: hidden; font-size: var(--ig-fs-12); color: var(--ig-metin-2); white-space: nowrap; text-overflow: ellipsis; }
.is-task-card-project .lucide,
.is-task-card-fact .lucide,
.is-task-card-meta .lucide { flex-shrink: 0; width: 12px; height: 12px; color: var(--ig-soluk); }
.is-task-card-text { display: -webkit-box; margin-top: var(--ig-b-8); overflow: hidden; font-size: var(--ig-fs-12); line-height: 1.4; color: var(--ig-metin-2); -webkit-line-clamp: 2; -webkit-box-orient: vertical; }
.is-task-tag-list { display: flex; flex-wrap: wrap; gap: var(--ig-b-4); margin-top: var(--ig-b-8); }
.is-task-tag { display: inline-flex; align-items: center; height: 22px; padding: 0 8px; font-size: var(--ig-fs-12); font-weight: var(--ig-fw-orta); color: var(--ig-metin-2); background: var(--ig-gri-zemin); border: 1px solid var(--ig-cizgi); border-radius: var(--ig-r-4); }
.is-task-card-footer { display: flex; align-items: center; justify-content: space-between; gap: var(--ig-b-8); margin-top: var(--ig-b-8); }
.is-task-card-meta { display: flex; flex-wrap: wrap; gap: var(--ig-b-6); }
.is-task-card-meta span { display: inline-flex; align-items: center; gap: var(--ig-b-4); font-size: var(--ig-fs-12); color: var(--ig-soluk); }
.is-task-assignee-avatar { display: inline-flex; flex-shrink: 0; align-items: center; justify-content: center; width: 32px; height: 32px; font-size: var(--ig-fs-13); font-weight: var(--ig-fw-kalin); color: var(--ig-beyaz); background: var(--ig-koyu); border-radius: 50%; }

/* Görev detay modalı · custom.css:5894-6264. Modal dili: radius 8, katman gölgesi,
   başlık 16/600; bölüm etiketi 13/600; istatistik = bilgi ızgarası (12 etiket / 14 değer). */
#gorevDetayModal .tb-detay-modal { overflow: hidden; background: var(--ig-yuzey); border: 0; border-radius: var(--ig-r-8); box-shadow: var(--ig-golge-katman); }
.tb-detay-header { display: flex; align-items: flex-start; justify-content: space-between; gap: var(--ig-b-12); padding: var(--ig-b-16); background: var(--ig-yuzey); border-bottom: 1px solid var(--ig-cizgi); }
.tb-detay-hero { display: flex; align-items: flex-start; gap: var(--ig-b-8); min-width: 0; }
.tb-detay-title { font-size: var(--ig-fs-16); font-weight: var(--ig-fw-kalin); line-height: var(--ig-lh-baslik); color: var(--ig-metin); }
.tb-detay-list-name { display: inline-flex; align-items: center; max-width: 360px; height: 22px; padding: 0 8px; overflow: hidden; font-size: var(--ig-fs-12); font-weight: var(--ig-fw-orta); color: var(--ig-yesil-metin); white-space: nowrap; text-overflow: ellipsis; background: var(--ig-yesil-acik); border: 1px solid var(--ig-yesil-cizgi); border-radius: var(--ig-r-4); }
.tb-detay-main { display: flex; flex-direction: column; gap: var(--ig-b-12); max-height: 72vh; padding: var(--ig-b-16); overflow-y: auto; background: var(--ig-zemin); }
.tb-detay-panel,
.tb-detay-stat { background: var(--ig-yuzey); border: 1px solid var(--ig-cizgi); border-radius: var(--ig-r-8); }
.tb-detay-panel { padding: var(--ig-b-12) var(--ig-b-16); }
.tb-detay-stat { height: 100%; padding: var(--ig-b-8) var(--ig-b-12); }
.tb-detay-stat-label { margin-bottom: var(--ig-b-2); font-size: var(--ig-fs-12); color: var(--ig-soluk); }
.tb-detay-stat-value { display: flex; align-items: center; min-height: 22px; font-size: var(--ig-fs-14); font-weight: var(--ig-fw-kalin); color: var(--ig-metin); }
.tb-detay-label { display: flex; align-items: center; gap: var(--ig-b-8); margin-bottom: var(--ig-b-8); font-size: var(--ig-fs-13); font-weight: var(--ig-fw-kalin); color: var(--ig-metin); }
.tb-detay-label .lucide { width: 16px; height: 16px; color: var(--ig-soluk); }
.tb-detay-desc { min-height: 48px; padding: var(--ig-b-8) var(--ig-b-12); font-size: var(--ig-fs-13); line-height: var(--ig-lh-govde); color: var(--ig-metin-2); white-space: pre-wrap; background: var(--ig-zemin); border-radius: var(--ig-r-6); }
.tb-overdue-pill { display: inline-flex; align-items: center; margin-left: var(--ig-b-6); font-size: var(--ig-fs-12); font-weight: var(--ig-fw-kalin); color: var(--ig-kirmizi); }
.tb-detay-actions { display: flex; flex-wrap: wrap; align-items: center; gap: var(--ig-b-8); padding-top: var(--ig-b-12); border-top: 1px solid var(--ig-cizgi); }
/* Ek ve yorum · custom.css:6025-6224. Satır işlemi dili: sil/düzenle 32×32 çerçevesiz. */
.tb-detay-attachments { display: flex; flex-direction: column; gap: var(--ig-b-6); margin-bottom: var(--ig-b-8); }
.tb-attach-item { display: flex; align-items: center; overflow: hidden; background: var(--ig-yuzey); border: 1px solid var(--ig-cizgi); border-radius: var(--ig-r-6); }
.tb-attach-item:hover { border-color: var(--ig-cizgi-koyu); }
.tb-attach-link { display: flex; flex: 1; align-items: center; gap: var(--ig-b-8); min-width: 0; padding: var(--ig-b-6) var(--ig-b-8); text-decoration: none; }
.tb-attach-ext { display: flex; flex-shrink: 0; align-items: center; justify-content: center; width: 36px; height: 22px; font-size: var(--ig-fs-12); font-weight: var(--ig-fw-orta); color: var(--ig-metin-2); text-transform: uppercase; background: var(--ig-gri-zemin); border-radius: var(--ig-r-4); }
.tb-attach-info { display: flex; flex-direction: column; min-width: 0; }
.tb-attach-name { overflow: hidden; font-size: var(--ig-fs-13); font-weight: var(--ig-fw-orta); color: var(--ig-metin); white-space: nowrap; text-overflow: ellipsis; }
.tb-attach-date,
.tb-comment-date,
.tb-member-role { font-size: var(--ig-fs-12); color: var(--ig-soluk); }
.tb-attach-del,
.tb-comment-btn { display: inline-flex; flex: none; align-items: center; justify-content: center; width: var(--ig-islem); height: var(--ig-islem); padding: 0; color: var(--ig-metin-2); cursor: pointer; background: none; border: 0; border-radius: var(--ig-r-6); }
.tb-attach-del:hover,
.tb-comment-btn:hover { color: var(--ig-metin); background: var(--ig-gri-zemin); }
.tb-attach-del,
.tb-comment-btn-danger,
.tb-attach-del:hover,
.tb-comment-btn-danger:hover { color: var(--ig-kirmizi); }
.tb-attach-del .lucide,
.tb-comment-btn .lucide { width: 18px; height: 18px; }
.tb-detay-attach-btn { display: inline-flex; align-items: center; gap: var(--ig-b-6); height: var(--ig-dugme-kart-h); padding: 0 var(--ig-b-12); font-size: var(--ig-fs-13); font-weight: var(--ig-fw-orta); color: var(--ig-metin); cursor: pointer; background: var(--ig-yuzey); border: 1px solid var(--ig-cizgi); border-radius: var(--ig-r-6); }
.tb-detay-attach-btn:hover { background: var(--ig-zemin); }
.tb-detay-attach-btn .lucide { width: 16px; height: 16px; }
.tb-detay-comment-input { display: flex; align-items: flex-start; gap: var(--ig-b-8); margin-bottom: var(--ig-b-12); }
.tb-detay-comment-textarea { flex: 1; width: 100%; min-height: var(--ig-girdi-h); padding: var(--ig-b-8) var(--ig-b-12); font-family: inherit; font-size: var(--ig-fs-13); line-height: 1.4; color: var(--ig-metin); resize: none; background: var(--ig-yuzey); border: 1px solid var(--ig-cizgi); border-radius: var(--ig-r-6); }
.tb-detay-comment-textarea:focus { border-color: var(--ig-koyu); outline: none; box-shadow: var(--ig-odak); }
.tb-detay-comments { display: flex; flex-direction: column; gap: var(--ig-b-8); }
.tb-comment { display: flex; align-items: flex-start; }
.tb-comment-body { flex: 1; min-width: 0; padding: var(--ig-b-8) var(--ig-b-12); background: var(--ig-yuzey); border: 1px solid var(--ig-cizgi); border-radius: var(--ig-r-6); }
.tb-comment-header { display: flex; align-items: center; gap: var(--ig-b-6); margin-bottom: var(--ig-b-4); }
.tb-comment-name,
.tb-member-name { font-size: var(--ig-fs-13); font-weight: var(--ig-fw-kalin); color: var(--ig-metin); }
.tb-comment-actions { display: flex; gap: var(--ig-b-2); margin-left: auto; }
.tb-comment-text { font-size: var(--ig-fs-13); line-height: 1.45; color: var(--ig-metin-2); }
.tb-member-card { display: flex; align-items: center; gap: var(--ig-b-8); }
.tb-member-icon { flex-shrink: 0; width: 16px; height: 16px; color: var(--ig-soluk); }

/* --- 9b.18 Teklif belgesi · custom.css:6638-6663 --------------------------------
   Belge rengi kullanıcı ayarından inline --teklif-accent ile gelir (_teklif_belge.php:50);
   yedek değer marka yeşili. BÜYÜK HARF etiket kalktı. Kâğıt önizlemesi A4 oranı. */
.teklif-belge { max-width: 900px; margin: 0 auto; color: var(--ig-metin); }
.teklif-onizleme-bg { min-height: calc(100vh - 180px); padding: var(--ig-b-24) 0; background: var(--ig-zemin); }
.teklif-onizleme-kagit { width: 900px; max-width: 100%; min-height: 1273px; margin: 0 auto; padding: 56px 64px; background: var(--ig-yuzey); border: 1px solid var(--ig-cizgi); border-radius: var(--ig-r-4); box-shadow: var(--ig-golge-kart); }
.teklif-belge-baslik { font-size: 24px; font-weight: var(--ig-fw-kalin); color: var(--teklif-accent, var(--ig-birincil)); }
.teklif-belge-tarih { font-size: var(--ig-fs-13); color: var(--ig-soluk); }
.teklif-belge-logo { max-width: 180px; height: auto; }
.teklif-belge-info-card { height: 100%; padding: var(--ig-b-12) var(--ig-b-16); background: var(--ig-zemin); border: 1px solid var(--ig-cizgi); border-radius: var(--ig-r-6); }
.teklif-belge-info-label { margin-bottom: var(--ig-b-8); font-size: var(--ig-fs-12); font-weight: var(--ig-fw-kalin); color: var(--teklif-accent, var(--ig-birincil)); }
.teklif-belge-info-card table { width: 100%; border-collapse: collapse; }
.teklif-belge-info-card table td { padding: var(--ig-b-4) 0; font-size: var(--ig-fs-13); color: var(--ig-metin); }
.teklif-belge-info-card table td:first-child { width: 90px; font-weight: var(--ig-fw-orta); color: var(--ig-soluk); }
.teklif-belge-section-title { margin-bottom: var(--ig-b-12); padding-bottom: var(--ig-b-6); font-size: var(--ig-fs-15); font-weight: var(--ig-fw-kalin); color: var(--teklif-accent, var(--ig-birincil)); border-bottom: 2px solid var(--teklif-accent, var(--ig-birincil)); }
.teklif-belge-table thead th,
.teklif-belge-table tfoot tr:last-child td { color: var(--ig-beyaz); background: var(--teklif-accent, var(--ig-birincil)); -webkit-print-color-adjust: exact; print-color-adjust: exact; }
.teklif-belge-imza-label { font-weight: var(--ig-fw-kalin); color: var(--teklif-accent, var(--ig-birincil)); }
.teklif-belge-extra { padding: var(--ig-b-8) var(--ig-b-12); font-size: var(--ig-fs-12); color: var(--ig-metin-2); white-space: pre-line; background: var(--ig-zemin); border: 1px solid var(--ig-cizgi); border-radius: var(--ig-r-4); }
@media print {
  .teklif-belge { max-width: 100%; }
  .teklif-belge-info-card { -webkit-print-color-adjust: exact; print-color-adjust: exact; }
}
/* Teklif kalem tablosu · custom.css:10388-10393 (dar hücreli giriş tablosu) */
.teklif-kalem-table > :not(caption) > * > * { padding-right: var(--ig-b-2); padding-left: var(--ig-b-2); }
.teklif-kalem-table .filter-input,
.teklif-kalem-table .filter-select { padding-right: var(--ig-b-6); padding-left: var(--ig-b-6); }

/* --- 9b.19 SMM kurulum sihirbazı ve gönderi geçmişi · custom.css:10181-10382 ------
   Sekmeler = §1 detay sekme dili (seçili beyaz segment); durum kutusu = not bandı
   (renkli 5px şerit yerine aile rengi zemin/kenar); BÜYÜK HARF eyebrow kalktı. */
.smm-setup-wizard { border: 1px solid var(--ig-cizgi); box-shadow: var(--ig-golge-kart); }
.smm-setup-tabs { flex-wrap: wrap; gap: var(--ig-b-2); padding: var(--ig-b-4); background: var(--ig-gri-zemin); border-radius: var(--ig-r-6); }
.smm-setup-tabs .nav-item { flex: 1 1 150px; }
.smm-setup-tabs .nav-link { width: 100%; height: var(--ig-kontrol-h); font-size: var(--ig-fs-13); font-weight: var(--ig-fw-orta); color: var(--ig-metin-2); text-align: center; background: none; border: 0; border-radius: var(--ig-r-4); }
.smm-setup-tabs .nav-link:hover { color: var(--ig-metin); }
.smm-setup-tabs .nav-link.active { font-weight: var(--ig-fw-kalin); color: var(--ig-metin); background: var(--ig-yuzey); box-shadow: var(--ig-golge-segment); }
.smm-setup-content { background: var(--ig-yuzey); border: 1px solid var(--ig-cizgi); border-radius: var(--ig-r-8); }
.smm-setup-pane { padding: var(--ig-b-20); }
.smm-setup-step-head { padding-bottom: var(--ig-b-12); border-bottom: 1px solid var(--ig-cizgi); }
.smm-setup-intro,
.smm-setup-status { padding: var(--ig-b-12) var(--ig-b-16); font-size: var(--ig-fs-13); color: var(--ig-metin-2); background: var(--ig-zemin); border: 1px solid var(--ig-cizgi); border-radius: var(--ig-r-6); }
.smm-setup-intro { display: flex; align-items: center; justify-content: space-between; gap: var(--ig-b-16); }
.smm-setup-eyebrow { margin-bottom: var(--ig-b-2); font-size: var(--ig-fs-12); font-weight: var(--ig-fw-orta); color: var(--ig-yesil-metin); }
.smm-setup-status--info { color: var(--ig-mavi); background: var(--ig-mavi-zemin); border-color: var(--ig-mavi-cizgi); }
.smm-setup-status--warning { color: var(--ig-sari-metin); background: var(--ig-sari-zemin); border-color: var(--ig-sari-cizgi); }
.smm-setup-status--success { color: var(--ig-yesil-metin); background: var(--ig-yesil-acik); border-color: var(--ig-yesil-cizgi); }
.smm-setup-panel { background: var(--ig-zemin); }
.smm-setup-actions,
.smm-setup-action-grid { padding-top: var(--ig-b-12); border-top: 1px solid var(--ig-cizgi); }
.smm-setup-action-grid { display: flex; align-items: center; justify-content: space-between; gap: var(--ig-b-12); }
.smm-setup-actions .btn,
.smm-setup-action-grid .btn { min-width: 140px; }
.smm-history-card { display: flex; flex-direction: column; height: 100%; overflow: hidden; background: var(--ig-yuzey); border: 1px solid var(--ig-cizgi); border-radius: var(--ig-r-8); box-shadow: var(--ig-golge-kart); }
.smm-history-image-wrap { position: relative; padding-top: 75%; background: var(--ig-gri-zemin); }
.smm-history-image { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.smm-history-body { display: flex; flex-direction: column; gap: var(--ig-b-2); padding: var(--ig-b-12) var(--ig-b-16); font-size: var(--ig-fs-13); }
.smm-line-clamp-3 { display: -webkit-box; overflow: hidden; -webkit-line-clamp: 3; -webkit-box-orient: vertical; }

/* --- 9b.20 Mobil oturum modalı · custom.css:10649-11096 (muh/cari liste) ----------
   Modal dili: radius 8, katman gölgesi, başlık 16/600; özet = bilgi ızgarası. */
.mobil-session-modal .modal-dialog { width: calc(100% - 32px); max-width: 900px; }
.mobil-session-modal .modal-content { overflow: hidden; border: 1px solid var(--ig-cizgi); border-radius: var(--ig-r-8); box-shadow: var(--ig-golge-katman); }
.mobil-session-modal .modal-header { align-items: flex-start; padding: var(--ig-b-16) var(--ig-b-20); border-bottom: 1px solid var(--ig-cizgi); }
.mobil-session-modal .modal-title { font-size: var(--ig-fs-16); font-weight: var(--ig-fw-kalin); line-height: var(--ig-lh-baslik); color: var(--ig-metin); }
.mobil-session-modal .modal-body { padding: var(--ig-b-20); background: var(--ig-yuzey); }
.mobil-session-alert { margin-bottom: var(--ig-b-16); padding: var(--ig-b-8) var(--ig-b-12); font-size: var(--ig-fs-13); line-height: var(--ig-lh-govde); color: var(--ig-mavi); background: var(--ig-mavi-zemin); border: 1px solid var(--ig-mavi-cizgi); border-radius: var(--ig-r-6); }
.mobil-session-loading { display: flex; align-items: center; justify-content: center; gap: var(--ig-b-8); min-height: 180px; font-size: var(--ig-fs-13); color: var(--ig-soluk); }
.mobil-session-compact { padding: 0; }
.mobil-session-compact-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); overflow: hidden; background: var(--ig-yuzey); border: 1px solid var(--ig-cizgi); border-radius: var(--ig-r-8); }
.mobil-session-compact-item { min-width: 0; padding: var(--ig-b-12) var(--ig-b-16); border-top: 1px solid var(--ig-cizgi); border-left: 1px solid var(--ig-cizgi); }
.mobil-session-compact-item:nth-child(-n+2) { border-top: 0; }
.mobil-session-compact-item:nth-child(odd) { border-left: 0; }
.mobil-session-detail-label { display: block; margin-bottom: var(--ig-b-2); font-size: var(--ig-fs-12); color: var(--ig-soluk); }
.mobil-session-detail-value { min-width: 0; font-size: var(--ig-fs-14); color: var(--ig-metin); }

/* --- 9b.21 Birim ağacı (JS) · custom.css:1520-1732 (ik/ayarlar_birimler) ----------
   9.x .org-tree-children/.org-tree-collapsed ile birlikte çalışır. Derinlik renkleri
   (yeşil/mavi/turuncu/mor) ve renkli ikon kutusu kalktı; bağlantı çizgileri --ig-cizgi. */
.org-tree-node { position: relative; padding: var(--ig-b-2) 0; }
.org-tree-node-card { position: relative; z-index: 1; display: flex; align-items: center; gap: var(--ig-b-8); min-height: var(--ig-satir-h); padding: var(--ig-b-6) var(--ig-b-12); background: var(--ig-yuzey); border: 1px solid var(--ig-cizgi); border-radius: var(--ig-r-6); }
.org-tree-node-card:hover { border-color: var(--ig-cizgi-koyu); }
.org-tree-node.sortable-chosen > .org-tree-node-card { border-color: var(--ig-yesil-cizgi); background: var(--ig-yesil-secili); }
.org-tree-node.sortable-ghost { opacity: 0.3; }
.org-tree-node.sortable-drag { background: var(--ig-yuzey); border-radius: var(--ig-r-6); box-shadow: var(--ig-golge-popover); }
.org-tree-node-icon { display: none; }
.org-tree-children > .org-tree-node::before { content: ""; position: absolute; top: 0; bottom: 0; left: -20px; width: 1px; background: var(--ig-cizgi); }
.org-tree-children > .org-tree-node::after { content: ""; position: absolute; top: 22px; left: -20px; width: 20px; height: 1px; background: var(--ig-cizgi); }
.org-tree-children > .org-tree-node:first-child::before { top: 22px; }
.org-tree-children > .org-tree-node:last-child::before { bottom: auto; height: 22px; }
.org-tree-children > .org-tree-node:only-child::before,
.org-tree-node.sortable-ghost::before,
.org-tree-node.sortable-ghost::after,
.org-tree-node.sortable-drag::before,
.org-tree-node.sortable-drag::after { display: none; }
.org-tree-children.org-tree-drop-active:empty { position: relative; min-height: 40px; margin: var(--ig-b-4) 0; background: var(--ig-yesil-secili); border: 1px dashed var(--ig-yesil-cizgi); border-radius: var(--ig-r-6); }
.org-tree-children.org-tree-drop-active:empty::before { content: "Alt birim olarak bırak"; position: absolute; top: 50%; left: 50%; font-size: var(--ig-fs-12); color: var(--ig-yesil-metin); white-space: nowrap; transform: translate(-50%, -50%); }
.org-tree-toggle { display: inline-flex; flex-shrink: 0; align-items: center; justify-content: center; width: 24px; height: 24px; color: var(--ig-soluk); cursor: pointer; border-radius: var(--ig-r-4); }
.org-tree-toggle:hover { color: var(--ig-metin); background: var(--ig-gri-zemin); }
.org-tree-drag-handle { display: inline-flex; flex-shrink: 0; align-items: center; justify-content: center; width: 20px; color: var(--ig-girdi); cursor: grab; }
.org-tree-node-card:hover .org-tree-drag-handle { color: var(--ig-soluk); }
.org-tree-drag-handle:active { cursor: grabbing; }
.org-tree-actions { display: flex; gap: var(--ig-b-2); margin-left: auto; }

/* --- 9b.22 Dar ekran ---------------------------------------------------------------- */
@media (max-width: 991.98px) {
  .tb-detay-header { padding: var(--ig-b-12); }
  .tb-detay-main { padding: var(--ig-b-12); }
  .is-task-dropzone { min-height: 320px; }
}
@media (max-width: 767.98px) {
  .tb-detay-comment-input { flex-direction: column; }
  .is-workbench-card-head,
  .is-workbench-detail-summary-head,
  .is-stage-flow-section-head,
  .is-stage-node-head { flex-direction: column; }
  .is-workbench-card-facts,
  .is-workbench-detail-summary-facts { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .is-workbench-card-fact:last-child { grid-column: 1 / -1; }
  .is-stage-flow-section-side,
  .is-stage-node-cta { justify-content: space-between; width: 100%; }
  .asama-children { margin-left: var(--ig-b-8); }
  .smm-setup-pane { padding: var(--ig-b-16); }
  .smm-setup-intro,
  .smm-setup-action-grid { flex-direction: column; align-items: stretch; }
  .smm-setup-actions .btn,
  .smm-setup-action-grid .btn { width: 100%; min-width: 0; }
  .mobil-session-modal .modal-dialog { width: calc(100% - 16px); margin: var(--ig-b-8) auto; }
  .mobil-session-compact-grid { grid-template-columns: minmax(0, 1fr); }
  .mobil-session-compact-item { border-left: 0; }
  .mobil-session-compact-item:nth-child(2) { border-top: 1px solid var(--ig-cizgi); }
  .teklif-onizleme-kagit { min-height: 0; padding: var(--ig-b-24) var(--ig-b-16); }
}
@media (prefers-reduced-motion: reduce) {
  .is-tree-expand-icon { transition: none; }
}

/* ==========================================================================
   10.4 RAPOR KABUĞU + 10.5 RAPORLAR G1-G6 + 10.6 EVRAK (Faz 3)
   ========================================================================== */

/* 10.4 RAPOR KABUĞU */
/* ==========================================================================
   layout/report_catalog (raporlar-giris-c: GirisC, GirisCMobil), report_detail + muh_report_header +
   muh/raporlar/rapor_sayfalama (raporlar-r2-v2: R2v2Tablo, R2v2Bos, R2v2DetayMobil), report_chart_pair, key_values.
   Token (1.), bileşen (4.) ve miras report-* (9.7) sınıfları yeniden tanımlanmaz; yalnız eksik parçalar.
   ========================================================================== */

/* --- 10.4.1 Katalog kartı: başlık satırı 60px (gen_giris_c.kart_basi) ------ */
.ig-rk { padding: 0; overflow: hidden; }
.ig-rk-bas {
  display: flex;
  align-items: center;
  gap: var(--ig-b-16);
  min-height: 60px;
  padding: 0 var(--ig-b-16);
  border-bottom: 1px solid var(--ig-cizgi);
}
.ig-rk-bas-baslik { flex: none; width: 272px; font-size: var(--ig-fs-14); font-weight: var(--ig-fw-kalin); color: var(--ig-metin); }
.ig-rk .ig-rk-arama { width: 360px; max-width: 100%; }
.ig-rk-ozet {
  margin-left: auto;
  font-size: var(--ig-fs-13);
  color: var(--ig-soluk);
  white-space: nowrap;
  font-variant-numeric: tabular-nums;
}
.ig-rk-govde { display: flex; align-items: stretch; }

/* --- 10.4.2 Kategori gezgini: 280px, ikonsuz satır (gen_giris_c.kat_ogesi; §2 #3) -- */
.ig-rk-gezgin {
  display: flex;
  flex: none;
  flex-direction: column;
  gap: var(--ig-b-2);
  width: 280px;
  padding: var(--ig-b-8) 0;
  border-right: 1px solid var(--ig-cizgi);
}
.ig-rk-kat {
  display: flex;
  align-items: center;
  gap: var(--ig-b-12);
  min-height: 40px;
  margin: 0 var(--ig-b-8);
  padding: var(--ig-b-8);
  font-family: inherit;
  font-size: var(--ig-fs-13);
  font-weight: var(--ig-fw-orta);
  line-height: 18px;
  color: var(--ig-metin);
  text-align: left;
  cursor: pointer;
  background: transparent;
  border: 0;
  border-radius: var(--ig-r-6);
}
.ig-rk-kat:hover { background-color: var(--ig-zemin); }
.ig-rk-kat.is-secili { font-weight: var(--ig-fw-kalin); color: var(--ig-yesil-metin); background-color: var(--ig-yesil-acik); }
.ig-rk--arama .ig-rk-kat.is-secili { font-weight: var(--ig-fw-orta); color: var(--ig-metin); background-color: transparent; }
.ig-rk-kat-ad { flex: 1; min-width: 0; }
.ig-rk-kat-kisa { display: none; }
.ig-rk-kat-sayi { font-size: var(--ig-fs-12); font-weight: var(--ig-fw-normal); color: var(--ig-soluk); font-variant-numeric: tabular-nums; }

/* --- 10.4.3 Önizleme satırları: 72px (gen_giris_c.onizleme_satiri) --------- */
.ig-rk-icerik { flex: 1; min-width: 0; }
.ig-rk-grup-bas {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: var(--ig-b-16);
  padding: var(--ig-b-20) var(--ig-b-16) var(--ig-b-16) var(--ig-b-24);
}
.ig-rk-grup-metin { min-width: 0; }
.ig-rk-grup-baslik { margin: 0; font-size: var(--ig-fs-16); font-weight: var(--ig-fw-kalin); line-height: var(--ig-lh-baslik); color: var(--ig-metin); }
.ig-rk-grup-alt { margin: var(--ig-b-4) 0 0; font-size: var(--ig-fs-13); color: var(--ig-soluk); }
.ig-rk-grup-sayac { flex: none; font-size: var(--ig-fs-13); color: var(--ig-soluk); white-space: nowrap; font-variant-numeric: tabular-nums; }
.ig-rk-satir {
  display: flex;
  align-items: center;
  gap: var(--ig-b-16);
  min-height: 72px;
  padding: var(--ig-b-12) var(--ig-b-16) var(--ig-b-12) var(--ig-b-24);
  color: var(--ig-metin);
  text-decoration: none;
  border-top: 1px solid var(--ig-cizgi);
}
.ig-rk-satir:hover { color: var(--ig-metin); background-color: var(--ig-zemin); }
.ig-rk-satir-metin { display: flex; flex: 1; flex-direction: column; gap: var(--ig-b-8); min-width: 0; }
.ig-rk-satir-bas { display: flex; align-items: baseline; gap: var(--ig-b-8); min-width: 0; }
.ig-rk-satir-ad { flex: none; font-size: var(--ig-fs-14); font-weight: var(--ig-fw-kalin); white-space: nowrap; }
.ig-rk-satir-alt { min-width: 0; overflow: hidden; font-size: var(--ig-fs-13); color: var(--ig-soluk); white-space: nowrap; text-overflow: ellipsis; }
.ig-rk-etiketler { display: flex; flex-wrap: wrap; align-items: center; gap: var(--ig-b-6); }
.ig-rk-etiket {
  display: inline-flex;
  align-items: center;
  height: 22px;
  padding: 0 8px;
  font-size: var(--ig-fs-12);
  color: var(--ig-metin-2);
  white-space: nowrap;
  background-color: var(--ig-gri-zemin);
  border-radius: var(--ig-r-4);
}
.ig-rk-cikti { font-size: var(--ig-fs-12); color: var(--ig-soluk); white-space: nowrap; }
.ig-rk-etiket + .ig-rk-cikti { padding-left: var(--ig-b-8); border-left: 1px solid var(--ig-cizgi); }
.ig-rk-satir .ig-rk-satir-ok { color: var(--ig-siralama); }
.ig-rk-satir:hover .ig-rk-satir-ok { color: var(--ig-metin); }
.ig-rk-satir[hidden],
.ig-rk-grup[hidden] { display: none; }
.ig-rk-kat:focus-visible,
.ig-rk-satir:focus-visible { outline: 0; box-shadow: var(--ig-odak); }

/* --- 10.4.4 Mobil: kategori hapları yatay kayar (gen_giris_c.ekran_mobil) --- */
@media (max-width: 767.98px) {
  .ig-rk-bas { flex-wrap: wrap; padding: var(--ig-b-12) var(--ig-b-16) 0; border-bottom: 0; }
  .ig-rk-bas-baslik,
  .ig-rk-ozet { display: none; }
  .ig-rk .ig-rk-arama { flex: 1 1 100%; width: 100%; }
  .ig-rk-govde { flex-direction: column; }
  .ig-rk-gezgin {
    flex-direction: row;
    gap: var(--ig-b-8);
    width: auto;
    padding: var(--ig-b-12) var(--ig-b-16);
    overflow-x: auto;
    border-right: 0;
    border-bottom: 1px solid var(--ig-cizgi);
  }
  .ig-rk-kat { flex: none; gap: var(--ig-b-6); min-height: 36px; margin: 0; padding: 0 var(--ig-b-12); white-space: nowrap; background-color: var(--ig-yuzey); border: 1px solid var(--ig-cizgi); }
  .ig-rk-kat.is-secili { border-color: var(--ig-yesil-cizgi); }
  .ig-rk-kat-ad { display: none; }
  .ig-rk-kat-kisa { display: inline; }
  .ig-rk-grup-bas { padding: var(--ig-b-16) var(--ig-b-16) var(--ig-b-12); }
  .ig-rk-satir { padding: var(--ig-b-12) var(--ig-b-16); }
  .ig-rk-satir-bas { flex-direction: column; align-items: flex-start; gap: 2px; }
  .ig-rk-satir-ad { white-space: normal; }
  .ig-rk-satir-alt { font-size: var(--ig-fs-12); white-space: normal; }
}

/* --- 10.4.5 Rapor detayı: kart içi araç çubuğu + tablo kartı (R2v2Tablo) ---- */
.ig-rapor-arac-kart { padding: 0; }
.ig-rapor-tablo-kart { padding: 0; overflow: hidden; }
.ig-rapor-arac-kart > .ig-arac { border-bottom: 0; }
.ig-rapor-tablo-kart > .ig-arac { border-bottom: 1px solid var(--ig-cizgi); }
.ig-rapor-not { padding: 0 var(--ig-b-16) var(--ig-b-12); }
.table > :not(caption) > * > .ig-rapor-sayi { text-align: right; white-space: nowrap; font-variant-numeric: tabular-nums; }
/* Oransal şerit: oran data-rapor-oran'dan JS ile flex-grow olur; JS yoksa eşit pay */
.report-band-seg[data-rapor-oran] { flex: 1 1 0%; }

/* --- 10.4.6 Sayfalama köprüsü (rapor_sayfalama → pagination; §2 #1) -------- */
.ig-rapor-sayfalama { display: flex; flex-wrap: wrap; align-items: center; border-top: 1px solid var(--ig-cizgi); }
.ig-rapor-sayfalama > .ig-sayfalama { flex: 1 1 auto; min-width: 0; border-top: 0; }
.ig-rapor-sayfalama-ek { display: flex; flex: none; align-items: center; gap: var(--ig-b-12); padding: var(--ig-b-8) var(--ig-b-16) var(--ig-b-8) 0; }
@media (max-width: 767.98px) {
  .ig-rapor-sayfalama-ek { flex: 1 1 100%; justify-content: flex-end; padding: 0 var(--ig-b-16) var(--ig-b-12); }
}

/* --- 10.4.7 Grafik kartı ve etiket/değer ızgarası ------------------------- */
.ig-grafik-kart-bas { display: flex; flex-wrap: wrap; align-items: flex-start; justify-content: space-between; gap: var(--ig-b-12); }
.ig-grafik-kart-metin { min-width: 0; }
.ig-grafik-lejant { display: flex; flex-wrap: wrap; gap: var(--ig-b-6) var(--ig-b-16); font-size: var(--ig-fs-12); color: var(--ig-soluk); }
.ig-grafik-lejant-oge { display: inline-flex; align-items: center; gap: var(--ig-b-6); white-space: nowrap; }
.ig-grafik-not {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--ig-b-12);
  margin-top: var(--ig-b-8);
  padding: var(--ig-b-8) var(--ig-b-12);
  font-size: var(--ig-fs-13);
  border: 1px solid var(--ig-cizgi);
  border-radius: var(--ig-r-6);
}
.ig-kv .ig-kv-etiket { display: block; font-size: var(--ig-fs-12); }
.ig-kv .ig-kv-deger { margin-top: 2px; font-size: var(--ig-fs-14); font-weight: var(--ig-fw-normal); text-align: left; }
.ig-kv-bos { color: var(--ig-soluk); }
/* Grafik çifti yerleşimi: .rapor-grafikler (10.5.2) iki sütunlu grid; view'lar aynı öğeye .row, kartlara .col-xl-6
   verince kolon grid hücresinin %50'sine düşüyordu. Kolon hücreyi doldurur, tek kart tam satır, ≤1199.98px alt alta. */
.rapor-grafikler.row { margin-right: 0; margin-left: 0; }
.rapor-grafikler.row > [class*="col-"] { width: auto; max-width: none; margin-top: 0; padding-right: 0; padding-left: 0; }
.rapor-grafikler.row > [class*="col-"] > .card { height: 100%; }
.rapor-grafikler > :only-child { grid-column: 1 / -1; }
@media (max-width: 1199.98px) {
  .rapor-grafikler.row { grid-template-columns: minmax(0, 1fr); }
}

/* 10.5.1 RAPORLAR G1 */
/* kar_zarar, cari_bazli_satis, urun_bazli_satis, alacak_yaslandirma.
   Kaynak: raporlar-r2-v2 (R2v2Tablo, R2v2Satis, R2v2Bos) + TUTARLILIK §1.
   Tablo başlığı/satırı/toplam satırı 3.4 (.table, tfoot, tr.is-toplam), şerit 9.7.1,
   not 9.7.4, grafik kutusu ve lejant 10.3.5 hazır; burada yalnız eksik olanlar var. */

/* Bant gövdesinde kart yığını: kartlar arası 16px (§1 Detay sekme şeridi aralığı), altta 32px */
.rapor-yigin {
  display: flex;
  flex-direction: column;
  gap: var(--ig-b-16);
  padding-bottom: var(--ig-b-32);
}

/* Tablonun ilk başlık satırı: çıktı notu (Yazdır/Excel'e de gider). R2v2 satis_tablosu not_ 12px SOLUK, 400 */
.rapor-yigin .table > thead > tr > th.rapor-cikti-notu {
  font-weight: var(--ig-fw-normal);
  white-space: normal;
}

/* Negatif tutar: "−" ve kırmızı (§1 Tablo satırı) */
.rapor-negatif { color: var(--ig-kirmizi); }

/* Hücre içi ikinci satır ve ikincil sütun: 12px SOLUK (§1 Tablo satırı "ikincil sütunlar SOLUK") */
.rapor-soluk { color: var(--ig-soluk); }
.rapor-alt-satir {
  display: block;
  font-size: var(--ig-fs-12);
  font-weight: var(--ig-fw-normal);
  color: var(--ig-soluk);
}

/* Grafik çifti iç kartları (R2v2Satis grafik_karti); .rapor-grafikler yerleşimi tek blokta, 10.5 "Grafikler" */
.rapor-grafikler .card > .card-body { padding-top: 0; }
.rapor-grafikler .ig-lejant-oge--gri::before { background-color: var(--ig-girdi); }

/* Gelir tablosu alt kalem girintisi (eski ps-4) */
.rapor-kar-zarar .table > tbody > tr > td.rapor-alt-kalem {
  padding-left: var(--ig-b-32);
  font-weight: var(--ig-fw-normal);
}

/* Yaş dilimi 2 gri-yeşil (§1 Renk: yeşil → gri-yeşil → turuncu → kırmızı; R2v2 IRS_BANT #4D7C5A).
   Dilim 1 --ok, 3 --warn, 4 --risk hazır. */
.rapor-alacak-yaslandirma .report-band-seg--yas2,
.rapor-alacak-yaslandirma .report-band-item--yas2 { --ig-rb-renk: #4D7C5A; }

/* 10.5.2 RAPORLAR G2 */
/* Muhasebe rapor ekranları (siparis_durum, stok_deger_raporu, irsaliye_ozet,
   siparis_operasyon_kuyruk, stok_fiyatlandirma_raporu). raporlar-r2-v2/R2v2Tablo:
   bant → .ig-bant-govde → tek kart (hap filtre, şerit, grafikler, kart başlığı, tablo).
   Yalnız --ig-* token'ları; 4.x, 8.x ve 9.7 (report-band-*, report-note) üstüne. */
.rapor-kart { overflow: hidden; }
.rapor-kart > .ig-filtre + .rapor-serit,
.rapor-kart > .rapor-serit + .rapor-grafikler,
.rapor-kart > .ig-filtre + .rapor-grafikler,
.rapor-kart > .ig-kart-baslik { border-top: 1px solid var(--ig-cizgi); }
.rapor-kart > .ig-filtre + .ig-kart-baslik { border-top: 1px solid var(--ig-cizgi); }

/* Oransal şerit: segment genişliği SVG niteliğiyle (satır içi style yok) */
.rapor-serit { padding: var(--ig-b-16) var(--ig-b-20); }
.rapor-serit-cubuk {
  display: block;
  width: 100%;
  height: 24px;
  overflow: hidden;
  background-color: var(--ig-gri-zemin);
  border-radius: var(--ig-r-6);
}
.rapor-serit-seg {
  fill: var(--ig-rb-renk, var(--ig-girdi));
  stroke: var(--ig-yuzey);
  stroke-width: 1px;
}
.rapor-serit-yuzde {
  font-size: var(--ig-fs-12);
  font-weight: var(--ig-fw-kalin);
  font-variant-numeric: tabular-nums;
  fill: var(--ig-beyaz);
}

/* Grafikler: kart içinde iki sütun, 16px aralık ve üst boşluk (tek blok; ≤991.98px tek sütun) */
.rapor-grafikler {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--ig-b-16);
  margin-top: var(--ig-b-16);
}
.rapor-grafik { display: flex; flex-direction: column; min-width: 0; }
.rapor-grafik + .rapor-grafik { border-left: 1px solid var(--ig-cizgi); }
.rapor-grafik > .dash-chart-body { margin: 0 var(--ig-b-20); }
.rapor-grafik-not {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: var(--ig-b-12);
  margin: var(--ig-b-12) var(--ig-b-20) var(--ig-b-16);
  padding-top: var(--ig-b-8);
  font-size: var(--ig-fs-13);
  color: var(--ig-soluk);
  border-top: 1px solid var(--ig-cizgi);
}
.rapor-grafik-not-deger {
  font-weight: var(--ig-fw-kalin);
  color: var(--ig-metin);
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}

/* Lejant (kart başlığı sağında): .rapor-lejant ve .rapor-lejant-oge tek blok, 10.5.3.2 */
.rapor-lejant-nokta { flex: none; width: 8px; height: 8px; background-color: var(--ig-girdi); border-radius: 2px; }
.rapor-renk--y1 { background-color: var(--ig-birincil); }
.rapor-renk--y2 { background-color: var(--ig-mavi); }
.rapor-renk--uyari { background-color: var(--ig-turuncu); }
.rapor-renk--kirmizi { background-color: var(--ig-kirmizi); }
.rapor-renk--notr { background-color: var(--ig-girdi); }

/* Kart başlığı sağı: 32px ikincil Excel / Yazdır */
.rapor-kart .ig-kart-baslik-sag .btn { display: inline-flex; align-items: center; gap: var(--ig-b-6); }
.rapor-uyari { margin: 0 var(--ig-b-20) var(--ig-b-16); }

/* Tablo: sayılar sağa tabular, soluk ikincil sütun, toplam satırı ZEMIN 600 */
.rapor-kart .table > tbody > tr > td.rapor-soluk { font-weight: var(--ig-fw-normal); color: var(--ig-soluk); }
.rapor-kart .table > tbody > tr > td.rapor-ad { font-weight: var(--ig-fw-kalin); color: var(--ig-metin); }
.rapor-kart .table > tfoot > tr > td {
  height: var(--ig-satir-h);
  font-weight: var(--ig-fw-kalin);
  color: var(--ig-metin);
  background-color: var(--ig-zemin);
  border-top: 2px solid var(--ig-cizgi-koyu);
  border-bottom: 0;
}
.rapor-kart .table > thead > tr > th.text-center { text-align: center; }
/* §1 Renk: negatif tutar ve 30+ gün kırmızı, 1–30 gün sarı (4.16 .ig-tutar-- hücrede td rengini ezmez) */
.rapor-kart .table > tbody > tr > td.ig-tutar--negatif,
.rapor-kart .table > tfoot > tr > td.ig-tutar--negatif { color: var(--ig-kirmizi); }
.rapor-kart .table > tbody > tr > td.ig-tutar--gecikmis { color: var(--ig-sari-metin); }

@media (max-width: 991.98px) {
  .rapor-grafikler { grid-template-columns: minmax(0, 1fr); }
  .rapor-grafik + .rapor-grafik { border-top: 1px solid var(--ig-cizgi); border-left: 0; }
}
@media (max-width: 767.98px) {
  .rapor-serit { padding: var(--ig-b-12) var(--ig-b-16); }
  .rapor-grafik > .dash-chart-body { margin: 0 var(--ig-b-16); }
  .rapor-kart .ig-kart-baslik { flex-wrap: wrap; }
  .rapor-kart .ig-kart-baslik-sag { flex-wrap: wrap; }
}

/* 10.5.3 RAPORLAR G3 */
/* ==========================================================================
   views/muh/raporlar/{tahsilat_raporu,borc_alacak_ozet,satis_raporu,
   fiili_stok_hareket,siparis_irsaliye_kapanis}.php (2026-09-15).
   Kaynak: docs/tasarim/web-genel/raporlar-r2-v2 (R2v2Tablo, R2v2Satis, R2v2Bos).
   Token (1.), tablo (3.4), araç çubuğu (4.4-4.5), kart başlığı (8.4) ve
   9. MİRAS köprüsü (.report-chip, .dash-chart-body) yeniden tanımlanmaz.
   ========================================================================== */

/* --- 10.5.3.1 Gövde ve tablo kartı: araç çubuğu + başlık + tablo tek kartta -- */
.ig-bant-govde.rapor-govde {
  padding-bottom: var(--ig-b-24);
}
.rapor-kart > .ig-filtre {
  border-bottom: 1px solid var(--ig-cizgi);
}
.rapor-kart .ig-kart-baslik-sag {
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: var(--ig-b-8);
}
/* Satış dökümü: çıktıya giren kaynak notu başlık satırının üstünde 12px SOLUK */
.rapor-kart .table > thead > tr > th.rapor-satis-not {
  height: auto;
  padding-top: var(--ig-b-8);
  padding-bottom: var(--ig-b-8);
  font-weight: var(--ig-fw-normal);
  white-space: normal;
  background-color: var(--ig-yuzey);
}

/* --- 10.5.3.2 Grafik kartları (kart başlığı + lejant + tuval) --------------- */
.rapor-grafik-kart {
  height: 100%;
}
.rapor-grafik-govde {
  padding: 0 var(--ig-b-16) var(--ig-b-16);
}
.rapor-lejant {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: var(--ig-b-16);
  margin-bottom: var(--ig-b-12);
  font-size: var(--ig-fs-12);
  color: var(--ig-metin-2);
}
.rapor-lejant-oge {
  display: inline-flex;
  align-items: center;
  gap: var(--ig-b-6);
  font-size: var(--ig-fs-12);
  color: var(--ig-soluk);
  white-space: nowrap;
}
.rapor-lejant-oge::before {
  content: "";
  width: 8px;
  height: 8px;
  border-radius: 2px;
  background-color: var(--rapor-lejant-renk, var(--ig-girdi));
}
.rapor-lejant-oge--yesil { --rapor-lejant-renk: var(--ig-birincil); }
.rapor-lejant-oge--mavi { --rapor-lejant-renk: var(--ig-mavi); }
.rapor-lejant-oge--kirmizi { --rapor-lejant-renk: var(--ig-kirmizi); }

/* 10.5.4 RAPORLAR G4 */
/* Kapsam: muh/raporlar stok_hareket_raporu, irsaliye_anomali, siparis_iptal_analiz,
   siparis_urun_talep, irsaliye_urun, faturalanmamis_irsaliye (raporlar-r2-v2 R2v2Tablo).
   Yalnız --ig-* token'ları; 4. bölüm (.ig-bant-govde, .ig-kart-baslik, .ig-durum, .ig-tutar),
   8.3-8.5 (filter_bar, card_header, pagination) ve 9.7 (report-band, report-note) üstüne. */

/* Oransal şerit kart içinde: filtre çubuğu ile tablo başlığı arasında, üstte çizgi */
.rapor-g4 .rapor-g4-serit {
  padding: var(--ig-b-16);
  border-top: 1px solid var(--ig-cizgi);
}
.rapor-g4 .rapor-g4-kart > .ig-kart-baslik {
  border-top: 1px solid var(--ig-cizgi);
}

/* Tablo: ilk sütun tarih/kod ise SOLUK ve normal ağırlık; ad sütunu 600 METIN (§1 Tablo satırı) */
.rapor-g4 .rapor-g4-tablo > tbody > tr > td.rapor-g4-soluk {
  font-weight: var(--ig-fw-normal);
  color: var(--ig-soluk);
}
.rapor-g4 .rapor-g4-tablo > tbody > tr > td.rapor-g4-ana {
  font-weight: var(--ig-fw-kalin);
  color: var(--ig-metin);
}

/* Kart başlığı sağındaki ikincil düğmeler (32px, ikon 16 + metin) */
.rapor-g4 .rapor-g4-dugme {
  display: inline-flex;
  align-items: center;
  gap: var(--ig-b-6);
  white-space: nowrap;
}

/* Grafik kartları: tablo kartının altında 16px */
.rapor-g4 .rapor-g4-grafikler {
  margin-top: var(--ig-b-16);
}
.rapor-g4 .rapor-g4-grafik-govde {
  padding: 0 var(--ig-b-20) var(--ig-b-16);
}
.rapor-g4 .rapor-g4-lejant {
  display: flex;
  flex-wrap: wrap;
  gap: var(--ig-b-4) var(--ig-b-16);
  margin-bottom: var(--ig-b-12);
  font-size: var(--ig-fs-12);
  color: var(--ig-soluk);
}
.rapor-g4 .rapor-g4-lejant-oge {
  display: inline-flex;
  align-items: center;
  gap: var(--ig-b-6);
}
.rapor-g4 .rapor-g4-lejant-oge::before {
  flex: none;
  width: 8px;
  height: 8px;
  content: "";
  background-color: var(--rapor-g4-renk, var(--ig-girdi));
  border-radius: 2px;
}
.rapor-g4 .rapor-g4-lejant-oge--y1 { --rapor-g4-renk: var(--ig-birincil); }
.rapor-g4 .rapor-g4-lejant-oge--y2 { --rapor-g4-renk: var(--ig-mavi); }
.rapor-g4 .rapor-g4-lejant-oge--n1 { --rapor-g4-renk: var(--ig-metin-2); }
.rapor-g4 .rapor-g4-lejant-oge--n2 { --rapor-g4-renk: var(--ig-soluk); }
.rapor-g4 .rapor-g4-lejant-oge--n3 { --rapor-g4-renk: var(--ig-girdi); }
.rapor-g4 .rapor-g4-lejant-oge--n4 { --rapor-g4-renk: var(--ig-cizgi-koyu); }

/* Faturalanmamış irsaliye bekleme yaşı: yeşil → gri-yeşil → turuncu → kırmızı (§1 Renk).
   Gri-yeşil için token yok; değer R2v2Tablo bekleme_bandi renginden alındı (:root). */
:root {
  --rapor-g4-yas-2: #4D7C5A;
}
.rapor-faturalanmamis-irsaliye .report-band-seg--yas2,
.rapor-faturalanmamis-irsaliye .report-band-item--yas2 {
  --ig-rb-renk: var(--rapor-g4-yas-2);
}

@media (max-width: 767.98px) {
  .rapor-g4 .rapor-g4-kart > .ig-kart-baslik {
    flex-wrap: wrap;
  }
  .rapor-g4 .rapor-g4-serit {
    padding: var(--ig-b-12);
  }
}

/* 10.5.5 RAPORLAR G5 */
/* ==========================================================================
   Muhasebe raporları G5: avans_tahsilat, cari_segment, depozito_anomali, depozito_hareket,
   depozito_urun_yuk, tahsilat_gecikme, tahsilat_kanal, urun_fiyat_sapma.
   Kaynak: raporlar-r2-v2 (R2v2Tablo, R2v2Bos) + TUTARLILIK §1. Tek kart: hap filtre (4.4/8.3)
   → oransal şerit → kart başlığı (4.11/8.4) → tablo (3.4) → boş durum (4.12). Grafik kartları altta.
   Kapsam: .ig-bant-govde.rapor-g5 + rapor başına .rapor-<ad> (aynı öğede). Yalnız --ig-* token'ları;
   yaş dilimi ara tonları (#4D7C5A gri-yeşil, #B45309 turuncu) gen_raporlar_r2v2.IRS_BANT'tan, token'da yok.
   Şerit genişliği inline style değil SVG rect width yüzdesi (9.7.1 .report-band yerine).
   ========================================================================== */
.rapor-g5 {
  --rapor-yas-1: var(--ig-birincil);
  --rapor-yas-2: #4D7C5A;
  --rapor-yas-3: #B45309;
  --rapor-yas-4: var(--ig-kirmizi);
  padding-bottom: var(--ig-b-24);
}
.rapor-g5 > .card + .rapor-grafikler { margin-top: var(--ig-b-16); }

/* Oransal şerit (bekleme_bandi: 24px, radius 4, lejant 12px etiket + 13/600 değer) */
.rapor-g5 .rapor-serit-blok {
  padding: var(--ig-b-16);
  border-top: 1px solid var(--ig-cizgi);
}
.rapor-g5 .rapor-serit {
  display: block;
  overflow: hidden;
  background-color: var(--ig-gri-zemin);
  border-radius: var(--ig-r-4);
}
.rapor-g5 .rapor-serit-seg { fill: var(--ig-girdi); }
.rapor-g5 .rapor-serit-seg--ok { fill: var(--ig-birincil); }
.rapor-g5 .rapor-serit-seg--info { fill: var(--ig-mavi); }
.rapor-g5 .rapor-serit-seg--warn { fill: var(--ig-turuncu); }
.rapor-g5 .rapor-serit-seg--n1 { fill: var(--ig-metin-2); }
.rapor-g5 .rapor-serit-seg--n2 { fill: var(--ig-soluk); }
.rapor-g5 .rapor-serit-seg--n3 { fill: var(--ig-girdi); }
.rapor-g5 .rapor-serit-seg--n4 { fill: var(--ig-cizgi-koyu); }
.rapor-g5 .rapor-serit-seg--yas1 { fill: var(--rapor-yas-1); }
.rapor-g5 .rapor-serit-seg--yas2 { fill: var(--rapor-yas-2); }
.rapor-g5 .rapor-serit-seg--yas3 { fill: var(--rapor-yas-3); }
.rapor-g5 .rapor-serit-seg--yas4 { fill: var(--rapor-yas-4); }
.rapor-g5 .rapor-serit-metin {
  font-size: var(--ig-fs-12);
  font-weight: var(--ig-fw-kalin);
  font-variant-numeric: tabular-nums;
  fill: var(--ig-beyaz);
}
.rapor-g5 .report-band-item--yas1 { --ig-rb-renk: var(--rapor-yas-1); }
.rapor-g5 .report-band-item--yas2 { --ig-rb-renk: var(--rapor-yas-2); }
.rapor-g5 .report-band-item--yas3 { --ig-rb-renk: var(--rapor-yas-3); }
.rapor-g5 .report-band-item--yas4 { --ig-rb-renk: var(--rapor-yas-4); }
.rapor-g5 .report-band-item-value { font-size: var(--ig-fs-13); }
.rapor-g5 .rapor-serit-not {
  margin: 0;
  font-size: var(--ig-fs-13);
  color: var(--ig-soluk);
}

/* Kart başlığı sağı: Yazdır + Excel ikincil 32px (§1 Düğmeler, kart içi 32) */
.rapor-g5 .ig-kart-baslik-sag .btn {
  display: inline-flex;
  align-items: center;
  gap: var(--ig-b-6);
  height: var(--ig-dugme-kart-h);
  padding: 0 12px;
  font-size: var(--ig-fs-13);
  white-space: nowrap;
}

/* Tablo: sıra sütunu ikincil, negatif kırmızı, yaş dilimi metni (§1 Tablo satırı, Renk) */
.rapor-g5 .table > thead > tr > th.rapor-sira,
.rapor-g5 .table > tbody > tr > td.rapor-sira {
  width: 48px;
  font-weight: var(--ig-fw-normal);
  color: var(--ig-soluk);
}
.rapor-g5 .table > tbody > tr > td.rapor-ikincil { color: var(--ig-soluk); }
.rapor-g5 .table .rapor-alt {
  display: block;
  font-size: var(--ig-fs-12);
  color: var(--ig-soluk);
}
.rapor-g5 .table .rapor-negatif { color: var(--ig-kirmizi); }
.rapor-g5 .table .rapor-yas--1 { color: var(--rapor-yas-1); }
.rapor-g5 .table .rapor-yas--2 { color: var(--rapor-yas-2); }
.rapor-g5 .table .rapor-yas--3 { color: var(--rapor-yas-3); }
.rapor-g5 .table .rapor-yas--4 { color: var(--rapor-yas-4); }
.rapor-g5 .table .report-chip + .report-chip,
.rapor-g5 .table .fw-semibold + .report-chip { margin-left: var(--ig-b-6); }

/* Grafik kartları (report_chart_pair yerine card_header + dash-chart-body) */
.rapor-g5 .rapor-grafik {
  display: flex;
  flex-direction: column;
}
.rapor-g5 .rapor-grafik .dash-chart-body { margin: 0 var(--ig-b-20) var(--ig-b-16); }
.rapor-g5 .rapor-grafik-not {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--ig-b-12);
  margin-top: auto;
  padding: var(--ig-b-12) var(--ig-b-20);
  font-size: var(--ig-fs-13);
  color: var(--ig-soluk);
  border-top: 1px solid var(--ig-cizgi);
}
.rapor-g5 .rapor-grafik-not-deger {
  font-weight: var(--ig-fw-kalin);
  color: var(--ig-metin);
  white-space: nowrap;
  font-variant-numeric: tabular-nums;
}
.rapor-g5 .rapor-lejant {
  display: inline-flex;
  align-items: center;
  gap: var(--ig-b-6);
  font-size: var(--ig-fs-12);
  color: var(--ig-soluk);
  white-space: nowrap;
}
.rapor-g5 .rapor-lejant::before {
  flex: none;
  width: 8px;
  height: 8px;
  content: "";
  background-color: var(--rapor-lejant-renk, var(--ig-girdi));
  border-radius: 2px;
}
.rapor-g5 .rapor-lejant--ok { --rapor-lejant-renk: var(--ig-birincil); }
.rapor-g5 .rapor-lejant--info { --rapor-lejant-renk: var(--ig-mavi); }
.rapor-g5 .rapor-lejant--warn { --rapor-lejant-renk: var(--ig-turuncu); }
@media (max-width: 767.98px) {
  .rapor-g5 .ig-kart-baslik { flex-wrap: wrap; }
  .rapor-g5 .ig-kart-baslik-sag { flex-wrap: wrap; }
}

/* 10.5.6 RAPORLAR G6
   Muhasebe rapor ekranları (14 view) · raporlar-r2-v2 (R2v2Tablo, R2v2Bos).
   Yalnız --ig-* token'ları; 4 (.ig-bant-govde), 8b (card_header, filter_bar, empty_state)
   ve 9.7 (.report-band, .report-chip) üstüne. Önek: .rapor-<ad>. */

/* Bant gövdesinde kartlar alt alta, aralarında 16px (§1 Detay sekme şeridi: kartlar arası 16px) */
.rapor-tahsilat-hareket,
.rapor-depozito-uyum,
.rapor-cari-bazli-irsaliye,
.rapor-acik-hesap-kapanis,
.rapor-cari-hareket-ekstre,
.rapor-urun-cari-dagilim,
.rapor-urun-performans,
.rapor-cari-depozito-bakiye,
.rapor-depozito-personel,
.rapor-cari-aktivite,
.rapor-cari-adres-rut,
.rapor-cari-bakiye-risk,
.rapor-depozito-yaslandirma,
.rapor-cari-tahsilat-performans {
  display: flex;
  flex-direction: column;
  gap: var(--ig-b-16);
  padding-bottom: var(--ig-b-24);
}

/* Grafik kartı: card_header altında tuval, kart kenarından 16px içeride */
.rapor-tahsilat-hareket .dash-chart-body,
.rapor-depozito-uyum .dash-chart-body,
.rapor-urun-cari-dagilim .dash-chart-body,
.rapor-urun-performans .dash-chart-body,
.rapor-cari-depozito-bakiye .dash-chart-body,
.rapor-depozito-personel .dash-chart-body,
.rapor-cari-bakiye-risk .dash-chart-body,
.rapor-depozito-yaslandirma .dash-chart-body,
.rapor-cari-tahsilat-performans .dash-chart-body {
  margin: 0 var(--ig-b-16) var(--ig-b-16);
}

/* Oransal şerit kartı (R2v2Tablo bekleme yaşı): başlık altında 16px iç boşluk */
.rapor-depozito-yaslandirma-serit,
.rapor-cari-depozito-bakiye-serit,
.rapor-acik-hesap-kapanis-serit,
.rapor-depozito-uyum-serit {
  padding: 0 var(--ig-b-16) var(--ig-b-16);
}

/* Yaş dilimleri yeşil → gri-yeşil → turuncu → kırmızı (§1 Renk; R2v2Tablo IRS_BANT #4D7C5A).
   isgelir-ui.css 1. bölümde gri-yeşil token yok (grep "gri-yesil|--ig-yas|4D7C5A" = 0); ham değer bilinçli. */
.rapor-depozito-yaslandirma .report-band-seg--yas2,
.rapor-depozito-yaslandirma .report-band-item--yas2 {
  --ig-rb-renk: #4D7C5A;
}

/* Toplam satırı: ZEMIN arka plan, 600 (§1 Toplam satırı) */
.rapor-cari-aktivite tfoot td,
.rapor-urun-performans tfoot td,
.rapor-tahsilat-hareket tfoot td,
.rapor-cari-bazli-irsaliye tfoot td,
.rapor-cari-hareket-ekstre tfoot td {
  font-weight: var(--ig-fw-kalin);
  background-color: var(--ig-zemin);
  border-top: 1px solid var(--ig-cizgi);
  font-variant-numeric: tabular-nums;
}

/* Hap içinde select2 (footer.php initBusinessSelect2 id/name'de "cari" geçen select'i otomatik bağlar;
   width:100% hapın içinde sıfıra çöker). Kutusu hap çerçevesine bırakılır. */
.rapor-tahsilat-hareket .ig-hap .select2-container,
.rapor-cari-bazli-irsaliye .ig-hap .select2-container,
.rapor-cari-hareket-ekstre .ig-hap .select2-container {
  min-width: 240px;
}
.rapor-tahsilat-hareket .ig-hap .select2-selection--single,
.rapor-cari-bazli-irsaliye .ig-hap .select2-selection--single,
.rapor-cari-hareket-ekstre .ig-hap .select2-selection--single {
  height: 30px;
  background: transparent;
  border: 0;
}

/* 10.6.1 İRSALİYE LİSTESİ */
/* muh/evrak/irsaliye/irsaliye_listesi.php + irsaliye_listele_tablosu.php (satış / alış) · liste-c/ListeC.
   Bant, sekme şeridi (3.6), araç çubuğu, seçim çubuğu, satır işlemleri, durum etiketi (4.9) ve boş durum
   ortak sınıflardan gelir; burada yalnız bu tabloya özgü hücreler var. */
.ig-irsaliye-kart {
  margin-bottom: var(--ig-b-24);
  overflow: hidden;
}
.ig-irsaliye-kart .table > :not(caption) > * > .ig-sec-hucre {
  width: 36px;
  padding-right: 0;
}
.ig-irsaliye-kart .ig-sec-hucre .form-check-input {
  display: block;
}
.ig-irsaliye-no {
  font-weight: var(--ig-fw-kalin);
  color: var(--ig-metin);
  white-space: nowrap;
}
.ig-irsaliye-soluk {
  color: var(--ig-soluk);
}
.ig-irsaliye-durum-hucre {
  white-space: nowrap;
}
/* Araç hapı select2 ile açılır; hap içinde okunur genişlik */
.ig-irsaliye-kart .ig-hap .select2-container {
  min-width: 160px;
}
/* Toplu resmileştirme ilerlemesi: genişliği JS yazar, başlangıç 0 */
.ig-irsaliye-ilerleme {
  width: 0;
}
.ig-irsaliye-belge-alan {
  height: 820px;
}

/* 10.6.2 İRSALİYE FORM */
/* muh/evrak/irsaliye/irsaliye_duzenle.php + satır partial'ları (irsaliye_olustur_satir, _tablo_urunler, _siparis_rows).
   form-sayfa-c (FormCUrunler) + siparis-detay-c3 kalem tablosu. Bant, kart başlığı (4.11), segment ve "isteğe bağlı" (4.14),
   satır işlemi (4.6), durum etiketi (4.9), boş durum (4.12), tablo 40/44 (3.x) ortak sınıflardan gelir. */
.irs-form-govde { padding-bottom: var(--ig-b-24); }
.irs-form-izgara {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--ig-b-16);
  margin-bottom: var(--ig-b-16);
}
.irs-form-kart { margin-bottom: var(--ig-b-16); overflow: hidden; }
.irs-form-izgara .irs-form-kart { margin-bottom: 0; }
.irs-form-alanlar { padding: 0 var(--ig-b-20) var(--ig-b-20); }
.form-label.irs-form-etiket { font-size: var(--ig-fs-14); font-weight: var(--ig-fw-kalin); }
.form-control.irs-form-girdi,
.form-select.irs-form-girdi { height: var(--ig-girdi-h); border-radius: var(--ig-r-6); }
.form-control.irs-form-girdi[readonly] { background-color: var(--ig-zemin); }
.irs-form-segment .ig-segment-oge { display: inline-flex; align-items: center; justify-content: center; }
.irs-form-soluk { color: var(--ig-soluk); }

/* Kalem tablosu: başlık 40, satır 44 (3.x), sayılar sağa tabular; genişlikler burada (style="" yok) */
.irs-form-tablo .irs-form-s-urun { width: 24%; }
.irs-form-tablo .irs-form-s-varyant { width: 16%; }
.irs-form-bekleyen-tablo .irs-form-s-islem { width: 96px; }
.irs-form-urun { display: flex; align-items: center; gap: var(--ig-b-8); min-width: 0; }
.irs-form-urun .select2-container,
.irs-form-urun-sec { flex: 1; min-width: 0; }
.irs-form-urun-ad { font-weight: var(--ig-fw-kalin); color: var(--ig-metin); }
.irs-form-urun-alt { margin-top: 2px; font-size: var(--ig-fs-12); font-weight: var(--ig-fw-normal); color: var(--ig-soluk); }
.irs-form-varyant { display: inline-flex; align-items: center; gap: var(--ig-b-6); }
.irs-form-miktar {
  display: flex;
  align-items: center;
  justify-content: center;
  min-width: 88px;
  height: var(--ig-dugme-kart-h);
  padding: 0 var(--ig-b-8);
  font-weight: var(--ig-fw-kalin);
  font-variant-numeric: tabular-nums;
  border: 1px solid var(--ig-cizgi);
  border-radius: var(--ig-r-6);
  cursor: pointer;
}
.irs-form-duzenlenir[contenteditable="true"]:focus-visible,
.irs-form-duzenlenir [contenteditable="true"]:focus-visible { outline: 0; box-shadow: var(--ig-odak); border-radius: var(--ig-r-4); }
.irs-form-kdv { display: inline-flex; align-items: center; justify-content: flex-end; gap: var(--ig-b-4); }
.irs-form-kdv .kdv-tutari { margin-left: var(--ig-b-8); }
.irs-form-tutar { font-weight: var(--ig-fw-kalin); color: var(--ig-metin); white-space: nowrap; }
.form-control.irs-form-sayi-girdi { height: var(--ig-dugme-kart-h); text-align: right; font-variant-numeric: tabular-nums; }
.irs-form-uyari-metin { color: var(--ig-sari-metin); }
.irs-form-bos-hucre { color: var(--ig-soluk); text-align: center; }
.irs-form-ekle { color: var(--ig-yesil-metin); cursor: pointer; }

/* Altlık: depozito + toplamlar, ZEMIN 600 (§1 Toplam satırı) */
.irs-form-kalem-alt {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 320px;
  gap: var(--ig-b-24);
  padding: var(--ig-b-20);
  background-color: var(--ig-zemin);
  border-top: 1px solid var(--ig-cizgi);
}
.irs-form-depozito { background-color: var(--ig-yuzey); border: 1px solid var(--ig-cizgi); border-radius: var(--ig-r-8); overflow: hidden; }
.irs-form-depozito-bas,
.irs-form-onceki-bas { display: flex; align-items: center; justify-content: space-between; gap: var(--ig-b-12); }
.irs-form-depozito-bas { padding: var(--ig-b-12) var(--ig-b-16); }
.irs-form-alt-baslik { font-size: var(--ig-fs-14); font-weight: var(--ig-fw-kalin); color: var(--ig-metin); }
.irs-form-toplamlar { display: flex; flex-direction: column; gap: var(--ig-b-8); font-weight: var(--ig-fw-kalin); }
.irs-form-toplam-satir { display: flex; align-items: center; justify-content: space-between; gap: var(--ig-b-16); font-size: var(--ig-fs-14); }
.irs-form-toplam-satir strong { font-weight: var(--ig-fw-kalin); white-space: nowrap; }
.irs-form-toplam-girdi {
  min-width: 112px;
  height: var(--ig-dugme-kart-h);
  padding: 0 var(--ig-b-8);
  line-height: 30px;
  text-align: right;
  background-color: var(--ig-yuzey);
  border: 1px solid var(--ig-cizgi);
  border-radius: var(--ig-r-6);
}
.irs-form-toplam-girdi:focus-visible { outline: 0; box-shadow: var(--ig-odak); }
.irs-form-toplam-genel { padding-top: var(--ig-b-12); margin-top: var(--ig-b-4); border-top: 1px solid var(--ig-cizgi); }
.irs-form-toplam-genel strong { font-size: var(--ig-fs-20); }

/* Sayfa altlığı: yapışkan, 44px düğmeler, tek birincil */
.irs-form-altlik {
  position: sticky;
  bottom: 0;
  z-index: 5;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--ig-b-12);
  padding: var(--ig-b-16) var(--ig-b-20);
  background-color: var(--ig-yuzey);
  border: 1px solid var(--ig-cizgi);
  border-radius: var(--ig-r-8);
  box-shadow: 0 -4px 12px rgba(9, 9, 11, 0.06);
}
.btn.irs-form-sil { color: var(--ig-kirmizi); }
.btn.irs-form-sil:hover { color: var(--ig-kirmizi); background-color: var(--ig-kirmizi-zemin); }
.irs-form-birincil { margin-left: auto; }

/* Tartım modalı: JS new bootstrap.Modal(#tartimModal) kullandığı için sağ panele taşınmadı (JS değişmez) */
@media (min-width: 576px) {
  .irs-form-tartim-dialog { max-width: 560px; }
}
.irs-form-tartim-urun { font-size: var(--ig-fs-20); font-weight: var(--ig-fw-kalin); line-height: 1.3; color: var(--ig-metin); text-align: center; }
.form-control.irs-form-tartim-girdi {
  height: 48px;
  font-size: var(--ig-fs-20);
  font-weight: var(--ig-fw-kalin);
  text-align: center;
  font-variant-numeric: tabular-nums;
}
.irs-form-dara-izgara { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--ig-b-8); }
.btn.irs-form-dara {
  flex-direction: column;
  gap: 2px;
  height: auto;
  min-height: 52px;
  padding: var(--ig-b-8);
  border: 1px solid var(--ig-cizgi);
}
.irs-form-dara-deger { font-weight: var(--ig-fw-kalin); line-height: 1.2; }
.irs-form-dara-ad { font-size: var(--ig-fs-12); line-height: 1.3; }
.irs-form-tartim-ozet {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  border: 1px solid var(--ig-cizgi);
  border-radius: var(--ig-r-8);
}
.irs-form-tartim-ozet-oge { display: flex; flex-direction: column; gap: 2px; padding: var(--ig-b-12) var(--ig-b-16); }
.irs-form-tartim-ozet-oge + .irs-form-tartim-ozet-oge { border-left: 1px solid var(--ig-cizgi); }
.irs-form-tartim-ozet-etiket { font-size: var(--ig-fs-12); color: var(--ig-soluk); }
.irs-form-tartim-ozet-deger { font-size: var(--ig-fs-20); font-weight: var(--ig-fw-kalin); color: var(--ig-metin); }
.irs-form-tartim-ozet-deger.irs-form-tartim-net { color: var(--ig-yesil-metin); }
.irs-form-onceki { padding-top: var(--ig-b-12); border-top: 1px solid var(--ig-cizgi); }
.irs-form-onceki-bas { margin-bottom: var(--ig-b-8); }

@media (max-width: 991.98px) {
  .irs-form-izgara,
  .irs-form-kalem-alt { grid-template-columns: minmax(0, 1fr); }
}

/* 10.6.3 İRSALİYE OLUŞTUR */
/* muh/evrak/irsaliye/irsaliye_olustur_yeni.php, irsaliye_hizli_olustur.php, irsaliye_siparisten.php,
   irsaliye_hizli_siparisler.php · form-sayfa-c/FormCUrunler. Bant, kart başlığı (3.3), girdi 40px (3.2),
   tablo başlığı 40 / satır 44 (3.4), satır işlemi (4.6), durum etiketi (4.9), boş durum (4.12) ortak
   sınıflardan gelir; kalem tablosu hücreleri E2a (.irs-form-*). Burada yalnız sayfa yerleşimi, toplamlar
   ve yapışkan altlık var. */
.irs-olustur-kart {
  margin-bottom: var(--ig-b-16);
  overflow: hidden;
}
.irs-olustur-govde {
  padding: var(--ig-b-20) var(--ig-b-24) var(--ig-b-24);
}
.irs-olustur-kart .ig-kart-baslik-sag {
  gap: var(--ig-b-12);
}
.irs-olustur-kdv {
  display: flex;
  align-items: center;
  gap: var(--ig-b-8);
  margin: 0;
  font-size: var(--ig-fs-13);
  font-weight: var(--ig-fw-orta);
  color: var(--ig-metin);
  white-space: nowrap;
}

/* Toplamlar · ZEMIN, 600 (§1 Toplam satırı; FormC toplamlar_blok 320px) */
.irs-olustur-toplam {
  display: flex;
  justify-content: flex-end;
  padding: var(--ig-b-16) var(--ig-b-24);
  background-color: var(--ig-zemin);
  border-top: 1px solid var(--ig-cizgi);
}
.irs-olustur-toplam-liste {
  display: flex;
  flex-direction: column;
  gap: var(--ig-b-8);
  width: 320px;
  margin: 0;
}
.irs-olustur-toplam-satir {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: var(--ig-b-16);
  font-size: var(--ig-fs-14);
}
.irs-olustur-toplam-satir dt {
  font-weight: var(--ig-fw-orta);
  color: var(--ig-soluk);
}
.irs-olustur-toplam-satir dd {
  margin: 0;
  font-weight: var(--ig-fw-kalin);
  color: var(--ig-metin);
  white-space: nowrap;
  font-variant-numeric: tabular-nums;
}
.irs-olustur-toplam-satir--genel {
  padding-top: var(--ig-b-12);
  font-size: var(--ig-fs-20);
  border-top: 1px solid var(--ig-cizgi);
}
.irs-olustur-toplam-satir--genel dt {
  font-size: var(--ig-fs-14);
  font-weight: var(--ig-fw-kalin);
  color: var(--ig-metin);
}
/* İskonto / teslimat: contenteditable hücre girdi gibi görünür */
.irs-olustur-girdi {
  display: inline-block;
  min-width: 96px;
  height: var(--ig-dugme-kart-h);
  padding: 0 var(--ig-b-8);
  line-height: 30px;
  text-align: right;
  background-color: var(--ig-yuzey);
  border: 1px solid var(--ig-cizgi);
  border-radius: var(--ig-r-6);
}
.irs-olustur-girdi:focus {
  border-color: var(--ig-koyu);
  outline: 0;
  box-shadow: var(--ig-odak);
}

/* Yapışkan sayfa altlığı · 44px düğmeler, tek birincil (FormC alt_cubuk) */
.irs-olustur-altlik {
  position: sticky;
  bottom: 0;
  z-index: 10;
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: var(--ig-b-12);
  margin-top: var(--ig-b-8);
  padding: var(--ig-b-16) var(--ig-bant-x);
  background-color: var(--ig-yuzey);
  border-top: 1px solid var(--ig-cizgi);
  box-shadow: 0 -4px 12px rgba(9, 9, 11, 0.06);
}
.irs-olustur-onay {
  max-width: 420px;
}

/* Hızlı irsaliye · sol sipariş listesi (C3 liste satırı 64px; seçili yeşil zemin) */
.irs-olustur-yan {
  position: sticky;
  top: 80px;
}
.irs-olustur-liste {
  max-height: calc(100vh - 400px);
  overflow-y: auto;
}
/* #sag_panel: jQuery .show() satır içi display yazar; d-none (!important) kullanılamaz */
.irs-olustur-gizli {
  display: none;
}
.irs-olustur-sip {
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: var(--ig-b-4);
  min-height: 64px;
  padding: var(--ig-b-8) var(--ig-b-16);
  border-top: 1px solid var(--ig-cizgi);
}
.irs-olustur-liste .irs-olustur-sip.bg-primary-subtle {
  background-color: var(--ig-yesil-secili);
}
.irs-olustur-sip-ust,
.irs-olustur-sip-alt {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--ig-b-8);
  min-width: 0;
}
.irs-olustur-sip-ad {
  min-width: 0;
  overflow: hidden;
  font-size: var(--ig-fs-14);
  font-weight: var(--ig-fw-kalin);
  color: var(--ig-metin);
  white-space: nowrap;
  text-overflow: ellipsis;
}
.irs-olustur-sip-alt {
  font-size: var(--ig-fs-13);
  color: var(--ig-soluk);
}
@media (max-width: 767.98px) {
  .irs-olustur-altlik { padding: var(--ig-b-12) var(--ig-b-16); }
  .irs-olustur-toplam-liste { width: 100%; }
  .irs-olustur-yan { position: static; }
}

/* 10.6.4 BELGE DETAY */
/* muh/evrak/irsaliye/irsaliye_detay.php + fatura/fatura_detay.php · siparis-detay-c3 (kalem tablosu) + cari-detay/CariOzet.
   Bant (4.1/8.1 record_header), kart başlığı (4.11), bilgi satırı/ızgara (4.10), durum etiketi (4.9), tablo (3.4),
   tutar (.ig-tutar), satır işlemleri (4.6), boş durum (4.12) ve modal (3.8) ortak sınıflardan gelir; burada yalnız yerleşim. */

/* Gövde: ana sütun 2fr + yan sütun 1fr (CariOzet) */
.belge-detay-govde {
  padding-bottom: var(--ig-b-24);
}
.belge-detay-izgara {
  display: grid;
  grid-template-columns: minmax(0, 2fr) minmax(0, 1fr);
  gap: var(--ig-b-16);
  align-items: start;
  margin-bottom: var(--ig-b-16);
}
.belge-detay-sutun {
  display: flex;
  flex-direction: column;
  gap: var(--ig-b-16);
  min-width: 0;
}
.belge-detay-kart {
  margin-bottom: var(--ig-b-16);
  overflow: hidden;
}
.belge-detay-kart-govde {
  padding: 0 var(--ig-b-20) var(--ig-b-20);
}
.belge-detay-kart-govde--liste {
  padding-bottom: var(--ig-b-12);
}
.belge-detay-aciklama {
  margin-top: var(--ig-b-16);
  padding-top: var(--ig-b-16);
  border-top: 1px solid var(--ig-cizgi);
}
.belge-detay-aciklama .ig-bilgi-etiket {
  display: block;
  font-size: var(--ig-fs-12);
}
.belge-detay-aciklama .ig-bilgi-deger {
  margin: var(--ig-b-2) 0 0;
  font-size: var(--ig-fs-14);
  text-align: left;
  white-space: pre-line;
}
.belge-detay-baglanti {
  font-weight: var(--ig-fw-orta);
  color: var(--ig-yesil-metin);
  text-decoration: none;
}
.belge-detay-baglanti:hover {
  text-decoration: underline;
  text-underline-offset: 3px;
}
.belge-detay-baglanti:focus-visible {
  outline: 0;
  border-radius: var(--ig-r-4);
  box-shadow: var(--ig-odak);
}
.belge-detay-kirp {
  min-width: 0;
  overflow-wrap: anywhere;
  font-size: var(--ig-fs-12);
}
.belge-detay-not {
  margin: 0;
  padding: var(--ig-b-8) 0;
  font-size: var(--ig-fs-13);
  color: var(--ig-soluk);
}
.belge-detay-kart-dugme {
  width: 100%;
  margin-top: var(--ig-b-12);
}

/* Kalem tablosu: başlık 40 (3.4), satır 44, sayılar sağa tabular */
.belge-detay-tablo > tbody > tr > td {
  height: 44px;
}
.belge-detay-tablo .belge-detay-sira {
  width: 56px;
  font-weight: var(--ig-fw-normal);
  color: var(--ig-soluk);
}
.belge-detay-tablo .belge-detay-ad {
  font-weight: var(--ig-fw-kalin);
}
.belge-detay-sayi {
  text-align: right;
  white-space: nowrap;
  font-variant-numeric: tabular-nums;
}
.belge-detay-sayi--vurgu {
  font-weight: var(--ig-fw-kalin);
  color: var(--ig-metin);
}
.belge-detay-alt-metin {
  display: block;
  margin-top: var(--ig-b-2);
  font-size: var(--ig-fs-12);
  font-weight: var(--ig-fw-normal);
  color: var(--ig-soluk);
  font-variant-numeric: tabular-nums;
}

/* Toplamlar: tablonun altında sağda; son satır ZEMIN 600 (§1 Toplam satırı) */
.belge-detay-toplamlar {
  width: 360px;
  max-width: 100%;
  margin-left: auto;
  padding: var(--ig-b-8) var(--ig-b-20) var(--ig-b-16);
}
.belge-detay-toplamlar .ig-bilgi-deger {
  font-variant-numeric: tabular-nums;
}
.belge-detay-toplamlar .belge-detay-toplam-satir {
  margin: var(--ig-b-4) calc(var(--ig-b-12) * -1);
  padding: 10px var(--ig-b-12);
  font-size: var(--ig-fs-14);
  font-weight: var(--ig-fw-kalin);
  color: var(--ig-metin);
  background-color: var(--ig-zemin);
  border-bottom: 0;
  border-radius: var(--ig-r-6);
}

/* İlişkili irsaliyeler + ödemeler yan yana */
.belge-detay-ikili {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0 var(--ig-b-16);
  align-items: start;
}
.belge-detay-ikili.is-tek {
  grid-template-columns: minmax(0, 1fr);
}

/* E-irsaliye önizleme alanı (eski style="height:820px") */
.belge-detay-onizleme {
  height: 820px;
  overflow: hidden;
  border: 1px solid var(--ig-cizgi);
  border-radius: var(--ig-r-6);
}

@media (max-width: 991.98px) {
  .belge-detay-izgara,
  .belge-detay-ikili { grid-template-columns: minmax(0, 1fr); gap: var(--ig-b-12); }
  .belge-detay-sutun { gap: var(--ig-b-12); }
  .belge-detay-izgara .ig-bilgi-izgara { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .belge-detay-toplamlar { width: 100%; }
  .belge-detay-onizleme { height: 70vh; }
}

/* 10.6.5 FATURA */
/* muh/evrak/fatura/faturalar.php, satis_faturalari.php, alis_faturalari.php + fatura_tablosu.php · liste-c/ListeC.
   Bant, araç çubuğu (4.4/4.5), satır işlemleri (4.6), durum etiketi (3.5/4.9), boş durum (4.12) ortak sınıflardan
   gelir. ebelge_gonder_modal.php: onay/eylem modalı (3.8), veri girişi alanları olduğu için modal kalır. */
.fatura-kart {
  margin-bottom: var(--ig-b-24);
  overflow: hidden;
}
.fatura-tablo > thead > tr > th {
  height: 40px;
  white-space: nowrap;
}
.fatura-tablo > tbody > tr > td {
  height: 44px;
  vertical-align: middle;
}
.fatura-no {
  font-weight: var(--ig-fw-kalin);
  color: var(--ig-metin);
  white-space: nowrap;
}
.fatura-no-hucre {
  white-space: nowrap;
}
.fatura-no-hucre .badge,
.fatura-no-hucre .ig-durum {
  margin-left: var(--ig-b-6);
}
.fatura-soluk {
  color: var(--ig-soluk);
}
.fatura-tarih {
  color: var(--ig-soluk);
  white-space: nowrap;
  font-variant-numeric: tabular-nums;
}
.fatura-vade-not {
  display: block;
  font-size: var(--ig-fs-12);
}
.fatura-vade-not--gecti {
  color: var(--ig-kirmizi);
}
.fatura-vade-not--yakin {
  color: var(--ig-sari-metin);
}
.fatura-odeme-ozet {
  display: block;
  margin-top: 2px;
  font-size: var(--ig-fs-12);
  color: var(--ig-soluk);
  white-space: nowrap;
  font-variant-numeric: tabular-nums;
}
/* Helper etiketleri (get_fatura_durum_badge, ebelge_durum_badge) ikon taşır; onaylı etikette ikon yok */
.fatura-tablo .badge > i,
.fatura-tablo .badge > svg {
  display: none;
}

/* E-belge gönderimi (onay/eylem modalı, 420px) */
@media (min-width: 576px) {
  .fatura-ebelge-dialog {
    max-width: 420px;
  }
}
.fatura-ebelge-bolum {
  padding: var(--ig-b-12) 0;
  border-bottom: 1px solid var(--ig-cizgi);
}
.fatura-ebelge-bolum:first-child {
  padding-top: 0;
}
.fatura-ebelge-bolum:last-child {
  border-bottom: 0;
}
.fatura-ebelge-bolum-baslik {
  margin: 0 0 var(--ig-b-8);
  font-size: var(--ig-fs-13);
  font-weight: var(--ig-fw-kalin);
  color: var(--ig-metin);
}
.fatura-ebelge-ipucu {
  display: block;
  margin-top: var(--ig-b-4);
  font-size: var(--ig-fs-12);
  color: var(--ig-soluk);
}
#mukellef_sonuc:empty {
  display: none;
}

/* Form sayfası (form-sayfa-c): fatura_olustur.php, irsaliyeden_fatura.php.
   Kart başlığı 4.11, form 3.2, satır işlemi 4.6; burada kart aralığı, kalem tablosu, toplamlar ve yapışkan altlık. */
.fatura-form-kart {
  margin-bottom: var(--ig-b-16);
  overflow: hidden;
}
.fatura-kalem-tablo > thead > tr > th {
  height: 40px;
  white-space: nowrap;
}
.fatura-kalem-tablo > tbody > tr > td {
  height: 44px;
  vertical-align: middle;
}
.fatura-ipucu {
  margin-left: var(--ig-b-4);
  font-size: var(--ig-fs-12);
  font-weight: normal;
  color: var(--ig-soluk);
}
.fatura-toplamlar {
  width: 100%;
  max-width: 360px;
  margin-left: auto;
  padding: var(--ig-b-12) var(--ig-b-16);
}
.fatura-toplamlar--modal {
  max-width: none;
  padding: var(--ig-b-12) 0 0;
}
.fatura-toplam-satir {
  display: flex;
  justify-content: space-between;
  gap: var(--ig-b-16);
  padding: 6px 0;
  font-size: var(--ig-fs-13);
  color: var(--ig-soluk);
}
.fatura-toplam-satir .ig-tutar {
  font-weight: var(--ig-fw-orta);
  color: var(--ig-metin);
}
.fatura-toplam-satir--genel {
  margin-top: var(--ig-b-4);
  padding: 10px var(--ig-b-12);
  font-size: var(--ig-fs-14);
  font-weight: var(--ig-fw-kalin);
  color: var(--ig-metin);
  background-color: var(--ig-zemin);
  border-radius: var(--ig-r-4);
}
.fatura-toplam-satir--genel .ig-tutar {
  font-weight: var(--ig-fw-kalin);
}
/* Yapışkan sayfa altlığı: 44px düğmeler, tek birincil + Vazgeç */
.fatura-form-altlik {
  position: sticky;
  bottom: 0;
  z-index: 5;
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: var(--ig-b-8);
  margin: 0 0 var(--ig-b-24);
  padding: var(--ig-b-12) var(--ig-b-16);
  background-color: var(--ig-yuzey);
  border: 1px solid var(--ig-cizgi);
  border-radius: var(--ig-r-8);
}
.fatura-form-altlik .btn {
  height: var(--ig-dugme-altlik-h);
}
.fatura-altlik-temizle {
  margin-right: auto;
}
.fatura-form-kart .fatura-form-altlik {
  margin: 0;
  border-width: 1px 0 0;
  border-radius: 0;
}

/* ==========================================================================
   10.7–10.17 MUHASEBE B + CARİ SEKMELERİ (Faz 4)
   ========================================================================== */

/* 10.7.1 SİPARİŞ OLUŞTUR */
/* muh/siparis/siparis_olustur.php + siparis_sepet.php, siparis_urun_detay.php, siparis_urun_listesi.php.
   form-sayfa-c (FormCUrunler: bant + bindirilmiş kartlar, 40px girdi, segment, yapışkan 44px altlık) + siparis-detay-c3 kalem tablosu.
   Kart (.irs-olustur-kart), form gövdesi (.irs-olustur-govde), etiket/girdi (.irs-form-etiket, .irs-form-girdi, .irs-form-segment),
   altlık (.irs-olustur-altlik) 10.6.2-10.6.3'ten; segment ve "isteğe bağlı" (4.14), arama/hap (4.x), satır işlemi (4.6),
   sağ panel (.offcanvas-end), boş durum (4.12) ortak sınıflardan gelir. Burada yalnız yerleşim ve bu ekrana özgü parçalar. */
.sip-olustur-izgara {
  display: grid;
  grid-template-columns: minmax(0, 1fr) var(--ig-liste-sol-w);
  gap: var(--ig-b-16);
  align-items: start;
}
.sip-olustur-izgara .irs-olustur-kart { margin-bottom: 0; }
.sip-olustur-bilgi {
  position: sticky;
  top: var(--ig-b-16);
}

/* Ürünler kartı: görünüm segmenti (kart başlığı sağı), arama, kategori sekmeleri */
.ig-segment.sip-olustur-gorunum {
  height: var(--ig-dugme-kart-h);
  padding: var(--ig-b-2);
}
.sip-olustur-gorunum .ig-segment-oge {
  padding: 0 var(--ig-b-12);
  font-size: var(--ig-fs-13);
}
.sip-olustur-gorunum .ig-segment-oge.active {
  font-weight: var(--ig-fw-kalin);
  color: var(--ig-metin);
  background-color: var(--ig-yuzey);
  box-shadow: var(--ig-golge-segment);
}
.sip-olustur-arac {
  display: flex;
  align-items: center;
  gap: var(--ig-b-8);
  min-height: var(--ig-arac-h);
  padding: 0 var(--ig-b-16);
}
.sip-olustur-arama-form { margin: 0; }
.ig-arama.sip-olustur-arama { padding-right: var(--ig-b-2); }
.sip-olustur-ara-dugme {
  display: inline-flex;
  flex: none;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  padding: 0;
  color: var(--ig-soluk);
  background: transparent;
  border: 0;
  border-radius: var(--ig-r-4);
}
.sip-olustur-ara-dugme:hover { color: var(--ig-metin); background-color: var(--ig-zemin); }
.sip-olustur-ara-dugme:focus-visible { outline: 2px solid transparent; box-shadow: var(--ig-odak); }
.nav-tabs.sip-olustur-kategori {
  flex-wrap: nowrap;
  padding: 0 var(--ig-b-16);
  overflow-x: auto;
  overflow-y: hidden;
}
.sip-olustur-kategori .nav-link { white-space: nowrap; }
.sip-olustur-icerik {
  padding: var(--ig-b-16);
  background-color: var(--ig-zemin);
}
.sip-olustur-tablo-kap {
  margin: calc(var(--ig-b-16) * -1);
  background-color: var(--ig-yuzey);
}

/* Ürün kartı (sipariş oluştur kart/ızgara + sipariş detay ürün seçimi) */
.card.sip-olustur-urun {
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: var(--ig-b-12);
  height: 100%;
  margin: 0;
  padding: var(--ig-b-12);
  color: var(--ig-metin);
  text-decoration: none;
  cursor: pointer;
  border: 1px solid var(--ig-cizgi);
  border-radius: var(--ig-r-8);
  box-shadow: none;
}
.card.sip-olustur-urun:hover {
  background-color: var(--ig-yesil-hover);
  border-color: var(--ig-yesil-cizgi);
}
.card.sip-olustur-urun:focus-visible { outline: 2px solid transparent; box-shadow: var(--ig-odak); }
.sip-olustur-urun-gorsel {
  flex: none;
  width: 40px;
  height: 40px;
  object-fit: cover;
  border-radius: var(--ig-r-6);
}
.sip-olustur-urun--genis .sip-olustur-urun-gorsel {
  width: 56px;
  height: 56px;
}
.sip-olustur-urun-metin {
  display: flex;
  flex: 1;
  flex-direction: column;
  gap: var(--ig-b-2);
  min-width: 0;
}
.sip-olustur-urun-ad,
.sip-olustur-urun-alt {
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
}
.sip-olustur-urun-ad { font-size: var(--ig-fs-14); font-weight: var(--ig-fw-kalin); color: var(--ig-metin); }
.sip-olustur-urun-alt { font-size: var(--ig-fs-12); color: var(--ig-soluk); }
.sip-olustur-urun-ekle { display: inline-flex; flex: none; color: var(--ig-yesil-metin); }

/* Ürün tablosu görünümü: başlık 40 / satır 44 (3.4); ilk hücre görsel olduğu için ad sütunu 600 */
.sip-olustur-urun-tablo .sip-olustur-s-gorsel { width: 64px; }
.sip-olustur-urun-tablo .sip-olustur-s-islem { width: 96px; }
.sip-olustur-urun-tablo > tbody > tr > td:first-child { font-weight: var(--ig-fw-normal); }
.sip-olustur-tablo-gorsel {
  display: block;
  width: 40px;
  height: 40px;
  object-fit: cover;
  border-radius: var(--ig-r-6);
}
.sip-olustur-hucre-ad { font-weight: var(--ig-fw-kalin); color: var(--ig-metin); }
.sip-olustur-soluk { color: var(--ig-soluk); }

/* Sipariş bilgileri kartı */
.sip-olustur-onay {
  display: flex;
  align-items: center;
  gap: var(--ig-b-8);
  margin: 0;
  font-size: var(--ig-fs-14);
  font-weight: var(--ig-fw-orta);
  color: var(--ig-metin);
  cursor: pointer;
}

/* Yapışkan altlık: solda sepet özeti, sağda Vazgeç + tek birincil Kaydet */
.sip-olustur-ozet {
  display: flex;
  align-items: center;
  gap: var(--ig-b-12);
  margin-right: auto;
}
.sip-olustur-ozet-sayi {
  font-size: var(--ig-fs-14);
  font-weight: var(--ig-fw-kalin);
  color: var(--ig-metin);
  font-variant-numeric: tabular-nums;
}
.sip-olustur-ozet-alt { font-size: var(--ig-fs-13); color: var(--ig-soluk); }

/* Kalem tablosu (sepet önizleme, 720px modal; siparis-detay-c3 kalemler) */
@media (min-width: 576px) {
  .sip-olustur-sepet-dialog { max-width: 720px; }
}
.sip-olustur-kalem-ad { font-size: var(--ig-fs-14); font-weight: var(--ig-fw-kalin); color: var(--ig-metin); }
.sip-olustur-kalem-alt { margin-top: var(--ig-b-2); font-size: var(--ig-fs-12); font-weight: var(--ig-fw-normal); color: var(--ig-soluk); }
.sip-olustur-sepet-tablo .sip-olustur-s-miktar,
.sip-olustur-sepet-tablo .sip-olustur-s-fiyat { width: 128px; }
.sip-olustur-sepet-tablo .sip-olustur-s-islem { width: 96px; }

/* Ürün seçenekleri sağ paneli (#urunModal, 480px) */
.sip-olustur-detay-bas {
  display: flex;
  align-items: center;
  gap: var(--ig-b-12);
  padding-bottom: var(--ig-b-16);
}
.sip-olustur-detay-gorsel {
  flex: none;
  width: 48px;
  height: 48px;
  object-fit: cover;
  border-radius: var(--ig-r-6);
}
.sip-olustur-detay-ad { font-size: var(--ig-fs-16); font-weight: var(--ig-fw-kalin); line-height: var(--ig-lh-baslik); }
.sip-olustur-varyant-tablo { border-bottom: 1px solid var(--ig-cizgi); }
.sip-olustur-varyant-tablo .sip-olustur-s-birim-fiyat { width: 112px; }
.sip-olustur-varyant-tablo .sip-olustur-s-adet { width: 136px; }
.form-control.sip-olustur-sayi {
  height: var(--ig-dugme-kart-h);
  text-align: right;
  font-variant-numeric: tabular-nums;
}
.sip-olustur-adimli { display: flex; align-items: center; gap: var(--ig-b-4); }
.btn.sip-olustur-adim {
  flex: none;
  justify-content: center;
  width: var(--ig-dugme-kart-h);
  height: var(--ig-dugme-kart-h);
  padding: 0;
}
.form-control.sip-olustur-adim-girdi {
  height: var(--ig-dugme-kart-h);
  padding: 0 4px;
  text-align: center;
  font-variant-numeric: tabular-nums;
}

/* Sipariş detay ürün seçimi (siparis_urun_listesi.php) */
.sip-olustur-secim { display: flex; flex-direction: column; gap: var(--ig-b-12); }
.sip-olustur-secim-arac { display: flex; flex-wrap: wrap; align-items: center; gap: var(--ig-b-8); }
.nav.sip-olustur-haplar { flex-wrap: wrap; gap: var(--ig-b-8); }
.sip-olustur-haplar .nav-link.ig-hap { color: var(--ig-metin); }
.sip-olustur-haplar .nav-link.ig-hap.active {
  font-weight: var(--ig-fw-kalin);
  color: var(--ig-yesil-metin);
  background-color: var(--ig-yesil-acik);
  border-color: var(--ig-yesil-cizgi);
}
.sip-olustur-haplar .ig-sayac { font-size: var(--ig-fs-12); color: var(--ig-soluk); font-variant-numeric: tabular-nums; }

@media (max-width: 1199.98px) {
  .sip-olustur-izgara { grid-template-columns: minmax(0, 1fr); }
  .sip-olustur-bilgi { position: static; order: -1; }
}
@media (max-width: 767.98px) {
  .ig-arama.sip-olustur-arama,
  .ig-arama.sip-olustur-secim-arama { width: 100%; }
  .sip-olustur-arama-form { flex: 1; }
}

/* 10.7.2 SİPARİŞ LİSTE+DETAY */
/* muh/siparis/siparis_listele_tipi.php + siparis_listele_tablosu.php (liste-c/ListeC) ·
   siparis_detay.php + siparis_listele_tablo_urunler.php + siparis_hareketler.php + siparis_genel_ozet.php
   (siparis-detay-c3 sağ detay: durum şeridi + kalem tablosu). Liste+detay tek sayfa değil, iki sayfa.
   Bant (4.1/8.1), araç çubuğu (4.4/4.5), durum etiketi (4.9), satır işlemleri (4.6), boş durum (4.12),
   sayfalama (4.8), bilgi satırı (4.10), not (9.7.4) ve belge detay yerleşimi (10.6.4) ortak sınıflardan gelir. */

/* Liste kartı: hap filtre çubuğu + tablo tek kart (§1 Hap filtre çubuğu) */
.sip-liste-kart {
  margin-bottom: var(--ig-b-24);
  overflow: hidden;
}
/* Cari hapı select2 ile açılır; hap içinde okunur genişlik */
.sip-filtre .select2-container {
  min-width: 180px;
}
.sip-yukleniyor {
  margin: 0;
  padding: var(--ig-b-24) var(--ig-b-16);
  font-size: var(--ig-fs-13);
  color: var(--ig-soluk);
  text-align: center;
}
.sip-not {
  margin: var(--ig-b-16);
}
.sip-notlar {
  display: flex;
  flex-direction: column;
  gap: var(--ig-b-8);
  padding: var(--ig-b-12) var(--ig-b-16);
  border-bottom: 1px solid var(--ig-cizgi);
}
.sip-notlar strong {
  font-weight: var(--ig-fw-kalin);
}

/* Liste tablosu: satır 44 (§1 Tablo satırı); kod 600, ikincil sütunlar soluk */
.sip-tablo > tbody > tr > td {
  height: 44px;
}
.sip-kod {
  font-weight: var(--ig-fw-kalin);
  color: var(--ig-metin);
  white-space: nowrap;
  font-variant-numeric: tabular-nums;
}
.sip-cari {
  font-weight: var(--ig-fw-orta);
  color: var(--ig-metin);
}
.sip-alt {
  margin-top: var(--ig-b-2);
  font-size: var(--ig-fs-12);
  color: var(--ig-soluk);
}
.sip-soluk {
  color: var(--ig-soluk);
}
.sip-not-var {
  font-weight: var(--ig-fw-orta);
  color: var(--ig-sari-metin);
}

/* Detay: durum şeridi (c3_ortak.serit) — ZEMIN, 52px, nokta–çizgi adımlar, sağda son hareket */
.sip-kalem-kart {
  overflow: hidden;
}
.sip-serit {
  display: flex;
  align-items: center;
  gap: var(--ig-b-12);
  min-height: 52px;
  padding: var(--ig-b-8) var(--ig-b-20);
  background-color: var(--ig-zemin);
  border-bottom: 1px solid var(--ig-cizgi);
}
.sip-adimlar {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--ig-b-6) 0;
  min-width: 0;
  margin: 0;
  padding: 0;
  list-style: none;
}
.sip-adim {
  display: flex;
  align-items: center;
  gap: var(--ig-b-6);
  font-size: var(--ig-fs-13);
  font-weight: var(--ig-fw-orta);
  color: var(--ig-metin);
  white-space: nowrap;
}
.sip-adim + .sip-adim::before {
  content: "";
  width: 32px;
  height: 2px;
  margin: 0 var(--ig-b-8);
  background-color: var(--ig-cizgi);
}
.sip-adim.is-bitti + .sip-adim::before,
.sip-adim.is-bitti .sip-adim-nokta {
  background-color: var(--ig-yesil-metin);
}
.sip-adim-nokta {
  flex: none;
  width: 8px;
  height: 8px;
  background-color: var(--ig-cizgi);
  border-radius: 50%;
}
.sip-adim.is-simdi {
  font-weight: var(--ig-fw-kalin);
}
.sip-adim.is-simdi .sip-adim-nokta {
  background-color: var(--ig-yuzey);
  box-shadow: 0 0 0 2px var(--ig-yesil-metin);
}
.sip-adim.is-sonra {
  color: var(--ig-soluk);
}
.sip-son-hareket {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--ig-b-2);
  margin-left: auto;
  padding: 0 0 0 var(--ig-b-16);
  font: inherit;
  text-align: left;
  cursor: pointer;
  background: none;
  border: 0;
  border-left: 1px solid var(--ig-cizgi);
}
.sip-son-hareket:focus-visible {
  outline: 0;
  border-radius: var(--ig-r-4);
  box-shadow: var(--ig-odak);
}
.sip-son-hareket-etiket {
  font-size: var(--ig-fs-12);
  color: var(--ig-soluk);
  white-space: nowrap;
}
.sip-son-hareket-ad {
  font-size: var(--ig-fs-13);
  font-weight: var(--ig-fw-orta);
  color: var(--ig-yesil-metin);
  white-space: nowrap;
}

/* Yan kart değerleri ve not */
.sip-uzun-deger {
  min-width: 0;
  overflow-wrap: anywhere;
}
.sip-not-metin {
  margin: 0;
  font-size: var(--ig-fs-14);
  color: var(--ig-metin);
  white-space: pre-line;
  overflow-wrap: anywhere;
}

/* Kalem tablosu: 32px ürün görseli, ad 600 + varyant soluk (satır 44: 10.6.4) */
.sip-urun {
  display: flex;
  align-items: center;
  gap: var(--ig-b-12);
  min-width: 0;
}
.sip-urun-gorsel {
  flex: none;
  width: 32px;
  height: 32px;
  object-fit: cover;
  border: 1px solid var(--ig-cizgi);
  border-radius: var(--ig-r-6);
}

/* Genel özet ve hareketler */
.sip-ozet {
  display: flex;
  flex-direction: column;
}
.sip-ozet-toplam {
  font-weight: var(--ig-fw-kalin);
  color: var(--ig-metin);
}
.sip-bos-metin {
  margin: 0;
  padding: var(--ig-b-16) var(--ig-b-20);
  font-size: var(--ig-fs-13);
  color: var(--ig-soluk);
}

@media (max-width: 767.98px) {
  .sip-serit { flex-wrap: wrap; }
  .sip-son-hareket { margin-left: 0; padding-left: 0; border-left: 0; }
  .sip-adim + .sip-adim::before { width: 16px; margin: 0 var(--ig-b-6); }
}

/* 10.8.1 ÜRÜN LİSTE+DETAY */
/* ==========================================================================
   views/muh/urun/urun_listesi.php · urun_detayi_{navbar,ozet,genel}.php (2026-09-15).
   Kaynak: liste-c/ListeC, urun-detay-v2/UrunV2Genel (gen_urun_detay_v2.py). Kalıp: 10.1 / 10.2.
   Bant, araç çubuğu, satır işlemleri, durum etiketi, bilgi ızgarası ve panel ortak sınıflardan (3–4, 8) gelir.
   ========================================================================== */

/* --- 10.8.1.1 Liste kartı ve ürün hücresi (32px küçük resim + ad + kod · barkod) --- */
.urun-liste-kart {
  margin-bottom: var(--ig-b-24);
  overflow: hidden;
}
.urun-liste-kart .table > tbody > tr > td {
  padding-top: var(--ig-b-6);
  padding-bottom: var(--ig-b-6);
}
.urun-hucre {
  display: flex;
  align-items: center;
  gap: var(--ig-b-12);
  min-width: 0;
}
.urun-kucuk-resim {
  flex: none;
  width: 32px;
  height: 32px;
  object-fit: cover;
  border: 1px solid var(--ig-cizgi);
  border-radius: var(--ig-r-4);
}
.urun-hucre-metin {
  min-width: 0;
}
.urun-ad {
  font-weight: var(--ig-fw-kalin);
  color: var(--ig-metin);
  text-decoration: none;
}
.urun-ad:hover {
  color: var(--ig-yesil-metin);
  text-decoration: underline;
  text-underline-offset: 3px;
}
.urun-ad:focus-visible {
  outline: 0;
  border-radius: var(--ig-r-4);
  box-shadow: var(--ig-odak);
}
.urun-meta {
  max-width: 420px;
  overflow: hidden;
  font-size: var(--ig-fs-12);
  color: var(--ig-soluk);
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
  text-overflow: ellipsis;
}

/* --- 10.8.1.2 DataTables alt satırı → §1 Sayfalama (sayfa başına 25/50/100, aralık, ← →) --- */
.urun-dt-sayfalama .dataTables_paginate {
  margin: 0;
}
.urun-dt-adet {
  display: flex;
  align-items: center;
  gap: var(--ig-b-12);
}
.urun-dt-sayfalama .pagination {
  display: flex;
  gap: var(--ig-b-6);
  margin: 0;
}
.urun-dt-sayfalama .pagination .page-item .page-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  margin-left: 0;
  padding: 0;
  color: var(--ig-metin);
  background-color: var(--ig-yuzey);
  border: 1px solid var(--ig-cizgi);
  border-radius: var(--ig-r-6);
  box-shadow: none;
}
.urun-dt-sayfalama .pagination .page-item.disabled .page-link {
  color: var(--ig-girdi);
  pointer-events: none;
}

/* --- 10.8.1.3 Detay bandı: ürün adı 32px (§1 Tipografi "detay başlığı 28 (ürün 32)") --- */
.ig-bant-baslik .urun-bant-ad {
  font-size: 32px;
  line-height: 1.25;
}

/* --- 10.8.1.4 Gövde: sekme kartı ayrı sarmalayıcıda, içerik altında (10.2.1 ile aynı) --- */
.ig-bant-govde.urun-govde {
  margin-top: 0;
  padding-bottom: var(--ig-b-24);
}
.urun-ozet {
  display: grid;
  grid-template-columns: minmax(0, 2fr) minmax(0, 1fr);
  gap: var(--ig-b-16);
  align-items: start;
}
.urun-sutun {
  display: flex;
  flex-direction: column;
  gap: var(--ig-b-16);
  min-width: 0;
}
.urun-kart-govde {
  padding: 0 var(--ig-b-20) var(--ig-b-20);
}
.urun-kart-govde--liste {
  padding-bottom: var(--ig-b-8);
}

/* --- 10.8.1.5 Özet: sipariş durumu halka grafikleri --- */
.urun-grafik-izgara {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--ig-b-24);
}
.urun-grafik {
  margin: 0;
  min-width: 0;
}
.urun-grafik-tuval {
  position: relative;
  height: 200px;
}
.urun-grafik-baslik {
  margin-top: var(--ig-b-8);
  font-size: var(--ig-fs-13);
  color: var(--ig-soluk);
  text-align: center;
}

/* --- 10.8.1.6 Genel: form alanları 3'lü ızgarada (UrunV2Genel "Tanım") --- */
.urun-form-izgara {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--ig-b-16) var(--ig-b-24);
}
.urun-form-alan--genis {
  grid-column: span 2;
}

@media (max-width: 991.98px) {
  .urun-ozet { grid-template-columns: minmax(0, 1fr); gap: var(--ig-b-12); }
  .urun-sutun { gap: var(--ig-b-12); }
  .urun-ozet .ig-bilgi-izgara,
  .urun-form-izgara { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ig-bant-baslik .urun-bant-ad { font-size: 22px; }
}
@media (max-width: 575.98px) {
  .urun-grafik-izgara { grid-template-columns: minmax(0, 1fr); }
  .urun-form-alan--genis { grid-column: auto; }
  .urun-meta { max-width: 240px; }
}

/* 10.8.2 ÜRÜN SEKMELERİ */
/* ==========================================================================
   views/muh/urun/urun_detayi_{recete,varyant,gorsel}.php (2026-09-15).
   Kaynak: docs/tasarim/web-genel/urun-detay-v2/gen_urun_detay_v2.py (UrunV2Recete: recete_karti)
   + ../urun-detay/gen_urun_detay.py (tablo, recete_bas, kart_gorseller).
   Yalnız --ig-* token'ları. Yeniden tanımlanmayanlar: 3.4 tablo (başlık 40, satır 44),
   4.6 satır işlemleri (.ig-islem 32×32), 4.11 kart başlığı, 4.12 boş durum,
   4.14 sağ panel, 9.10 .belge-dropzone / .dragover.
   ========================================================================== */

/* --- 10.8.2.1 Gövde: sekme şeridi navbar'da, içerik kartları altında -------- */
.ig-bant-govde.urun-sekme-govde {
  margin-top: 0;
  padding-bottom: var(--ig-b-24);
}
.urun-sekme-kart {
  overflow: hidden;
  margin-bottom: var(--ig-b-16);
}
.urun-sekme-kart:last-child {
  margin-bottom: 0;
}
.urun-sekme-kart > .ig-kart-baslik {
  align-items: center;
}

/* --- 10.8.2.2 Reçete kartı (recete_bas + Malzeme listesi araç satırı) ------- */
.urun-sekme-baslik-islem {
  display: flex;
  align-items: center;
  gap: var(--ig-b-2);
}
.urun-sekme-ac[aria-expanded="true"] svg {
  transform: rotate(180deg);
}
.urun-sekme-arac {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--ig-b-12);
  padding: var(--ig-b-12) var(--ig-b-20);
  border-top: 1px solid var(--ig-cizgi);
}
.urun-sekme-arac-baslik {
  font-size: var(--ig-fs-13);
  font-weight: var(--ig-fw-kalin);
  color: var(--ig-metin);
}
.urun-sekme-arac-sag {
  display: flex;
  flex-wrap: wrap;
  gap: var(--ig-b-8);
}
.urun-sekme-arac + .ig-bos {
  padding: var(--ig-b-24);
  border-top: 1px solid var(--ig-cizgi);
}
.urun-sekme-kunye {
  display: flex;
  flex-wrap: wrap;
  gap: var(--ig-b-4) var(--ig-b-16);
  padding: var(--ig-b-12) var(--ig-b-20);
  font-size: var(--ig-fs-13);
  color: var(--ig-soluk);
  border-top: 1px solid var(--ig-cizgi);
}
.urun-sekme-not {
  flex-basis: 100%;
  margin: 0;
  color: var(--ig-metin-2);
}

/* --- 10.8.2.3 Kalem / varyant tablosu (tablo: # sütunu soluk, ad 2 satır) --- */
.urun-sekme-tablo--sirali > tbody > tr > td:first-child {
  font-weight: var(--ig-fw-normal);
}
.urun-sekme-sira {
  width: 48px;
}
.urun-sekme-islem-sutun {
  width: 96px;
}
.urun-sekme-ad {
  display: block;
  font-weight: var(--ig-fw-orta);
  color: var(--ig-metin);
}
.urun-sekme-alt {
  display: block;
  font-size: var(--ig-fs-12);
  color: var(--ig-soluk);
}
.urun-sekme-bos {
  color: var(--ig-girdi);
}

/* --- 10.8.2.4 Görsel ızgarası (kart_gorseller: ilk görsel kapak, yeşil kenar) */
.urun-sekme-galeri {
  padding: 0 var(--ig-b-20) var(--ig-b-20);
}
.urun-sekme-gorsel {
  cursor: grab;
}
.urun-sekme-gorsel-kutu {
  display: flex;
  flex-direction: column;
  gap: var(--ig-b-8);
  padding: var(--ig-b-8);
  background-color: var(--ig-yuzey);
  border: 1px solid var(--ig-cizgi);
  border-radius: var(--ig-r-6);
}
.urun-sekme-gorsel:first-child .urun-sekme-gorsel-kutu {
  border-color: var(--ig-birincil);
  box-shadow: inset 0 0 0 1px var(--ig-birincil);
}
.urun-sekme-gorsel-resim {
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  aspect-ratio: 1;
  background-color: var(--ig-zemin);
  border-radius: var(--ig-r-4);
}
.urun-sekme-gorsel-resim img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}
.urun-sekme-gorsel .ig-islemler {
  justify-content: flex-end;
}

/* --- 10.8.2.5 Yükleme alanı (9.10 .belge-dropzone üstüne; önizleme, ilerleme) */
.urun-sekme-dropzone-baslik {
  font-size: var(--ig-fs-14);
  font-weight: var(--ig-fw-orta);
  color: var(--ig-metin);
}
.urun-sekme-dropzone-tur {
  margin-top: var(--ig-b-4);
  font-size: var(--ig-fs-12);
}
/* JS önizlemeyi style.display ile açar; Bootstrap .d-none !important bunu engelliyordu */
.urun-sekme-onizleme-kutu {
  display: none;
}
.urun-sekme-onizleme {
  max-width: 100%;
  max-height: 150px;
  margin-bottom: var(--ig-b-8);
  border-radius: var(--ig-r-6);
}
.urun-sekme-dosya-adi {
  margin: 0;
  font-size: var(--ig-fs-13);
  font-weight: var(--ig-fw-orta);
  color: var(--ig-metin);
}
.urun-sekme-ilerleme {
  height: 24px;
  background-color: var(--ig-gri-zemin);
  border-radius: var(--ig-r-6);
}
/* Genişlik JS'ten (style.width); başlangıç 0 */
.urun-sekme-ilerleme .progress-bar {
  width: 0;
  font-size: var(--ig-fs-12);
  font-weight: var(--ig-fw-orta);
}

/* 10.9 TAHSİLAT */
/* muh/tahsilat/tahsilat_listesi_yeni.php + tahsilat_tablosu.php (liste-c/ListeC + finans-k2b/K2Tahsilat),
   tahsilat_ekle.php (form-sayfa-c), tahsilat_detay.php (cari-detay bandı). makbuz.php bağımsız belge, kendi <style>'ını taşır.
   Bant (4.1), araç çubuğu (4.4/4.5), satır işlemleri (4.6), sayfalama (4.8), bilgi satırı (4.10), kart başlığı (4.11),
   segment ve tutar alanı (4.14), tutar (4.16) ortak sınıflardan gelir; burada yalnız bu ekranlara özgü parçalar var. */

/* --- Liste --- */
.tahsilat-liste-kart {
  margin-bottom: var(--ig-b-24);
  overflow: hidden;
}
/* Cari ve işlemi yapan hapları select2 ile açılır; width:100% hapın içinde sıfıra çöker */
.tahsilat-liste-kart .ig-hap .select2-container {
  min-width: 200px;
}
.tahsilat-liste-kart .ig-hap .select2-selection--single {
  height: 30px;
  background: transparent;
  border: 0;
}
.tahsilat-uyarilar {
  display: flex;
  flex-direction: column;
  gap: var(--ig-b-8);
  padding: var(--ig-b-12) var(--ig-b-16);
  border-top: 1px solid var(--ig-cizgi);
}
.tahsilat-cari {
  display: block;
  font-weight: var(--ig-fw-kalin);
  color: var(--ig-metin);
  text-decoration: none;
}
.tahsilat-cari:hover {
  color: var(--ig-yesil-metin);
  text-decoration: underline;
}
.tahsilat-cari:focus-visible,
.tahsilat-cari-baglanti:focus-visible {
  outline: 0;
  border-radius: var(--ig-r-4);
  box-shadow: var(--ig-odak);
}
.tahsilat-cari-meta {
  display: block;
  margin-top: 2px;
  font-size: var(--ig-fs-12);
  color: var(--ig-soluk);
}
.tahsilat-soluk {
  color: var(--ig-soluk);
}
.tahsilat-tutar {
  font-weight: var(--ig-fw-kalin);
}

/* --- Modallar (detay: bilgi satırları; iptal: onay modalı 420) --- */
.tahsilat-modal-govde {
  padding-top: var(--ig-b-4);
  padding-bottom: var(--ig-b-4);
}
.tahsilat-onay {
  max-width: 420px;
}
.tahsilat-onay textarea.form-control {
  height: auto;
  padding-top: var(--ig-b-8);
  padding-bottom: var(--ig-b-8);
}
.btn.tahsilat-iptal-dugme {
  color: var(--ig-kirmizi);
}

/* --- Ekle (form-sayfa-c: bant + form kartları + yapışkan altlık) --- */
.tahsilat-kart {
  height: 100%;
}
.tahsilat-detay-govde .tahsilat-kart {
  height: auto;
  margin-bottom: var(--ig-b-16);
}
.tahsilat-kart-govde {
  padding: var(--ig-b-4) var(--ig-b-20) var(--ig-b-20);
}
.tahsilat-tutar-kutu {
  position: relative;
}
.tahsilat-tutar-kutu .form-control.ig-tutar-alan {
  padding-right: 40px;
}
.tahsilat-tutar-sonek {
  position: absolute;
  top: 50%;
  right: 14px;
  font-size: var(--ig-fs-20);
  font-weight: var(--ig-fw-kalin);
  color: var(--ig-soluk);
  pointer-events: none;
  transform: translateY(-50%);
}
/* Segment: JS .odeme-tipi-btn.active sınıfını değiştirir; 9b miras chip görünümü segment içinde sıfırlanır */
.tahsilat-segment .odeme-tipi-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  height: 100%;
  padding: 0 12px;
  font-size: var(--ig-fs-14);
  font-weight: var(--ig-fw-orta);
  color: var(--ig-soluk);
  background: transparent;
  border: 0;
  border-radius: var(--ig-r-4);
}
.tahsilat-segment .odeme-tipi-btn:hover {
  color: var(--ig-metin);
  background: transparent;
}
.tahsilat-segment .odeme-tipi-btn.active {
  font-weight: var(--ig-fw-kalin);
  color: var(--ig-metin);
  background-color: var(--ig-yuzey);
  box-shadow: var(--ig-golge-segment);
}
.tahsilat-hesap {
  margin-top: var(--ig-b-8);
}
.tahsilat-oran {
  padding: 0 var(--ig-b-20) var(--ig-b-16);
}
.tahsilat-oran-bas {
  display: flex;
  justify-content: space-between;
  margin-bottom: var(--ig-b-6);
  font-size: var(--ig-fs-13);
  color: var(--ig-soluk);
}
/* Yapışkan sayfa altlığı · 44px düğmeler, tek birincil (FormC alt_cubuk; 10.6.2 .irs-olustur-altlik ile aynı ölçü) */
.tahsilat-form-altlik {
  position: sticky;
  bottom: 0;
  z-index: 10;
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: var(--ig-b-12);
  margin-top: var(--ig-b-24);
  padding: var(--ig-b-16) var(--ig-bant-x);
  background-color: var(--ig-yuzey);
  border-top: 1px solid var(--ig-cizgi);
  box-shadow: 0 -4px 12px rgba(9, 9, 11, 0.06);
}

/* --- Detay (cari-detay bandı + kart bilgi satırları) --- */
.tahsilat-aciklama {
  margin-top: var(--ig-b-16);
  padding-top: var(--ig-b-12);
  border-top: 1px solid var(--ig-cizgi);
}
.tahsilat-aciklama .ig-bilgi-deger {
  margin: 2px 0 0;
  font-size: var(--ig-fs-14);
  text-align: left;
}
.tahsilat-cari-baglanti {
  font-weight: var(--ig-fw-orta);
  color: var(--ig-yesil-metin);
  text-decoration: underline;
}
.table > :not(caption) > .tahsilat-toplam-satir > * {
  font-weight: var(--ig-fw-kalin);
  background-color: var(--ig-zemin);
}
.tahsilat-makbuz-onizleme {
  width: 80mm;
}
@media (max-width: 767.98px) {
  .tahsilat-form-altlik { padding: var(--ig-b-12) var(--ig-b-16); }
  .tahsilat-kart { height: auto; }
}

/* 10.10 ÇEK/SENET */
/* muh/cek_senet/cek_listesi.php, senet_listesi.php, vade_raporu.php, cek_senet_detay.php, alt_nav.php
   · finans-k2b/K2Cek + liste-c/ListeC + cari-detay/CariOzet + raporlar-r2-v2/R2v2Tablo.
   Bant ve bindirme (4.1), araç çubuğu ve haplar (4.4/4.5), satır işlemleri (4.6), durum etiketi (3.5),
   boş durum (4.12), sağ panel (3.9/4.14), onay modalı (3.8), bilgi satırı/ızgarası ortak sınıflardan gelir. */
.ceksenet-ust-nav {
  margin-bottom: var(--ig-b-16);
  background-color: var(--ig-yuzey);
  border: 1px solid var(--ig-cizgi);
  border-radius: var(--ig-r-8);
}
.ceksenet-sekme {
  margin-bottom: var(--ig-b-16);
}
.ceksenet-kart {
  margin-bottom: var(--ig-b-16);
  overflow: hidden;
}
.ceksenet-kart > .ig-kart-baslik,
.ceksenet-bolum > .ig-kart-baslik {
  border-top: 1px solid var(--ig-cizgi);
}
.ceksenet-kart > .ig-kart-baslik:first-child {
  border-top: 0;
}
.ceksenet-tablo > thead > tr > th {
  height: 40px;
  white-space: nowrap;
}
.ceksenet-tablo > tbody > tr > td {
  height: 44px;
  vertical-align: middle;
}
.ceksenet-ad {
  display: block;
  font-weight: var(--ig-fw-kalin);
  color: var(--ig-metin);
}
.ceksenet-meta {
  display: block;
  font-size: var(--ig-fs-12);
  color: var(--ig-soluk);
}
.ceksenet-soluk {
  color: var(--ig-soluk);
}
.ceksenet-tutar {
  font-weight: var(--ig-fw-kalin);
  color: var(--ig-metin);
}
.ceksenet-yukleniyor {
  padding: var(--ig-b-16);
  text-align: center;
  color: var(--ig-soluk);
}
.ceksenet-alan {
  margin-bottom: var(--ig-b-16);
}
.ceksenet-alan:last-child {
  margin-bottom: 0;
}
.ceksenet-etiket {
  display: block;
  margin-bottom: var(--ig-b-6);
  font-size: var(--ig-fs-13);
  font-weight: var(--ig-fw-kalin);
  color: var(--ig-metin);
}
.ceksenet-istege {
  margin-left: var(--ig-b-6);
  font-size: var(--ig-fs-12);
  font-weight: 400;
  color: var(--ig-soluk);
}
.ceksenet-tutar-kutu {
  position: relative;
}
.ceksenet-tutar-kutu .ig-tutar-alan {
  padding-right: 40px;
}
.ceksenet-tutar-sonek {
  position: absolute;
  top: 50%;
  right: var(--ig-b-16);
  transform: translateY(-50%);
  font-size: var(--ig-fs-20);
  font-weight: var(--ig-fw-kalin);
  color: var(--ig-soluk);
  pointer-events: none;
}
/* Yaş dilimleri §1 Renk: yeşil → gri-yeşil → turuncu → kırmızı (10.5.5 --rapor-yas-* ile aynı değerler) */
.ceksenet-yas {
  font-weight: var(--ig-fw-kalin);
  white-space: nowrap;
  font-variant-numeric: tabular-nums;
}
.ceksenet-yas--1 { color: var(--ig-birincil); }
.ceksenet-yas--2 { color: #4D7C5A; }
.ceksenet-yas--3 { color: var(--ig-turuncu); }
.ceksenet-yas--4 { color: var(--ig-kirmizi); }
.ceksenet-detay-izgara {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 360px;
  gap: var(--ig-b-16);
  align-items: start;
}
.ceksenet-kart-govde {
  padding: var(--ig-b-4) var(--ig-b-20) var(--ig-b-16);
}
.ceksenet-gecikme {
  color: var(--ig-kirmizi);
}
@media (max-width: 991.98px) {
  .ceksenet-detay-izgara {
    grid-template-columns: minmax(0, 1fr);
  }
}

/* 10.11 BANKA */
/* ==========================================================================
   views/muh/banka/{banka_listesi,banka_detay,banka_rapor,kredili_urunler}.php (2026-09-15).
   Kaynak: finans-k1a (K1Hesaplar), liste-c, cari-detay (bant), raporlar-r2-v2 (R2v2Tablo).
   Bant (4), kart başlığı (8.4), satır işlemleri (4.6), durum (.ig-durum), tutar (4.16), panel ve
   segment (4.14), rapor kartı (10.5.3) yeniden tanımlanmaz; burada yalnız yerleşim ve eksik parçalar.
   Yalnız --ig-* token'ları.
   ========================================================================== */

/* --- 10.11.1 Gövde: bant altındaki kartlar arası 16px ---------------------- */
.ig-bant-govde.banka-govde {
  padding-bottom: var(--ig-b-24);
}
.banka-govde > .card + .card,
.banka-govde > .card + .row,
.banka-govde > .row + .card {
  margin-top: var(--ig-b-16);
}
.banka-alt-serit {
  padding-bottom: var(--ig-b-12);
}
.banka-kart-dugmeler {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--ig-b-8);
}

/* --- 10.11.2 Hesap kartları (K1Hesaplar: ad 15/600, bakiye 20/600 kuruşsuz) - */
.banka-hesap-izgara {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
  gap: var(--ig-b-16);
  padding: var(--ig-b-16);
}
.banka-hesap-kart {
  display: flex;
  flex-direction: column;
  min-width: 0;
  background-color: var(--ig-yuzey);
  border: 1px solid var(--ig-cizgi);
  border-radius: var(--ig-r-8);
}
.banka-hesap-ust {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: var(--ig-b-12);
  padding: var(--ig-b-16) var(--ig-b-16) 0;
}
.banka-hesap-kimlik {
  min-width: 0;
}
.banka-hesap-ad {
  margin: 0;
  font-size: var(--ig-fs-15);
  font-weight: var(--ig-fw-kalin);
  line-height: var(--ig-lh-baslik);
  color: var(--ig-metin);
}
.banka-hesap-meta {
  margin: 2px 0 0;
  font-size: var(--ig-fs-13);
  color: var(--ig-soluk);
}
.banka-hesap-bakiye {
  display: flex;
  flex-direction: column;
  gap: 2px;
  padding: var(--ig-b-16) var(--ig-b-16) 0;
}
.banka-hesap-etiket {
  font-size: var(--ig-fs-13);
  color: var(--ig-soluk);
}
.banka-hesap-deger {
  font-size: var(--ig-fs-20);
  font-weight: var(--ig-fw-kalin);
  line-height: 1.2;
  white-space: nowrap;
  font-variant-numeric: tabular-nums;
}
.banka-hesap-bilgi {
  display: grid;
  grid-template-columns: max-content minmax(0, 1fr);
  gap: var(--ig-b-4) var(--ig-b-12);
  margin: var(--ig-b-12) var(--ig-b-16) var(--ig-b-16);
  font-size: var(--ig-fs-13);
}
.banka-hesap-bilgi dt {
  font-weight: var(--ig-fw-normal);
  color: var(--ig-soluk);
}
.banka-hesap-bilgi dd {
  margin: 0;
  color: var(--ig-metin);
  overflow-wrap: anywhere;
}
.banka-iban {
  font-variant-numeric: tabular-nums;
}
.banka-hesap-alt {
  display: flex;
  align-items: center;
  gap: var(--ig-b-8);
  margin-top: auto;
  padding: var(--ig-b-12) var(--ig-b-16);
  border-top: 1px solid var(--ig-cizgi);
}
.banka-hesap-alt .ig-islemler {
  margin-left: auto;
}

/* --- 10.11.3 Panel: tutar 48px + ₺ sonek, hareket tipi segmenti ----------- */
.banka-tutar {
  position: relative;
}
.banka-tutar > .form-control.ig-tutar-alan {
  padding-right: 40px;
}
.banka-tutar-sonek {
  position: absolute;
  top: 0;
  right: var(--ig-b-16);
  display: flex;
  align-items: center;
  height: var(--ig-tutar-h);
  font-size: var(--ig-fs-20);
  font-weight: var(--ig-fw-kalin);
  color: var(--ig-soluk);
  pointer-events: none;
}
.banka-segment {
  position: relative;
  gap: 0;
}
/* Kapı 53: .btn-check absolute değil, akışta 0 boyut + opacity 0 (odakta sayfa zıplamaz) */
.banka-segment .btn-check {
  position: static;
  flex: none;
  width: 0;
  height: 0;
  margin: 0;
  opacity: 0;
}
.banka-segment .ig-segment-oge + .btn-check + .ig-segment-oge {
  margin-left: var(--ig-b-4);
}
.banka-segment .ig-segment-oge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin: 0;
  cursor: pointer;
}
.banka-segment .btn-check:checked + .ig-segment-oge {
  font-weight: var(--ig-fw-kalin);
  color: var(--ig-metin);
  background-color: var(--ig-yuzey);
  box-shadow: var(--ig-golge-segment);
}
.banka-segment .btn-check:focus-visible + .ig-segment-oge {
  box-shadow: var(--ig-odak);
}

/* --- 10.11.4 Detay: hesap bilgileri (anahtar-değer ızgarası) --------------- */
.banka-bilgi {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
  gap: var(--ig-b-12) var(--ig-b-24);
  margin: 0;
  padding: var(--ig-b-16);
}
.banka-bilgi-oge {
  display: flex;
  flex-direction: column;
  gap: 2px;
  min-width: 0;
}
.banka-bilgi-oge dt {
  font-size: var(--ig-fs-13);
  font-weight: var(--ig-fw-normal);
  color: var(--ig-soluk);
}
.banka-bilgi-oge dd {
  margin: 0;
  font-size: var(--ig-fs-14);
  color: var(--ig-metin);
  overflow-wrap: anywhere;
}

/* --- 10.11.5 Tablo: tutar rengi, ad + alt satır ---------------------------- */
.banka-govde .table > tbody > tr > td.ig-tutar--giren {
  color: var(--ig-yesil-metin);
}
.banka-govde .table > tbody > tr > td.ig-tutar--negatif,
.banka-govde .table > tfoot > tr > td.ig-tutar--negatif {
  color: var(--ig-kirmizi);
}
.banka-ad {
  font-weight: var(--ig-fw-kalin);
  color: var(--ig-metin);
}
.banka-meta {
  display: block;
  margin-top: 2px;
  font-size: var(--ig-fs-13);
  color: var(--ig-soluk);
}

/* --- 10.11.6 Rapor grafik tuvali (Chart.js maintainAspectRatio: false) ----- */
.banka-grafik-tuval {
  position: relative;
  height: 240px;
}

@media (max-width: 767.98px) {
  .banka-hesap-izgara {
    grid-template-columns: minmax(0, 1fr);
    padding: var(--ig-b-12);
  }
  .banka-hesap-alt {
    flex-wrap: wrap;
  }
}

/* 10.12 KASA */
/* ==========================================================================
   Varlıklar (muh/kasa), kasa detayı, kasa raporu.
   Kaynak: finans-k1a (hesap kartı, bakiye 22/600 kuruşsuz), liste-c (satır işlemleri),
   cari-detay (record_header), raporlar-r2-v2 (toplam satırı), modallar-v3 (sağ panel tutar 48).
   Ortak görünüm ig-* sınıflarından gelir; burada yalnız kasa ekranına özgü yerleşim var.
   ========================================================================== */

/* 10.12.1 Varlık bölümleri ve hesap kartı */
.kasa-bolum + .kasa-bolum { margin-top: var(--ig-b-16); }
.kasa-bolum-govde { padding: var(--ig-b-16); }
.kasa-hesap {
  display: flex;
  flex-direction: column;
  padding: var(--ig-b-16);
  background-color: var(--ig-yuzey);
  border: 1px solid var(--ig-cizgi);
  border-radius: 8px;
}
.kasa-hesap-bas {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: var(--ig-b-12);
  margin-bottom: var(--ig-b-12);
}
.kasa-hesap-ad { font-size: var(--ig-fs-15); font-weight: var(--ig-fw-kalin); line-height: 1.35; color: var(--ig-metin); }
.kasa-hesap-alt,
.kasa-soluk { font-size: var(--ig-fs-13); color: var(--ig-soluk); }
.kasa-hesap-etiket { display: block; font-size: var(--ig-fs-12); color: var(--ig-soluk); }
.kasa-hesap-bakiye {
  display: block;
  margin-top: 2px;
  font-size: 22px; /* §1 kart içi KPI 20–24/600 */
  font-weight: var(--ig-fw-kalin);
  line-height: 1.2;
  color: var(--ig-metin);
}
.kasa-hesap-bakiye.ig-tutar--negatif { color: var(--ig-kirmizi); }
.kasa-hesap-etiketler { display: flex; flex-wrap: wrap; gap: 4px; margin: var(--ig-b-8) 0 4px; }
.kasa-hesap-bilgi { margin-bottom: var(--ig-b-12); }
.kasa-hesap-no { font-variant-numeric: tabular-nums; }
.kasa-hesap-eylem {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--ig-b-8);
  margin-top: auto;
}
.kasa-hesap-baglanti {
  margin-left: auto;
  font-size: var(--ig-fs-13);
  font-weight: var(--ig-fw-orta);
  color: var(--ig-yesil-metin);
  text-decoration: none;
}
.kasa-hesap-baglanti:hover { text-decoration: underline; }

/* 10.12.2 Hızlı bakış (kasa detayı, 420) */
.kasa-hb-ad { font-size: var(--ig-fs-15); font-weight: var(--ig-fw-kalin); color: var(--ig-metin); }
.kasa-hb-alt { margin-bottom: var(--ig-b-12); font-size: var(--ig-fs-13); color: var(--ig-soluk); }
.kasa-hb-bakiye {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: var(--ig-b-12);
  padding: var(--ig-b-12) 0;
  border-bottom: 1px solid var(--ig-cizgi);
}

/* 10.12.3 Sağ panel: gelir/gider segmenti ve tutar alanı */
select.filter-select.kasa-segment-kaynak {
  display: block;
  width: 100%;
  height: 0;
  min-height: 0;
  padding: 0;
  margin: 0;
  overflow: hidden;
  border: 0;
  opacity: 0;
}
.kasa-tutar { position: relative; }
.kasa-tutar .form-control.ig-tutar-alan { padding-right: 36px; }
.kasa-tutar-birim {
  position: absolute;
  top: 50%;
  right: 14px;
  font-size: var(--ig-fs-20);
  font-weight: var(--ig-fw-kalin);
  color: var(--ig-soluk);
  pointer-events: none;
  transform: translateY(-50%);
}

/* 10.12.4 Kasa detayı */
.kasa-aciklama { display: flex; flex-direction: column; gap: 4px; font-size: var(--ig-fs-14); }

/* 10.12.5 Kasa raporu */
.kasa-rapor-secim,
.kasa-rapor-tarih { width: 220px; height: var(--ig-dugme-kart-h); }
.kasa-rapor-toplam > th { font-weight: var(--ig-fw-kalin); background-color: var(--ig-zemin); }
.kasa-grafik { position: relative; height: 260px; padding: var(--ig-b-16); }

@media (max-width: 767.98px) {
  .kasa-rapor-secim,
  .kasa-rapor-tarih { width: 100%; }
  .kasa-hesap-baglanti { margin-left: 0; }
}

/* 10.13 FİNANS + FİYATLANDIRMA */
/* ==========================================================================
   views/muh/finans/{genel_bakis,alacak_yonetimi,borc_yonetimi,ust_nav}.php,
   views/muh/fiyatlandirma/{fiyatlandirma_listesi,fiyatlandirma_detay}.php (2026-09-15).
   Kaynak: finans-k1a (K1Genel), finans-k2b (K2Alacak, K2Borc), fiyat-liste (FiyatListeleri),
   fiyat-toplu (FiyatTopluPanel). Bant (4.1), alt şerit (4.3), araç çubuğu (4.4), satır işlemleri (4.6),
   durum (4.9), bilgi satırı (4.10), KPI kartı (8.7), şerit açıklaması (9.7.1), fiyat satırları (9b.7)
   yeniden tanımlanmaz; burada yalnız yerleşim ve eksik parçalar. Yalnız --ig-* token'ları.
   ========================================================================== */

/* --- 10.13.1 Finans alt gezinmesi (ust_nav → layout/detail_tabs) ---------- */
/* Gövde sarmalı olmayan eski çağıranlar (çek/senet, kasa): şerit banda doğrudan bindirilir */
.ig-bant + .finans-serit {
  margin: calc(var(--ig-bindirme) * -1) var(--ig-bant-x) 0;
}
/* Kart içine sarılan çağıranlar (banka): çift kenar olmasın */
.card > .finans-serit > .ig-alt-serit {
  border: 0;
  border-radius: inherit;
  box-shadow: none;
}

/* --- 10.13.2 Gövde: bant altındaki kartlar arası 16px -------------------- */
.ig-bant-govde.finans-govde,
.ig-bant-govde.fiyat-liste-govde,
.ig-bant-govde.fiyat-detay-govde {
  padding-bottom: var(--ig-b-24);
}
.finans-govde > * + * {
  margin-top: var(--ig-b-16);
}
.finans-govde > .row.finans-kart {
  margin-top: 0;
}
.finans-kart-govde {
  padding: 0 var(--ig-b-16) var(--ig-b-16);
}
.card.ig-kpi-kart.finans-ic-kpi {
  background-color: var(--ig-zemin);
  box-shadow: none;
}

/* --- 10.13.3 Grafik tuvali ve lejant (Chart.js maintainAspectRatio: false) - */
.finans-grafik {
  position: relative;
  height: 280px;
  padding: 0 var(--ig-b-16) var(--ig-b-16);
}
.finans-grafik--halka {
  height: 220px;
}
.finans-lejant {
  display: flex;
  flex-wrap: wrap;
  gap: var(--ig-b-12);
  font-size: var(--ig-fs-13);
  color: var(--ig-soluk);
}
.finans-lejant-oge {
  display: inline-flex;
  align-items: center;
  gap: var(--ig-b-6);
  white-space: nowrap;
}
.finans-lejant-oge::before {
  flex: none;
  width: 8px;
  height: 8px;
  content: "";
  background-color: var(--ig-girdi);
  border-radius: var(--ig-r-3);
}
.finans-lejant--giris::before,
.finans-lejant--varlik::before,
.finans-lejant--alacak::before { background-color: var(--ig-birincil); }
.finans-lejant--cikis::before,
.finans-lejant--borc::before { background-color: var(--ig-kirmizi); }
.finans-lejant--net::before { background-color: var(--ig-metin); }

/* --- 10.13.4 Bilgi satırları ve yan tablo --------------------------------- */
.finans-bilgi {
  padding: 0 var(--ig-b-16) var(--ig-b-8);
}
.finans-yan-tablo {
  border-left: 1px solid var(--ig-cizgi);
}
.finans-yan-tablo .table > thead > tr > th {
  border-top: 0;
}

/* --- 10.13.5 Tablo hücreleri: cari adı + alt satır, soluk sütun, tutar rengi */
.finans-ad {
  display: block;
  font-weight: var(--ig-fw-kalin);
  color: var(--ig-metin);
}
.finans-meta {
  display: block;
  margin-top: var(--ig-b-2);
  font-size: var(--ig-fs-12);
  font-weight: var(--ig-fw-normal);
  color: var(--ig-soluk);
}
.finans-govde .table > tbody > tr > td.finans-soluk,
.fiyat-liste-govde .table > tbody > tr > td.fiyat-liste-soluk {
  font-weight: var(--ig-fw-normal);
  color: var(--ig-soluk);
}
.finans-govde .table > tbody > tr > td.ig-tutar--giren {
  color: var(--ig-yesil-metin);
}
.finans-govde .table > tbody > tr > td.ig-tutar--negatif,
.finans-govde .table > tfoot > tr > td.ig-tutar--negatif {
  color: var(--ig-kirmizi);
}
.finans-no {
  white-space: nowrap;
  font-variant-numeric: tabular-nums;
}

/* --- 10.13.6 Risk dilimleri (k2b: yeşil → gri-yeşil → turuncu → kırmızı) -- */
/* Oransal şerit çizilmez: dilim verisi controller'da yok, genişlik için inline style yasak */
.report-band-legend.finans-dilim {
  margin-top: 0;
  padding: 0 var(--ig-b-16) var(--ig-b-16);
}
.finans-dilim .report-band-item-label::before {
  flex: none;
  width: 8px;
  height: 8px;
  content: "";
  background-color: var(--ig-gecikme-1);
  border-radius: var(--ig-r-3);
}
.finans-dilim--1 .report-band-item-label::before { background-color: var(--ig-gecikme-1, var(--ig-dugme)); }
.finans-dilim--2 .report-band-item-label::before { background-color: var(--ig-gecikme-2); }
.finans-dilim--3 .report-band-item-label::before { background-color: var(--ig-gecikme-3); }
.finans-dilim--4 .report-band-item-label::before { background-color: var(--ig-gecikme-4); }
.finans-dilim .report-band-item-value.ig-tutar--negatif {
  color: var(--ig-kirmizi);
}
.finans-dilim-not {
  display: block;
  margin-top: var(--ig-b-2);
  font-size: var(--ig-fs-12);
  color: var(--ig-soluk);
}

/* --- 10.13.7 Fiyat detayı: kalem kartları, sütun başlığı, çıkar düğmesi --- */
.fiyat-detay-kart {
  overflow: hidden;
}
.fiyat-detay-kolonlar {
  display: flex;
  align-items: center;
  gap: var(--ig-b-12);
  height: var(--ig-baslik-h);
  padding: 0 var(--ig-b-16);
  font-size: var(--ig-fs-12);
  font-weight: var(--ig-fw-kalin);
  color: var(--ig-soluk);
  white-space: nowrap;
  background-color: var(--ig-zemin);
  border-top: 1px solid var(--ig-cizgi);
  border-bottom: 1px solid var(--ig-cizgi);
}
.fiyat-detay-kolonlar > span:first-child { flex: 1; }
.fiyat-detay-kolonlar--fiyat > span:nth-child(2) {
  flex: none;
  width: 120px;
  text-align: right;
}
.fiyat-detay-panel {
  min-height: 240px;
  max-height: calc(100vh - 320px);
  overflow-y: auto;
  scrollbar-width: thin;
}
.fiyat-detay-kategori {
  font-weight: var(--ig-fw-normal);
  color: var(--ig-soluk);
}
.fiyat-detay-govde .empty-panel {
  padding: 0;
}
.fiyat-detay-govde .sil-btn {
  display: inline-flex;
  flex: none;
  align-items: center;
  justify-content: center;
  width: var(--ig-islem);
  height: var(--ig-islem);
  padding: 0;
  color: var(--ig-kirmizi);
  cursor: pointer;
  background: none;
  border: 0;
  border-radius: var(--ig-r-6);
}
.fiyat-detay-govde .sil-btn:hover { background-color: var(--ig-kirmizi-zemin); }
.fiyat-detay-alan + .fiyat-detay-alan {
  margin-top: var(--ig-b-16);
}

@media (max-width: 1199.98px) {
  .finans-yan-tablo { border-top: 1px solid var(--ig-cizgi); border-left: 0; }
  .fiyat-detay-panel { max-height: none; }
}
@media (max-width: 767.98px) {
  .ig-bant + .finans-serit { margin: calc(var(--ig-bindirme) * -1) var(--ig-b-16) 0; }
  .finans-grafik { height: 220px; }
}

/* 10.14 DEPOZİTO + EKSTRE */
/* muh/depozito/depozito_listesi + depozito_tablosu (liste-c), depozito_ekle (form-sayfa-c),
   depozito_detay (cari-detay bandı). Bant, hap filtre, satır işlemleri, durum etiketi, bilgi satırı/ızgara,
   tutar alanı ve boş durum ortak sınıflardan (3–4, 8, 10.1) gelir; burada yalnız bu ekranlara özgü olanlar var. */

/* Liste kartı ve hücreler */
.depozito-kart {
  margin-bottom: var(--ig-b-24);
  overflow: hidden;
}
.depozito-kart .ig-hap .select2-container .select2-selection--single {
  height: auto;
  border: 0;
  background: transparent;
}
.depozito-uyari { margin-bottom: var(--ig-b-16); }
.depozito-no {
  font-weight: var(--ig-fw-kalin);
  color: var(--ig-metin);
}
.depozito-cari {
  font-weight: var(--ig-fw-kalin);
  color: var(--ig-metin);
  text-decoration: none;
}
.depozito-cari:hover {
  color: var(--ig-yesil-metin);
  text-decoration: underline;
  text-underline-offset: 3px;
}
.depozito-cari:focus-visible {
  outline: 0;
  border-radius: var(--ig-r-4);
  box-shadow: var(--ig-odak);
}
.depozito-alt {
  display: block;
  font-size: var(--ig-fs-12);
  font-weight: var(--ig-fw-normal);
  color: var(--ig-soluk);
}
.depozito-soluk { color: var(--ig-soluk); }
.depozito-kisi { font-weight: var(--ig-fw-orta); }
.depozito-modal .modal-body { padding-top: 0; padding-bottom: 0; }

/* Form sayfası (form-sayfa-c): bant altı iki sütun, yapışkan altlık */
.depozito-form-govde,
.depozito-detay-govde { padding-bottom: var(--ig-b-24); }
.depozito-sutun {
  display: flex;
  flex-direction: column;
  gap: var(--ig-b-16);
}
.depozito-form-alanlar {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--ig-b-16);
}
.depozito-alan--tam { grid-column: 1 / -1; }
.depozito-tutar { position: relative; }
.depozito-tutar .ig-tutar-alan { padding-right: var(--ig-b-32); }
.depozito-tutar-sonek {
  position: absolute;
  top: 50%;
  right: var(--ig-b-12);
  font-size: var(--ig-fs-20);
  font-weight: var(--ig-fw-kalin);
  color: var(--ig-soluk);
  transform: translateY(-50%);
  pointer-events: none;
}
.depozito-fiyat-listesi {
  padding: var(--ig-b-12);
  background-color: var(--ig-zemin);
  border: 1px solid var(--ig-cizgi);
  border-radius: var(--ig-r-6);
}
.depozito-fiyat-baslik {
  margin-bottom: var(--ig-b-8);
  font-size: var(--ig-fs-13);
  color: var(--ig-soluk);
}
.depozito-fiyat-baslik > span {
  font-weight: var(--ig-fw-kalin);
  color: var(--ig-metin);
}
.depozito-varyantlar {
  display: flex;
  flex-wrap: wrap;
  gap: var(--ig-b-8);
}
.depozito-varyant-btn {
  display: inline-flex;
  flex-direction: column;
  align-items: flex-start;
  min-height: var(--ig-girdi-h);
  padding: var(--ig-b-4) var(--ig-b-12);
  font-size: var(--ig-fs-13);
  color: var(--ig-metin);
  background-color: var(--ig-yuzey);
  border: 1px solid var(--ig-cizgi);
  border-radius: var(--ig-r-6);
}
.depozito-varyant-btn:hover { border-color: var(--ig-girdi); }
.depozito-varyant-btn.is-secili {
  color: var(--ig-yesil-metin);
  background-color: var(--ig-yesil-acik);
  border-color: var(--ig-yesil-cizgi);
}
.depozito-varyant-btn:focus-visible {
  outline: 0;
  box-shadow: var(--ig-odak);
}
.depozito-varyant-ad { font-weight: var(--ig-fw-kalin); }
.depozito-varyant-fiyat {
  font-size: var(--ig-fs-12);
  font-variant-numeric: tabular-nums;
}
.depozito-not { font-size: var(--ig-fs-13); }
.depozito-ozet { padding: 0 var(--ig-b-16); }
.depozito-ozet .ig-bilgi-deger { font-variant-numeric: tabular-nums; }
.depozito-ozet-toplam { align-items: center; }
.depozito-ozet-toplam .ig-bilgi-etiket {
  font-weight: var(--ig-fw-kalin);
  color: var(--ig-metin);
}
.depozito-ozet-toplam .ig-bilgi-deger {
  font-size: var(--ig-fs-20);
  font-weight: var(--ig-fw-kalin);
}
.depozito-bilgi {
  padding: var(--ig-b-24) var(--ig-b-16);
  font-size: var(--ig-fs-13);
  color: var(--ig-soluk);
  text-align: center;
}
.depozito-sayilar {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
}
.depozito-sayi {
  display: flex;
  flex-direction: column;
  gap: var(--ig-b-2);
  padding: var(--ig-b-16);
}
.depozito-sayi + .depozito-sayi { border-left: 1px solid var(--ig-cizgi); }
.depozito-sayi-etiket {
  font-size: var(--ig-fs-12);
  color: var(--ig-soluk);
}
.depozito-sayi-deger {
  font-size: var(--ig-fs-20);
  font-weight: var(--ig-fw-kalin);
  color: var(--ig-metin);
  font-variant-numeric: tabular-nums;
}
.depozito-son-tablo > tbody > tr { cursor: pointer; }
.depozito-altlik {
  position: sticky;
  bottom: 0;
  z-index: 10;
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: var(--ig-b-12);
  margin-top: var(--ig-b-8);
  padding: var(--ig-b-16) var(--ig-bant-x);
  background-color: var(--ig-yuzey);
  border-top: 1px solid var(--ig-cizgi);
  box-shadow: 0 -4px 12px rgba(9, 9, 11, 0.06);
}
.depozito-altlik .btn { height: var(--ig-dugme-altlik-h); }

/* Detay (cari-detay bandı + kart bilgi satırları) */
.depozito-aciklama { grid-column: 1 / -1; }
.depozito-bilgi-satirlar { padding: 0 var(--ig-b-16); }

@media (max-width: 767.98px) {
  .depozito-form-alanlar,
  .depozito-sayilar { grid-template-columns: minmax(0, 1fr); }
  .depozito-sayi + .depozito-sayi {
    border-top: 1px solid var(--ig-cizgi);
    border-left: 0;
  }
  .depozito-altlik { padding: var(--ig-b-12) var(--ig-b-16); }
}

/* Ekstre: muh/ekstre/cari_ekstre + tahsilat_performans (rapor-kabuk). yaslandirma_raporu ile aynı kalıp;
   bant, filtre barı, kart başlığı ve report-chip ortak sınıflardan gelir. Yalnız --ig-* token. */
.ekstre-kart,
.ekstre-grafik-kart {
  overflow: hidden;
}
.ekstre-grafik-kart {
  margin-top: var(--ig-b-16);
}
.ekstre-kart .ig-kart-baslik-metin,
.ekstre-grafik-kart .ig-kart-baslik-metin {
  font-size: var(--ig-fs-15);
  font-weight: var(--ig-fw-kalin);
}
.ekstre-kart .ig-hap,
.ekstre-kart .ig-hap-girdi {
  height: var(--ig-hap-h);
}
.ekstre-kart .table > thead > tr > th {
  height: var(--ig-baslik-h);
}
.ekstre-kart .table > tbody > tr > td {
  height: var(--ig-satir-h);
}
.ekstre-kart .table > tfoot > tr > td {
  height: var(--ig-satir-h);
  font-weight: var(--ig-fw-kalin);
  background-color: var(--ig-zemin);
  border-top: 1px solid var(--ig-cizgi);
  font-variant-numeric: tabular-nums;
}
.ekstre-baglanti {
  font-weight: var(--ig-fw-orta);
  color: var(--ig-yesil-metin);
  text-decoration: none;
}
.ekstre-baglanti:hover {
  text-decoration: underline;
  text-underline-offset: 3px;
}
.ekstre-baglanti:focus-visible {
  outline: 0;
  border-radius: var(--ig-r-4);
  box-shadow: var(--ig-odak);
}
.ekstre-soluk {
  font-size: var(--ig-fs-13);
  color: var(--ig-soluk);
}
.ekstre-yon {
  margin-left: var(--ig-b-4);
  font-size: var(--ig-fs-12);
  font-weight: var(--ig-fw-normal);
  color: var(--ig-soluk);
}
.ekstre-chipler {
  display: inline-flex;
  flex-wrap: wrap;
  gap: var(--ig-b-4);
}
.ekstre-not {
  margin: 0;
  padding: var(--ig-b-12) var(--ig-b-20);
  font-size: var(--ig-fs-13);
  color: var(--ig-soluk);
  border-top: 1px solid var(--ig-cizgi);
}
.ekstre-not strong {
  font-weight: var(--ig-fw-kalin);
  color: var(--ig-metin);
}

/* 10.15 MUH AYARLAR + ÜRETİM */
/* muh/ayarlar/{ayarlar, ayarlar_urun_kategorileri, ayarlar_cari_kategorileri, ayarlar_dara_secenekleri, ayarlar_ebelge}.php
   muh/uretim/{listesi, gecmis}.php · liste-c/ListeC, form-sayfa-c/FormCUrunler, kabuk-katman/KabukModul.
   Bant, araç çubuğu, satır işlemleri, panel, boş durum, kart başlığı ve segment ortak sınıflardan (3–4, 8) gelir. */

/* Ayar girişi: kart listesi (başlık 15/600 + 13px soluk + "Aç →"), ikon kutusu yok */
.muh-ayar-giris {
  margin-bottom: var(--ig-b-24);
}
.muh-ayar-giris-kart {
  margin-bottom: 0;
}
.muh-ayar-giris-kart .ig-kart-baslik {
  align-items: flex-start;
  height: 100%;
  border-bottom: 0;
}

/* Liste kartı (kategoriler, dara) */
.muh-ayar-kart,
.uretim-kart {
  margin-bottom: var(--ig-b-24);
  overflow: hidden;
}
.muh-ayar-no {
  width: 64px;
  color: var(--ig-soluk);
  font-variant-numeric: tabular-nums;
}
.muh-ayar-ad,
.uretim-ad {
  font-weight: var(--ig-fw-kalin);
  color: var(--ig-metin);
}
.muh-ayar-soluk,
.uretim-soluk {
  color: var(--ig-soluk);
}
.muh-ayar-sayi,
.uretim-sayi {
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}
.muh-ayar-renk {
  display: inline-flex;
  align-items: center;
  gap: var(--ig-b-8);
}
.muh-ayar-renk-kutu {
  flex: none;
}
.muh-ayar-renk-kod {
  font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: var(--ig-fs-12);
  color: var(--ig-soluk);
}
.form-control.muh-ayar-renk-girdi {
  width: 64px;
  height: var(--ig-girdi-h);
  padding: 4px;
}

/* E-belge formu (form-sayfa-c): kartlar, 40px girdi, yapışkan altlık tek birincil */
.muh-ayar-form .muh-ayar-form-kart {
  margin-bottom: var(--ig-b-16);
}
.muh-ayar-form-satir {
  margin-bottom: var(--ig-b-16);
}
.muh-ayar-form-satir .muh-ayar-form-kart {
  margin-bottom: 0;
}
.muh-ayar-form .filter-input,
.muh-ayar-form .filter-select {
  height: var(--ig-girdi-h);
}
.muh-ayar-onay {
  display: flex;
  align-items: center;
  gap: var(--ig-b-8);
  min-height: var(--ig-girdi-h);
  margin: 0;
  padding-left: 0;
}
.muh-ayar-onay .form-check-input {
  float: none;
  margin: 0;
}
.muh-ayar-segment .ig-segment-oge {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin: 0;
  cursor: pointer;
}
/* Akışta 0 boyut + opacity 0 (kapı 53: absolute radyo odakta sayfayı zıplatır) */
.muh-ayar-segment-girdi {
  width: 0;
  height: 0;
  margin: 0;
  opacity: 0;
  pointer-events: none;
}
.muh-ayar-segment .ig-segment-oge:has(> .muh-ayar-segment-girdi:checked) {
  font-weight: var(--ig-fw-kalin);
  color: var(--ig-metin);
  background-color: var(--ig-yuzey);
  box-shadow: var(--ig-golge-segment);
}
.muh-ayar-segment .ig-segment-oge:has(> .muh-ayar-segment-girdi:focus-visible) {
  box-shadow: var(--ig-odak);
}
.muh-ayar-test {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--ig-b-8);
}
.muh-ayar-test-sonuc {
  font-size: var(--ig-fs-13);
}
.muh-ayar-altlik {
  position: sticky;
  bottom: 0;
  z-index: 5;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--ig-b-12);
  margin: 0 0 var(--ig-b-24);
  padding: var(--ig-b-12) var(--ig-b-16);
  background-color: var(--ig-yuzey);
  border: 1px solid var(--ig-cizgi);
  border-radius: var(--ig-r-8);
  box-shadow: 0 -4px 12px rgba(9, 9, 11, 0.06);
}
.muh-ayar-altlik-ipucu {
  min-width: 0;
  font-size: var(--ig-fs-13);
  color: var(--ig-soluk);
}
.muh-ayar-altlik .btn {
  flex: none;
  height: 44px;
}

/* Üretim listesi + geçmiş (liste-c) */
.uretim-meta,
.uretim-birim {
  font-size: var(--ig-fs-12);
  font-weight: var(--ig-fw-normal);
  color: var(--ig-soluk);
}
.uretim-uyari {
  font-size: var(--ig-fs-13);
  color: var(--ig-kirmizi);
}

/* Üretim kaydı modalı: bölümler kenarlı, renkli kutu yok */
.uretim-bolum {
  margin-bottom: var(--ig-b-16);
  padding: var(--ig-b-12) var(--ig-b-16);
  background-color: var(--ig-yuzey);
  border: 1px solid var(--ig-cizgi);
  border-radius: var(--ig-r-8);
}
.uretim-bolum-baslik {
  margin-bottom: var(--ig-b-8);
  font-size: var(--ig-fs-13);
  font-weight: var(--ig-fw-kalin);
  color: var(--ig-metin);
}
.uretim-bolum-not {
  margin-bottom: var(--ig-b-8);
  font-size: var(--ig-fs-12);
  color: var(--ig-soluk);
}
.uretim-bilgi {
  display: flex;
  flex-wrap: wrap;
  gap: var(--ig-b-16);
  font-size: var(--ig-fs-14);
}
.uretim-bilgi-oge--genis {
  flex: 1 1 200px;
}
.uretim-bilgi-etiket {
  margin-bottom: var(--ig-b-4);
  font-size: var(--ig-fs-12);
  color: var(--ig-soluk);
}
.uretim-miktar {
  display: flex;
  align-items: center;
  gap: var(--ig-b-8);
}
.uretim-miktar-girdi {
  flex: 1 1 auto;
  min-width: 0;
  height: var(--ig-girdi-h);
  font-weight: var(--ig-fw-kalin);
  text-align: right;
  font-variant-numeric: tabular-nums;
}
.uretim-miktar-birim {
  flex: none;
  min-width: 56px;
  padding: 0 var(--ig-b-12);
  font-size: var(--ig-fs-13);
  font-weight: var(--ig-fw-orta);
  line-height: var(--ig-girdi-h);
  color: var(--ig-soluk);
  text-align: center;
  background-color: var(--ig-zemin);
  border: 1px solid var(--ig-cizgi);
  border-radius: var(--ig-r-6);
}
.uretim-bolum--recete {
  padding: 0;
  overflow: hidden;
}
.uretim-recete-bas {
  padding: var(--ig-b-12) var(--ig-b-16);
  cursor: pointer;
  background-color: var(--ig-zemin);
}
.uretim-recete-satir {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--ig-b-8);
  margin-bottom: var(--ig-b-4);
}
.uretim-recete-icerik {
  border-top: 1px solid var(--ig-cizgi);
}
@media (max-width: 767.98px) {
  .muh-ayar-altlik {
    flex-direction: column;
    align-items: stretch;
  }
}

/* 10.16 CARİ SEKMELER */
/* ==========================================================================
   views/muh/cari/cari_detayi_{bilgiler,limit,fiyatlandirma,diger}.php (form-sayfa-c kartları)
   views/muh/cari/cari_gecmisi_{siparisler,tahsilatlar,irsaliyeler,faturalar,depozitolar}.php (CariHareket)
   Gövde .ig-bant-govde.ig-cari-govde (10.2.1), kart başlığı (4.11), hap filtre (4.4/4.5), satır işlemi (4.6),
   durum etiketi (4.9), boş durum (4.12), "isteğe bağlı" .ig-istege (4.14), tutar .ig-tutar (4.16),
   alt metin .ig-cari-alt-metin (10.2.3) yeniden tanımlanmaz; burada yalnız form kartı ve tablo kartı yerleşimi.
   ========================================================================== */

/* --- 10.16.1 Form kartları (FormC: kart 16 aralık, alan padding 0 20 20) --- */
.cari-sekme-yigin {
  display: flex;
  flex-direction: column;
  gap: var(--ig-b-16);
}
.cari-sekme-kart {
  overflow: hidden;
  margin-bottom: 0;
}
.cari-sekme-alanlar {
  padding: 0 var(--ig-b-20) var(--ig-b-20);
}

/* Etiket 14/600, girdi 40px radius 6 */
.form-label.cari-sekme-etiket {
  display: block;
  margin-bottom: var(--ig-b-6);
  font-size: var(--ig-fs-14);
  font-weight: var(--ig-fw-kalin);
  color: var(--ig-metin);
}
.form-control.cari-sekme-girdi,
.form-select.cari-sekme-girdi {
  height: var(--ig-girdi-h);
  font-size: var(--ig-fs-14);
  border-radius: var(--ig-r-6);
}
textarea.form-control.cari-sekme-girdi {
  height: auto;
  min-height: 96px;
}
.cari-sekme-ipucu {
  display: block;
  margin-top: var(--ig-b-6);
  font-size: var(--ig-fs-12);
  color: var(--ig-soluk);
}

/* Telefon: +90 öneki girdiyle bitişik */
.cari-sekme-telefon {
  display: flex;
  align-items: stretch;
}
.cari-sekme-onek {
  display: flex;
  flex: none;
  align-items: center;
  padding: 0 var(--ig-b-12);
  font-size: var(--ig-fs-14);
  font-weight: var(--ig-fw-kalin);
  color: var(--ig-soluk);
  background-color: var(--ig-zemin);
  border: 1px solid var(--ig-cizgi);
  border-right: 0;
  border-radius: var(--ig-r-6) 0 0 var(--ig-r-6);
}
.cari-sekme-telefon .form-control.cari-sekme-girdi {
  flex: 1;
  min-width: 0;
  border-top-left-radius: 0;
  border-bottom-left-radius: 0;
}

/* Kart içi tablo (fiyat listesi) alan bloğunun altında, üst çizgili */
.cari-sekme-tablo-alt {
  border-top: 1px solid var(--ig-cizgi);
}

/* --- 10.16.2 Tablo kartı (CariHareket: araç çubuğu kart içinde) ----------- */
.cari-sekme-liste {
  overflow: hidden;
  margin-bottom: var(--ig-b-16);
}
.cari-sekme-liste > .ig-filtre {
  border-top: 1px solid var(--ig-cizgi);
  border-bottom: 1px solid var(--ig-cizgi);
}
.cari-sekme-liste .table > thead > tr > th {
  border-top: 0;
}
.cari-sekme-not {
  margin: 0;
  padding: var(--ig-b-12) var(--ig-b-16);
  font-size: var(--ig-fs-13);
  color: var(--ig-soluk);
  border-top: 1px solid var(--ig-cizgi);
}
.cari-sekme-sayi {
  font-variant-numeric: tabular-nums;
}

@media (max-width: 767.98px) {
  .cari-sekme-alanlar { padding: 0 var(--ig-b-16) var(--ig-b-16); }
}

/* 10.17 CARİ ADRESLER */
/* ==========================================================================
   views/muh/cari/cari_detayi_adresler.php (2026-09-15).
   Kaynak: cari-detay/CariOzet (kart başlığı), liste-c tablo 40/44, form-sayfa-c sağ panel 480.
   Tablo, durum etiketi, satır işlemleri, sağ panel ve adres-google-status 3-4. bölüm ile
   10.1'den gelir; burada yalnız bu sekmenin hücre metinleri ve öneri listesi var.
   ========================================================================== */

/* --- 10.17.1 Kart: sekme kartından 16px aşağıda ---------------------------- */
.cari-adres-kart {
  overflow: hidden;
  margin-bottom: var(--ig-b-16);
}

/* --- 10.17.2 Hücre metinleri (§1 Tablo satırı: ad 600/METIN, ikincil SOLUK) - */
.cari-adres-ad {
  font-weight: var(--ig-fw-kalin);
  color: var(--ig-metin);
  white-space: nowrap;
}
.cari-adres-alt {
  font-size: var(--ig-fs-12);
  color: var(--ig-soluk);
}
.cari-adres-tablo .cari-adres-soluk,
.cari-adres-soluk {
  color: var(--ig-soluk);
}
.cari-adres-kisalt {
  display: block;
  max-width: 240px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.cari-adres-kisalt--dar {
  max-width: 160px;
}

/* --- 10.17.3 Sağ panel: Google öneri listesi panel içinde kayar ------------ */
.cari-adres-oneriler {
  max-height: 240px;
  overflow-y: auto;
  border-radius: var(--ig-r-6);
}
.cari-adres-oneriler .list-group-item {
  font-size: var(--ig-fs-13);
}

@media (max-width: 991.98px) {
  .cari-adres-kisalt { max-width: 180px; }
  .cari-adres-kisalt--dar { max-width: 120px; }
}

/* ==========================================================================
   11 İŞ + 12 İK (Faz 5)
   ========================================================================== */

/* 11.1 İŞ PROJE AŞAMALAR */
/* Kaynak: views/is/projeler/proje_detay_asamalar.php (Aşamalar sekmesi).
   Kalıp: cari-detay/CariOzet + urun-detay-v2/UrunV2Recete kart kalıbı.
   isgelir-ui.css 4 (.ig-bant-govde, .ig-kart-baslik, .ig-durum, .ig-islemler),
   8b ve 9 (.is-stage-*, .is-tree-*) kuralları yeniden tanımlanmaz; buradaki
   kurallar yalnız aşama satırı, ilerleme şeridi, segment ve panel/modal
   yerleşimini ekler. */

.is-asama-govde .card { margin-bottom: 0; }

/* Aşama satırı · §1 Tablo satırı ölçüsü (yükseklik, yan boşluk, üst çizgi). */
.is-asama-satir {
  display: flex;
  align-items: center;
  gap: var(--ig-b-12);
  min-height: 44px;
  padding: var(--ig-b-8) var(--ig-b-16);
  border-top: 1px solid var(--ig-cizgi);
}
.is-asama-satir:first-child { border-top: 0; }
.is-asama-satir--agac { cursor: pointer; }
.is-asama-satir--agac:hover { background: var(--ig-zemin); }
.is-asama-satir--agac:focus-visible { outline: none; box-shadow: var(--ig-odak); }
.is-tree-item.active > .is-asama-satir--agac { background: var(--ig-yesil-secili); }
.is-asama-ad {
  min-width: 0;
  overflow: hidden;
  font-size: var(--ig-fs-13);
  font-weight: var(--ig-fw-kalin);
  color: var(--ig-metin);
  white-space: nowrap;
  text-overflow: ellipsis;
}
.is-asama-ad--alt { font-weight: var(--ig-fw-orta); }
.is-asama-satir .asama-title { flex: 1 1 auto; cursor: pointer; }
.is-asama-alt {
  margin-top: var(--ig-b-2);
  font-size: var(--ig-fs-12);
  color: var(--ig-soluk);
}

/* Sürükleme tutamağı: ikon kutusu değil, 2×3 nokta deseni (kapı 67). */
.is-asama-tutamac {
  flex-shrink: 0;
  width: 10px;
  height: 16px;
  cursor: grab;
  background-image: radial-gradient(circle, var(--ig-girdi) 1px, transparent 1px);
  background-position: 0 var(--ig-b-2);
  background-size: 5px 5px;
}
.is-asama-tutamac:active { cursor: grabbing; }

/* İlerleme: ince şerit + "%45" (genişlik data-is-asama-oran ile JS'ten). */
.is-asama-ilerleme {
  display: flex;
  align-items: center;
  gap: var(--ig-b-8);
  margin-top: var(--ig-b-4);
}
.is-asama-serit {
  display: block;
  flex: 1 1 auto;
  min-width: 64px;
  height: 4px;
  overflow: hidden;
  background: var(--ig-gri-zemin);
  border-radius: 2px;
}
.is-asama-serit-dolgu {
  display: block;
  width: 0;
  height: 100%;
  background: var(--ig-birincil);
}
.is-asama-oran {
  flex-shrink: 0;
  font-size: var(--ig-fs-12);
  font-variant-numeric: tabular-nums;
  color: var(--ig-soluk);
  white-space: nowrap;
}
.is-asama-ilerleme-not { font-size: var(--ig-fs-12); color: var(--ig-soluk); }

/* Aşama genişletme oku: 16px ikon, kapalıyken -90°. */
.is-tree-item-row .is-tree-expand-icon { display: flex; transition: transform 0.12s ease; }
@media (prefers-reduced-motion: reduce) {
  .is-tree-item-row .is-tree-expand-icon { transition: none; }
}
.is-tree-item-row[aria-expanded="false"] .is-tree-expand-icon { transform: rotate(-90deg); }

/* Detay kartı: eylem segmenti (§1 Seçim segmenti 40px gri zemin, seçili beyaz). */
.is-asama-segment {
  display: flex;
  gap: var(--ig-b-4);
  padding: var(--ig-b-4);
  background: var(--ig-gri-zemin);
  border-radius: var(--ig-r-6);
}
.is-asama-segment-dugme {
  flex: 1 1 0;
  padding: var(--ig-b-6) var(--ig-b-12);
  color: var(--ig-metin-2);
  text-align: left;
  cursor: pointer;
  background: transparent;
  border: 0;
  border-radius: var(--ig-r-4);
}
.is-asama-segment-dugme:focus-visible { outline: none; box-shadow: var(--ig-odak); }
.is-asama-segment-dugme.active {
  color: var(--ig-metin);
  background: var(--ig-yuzey);
  box-shadow: var(--ig-golge-kart);
}
.is-asama-segment-ad { display: block; font-size: var(--ig-fs-13); font-weight: var(--ig-fw-kalin); }
.is-asama-segment-not { display: block; margin-top: var(--ig-b-2); font-size: var(--ig-fs-12); color: var(--ig-soluk); }

/* Atama / tamamlama formu (kart içi). */
.is-asama-form {
  padding: var(--ig-b-16);
  background: var(--ig-yuzey);
  border: 1px solid var(--ig-cizgi);
  border-radius: var(--ig-r-8);
}
.is-asama-form-altlik { display: flex; justify-content: flex-end; gap: var(--ig-b-8); }

/* Açık atama / tamamlanmış aşama durum kutusu. */
.is-asama-durum-kutu {
  display: flex;
  flex-direction: column;
  gap: var(--ig-b-12);
  padding: var(--ig-b-16);
  background: var(--ig-zemin);
  border: 1px solid var(--ig-cizgi);
  border-radius: var(--ig-r-8);
}
.is-asama-durum-metin { margin: var(--ig-b-2) 0 0; font-size: var(--ig-fs-13); color: var(--ig-metin-2); }
.is-asama-durum-eylem { display: flex; flex-wrap: wrap; align-items: center; gap: var(--ig-b-8); }
.is-asama-durum-ipucu { flex: 1 1 auto; font-size: var(--ig-fs-12); color: var(--ig-soluk); }

/* Hareketler kartı ve etiket grubu. */
.is-asama-hareket-kart { box-shadow: none; }
.is-asama-hareket-etiketler { display: flex; flex-wrap: wrap; gap: var(--ig-b-4); }

/* Aşama yönetimi modalı (sürükle-bırak listesi). */
.is-asama-yonet-ust {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: var(--ig-b-8);
  margin-bottom: var(--ig-b-12);
}
.is-asama-yonet-not { font-size: var(--ig-fs-13); color: var(--ig-soluk); }
.is-asama-yonet-liste {
  overflow: hidden;
  background: var(--ig-yuzey);
  border: 1px solid var(--ig-cizgi);
  border-radius: var(--ig-r-8);
}

/* 11.2 İŞ PROJE CEPHELER */
/* 11.2.0 Yerel token'lar (ham koyu renk ve hap yarıçapı kapı 62/63 için token'a alındı) */
:root {
	--is-cephe-yapi: #1f2c36;
	--is-cephe-yapi-koyu: #172330;
	--is-cephe-yapi-taban: #1f2d38;
	--is-cephe-yapi-ust: #25313d;
	--is-cephe-hap-r: 6px;
}

/* Kaynak: views/is/projeler/proje_detay_cepheler.php içi <style> bloğu (kaldırıldı).
   Sınıflar JS seçicilerinde kullanıldığı için .facade-* adları korundu; yeni kalıplar .is-cephe-* önekli. */
.facade-studio {
    --fs-border: #dfe5ed;
    --fs-border-strong: #c8d1dc;
    --fs-text: #182433;
    --fs-muted: #647386;
    --fs-soft: #f4f7fb;
    --fs-blue: #1967d2;
    --fs-blue-soft: #eaf2ff;
    --fs-green: #3f985d;
    --fs-shadow: 0 18px 50px rgba(28, 42, 59, .08);
    color: var(--fs-text);
}
.facade-studio * { letter-spacing: 0; }
.facade-shell { display: block; }
.facade-panel { background: #fff; border: 1px solid var(--fs-border); border-radius: 8px; box-shadow: 0 1px 2px rgba(17, 24, 39, .03); overflow: hidden; }
.facade-panel-title { padding: 14px 16px 10px; font-size: 13px; font-weight: 800; text-transform: uppercase; color: #172235; }
.facade-inline-list { margin-bottom: 16px; }
.facade-inline-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 12px 14px; border-bottom: 1px solid #eef2f6; }
.facade-inline-head .facade-panel-title { padding: 0; white-space: nowrap; }
.facade-inline-tools { display: flex; align-items: center; gap: 8px; min-width: min(520px, 60%); }
.facade-search { display: flex; gap: 8px; padding: 0 14px 12px; }
.facade-inline-tools .facade-search { flex: 1; padding: 0; min-width: 220px; }
.facade-search .filter-input { height: 38px; }
.facade-filter-btn, .facade-icon-btn { width: 38px; height: 38px; display: inline-flex; align-items: center; justify-content: center; border: 1px solid var(--fs-border); background: #fff; border-radius: 7px; color: #3e4b5c; }
.facade-list { max-height: 366px; overflow: auto; border-top: 1px solid #eef2f6; border-bottom: 1px solid #eef2f6; }
.facade-list--inline { max-height: none; display: flex; gap: 10px; overflow-x: auto; overflow-y: hidden; padding: 10px 14px 12px; border: 0; scrollbar-width: thin; }
.facade-card { display: block; padding: 12px 14px; color: inherit; text-decoration: none; border-left: 3px solid transparent; border-bottom: 1px solid #edf1f6; background: #fff; }
.facade-list--inline .facade-card { flex: 0 0 230px; border: 1px solid #e3e9f0; border-left-width: 3px; border-radius: 7px; }
.facade-card:hover { background: #f9fbff; color: inherit; }
.facade-card.active { border-left-color: var(--fs-blue); background: linear-gradient(90deg, #eaf3ff 0%, #f8fbff 100%); outline: 1px solid #9fc3ff; outline-offset: -1px; }
.facade-list--inline .facade-card.active { border-color: #9fc3ff; border-left-color: var(--fs-blue); box-shadow: 0 8px 20px rgba(25, 103, 210, .08); }
.facade-card-name { font-size: 13px; font-weight: 800; margin-bottom: 2px; }
.facade-card-meta { font-size: 12px; color: var(--fs-muted); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.facade-add-btn { height: 39px; border-radius: 7px; border: 1px solid var(--fs-border); background: #fff; font-weight: 700; color: #1f2d3d; padding: 0 12px; white-space: nowrap; }
.facade-summary-grid { margin-bottom: 16px; }
.facade-progress-block { padding: 14px; }
.facade-donut-row { display: grid; grid-template-columns: 104px 1fr; gap: 14px; align-items: center; }
.facade-donut { width: 104px; height: 104px; border-radius: 50%; background: conic-gradient(var(--fs-green) var(--progress), #d5dae2 0); position: relative; display: grid; place-items: center; }
.facade-donut:after { content: ""; width: 72px; height: 72px; border-radius: 50%; background: #fff; position: absolute; }
.facade-donut strong { position: relative; z-index: 1; font-size: 26px; }
.facade-progress-legend { display: grid; gap: 8px; font-size: 12px; }
.facade-progress-legend span { display: grid; grid-template-columns: 10px 1fr auto; gap: 8px; align-items: center; }
.facade-progress-legend i { width: 10px; height: 10px; border-radius: 50%; display: inline-block; }
.facade-total-line { display: flex; justify-content: space-between; padding-top: 12px; margin-top: 14px; border-top: 1px solid #edf1f6; font-size: 13px; }
.facade-workspace { min-width: 0; }
.facade-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 14px 18px; border-bottom: 1px solid var(--fs-border); }
.facade-title { display: flex; align-items: center; gap: 9px; font-size: 17px; font-weight: 900; }
.facade-title button { border: 0; background: transparent; color: #4b5b70; padding: 0; }
.facade-actions { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.facade-actions .facade-toolbar-statuses { margin-right: auto; }
.facade-action-btn { height: 38px; border: 1px solid var(--fs-border); background: #fff; border-radius: 7px; padding: 0 13px; display: inline-flex; align-items: center; gap: 8px; font-weight: 700; color: #243142; }
.facade-action-btn.primary { background: #145fc7; border-color: #145fc7; color: #fff; }
.facade-action-btn.danger:hover { color: #c53636; border-color: #efb0b0; }
.facade-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 12px 18px; border-bottom: 1px solid var(--fs-border); flex-wrap: wrap; }
.facade-toolbar-left, .facade-toolbar-right { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }
.facade-toolbar select { height: 38px; border: 1px solid var(--fs-border); border-radius: 7px; padding: 0 32px 0 10px; font-weight: 700; background: #fff; }
.facade-toolbar-statuses { display: inline-flex; align-items: center; gap: 6px; flex-wrap: wrap; }
.facade-status-pill { min-height: 34px; padding: 6px 10px; border-radius: var(--is-cephe-hap-r); border: 1px solid var(--fs-border); background: #fff; display: inline-flex; align-items: center; gap: 7px; font-size: 12px; font-weight: 800; color: #223246; white-space: nowrap; }
.facade-status-pill i { width: 8px; height: 8px; border-radius: 50%; display: inline-block; flex: 0 0 8px; }
.facade-status-pill b { font-size: 11px; color: #556476; }
.facade-toggle { position: relative; display: inline-flex; align-items: center; gap: 9px; min-height: 38px; padding: 6px 11px; border: 1px solid #bdcad8; border-radius: 7px; background: #fff; color: #172235; font-size: 13px; font-weight: 900; box-shadow: 0 1px 2px rgba(17,24,39,.06); cursor: pointer; user-select: none; }
.facade-toggle input { position: absolute; opacity: 0; width: 1px; height: 1px; pointer-events: none; }
.facade-switch { flex: 0 0 48px; width: 48px; height: 25px; border-radius: var(--is-cephe-hap-r); border: 2px solid #7d8fa5; background: #d7e0eb; position: relative; box-shadow: inset 0 1px 2px rgba(17,24,39,.18); }
.facade-switch:after { content: ""; width: 17px; height: 17px; border-radius: 50%; background: #fff; position: absolute; top: 2px; left: 3px; transition: .18s ease; box-shadow: 0 2px 5px rgba(17,24,39,.3); }
.facade-toggle input:checked + .facade-switch { background: #145fc7; border-color: #145fc7; }
.facade-toggle input:checked + .facade-switch:after { left: 24px; }
.facade-toggle input:focus-visible + .facade-switch { outline: 3px solid rgba(25, 103, 210, .28); outline-offset: 2px; }
.facade-canvas-wrap { padding: 24px 18px 0; overflow: auto; background: linear-gradient(180deg, #fff 0%, #fbfcff 100%); }
.facade-canvas { min-width: 760px; padding: 10px 0 0; transition: transform .2s ease; transform-origin: top left; }
.facade-roof, .facade-floor-slab, .facade-base { margin-left: 90px; margin-right: 18px; height: 13px; background: linear-gradient(180deg, #465462, var(--is-cephe-yapi-ust)); border: 1px solid var(--is-cephe-yapi-koyu); box-shadow: 0 2px 5px rgba(17, 27, 38, .22); }
.facade-roof { border-radius: 2px 2px 0 0; }
.facade-base { height: 8px; margin-top: 0; background: var(--is-cephe-yapi-taban); }
.facade-floor-stack { position: relative; }
.facade-floor-stack.is-dragging { opacity: .72; z-index: 9; }
.facade-floor-sort-placeholder { margin-left: 90px; margin-right: 18px; min-height: 54px; border: 2px dashed #9fc3ff; background: rgba(234, 243, 255, .6); }
.facade-floor-row { display: grid; grid-template-columns: 48px 42px minmax(0, 1fr) 18px; align-items: stretch; }
.facade-floor-label { display: flex; flex-direction: column; justify-content: center; align-items: center; padding-right: 4px; text-align: center; font-size: 12px; font-weight: 800; color: #1c2735; cursor: grab; }
.facade-floor-label:active { cursor: grabbing; }
.facade-floor-label small { display: block; color: #415066; font-weight: 700; margin-top: 2px; }
.facade-axis-trigger { display: inline-flex; width: 100%; align-items: center; justify-content: center; gap: 6px; border: 0; background: transparent; padding: 0; color: inherit; font: inherit; text-align: inherit; }
.facade-axis-trigger--center { justify-content: center; text-align: center; }
.facade-axis-trigger--pill { width: 32px; height: 32px; border-radius: 50%; background: #fff; border: 1px solid var(--fs-border-strong); display: inline-grid; place-items: center; justify-self: center; font-size: 12px; font-weight: 800; text-align: center; }
.facade-axis-trigger:hover { color: var(--fs-blue); }
.facade-axis-trigger:focus-visible { outline: 2px solid rgba(25, 103, 210, .35); outline-offset: 2px; border-radius: 6px; }
.facade-height-measure { display: flex; align-items: center; justify-content: center; font-size: 12px; font-weight: 800; color: #334155; position: relative; }
.facade-height-measure span { line-height: 1; background: #fbfcff; padding: 0 6px; position: relative; z-index: 1; }
.facade-height-measure:before { content: ""; position: absolute; top: 0; bottom: 0; left: 50%; border-left: 1px solid #b7c0cc; }
.facade-floor-grid { display: grid; border-left: 2px solid var(--is-cephe-yapi); border-right: 2px solid var(--is-cephe-yapi); background: var(--is-cephe-yapi); gap: 2px; }
.facade-floor-row + .facade-floor-row .facade-floor-grid { border-top: 7px solid #354554; }
.facade-cell { min-width: 0; border: 0; padding: 0; position: relative; overflow: hidden; cursor: pointer; background: #e5e9ee; box-shadow: inset 0 0 0 1px rgba(20, 33, 48, .5); }
.facade-cell:focus-visible { outline: 3px solid rgba(25, 103, 210, .45); z-index: 4; }
.facade-cell.active { z-index: 5; box-shadow: inset 0 0 0 2px #1967d2, 0 0 0 2px rgba(25,103,210,.25), 0 8px 18px rgba(25,103,210,.18); }
.facade-cell.active:after { content: ""; position: absolute; inset: 3px; border: 1px dashed rgba(25,103,210,.75); pointer-events: none; }
.facade-cell.is-updating { cursor: progress; opacity: .74; }
.facade-status-planned { --cell-base: #cfd5da; }
.facade-status-production { --cell-base: #ffd15d; }
.facade-status-install { --cell-base: #86c5ff; }
.facade-status-complete { --cell-base: #9ac9a5; }
.facade-cell-inner { position: absolute; inset: 0; background: var(--cell-base); }
.facade-cell-icon { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); width: 24px; height: 24px; display: inline-flex; align-items: center; justify-content: center; z-index: 2; color: #fff; pointer-events: none; }
.facade-cell-icon svg { width: 18px; height: 18px; stroke-width: 2.1; }
.facade-element-glass .facade-cell-inner { background: var(--cell-base); }
.facade-element-panel .facade-cell-inner, .facade-element-opaque .facade-cell-inner { background: var(--cell-base); }
.facade-element-window .facade-cell-inner, .facade-element-door .facade-cell-inner { background: var(--cell-base); }
.facade-element-void:before { content: ""; position: absolute; inset: 4px; background: linear-gradient(45deg, transparent 49%, rgba(35,52,69,.38) 50%, transparent 51%), linear-gradient(-45deg, transparent 49%, rgba(35,52,69,.38) 50%, transparent 51%); z-index: 1; pointer-events: none; }
.facade-element-empty .facade-cell-inner { background: repeating-linear-gradient(135deg, #eff2f5 0 8px, #dde3e9 8px 16px); }
.facade-element-void .facade-cell-inner { background: #d6dbe1; }
.facade-element-cancelled .facade-cell-inner { background: linear-gradient(45deg, transparent 45%, rgba(130,40,40,.35) 46%, transparent 54%), #d8dde3; }
.facade-floor-slab { position: relative; display: flex; align-items: center; justify-content: center; }
.facade-floor-slab span { position: absolute; left: 50%; transform: translateX(-50%); padding: 0 12px; background: #fbfcff; color: #334155; font-size: 12px; font-weight: 800; white-space: nowrap; }
.facade-measure-row, .facade-axis-row { margin-left: 90px; margin-right: 18px; display: grid; gap: 2px; }
.facade-axis-row span { justify-self: center; }
.facade-axis-row .facade-axis-trigger { width: 32px; height: 32px; border-radius: 50%; background: #fff; border: 1px solid var(--fs-border-strong); display: inline-grid; place-items: center; justify-self: center; font-size: 12px; font-weight: 800; margin-top: 7px; text-align: center; }
.facade-measure-row { margin-top: 10px; margin-bottom: 2px; }
.facade-measure-row span { position: relative; text-align: center; color: #334155; font-size: 12px; font-weight: 800; padding-bottom: 9px; }
.facade-measure-row span:after { content: ""; position: absolute; bottom: 0; left: 0; right: 0; border-top: 1px solid #b7c0cc; }
.facade-total-measure { margin: 10px 18px 18px 90px; text-align: center; font-size: 12px; font-weight: 800; color: #334155; position: relative; }
.facade-total-measure:before { content: ""; position: absolute; left: 0; right: 0; top: 8px; border-top: 1px solid #b7c0cc; }
.facade-total-measure span { position: relative; background: #fbfcff; padding: 0 10px; }
.facade-total-measure--top { margin: 0 18px 10px 90px; }
.facade-metrics-strip { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1px; background: var(--fs-border); height: 100%; }
.facade-metric { padding: 14px 16px; background: #fff; display: grid; grid-template-columns: 34px 1fr; gap: 10px; align-items: center; min-height: 68px; }
.facade-metric-icon { width: 30px; height: 30px; border: 1px solid #9aa8b7; display: grid; place-items: center; color: #44546a; background: #f8fafc; }
.facade-metric small { display: block; color: var(--fs-muted); font-weight: 700; }
.facade-metric strong { display: block; font-size: 16px; }
.facade-details-row { display: grid; grid-template-columns: minmax(0, 1fr) 360px; gap: 16px; margin-top: 16px; }
.facade-side { position: static; }
.facade-progress-card .facade-progress-block { padding: 14px 16px 16px; }
.facade-side-head { display: flex; align-items: center; justify-content: space-between; padding: 16px 18px; border-bottom: 1px solid var(--fs-border); font-weight: 900; }
.facade-preview-row { display: grid; grid-template-columns: 96px 1fr; gap: 20px; padding: 22px 18px 14px; }
.facade-preview { width: 84px; height: 144px; border: 6px solid #344454; background: linear-gradient(135deg, #e9f7ff, #9dcaf1); box-shadow: inset 0 0 0 2px rgba(255,255,255,.45); }
.facade-side-kv { display: grid; gap: 14px; font-size: 13px; }
.facade-side-kv div { display: grid; grid-template-columns: 82px 1fr; gap: 8px; }
.facade-side-kv span { font-weight: 800; color: #344155; }
.facade-mini-progress { height: 7px; border-radius: var(--is-cephe-hap-r); background: #e7ebf0; overflow: hidden; align-self: center; }
.facade-mini-progress i { display: block; height: 100%; background: #1f6fd5; border-radius: inherit; }
.facade-mini-progress-wrap { display: grid; grid-template-columns: 1fr auto; gap: 8px; align-items: center; }
.facade-select { width: 100%; min-height: 38px; border: 1px solid var(--fs-border); border-radius: 7px; padding: 8px 10px; background: #fff; color: var(--fs-text); font-size: 13px; }
.facade-modal-light .modal-content { background: #fff; color: #172235; border: 0; box-shadow: var(--fs-shadow); }
.facade-modal-light .modal-header { border-bottom: 1px solid var(--fs-border); }
.facade-modal-light .modal-footer { border-top: 0; }
.facade-cephe-config { display: grid; grid-template-columns: minmax(0, 320px) minmax(0, 1fr); gap: 16px; }
.facade-cephe-config-main { display: grid; gap: 12px; }
.facade-cephe-config-panel { border: 1px solid var(--fs-border); border-radius: 10px; background: #fff; padding: 14px; }
.facade-cephe-config-panel h6 { margin: 0 0 12px; font-size: 13px; font-weight: 800; color: #172235; text-transform: uppercase; }
.facade-measure-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; align-items: start; }
.facade-measure-sheet { border: 1px solid var(--fs-border); border-radius: 10px; background: #fff; overflow: hidden; }
.facade-measure-sheet-head { display: block; padding: 9px 10px; border-bottom: 1px solid var(--fs-border); background: #fbfcff; }
.facade-measure-sheet-head h6 { margin: 0; font-size: 13px; font-weight: 800; color: #172235; text-transform: uppercase; }
.facade-measure-sheet-body { display: grid; }
.facade-measure-row-item { display: grid; grid-template-columns: minmax(0, 1fr) 106px 56px; gap: 8px; align-items: center; padding: 7px 10px; border-bottom: 1px solid #eef2f6; }
.facade-measure-row-item:last-child { border-bottom: 0; }
.facade-measure-row-item strong { font-size: 12px; font-weight: 700; color: #243142; line-height: 1.2; }
.facade-measure-row-item .filter-input { height: 34px; text-align: right; padding: 6px 8px; }
.facade-measure-auto { display: flex; align-items: center; justify-content: center; }
.facade-measure-auto .form-check-input { width: 16px; height: 16px; margin: 0; float: none; cursor: pointer; }
.facade-measure-row-item.is-total { background: #fbfcff; }
.facade-measure-row-item.is-total strong { font-weight: 800; }
.facade-modal-passive { min-height: 100%; display: grid; place-items: center; padding: 24px; border: 1px dashed #d5dce6; border-radius: 10px; background: #fbfcff; text-align: center; color: #4b5b70; }
.facade-modal-passive strong { display: block; margin-bottom: 8px; color: #172235; }
.facade-dropdown { min-width: 260px; border: 1px solid var(--fs-border); box-shadow: var(--fs-shadow); }
.facade-empty { min-height: 420px; display: grid; place-items: center; text-align: center; padding: 40px; }
.facade-hidden-measures .facade-measure-row, .facade-hidden-measures .facade-total-measure, .facade-hidden-measures .facade-height-measure { display: none; }
.facade-no-grid .facade-floor-grid { gap: 0; }
.facade-axis-footer { display: flex; align-items: stretch; gap: 8px; width: 100%; }
.facade-axis-footer .btn { min-height: 42px; border-radius: 10px; }
.facade-axis-footer .btn-icon { width: 42px; min-width: 42px; padding: 0; display: inline-flex; align-items: center; justify-content: center; }
.facade-donati-switches { display: inline-flex; gap: 8px; flex-wrap: wrap; align-items: center; }
.facade-donati-switch-btn { min-height: 40px; padding: 8px 16px; border-radius: var(--is-cephe-hap-r); border: 1px solid var(--fs-border-strong); background: #fff; display: inline-flex; align-items: center; gap: 10px; font-weight: 700; line-height: 1; color: #455468; cursor: pointer; }
.facade-donati-switch-btn svg { width: 16px; height: 16px; stroke-width: 2.1; }
.facade-donati-switch-btn.is-active { background: #145fc7; border-color: #145fc7; color: #fff; }
.facade-donati-canvas-wrap { padding: 16px 0 0; }
.facade-donati-canvas { min-width: 0; width: 100%; }
.facade-donati-canvas .facade-roof, .facade-donati-canvas .facade-floor-slab, .facade-donati-canvas .facade-base { margin-left: 56px; margin-right: 0; }
.facade-donati-canvas .facade-floor-row { grid-template-columns: 56px minmax(0, 1fr); }
.facade-donati-canvas .facade-height-measure { display: flex; font-size: 13px; font-weight: 900; }
.facade-donati-canvas .facade-height-measure span { padding: 0 8px; background: transparent; }
.facade-donati-canvas .facade-floor-label { display: none; }
.facade-donati-canvas .facade-axis-row { margin-left: 56px; margin-right: 0; }
.facade-donati-canvas .facade-floor-slab { position: relative; display: flex; align-items: center; justify-content: center; }
.facade-donati-canvas .facade-floor-slab span { position: absolute; left: 50%; transform: translateX(-50%); padding: 0 12px; background: #fbfcff; color: #334155; font-size: 12px; font-weight: 800; white-space: nowrap; }
.facade-donati-canvas .facade-cell { --cell-base: #cfd6de; }
.facade-donati-canvas .facade-element-glass .facade-cell-inner,
.facade-donati-canvas .facade-element-panel .facade-cell-inner,
.facade-donati-canvas .facade-element-opaque .facade-cell-inner,
.facade-donati-canvas .facade-element-window .facade-cell-inner,
.facade-donati-canvas .facade-element-door .facade-cell-inner { background: #a8c7a8; }
.facade-donati-canvas .facade-cell-icon { color: #fff; }
.facade-donati-hint { font-size: 13px; color: #516172; }
@media (max-width: 1500px) {
    .facade-metrics-strip { grid-template-columns: repeat(3, 1fr); }
}
@media (max-width: 1199px) {
    .facade-details-row { grid-template-columns: 1fr; }
    .facade-inline-head { align-items: stretch; flex-direction: column; }
    .facade-inline-tools { min-width: 0; width: 100%; }
    .facade-metrics-strip { grid-template-columns: repeat(2, 1fr); }
    .facade-cephe-config { grid-template-columns: 1fr; }
    .facade-measure-grid { grid-template-columns: 1fr; }
}
@media (max-width: 767px) {
    .facade-studio { margin-left: -1rem; margin-right: -1rem; }
    .facade-metrics-strip { grid-template-columns: 1fr 1fr; }
    .facade-head, .facade-toolbar { align-items: flex-start; }
    .facade-inline-tools { flex-wrap: wrap; }
    .facade-inline-tools .facade-search { min-width: 100%; }
    .facade-list--inline .facade-card { flex-basis: 220px; }
    .facade-toolbar-statuses { width: 100%; }
    .facade-measure-row-item { grid-template-columns: minmax(0, 1fr) 98px 52px; gap: 6px; padding-left: 8px; padding-right: 8px; }
    .facade-measure-sheet-head { padding-left: 8px; padding-right: 8px; }
}
@media (max-width: 575px) {
    .facade-metrics-strip { grid-template-columns: 1fr; }
}

/* 11.2.1 Cephe kartı ve liste tablosu (onaylı kart + tablo kalıbı) */
.is-cephe-kart { margin-bottom: var(--ig-b-16); }
.is-cephe-tablo thead th {
	height: 40px;
	padding: 0 var(--ig-b-16);
	background-color: var(--ig-zemin);
	border-top: 1px solid var(--ig-cizgi);
	border-bottom: 1px solid var(--ig-cizgi);
	font-size: var(--ig-fs-12);
	font-weight: var(--ig-fw-kalin);
	color: var(--ig-soluk);
	vertical-align: middle;
	white-space: nowrap;
}
.is-cephe-tablo tbody td {
	height: 44px;
	padding: 0 var(--ig-b-16);
	border-top: 1px solid var(--ig-cizgi);
	font-size: var(--ig-fs-13);
	color: var(--ig-metin);
	vertical-align: middle;
}
.is-cephe-tablo .is-cephe-ad { font-weight: var(--ig-fw-kalin); }
.is-cephe-tablo .is-cephe-ad a { color: inherit; text-decoration: none; }
.is-cephe-tablo .is-cephe-ad a:hover { text-decoration: underline; }
.is-cephe-tablo tr.active > td { background-color: var(--ig-yesil-acik); }
.is-cephe-islem-sutun { width: 120px; }

/* 11.2.2 Cephe sağ paneli (480) */
.is-cephe-panel-baglam { margin: 0 0 var(--ig-b-12); font-size: var(--ig-fs-13); color: var(--ig-soluk); }
.is-cephe-panel-govde .facade-cephe-config,
.is-cephe-panel-govde .facade-cephe-config-main { display: block; }
.is-cephe-panel-govde .facade-cephe-config-panel { margin-bottom: var(--ig-b-16); }
.is-cephe-panel-govde .filter-input,
.is-cephe-panel-govde .filter-select { height: 40px; border-radius: 6px; }
.is-cephe-panel-altlik-sil { margin-right: auto; }

/* 11.2.3 Araç düğmesi metinli (Lucide kaldırıldı) */
.facade-icon-btn.is-metin { width: auto; padding: 0 10px; font-size: var(--ig-fs-13); }

/* 11.3 İŞ KANBAN + TAKVİM + ÖZET */
/* ==========================================================================
   views/is/gorevler/kanban.php · views/is/takvim.php
   views/is/ziyaretler/ziyaret_takvim.php · views/is/anasayfa.php
   Onaylı kalıp: modul-varyant-c/ModulC (bant + .ig-bant-govde), TUTARLILIK §1
   (kart başlığı, durum etiketi, boş durum, tipografi). Yalnız --ig-* token'ları;
   isgelir-ui.css 4 (.ig-bant*), 5.4.6 (.fc), 8b (partial'lar), 9 (.is-*), 10.3 üstüne.
   ========================================================================== */

/* --- 11.3.1 Kanban şeridi (yatay kayan sütunlar) -------------------------- */
.is-kanban-serit {
  display: flex;
  gap: var(--ig-b-16);
  align-items: flex-start;
  overflow-x: auto;
  padding-bottom: var(--ig-b-8);
  scrollbar-width: thin;
}
.is-kanban-sutun {
  display: flex;
  flex: 0 0 300px;
  flex-direction: column;
  gap: var(--ig-b-8);
  width: 300px;
}
.is-kanban-sutun-bas {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--ig-b-8);
  height: 28px;
  padding: 0 var(--ig-b-2);
}
.is-kanban-sutun-ad {
  font-size: var(--ig-fs-13);
  font-weight: var(--ig-fw-kalin);
  color: var(--ig-soluk);
}
.is-kanban-sutun-sayac {
  font-size: var(--ig-fs-13);
  font-weight: var(--ig-fw-kalin);
  font-variant-numeric: tabular-nums;
  color: var(--ig-soluk);
}
.is-kanban .is-task-dropzone {
  min-height: 320px;
  padding: var(--ig-b-4);
  background: var(--ig-zemin);
  border: 1px solid var(--ig-cizgi);
  border-radius: var(--ig-r-8);
}
.is-kanban-sutun-ekle {
  justify-content: center;
  width: 100%;
}

/* --- 11.3.2 Kanban kartı (beyaz, 1px çizgi, radius 8) --------------------- */
.is-kanban .is-task-card {
  gap: var(--ig-b-6);
  padding: var(--ig-b-12);
  background: var(--ig-yuzey);
  border: 1px solid var(--ig-cizgi);
  border-radius: var(--ig-r-8);
}
.is-kanban .is-task-card-title {
  font-size: var(--ig-fs-14);
  font-weight: var(--ig-fw-kalin);
  line-height: var(--ig-lh-baslik);
  color: var(--ig-metin);
}
.is-kanban .is-task-card-project,
.is-kanban .is-task-card-facts,
.is-kanban .is-task-card-text {
  font-size: var(--ig-fs-13);
  color: var(--ig-soluk);
}
.is-kanban .is-task-card-fact-danger { color: var(--ig-kirmizi); }
.is-kanban .is-task-card-fact-warning { color: var(--ig-turuncu); }
.is-kanban .is-task-priority-pill {
  display: inline-flex;
  align-items: center;
  height: 22px;
  padding: 0 var(--ig-b-8);
  font-size: var(--ig-fs-12);
  font-weight: var(--ig-fw-orta);
  border: 1px solid var(--ig-cizgi);
  border-radius: var(--ig-r-4);
}
.is-kanban .is-task-assignee-avatar {
  display: inline-flex;
  flex: none;
  align-items: center;
  justify-content: center;
  width: 24px;
  height: 24px;
  font-size: var(--ig-fs-12);
  font-weight: var(--ig-fw-kalin);
  color: var(--ig-metin-2);
  background: var(--ig-gri-zemin);
  border-radius: 50%;
}

/* --- 11.3.3 Onay modalı (400px; TUTARLILIK §1 Onay/eylem modalı) ---------- */
.is-kanban-onay .modal-dialog { max-width: 400px; }
.is-kanban-onay .modal-title {
  font-size: var(--ig-fs-16);
  font-weight: var(--ig-fw-kalin);
}
.is-kanban-onay .modal-footer {
  gap: var(--ig-b-8);
  background: var(--ig-zemin);
}

/* --- 11.3.4 Takvim ekranları --------------------------------------------- */
.is-takvim-filtre { margin-bottom: var(--ig-b-16); }
.is-takvim-lejant,
.is-takvim-tipler,
.is-takvim-araclar {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--ig-b-8);
}
.is-takvim-lejant-oge {
  display: inline-flex;
  align-items: center;
  height: 22px;
  padding: 0 var(--ig-b-8);
  font-size: var(--ig-fs-12);
  font-weight: var(--ig-fw-orta);
  color: var(--ig-metin-2);
  background: var(--ig-gri-zemin);
  border: 1px solid var(--ig-cizgi);
  border-radius: var(--ig-r-4);
}
.is-takvim-lejant-oge::before {
  width: 8px;
  height: 8px;
  margin-right: var(--ig-b-6);
  content: "";
  background: currentcolor;
  border-radius: 50%;
}
.is-takvim-lejant-oge--ziyaret { color: var(--ig-yesil-metin); }
.is-takvim-lejant-oge--gorev { color: var(--ig-mavi); }
.is-takvim-lejant-oge--teklif { color: var(--ig-turuncu); }
.is-takvim-lejant-oge--proje { color: var(--ig-soluk); }
.is-takvim-lejant-oge--asama { color: var(--ig-kirmizi); }
.is-takvim-tip { border-color: var(--is-takvim-renk, var(--ig-cizgi)); }
.is-takvim-tip-nokta {
  display: inline-block;
  width: 8px;
  height: 8px;
  margin-right: var(--ig-b-6);
  background: var(--is-takvim-renk, var(--ig-cizgi-koyu));
  border-radius: 50%;
}
.is-takvim-yaklasan {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: var(--ig-b-8);
  align-items: start;
  padding: var(--ig-b-12) var(--ig-b-20);
  color: var(--ig-metin);
  text-decoration: none;
  border-top: 1px solid var(--ig-cizgi);
}
.is-takvim-yaklasan:hover {
  color: var(--ig-metin);
  background: var(--ig-yesil-hover);
}
.is-takvim-yaklasan-nokta {
  width: 10px;
  height: 10px;
  margin-top: 5px;
  background: var(--is-takvim-renk, var(--ig-cizgi-koyu));
  border-radius: 50%;
}
.is-takvim-yaklasan-govde {
  display: flex;
  flex-direction: column;
  gap: var(--ig-b-2);
  grid-column: 2;
  min-width: 0;
}
.is-takvim-yaklasan-baslik {
  font-size: var(--ig-fs-14);
  font-weight: var(--ig-fw-kalin);
  line-height: var(--ig-lh-baslik);
}
.is-takvim-yaklasan-alt {
  font-size: var(--ig-fs-13);
  color: var(--ig-soluk);
}

/* --- 11.3.5 İş genel özeti — bölüm aralığı artık ortak kural, 4.1b .ig-ozet-bolum
   (view'da sınıf adı değişti: ig-is-ozet-bolum → ig-ozet-bolum). --------------- */
.ig-is-ozet-grafik { min-height: 280px; }

/* 11.4 İŞ PROJELER */
/* ==========================================================================
   views/is/projeler/{proje_listesi, proje_olustur, proje_detay_navbar,
   proje_detay_ozet, proje_detay_ekip, proje_detay_hareketler}.php (2026-09-16).
   Kaynak: TUTARLILIK §1 + liste-c/ListeC, form-sayfa-c/FormC, cari-detay/CariOzet.
   Token (1.) ve ortak bileşenler (3–4, 8) yeniden tanımlanmaz; yalnız bu ekranların yerleşimi.
   ========================================================================== */

/* --- 11.4.1 Gövde ve sekme şeridi ---------------------------------------- */
.is-proje-sekme-govde {
  margin-top: 0;
  padding-bottom: 0;
}
.is-proje-govde {
  margin-top: 0;
  padding-bottom: var(--ig-b-24);
}
.is-proje-kart-govde {
  padding: var(--ig-b-16);
}

/* --- 11.4.2 Liste tablosu (ad 600 + soluk müşteri alt satırı) ------------- */
.is-proje-kart {
  margin-bottom: var(--ig-b-24);
  overflow: hidden;
}
.is-proje-ad {
  display: block;
  font-size: var(--ig-fs-14);
  font-weight: var(--ig-fw-kalin);
  color: var(--ig-metin);
  text-decoration: none;
}
.is-proje-ad:hover {
  color: var(--ig-yesil-metin);
  text-decoration: none;
}
.is-proje-ad:focus-visible {
  color: var(--ig-yesil-metin);
  outline: 2px solid var(--ig-koyu);
  outline-offset: 2px;
}
.is-proje-alt {
  display: block;
  margin-top: var(--ig-b-2);
  font-size: var(--ig-fs-12);
  color: var(--ig-soluk);
}

/* --- 11.4.3 İlerleme (oran metni + ince şerit; genişlik JS ile data-oran) - */
.is-proje-ilerleme {
  display: flex;
  align-items: center;
  gap: var(--ig-b-8);
  min-width: 120px;
}
.is-proje-oran {
  font-size: var(--ig-fs-13);
  font-variant-numeric: tabular-nums;
  color: var(--ig-metin);
}
.is-proje-serit {
  flex: 1 1 auto;
  height: 4px;
  overflow: hidden;
  background: var(--ig-gri-zemin);
  border-radius: var(--ig-r-3);
}
.is-proje-serit-dolu {
  width: 0;
  height: 100%;
  background: var(--ig-birincil);
  border-radius: var(--ig-r-3);
}
.is-proje-serit-dolu.is-tamam {
  background: var(--ig-yesil-metin);
}
.is-proje-serit-dolu.is-geciken {
  background: var(--ig-sari-metin);
}

/* --- 11.4.4 Özet: ana sütun + yan sütun (CariOzet dili) ------------------- */
.is-proje-ozet {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 340px;
  gap: var(--ig-b-16);
  align-items: start;
}
.is-proje-sutun {
  display: flex;
  flex-direction: column;
  gap: var(--ig-b-16);
  min-width: 0;
}
.is-proje-izgara {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--ig-b-16);
}
.is-proje-izgara > div {
  min-width: 0;
}
.is-proje-aciklama {
  margin: 0;
  font-size: var(--ig-fs-14);
  line-height: var(--ig-lh-govde);
  color: var(--ig-metin-2);
}
@media (max-width: 1199.98px) {
  .is-proje-ozet { grid-template-columns: minmax(0, 1fr); }
  .is-proje-izgara { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 767.98px) {
  .is-proje-izgara { grid-template-columns: minmax(0, 1fr); }
}

/* --- 11.4.5 Hareketler: zaman çizgisi (ikon yok) -------------------------- */
.is-proje-zaman {
  margin: 0;
  padding: 0;
  list-style: none;
}
.is-proje-zaman-oge {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: var(--ig-b-16);
  padding: var(--ig-b-12) var(--ig-b-16);
  border-top: 1px solid var(--ig-cizgi);
}
.is-proje-zaman-oge:first-child {
  border-top: 0;
}
.is-proje-zaman-metin {
  min-width: 0;
  font-size: var(--ig-fs-14);
  line-height: var(--ig-lh-govde);
  color: var(--ig-metin);
}
.is-proje-zaman-islem {
  font-weight: var(--ig-fw-kalin);
}
.is-proje-zaman-aciklama,
.is-proje-zaman-yol {
  color: var(--ig-soluk);
}
.is-proje-zaman-islem + .is-proje-zaman-aciklama::before,
.is-proje-zaman-aciklama + .is-proje-zaman-yol::before {
  content: "·";
  margin: 0 var(--ig-b-6);
  color: var(--ig-girdi);
}
.is-proje-zaman-tarih {
  display: flex;
  flex: none;
  gap: var(--ig-b-8);
  font-size: var(--ig-fs-12);
  font-variant-numeric: tabular-nums;
  color: var(--ig-soluk);
  text-align: right;
}

/* --- 11.4.6 Form sayfası (FormC): kartlar + yapışkan altlık --------------- */
.is-proje-form-izgara .form-label {
  margin-bottom: var(--ig-b-6);
  font-size: var(--ig-fs-14);
  font-weight: var(--ig-fw-kalin);
  color: var(--ig-metin);
}
.is-proje-istege-bagli {
  margin-left: var(--ig-b-4);
  font-size: var(--ig-fs-12);
  font-weight: var(--ig-fw-normal);
  color: var(--ig-soluk);
}
.is-proje-form-izgara .form-control,
.is-proje-form-izgara .form-select {
  height: var(--ig-girdi-h);
}
.is-proje-form-izgara textarea.form-control {
  height: auto;
}
.is-proje-tutar {
  font-variant-numeric: tabular-nums;
  text-align: right;
}
.is-proje-altlik {
  position: sticky;
  bottom: 0;
  z-index: 3;
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: var(--ig-b-8);
  padding: var(--ig-b-12) var(--ig-b-16);
  background: var(--ig-yuzey);
  border-top: 1px solid var(--ig-cizgi);
}
.is-proje-altlik-ipucu {
  margin-right: auto;
  font-size: var(--ig-fs-13);
  color: var(--ig-soluk);
}

/* --- 11.4.7 Ekip: baş harf rozeti ve havuz ------------------------------- */
.is-proje-bas-harf {
  display: inline-flex;
  flex: none;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  font-size: var(--ig-fs-13);
  font-weight: var(--ig-fw-kalin);
  color: var(--ig-yesil-metin);
  background: var(--ig-yesil-acik);
  border-radius: var(--ig-r-6);
}
.is-proje-uye {
  display: flex;
  align-items: center;
  gap: var(--ig-b-12);
  min-width: 0;
}
.is-proje-uye-ad {
  font-size: var(--ig-fs-14);
  font-weight: var(--ig-fw-kalin);
  color: var(--ig-metin);
}
.is-proje-uye-alt {
  font-size: var(--ig-fs-12);
  color: var(--ig-soluk);
}

/* 11.5 İŞ PROJE SEKMELERİ */
/* ==========================================================================
   views/is/projeler/proje_detay_{satin_almalar,sozlesmeler,giderler,tahsilatlar,
   belgeler,ek_talepler}.php (2026-09-16).
   Onaylı kalıp: cari-detay/CariHareket (kart + tablo + toplam satırı) ve
   urun-detay-v2/UrunV2Recete (kart başlığı + satır işlemleri + sağ panel).
   Yalnız --ig-* token'ları. Yeniden TANIMLANMAYANLAR (mevcut isgelir-ui.css):
   3.4 tablo (başlık 40, satır 44), 4.6 .ig-islemler/.ig-islem, 4.9 .ig-durum,
   4.11 .ig-kart-baslik, 4.12 .ig-bos, 4.14 .ig-panel-*, 4.x .ig-tutar,
   8b partial'lar, 9 .is-* + .belge-dropzone/.dragover, 10.2 cari detay.
   ========================================================================== */

/* --- 11.5.1 Gövde ve kart (sekme şeridi navbar'da; içerik tek kart) -------- */
.ig-bant-govde.is-proje-sekme-govde {
  margin-top: 0;
  padding-bottom: var(--ig-b-24);
}
.is-proje-sekme-kart {
  overflow: hidden;
  margin-bottom: var(--ig-b-16);
}
.is-proje-sekme-kart:last-child {
  margin-bottom: 0;
}
.is-proje-sekme-kart > .ig-kart-baslik {
  align-items: center;
}

/* --- 11.5.2 Tablo hücre içeriği (ad 600 + ikincil satır soluk) ------------- */
.is-proje-sekme-ad {
  display: block;
  font-weight: var(--ig-fw-kalin);
  color: var(--ig-metin);
}
.is-proje-sekme-alt {
  display: block;
  font-size: var(--ig-fs-12);
  color: var(--ig-soluk);
}
.is-proje-sekme-bos {
  color: var(--ig-girdi);
}
.is-proje-sekme-islem-sutun {
  width: 112px;
}

/* --- 11.5.3 Toplam satırı (§1: ZEMIN zemin, 600) --------------------------- */
.is-proje-sekme-toplam > td {
  font-weight: var(--ig-fw-kalin);
  color: var(--ig-metin);
  background-color: var(--ig-zemin);
}

/* --- 11.5.4 Grup başlığı (satın alma taslağı: belge + durum + eylem) ------- */
.is-proje-sekme-grup {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: var(--ig-b-8) var(--ig-b-12);
  padding: var(--ig-b-12) var(--ig-b-20);
  border-top: 1px solid var(--ig-cizgi);
}
.is-proje-sekme-grup-sol {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--ig-b-8);
  min-width: 0;
}
.is-proje-sekme-grup-baslik {
  font-size: var(--ig-fs-14);
  font-weight: var(--ig-fw-kalin);
  color: var(--ig-metin);
}
.is-proje-sekme-grup-alt {
  flex-basis: 100%;
  font-size: var(--ig-fs-13);
  color: var(--ig-soluk);
}
.is-proje-sekme-grup-sag {
  display: flex;
  align-items: center;
  gap: var(--ig-b-8);
}

/* --- 11.5.5 Sağ panelde yükleme alanı (9 .belge-dropzone üstüne) ----------- */
.is-proje-sekme-dropzone-baslik {
  display: block;
  font-size: var(--ig-fs-13);
  font-weight: var(--ig-fw-kalin);
  color: var(--ig-metin);
}
.is-proje-sekme-dropzone-tur {
  display: block;
  margin-top: var(--ig-b-4);
  font-size: var(--ig-fs-12);
  color: var(--ig-soluk);
}
.is-proje-sekme-dosya-adi {
  min-width: 0;
  overflow: hidden;
  font-size: var(--ig-fs-13);
  color: var(--ig-metin);
  text-overflow: ellipsis;
  white-space: nowrap;
}
.is-proje-sekme-ipucu {
  margin: var(--ig-b-8) 0 0;
  font-size: var(--ig-fs-12);
  color: var(--ig-soluk);
}

/* --- 11.5.6 Sağ panelde tutar alanı (§1: 48px, 20px, sağa hizalı, ₺ sonek) - */
.is-proje-sekme-tutar-alan {
  position: relative;
  display: block;
}
.is-proje-sekme-tutar {
  width: 100%;
  height: 48px;
  padding-right: 40px;
  font-size: var(--ig-fs-20);
  font-variant-numeric: tabular-nums;
  text-align: right;
}
.is-proje-sekme-tutar-sonek {
  position: absolute;
  top: 50%;
  right: var(--ig-b-12);
  font-size: var(--ig-fs-14);
  color: var(--ig-soluk);
  transform: translateY(-50%);
  pointer-events: none;
}

/* 11.6 İŞ TEKLİFLER */
/* Kaynak: is/teklifler/* view'ları. Onaylı kalıplar: liste-c (liste), form-sayfa-c (oluştur),
   cari-detay (detay sekmeleri). Token'lar 1. bölümden; yalnız bu ekranlara özgü sapmalar burada.
   Belge (.teklif-belge*) ve önizleme kağıdı 9b'de tanımlı, tekrarlanmaz. */

/* --- 11.6.1 Liste: segment satırı (durum kısayolları, hap dili) --------------------- */
.is-teklif-kart { overflow: hidden; }
.is-teklif-segment-satiri {
  display: flex;
  flex-wrap: wrap;
  gap: var(--ig-b-8);
  align-items: center;
  padding: var(--ig-b-12) var(--ig-b-16);
  border-bottom: 1px solid var(--ig-cizgi);
}
.is-teklif-segment {
  display: inline-flex;
  gap: var(--ig-b-6);
  align-items: center;
  height: 32px;
  padding: 0 var(--ig-b-12);
  font-size: var(--ig-fs-13);
  font-weight: var(--ig-fw-orta);
  color: var(--ig-metin-2);
  text-decoration: none;
  background: var(--ig-yuzey);
  border: 1px solid var(--ig-cizgi);
  border-radius: var(--ig-r-6);
}
.is-teklif-segment:hover { color: var(--ig-metin); background: var(--ig-zemin); }
.is-teklif-segment.is-secili {
  color: var(--ig-yesil-metin);
  background: var(--ig-yesil-acik);
  border-color: var(--ig-yesil-cizgi);
}
.is-teklif-segment-sayi {
  font-variant-numeric: tabular-nums;
  font-weight: var(--ig-fw-kalin);
  color: var(--ig-soluk);
}
.is-teklif-segment.is-secili .is-teklif-segment-sayi { color: var(--ig-yesil-metin); }

/* --- 11.6.2 Liste tablosu (4.7 tablo dili; ad sütunu + meta satırı) ---------------- */
.is-teklif-tablo .is-teklif-ad {
  font-weight: var(--ig-fw-kalin);
  color: var(--ig-metin);
  text-decoration: none;
}
.is-teklif-tablo .is-teklif-ad:hover { color: var(--ig-yesil-metin); text-decoration: underline; }
.is-teklif-meta {
  margin-top: var(--ig-b-2);
  font-size: var(--ig-fs-12);
  color: var(--ig-soluk);
}
.is-teklif-soluk { color: var(--ig-soluk); }

/* --- 11.6.3 Detay sekmeleri: kart yığını ve alan ızgarası (cari-detay kalıbı) ------ */
.is-teklif-sekme-govde { padding-bottom: 0; }
.is-teklif-yigin {
  display: flex;
  flex-direction: column;
  gap: var(--ig-b-16);
  padding: var(--ig-b-16) var(--ig-b-24) var(--ig-b-24);
}
.is-teklif-sekme-kart { overflow: hidden; }
.is-teklif-alanlar { padding: var(--ig-b-16); }
.is-teklif-etiket {
  margin-bottom: var(--ig-b-6);
  font-size: var(--ig-fs-14);
  font-weight: var(--ig-fw-kalin);
  color: var(--ig-metin);
}
.is-teklif-girdi { min-height: 40px; border-radius: var(--ig-r-6); }
textarea.is-teklif-girdi { min-height: 96px; }
.is-teklif-ipucu {
  margin-top: var(--ig-b-4);
  font-size: var(--ig-fs-12);
  color: var(--ig-soluk);
}

/* --- 11.6.4 Cari arama açılır listesi (bilgiler sekmesi) -------------------------- */
.is-teklif-arama { position: relative; }
.is-teklif-arama .autocomplete-dropdown {
  position: absolute;
  z-index: 5;
  top: calc(100% + 4px);
  right: 0;
  left: 0;
  max-height: 260px;
  overflow-y: auto;
  background: var(--ig-yuzey);
  border: 1px solid var(--ig-cizgi);
  border-radius: var(--ig-r-6);
  box-shadow: var(--ig-golge-kart);
}
.is-teklif-arama .cari-sonuc-item {
  padding: var(--ig-b-8) var(--ig-b-12);
  font-size: var(--ig-fs-13);
  cursor: pointer;
  border-bottom: 1px solid var(--ig-cizgi);
}
.is-teklif-arama .cari-sonuc-item:last-child { border-bottom: 0; }
.is-teklif-arama .cari-sonuc-item:hover { background: var(--ig-yesil-secili); }

/* --- 11.6.5 Kalem tablosu: sıra sütunu, tutamak ve toplam bloğu ------------------- */
.is-teklif-sira-sutun { width: 84px; }
.is-teklif-sira {
  display: inline-flex;
  gap: var(--ig-b-6);
  align-items: center;
}
.is-teklif-sira .sort-handle { color: var(--ig-girdi); cursor: grab; }
.is-teklif-sira .row-number {
  font-variant-numeric: tabular-nums;
  font-weight: var(--ig-fw-kalin);
}
.is-teklif-kalem-tablo .is-teklif-ad { font-weight: var(--ig-fw-kalin); }
.is-teklif-toplam td {
  padding: var(--ig-b-8) var(--ig-b-16);
  font-size: var(--ig-fs-13);
  font-weight: var(--ig-fw-kalin);
  color: var(--ig-metin);
  background: var(--ig-zemin);
  border-top: 1px solid var(--ig-cizgi);
}
.is-teklif-toplam .is-teklif-genel-toplam td { border-top: 1px solid var(--ig-cizgi-koyu); }

/* --- 11.6.6 Kalem ekleme paneli ve ürün seçme listesi ---------------------------- */
.is-teklif-panel-baslik {
  display: flex;
  gap: var(--ig-b-8);
  align-items: baseline;
  justify-content: space-between;
}
.is-teklif-urun-listesi {
  max-height: 400px;
  margin-top: var(--ig-b-12);
  overflow-y: auto;
  border: 1px solid var(--ig-cizgi);
  border-radius: var(--ig-r-6);
}
.is-teklif-urun-listesi .urun-item {
  padding: var(--ig-b-8) var(--ig-b-12);
  cursor: pointer;
  border-bottom: 1px solid var(--ig-cizgi);
}
.is-teklif-urun-listesi .urun-item:last-child { border-bottom: 0; }
.is-teklif-urun-listesi .urun-item:hover { background: var(--ig-yesil-secili); }
.is-teklif-urun-bos {
  padding: var(--ig-b-16);
  font-size: var(--ig-fs-13);
  color: var(--ig-soluk);
  text-align: center;
}

/* --- 11.6.7 Hareket listesi (kronolojik kayıtlar) -------------------------------- */
.is-teklif-hareket-liste {
  margin: 0;
  padding: 0;
  list-style: none;
}
.is-teklif-hareket {
  padding: var(--ig-b-12) var(--ig-b-16);
  border-bottom: 1px solid var(--ig-cizgi);
}
.is-teklif-hareket:last-child { border-bottom: 0; }
.is-teklif-hareket-metin {
  font-size: var(--ig-fs-14);
  color: var(--ig-metin);
}
.is-teklif-hareket-meta {
  margin-top: var(--ig-b-4);
  font-size: var(--ig-fs-12);
  color: var(--ig-soluk);
}
.is-teklif-hareket-ayrac { padding: 0 var(--ig-b-6); }

/* --- 11.6.8 Oluştur sayfası: yapışkan altlık (form-sayfa-c) ---------------------- */
.is-teklif-altlik {
  position: sticky;
  z-index: 3;
  bottom: 0;
  display: flex;
  gap: var(--ig-b-12);
  align-items: center;
  justify-content: space-between;
  padding: var(--ig-b-12) var(--ig-b-24);
  background: var(--ig-yuzey);
  border-top: 1px solid var(--ig-cizgi);
}
.is-teklif-altlik-ipucu {
  font-size: var(--ig-fs-13);
  color: var(--ig-soluk);
}
.is-teklif-ozet-satir {
  display: flex;
  gap: var(--ig-b-12);
  align-items: baseline;
  justify-content: space-between;
  padding: var(--ig-b-8) 0;
  font-size: var(--ig-fs-13);
  border-bottom: 1px solid var(--ig-cizgi);
}
.is-teklif-ozet-satir:last-child { border-bottom: 0; }
.is-teklif-ozet-satir.is-genel {
  font-size: var(--ig-fs-14);
  font-weight: var(--ig-fw-kalin);
  border-top: 1px solid var(--ig-cizgi-koyu);
}
.is-teklif-ozet-deger { font-variant-numeric: tabular-nums; }

@media (max-width: 767.98px) {
  .is-teklif-yigin { padding: var(--ig-b-12); }
  .is-teklif-altlik { flex-direction: column; align-items: stretch; }
}

/* --- 11.6.9 Belge: firma satırı (eski satır içi font-size yerine) ---------------- */
.teklif-belge-firma {
  font-size: var(--ig-fs-14);
  font-weight: var(--ig-fw-kalin);
  color: var(--ig-metin);
}

/* --- 11.6.10 Odak halkası (klavye); 1.x odak dili ------------------------------- */
.is-teklif-segment:focus-visible,
.is-teklif-urun-listesi .urun-item:focus-visible,
.is-teklif-arama .cari-sonuc-item:focus-visible {
  outline: 2px solid var(--ig-koyu);
  outline-offset: 2px;
}

/* 11.7 İŞ ZİYARETLER */
/* Kaynak: is/ziyaretler/* view'ları. Onaylı kalıplar: liste-c (liste), form-sayfa-c (oluştur),
   cari-detay (detay sekmeleri). Token'lar 1. bölümden; yalnız bu ekranlara özgü sapmalar burada.
   Tablo (4.7), hap çubuğu (4.5), satır işlemleri (4.6), boş durum (4.12) ve sağ panel (4.14)
   ortak dilden gelir, tekrarlanmaz. Tip rengi veriden gelir: markup'ta style yok,
   JS --is-ziyaret-renk değişkenini basar. */

/* --- 11.7.1 Liste: kart, tablo hücreleri --------------------------------------- */
.is-ziyaret-kart { overflow: hidden; }
.is-ziyaret-tablo .is-ziyaret-ad {
  font-weight: var(--ig-fw-kalin);
  color: var(--ig-metin);
  text-decoration: none;
}
.is-ziyaret-tablo .is-ziyaret-ad:hover { color: var(--ig-yesil-metin); text-decoration: underline; }
.is-ziyaret-meta {
  margin-top: var(--ig-b-2);
  font-size: var(--ig-fs-12);
  color: var(--ig-soluk);
}
.is-ziyaret-soluk { color: var(--ig-soluk); }

/* Tip etiketi: 22px durum etiketi dili; renk veriden (--is-ziyaret-renk). */
.is-ziyaret-tip {
  color: var(--is-ziyaret-renk, var(--ig-metin-2));
  background-color: var(--ig-gri-zemin);
  border-color: var(--is-ziyaret-renk, var(--ig-cizgi));
}

/* --- 11.7.2 Detay: sekme gövdesi ve içerik boşluğu (cari-detay kalıbı) ---------- */
.ig-bant-govde.is-ziyaret-sekme-govde { padding-bottom: 0; }
.is-ziyaret-sekme-icerik {
  display: flex;
  flex-direction: column;
  gap: var(--ig-b-16);
  padding: var(--ig-b-16) var(--ig-bant-x) var(--ig-b-24);
}
@media (max-width: 1199.98px) {
  .is-ziyaret-sekme-icerik { padding-right: var(--ig-b-24); padding-left: var(--ig-b-24); }
}
@media (max-width: 767.98px) {
  .is-ziyaret-sekme-icerik { padding-right: var(--ig-b-16); padding-left: var(--ig-b-16); }
}

/* --- 11.7.3 Özet: 3'lü ızgara + yan kart (CariOzet) ----------------------------- */
.is-ziyaret-ozet {
  display: grid;
  grid-template-columns: minmax(0, 8fr) minmax(0, 4fr);
  gap: var(--ig-b-16);
  align-items: start;
}
.is-ziyaret-sutun {
  display: flex;
  flex-direction: column;
  gap: var(--ig-b-16);
  min-width: 0;
}
.is-ziyaret-kart-govde { padding: var(--ig-b-16); }
@media (max-width: 1199.98px) {
  .is-ziyaret-ozet { grid-template-columns: minmax(0, 1fr); }
}

/* --- 11.7.4 Zaman çizgisi (Hareketler; satır başı ikon dizisi yok) -------------- */
.is-ziyaret-zaman {
  margin: 0;
  padding: var(--ig-b-16);
  list-style: none;
}
.is-ziyaret-zaman-oge {
  position: relative;
  padding: 0 0 var(--ig-b-16) var(--ig-b-20);
  border-left: 1px solid var(--ig-cizgi);
}
.is-ziyaret-zaman-oge:last-child { padding-bottom: 0; border-left-color: transparent; }
.is-ziyaret-zaman-nokta {
  position: absolute;
  top: var(--ig-b-6);
  left: -4px;
  width: var(--ig-b-8);
  height: var(--ig-b-8);
  background-color: var(--ig-girdi);
  border-radius: 50%;
}
.is-ziyaret-zaman-oge:first-child .is-ziyaret-zaman-nokta { background-color: var(--ig-birincil); }
.is-ziyaret-zaman-govde { min-width: 0; }
.is-ziyaret-zaman-baslik {
  font-size: var(--ig-fs-14);
  font-weight: var(--ig-fw-kalin);
  color: var(--ig-metin);
}
.is-ziyaret-zaman-durum {
  display: flex;
  gap: var(--ig-b-6);
  align-items: center;
  margin-top: var(--ig-b-6);
}
.is-ziyaret-zaman-ok { color: var(--ig-soluk); }
.is-ziyaret-zaman-alt {
  margin-top: var(--ig-b-4);
  font-size: var(--ig-fs-13);
  color: var(--ig-soluk);
}
.is-ziyaret-zaman-ayrac { margin: 0 var(--ig-b-4); }

/* --- 11.7.5 Tablo: ad hücresi bağlantısız olduğunda (numune kalemi) ------------- */
.is-ziyaret-tablo .is-ziyaret-ad-metin {
  font-weight: var(--ig-fw-kalin);
  color: var(--ig-metin);
}

/* --- 11.7.6 Panel: ürün seçici girdi ve ürün listesi ---------------------------- */
.is-ziyaret-secici { cursor: pointer; }
.is-ziyaret-urun-listesi {
  max-height: 400px;
  overflow-y: auto;
  border: 1px solid var(--ig-cizgi);
  border-radius: var(--ig-r-6);
}
.is-ziyaret-urun-oge {
  display: block;
  width: 100%;
  padding: var(--ig-b-8) var(--ig-b-12);
  font-size: var(--ig-fs-13);
  text-align: left;
  background: var(--ig-yuzey);
  border: 0;
  border-bottom: 1px solid var(--ig-cizgi);
}
.is-ziyaret-urun-oge:last-child { border-bottom: 0; }
.is-ziyaret-urun-oge:hover { background: var(--ig-yesil-hover); }
.is-ziyaret-urun-oge:focus-visible { outline: 2px solid var(--ig-koyu); outline-offset: -2px; }
.is-ziyaret-urun-ad {
  display: block;
  font-weight: var(--ig-fw-kalin);
  color: var(--ig-metin);
}
.is-ziyaret-urun-alt {
  display: block;
  margin-top: var(--ig-b-2);
  font-size: var(--ig-fs-12);
  color: var(--ig-soluk);
}
.is-ziyaret-urun-bos {
  padding: var(--ig-b-16);
  font-size: var(--ig-fs-13);
  color: var(--ig-soluk);
  text-align: center;
}

/* --- 11.7.7 Panel: belge yükleme alanı (9.10 .belge-dropzone üstüne) ------------ */
.is-ziyaret-dosya-sec,
.is-ziyaret-dosya-kaldir {
  padding: 0;
  font-size: var(--ig-fs-13);
  font-weight: var(--ig-fw-orta);
  color: var(--ig-yesil-metin);
  text-decoration: underline;
  background: none;
  border: 0;
}
.is-ziyaret-dosya-kaldir { color: var(--ig-kirmizi); }
.is-ziyaret-dosya-ad {
  font-size: var(--ig-fs-13);
  font-weight: var(--ig-fw-orta);
  color: var(--ig-metin);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.belge-dropzone-file { display: flex; gap: var(--ig-b-8); align-items: center; justify-content: space-between; }

/* --- 11.7.8 Oluştur: form kartları ve yapışkan altlık (form-sayfa-c) ------------ */
.ig-bant-govde.is-ziyaret-form {
  display: flex;
  flex-direction: column;
  gap: var(--ig-b-16);
  padding-bottom: var(--ig-b-24);
}
.is-ziyaret-altlik {
  position: sticky;
  bottom: 0;
  z-index: 3;
  display: flex;
  gap: var(--ig-b-8);
  align-items: center;
  justify-content: flex-end;
  padding: var(--ig-b-12) var(--ig-bant-x);
  background: var(--ig-yuzey);
  border-top: 1px solid var(--ig-cizgi);
}
.is-ziyaret-altlik-ipucu { margin-right: auto; font-size: var(--ig-fs-13); color: var(--ig-soluk); }
.is-ziyaret-altlik .btn { height: var(--ig-dugme-altlik-h); }
@media (max-width: 1199.98px) {
  .is-ziyaret-altlik { padding-right: var(--ig-b-24); padding-left: var(--ig-b-24); }
}

/* --- 11.7.9 Oluştur: özet metrikleri (kutusuz; süs ikon yok, kapı 67) ----------- */
.is-ziyaret-metrikler {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: var(--ig-b-16);
}
.is-ziyaret-metrik {
  display: flex;
  flex-direction: column;
  gap: var(--ig-b-2);
  min-width: 0;
  padding-left: var(--ig-b-12);
  border-left: 1px solid var(--ig-cizgi);
}
.is-ziyaret-metrik-etiket {
  font-size: var(--ig-fs-12);
  color: var(--ig-soluk);
}
.is-ziyaret-metrik-deger {
  overflow: hidden;
  font-size: var(--ig-fs-20);
  font-weight: var(--ig-fw-kalin);
  line-height: var(--ig-lh-baslik);
  color: var(--ig-metin);
  text-overflow: ellipsis;
  white-space: nowrap;
}
.is-ziyaret-metrik-not {
  font-size: var(--ig-fs-13);
  color: var(--ig-soluk);
}
.is-ziyaret-hazirlik {
  display: flex;
  gap: var(--ig-b-8);
  align-items: center;
  margin-top: var(--ig-b-16);
  padding-top: var(--ig-b-12);
  border-top: 1px solid var(--ig-cizgi);
}
.is-ziyaret-ilerleme {
  flex: 1;
  height: var(--ig-b-6);
  background: var(--ig-gri-zemin);
  border-radius: var(--ig-r-4);
}
@media (max-width: 991.98px) {
  .is-ziyaret-metrikler { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 575.98px) {
  .is-ziyaret-metrikler { grid-template-columns: minmax(0, 1fr); }
  .is-ziyaret-hazirlik { flex-wrap: wrap; }
}

/* 11.8 İŞ AYARLAR */
/* is/{ayarlar, ayarlar_kategoriler, ayarlar_belge_kategorileri, ayarlar_ziyaret_tipleri,
   ayarlar_personel_kademeleri, ayarlar_asamalar, ayarlar_teklif_yazdir}.php
   liste-c/ListeC · form-sayfa-c/FormC · kabuk-katman/KabukModul.
   Bant, araç çubuğu, satır işlemleri, panel, boş durum ve kart başlığı ortak sınıflardan (3–4, 8) gelir;
   ayar girişi, liste kartı, form kartı ve altlık 10.15'teki .muh-ayar-* sınıflarıyla ortaktır.
   Burada yalnız İş'e özgü ek parçalar tanımlıdır. */

/* Tablo içi metin bağlantısı (aşama sayısı) */
.is-ayar-baglanti {
  color: var(--ig-yesil-metin);
  font-weight: var(--ig-fw-kalin);
  text-decoration: none;
}
.is-ayar-baglanti:hover,
.is-ayar-baglanti:focus-visible {
  color: var(--ig-yesil-metin);
  text-decoration: underline;
}

/* Renk noktası: Bootstrap bg-* değeri metinle birlikte gösterilir (satır içi style yok) */
.is-ayar-renk {
  display: inline-flex;
  align-items: center;
  gap: var(--ig-b-8);
}
.is-ayar-renk-nokta {
  flex: none;
  width: 14px;
  height: 14px;
  border: 1px solid var(--ig-cizgi);
  border-radius: var(--ig-r-4);
  background-color: var(--ig-soluk);
}
.is-ayar-renk-nokta--bg-secondary { background-color: #6C757D; }
.is-ayar-renk-nokta--bg-info      { background-color: #0DCAF0; }
.is-ayar-renk-nokta--bg-warning   { background-color: #FFC107; }
.is-ayar-renk-nokta--bg-primary   { background-color: #0D6EFD; }
.is-ayar-renk-nokta--bg-danger    { background-color: #DC3545; }
.is-ayar-renk-nokta--bg-success   { background-color: #198754; }
.is-ayar-renk-nokta--bg-dark      { background-color: #212529; }

/* Aşama ağacı gövdesi · satır, tutamaç ve girinti sınıfları İş projeler paketiyle ortaktır
   (.asama-item / .asama-children / .drag-handle / .is-asama-satir / .is-asama-ad / .is-asama-tutamac). */
.is-ayar-agac {
  padding: var(--ig-b-16);
}
.is-ayar-agac .asama-children:empty {
  display: none;
}
.is-ayar-agac .is-asama-satir {
  background-color: var(--ig-yuzey);
  border: 1px solid var(--ig-cizgi);
  border-radius: var(--ig-r-6);
}
.is-ayar-agac .is-asama-satir--alt {
  background-color: var(--ig-zemin);
}
.is-ayar-oran {
  flex: none;
  width: 108px;
}
.is-ayar-oran .filter-input {
  height: 32px;
  text-align: right;
}
.is-ayar-oran .input-group-text {
  height: 32px;
  font-size: var(--ig-fs-13);
  color: var(--ig-soluk);
}
.is-ayar-agac .sortable-ghost {
  opacity: .5;
}
.is-ayar-not {
  min-width: 0;
  overflow: hidden;
  font-size: var(--ig-fs-13);
  color: var(--ig-soluk);
  text-overflow: ellipsis;
  white-space: nowrap;
}

/* Bölüm sıralama listesi (teklif yazdırma) */
.is-ayar-sirala .list-group-item {
  display: flex;
  align-items: center;
  gap: var(--ig-b-8);
  min-height: 40px;
  font-size: var(--ig-fs-13);
  border-color: var(--ig-cizgi);
  cursor: grab;
}
.is-ayar-degisken td {
  font-size: var(--ig-fs-13);
  color: var(--ig-soluk);
}

/* 12.1 İK PERSONEL */
/* ==========================================================================
   views/ik/personel_listesi.php (liste-c) · personel_detayi_navbar.php (CariOzet bandı)
   personel_detayi_{genel,kisisel,adres,ekranyetkisi}.php (form-sayfa-c kartları).
   Bant, sekme şeridi, hap filtre, seçim çubuğu, tablo, durum etiketi, satır işlemi, boş durum,
   sayfalama, sağ panel ve onay modalı 3-4. ve 8. bölümden gelir; burada yalnız bu ekranlara
   özgü hücre, form ve yetki kutusu yerleşimi var. Yalnız --ig-* token'ları kullanılır.
   ========================================================================== */

/* --- 12.1.1 Liste kartı (liste-c: tablo başlığı 40, satır 44) -------------- */
.ik-personel-kart {
  overflow: hidden;
  margin-bottom: var(--ig-b-24);
}
.ik-personel-kart .table > :not(caption) > * > .ig-sec-hucre {
  width: 36px;
  padding-right: 0;
}
.ik-personel-kart .ig-sec-hucre .form-check-input {
  display: block;
}
.ik-personel-kart .table > tbody > tr > td {
  padding-top: 6px;
  padding-bottom: 6px;
}

/* Personel hücresi: 32px baş harf + ad (600) + soluk pozisyon satırı */
.ik-personel-kimlik {
  display: flex;
  align-items: center;
  gap: var(--ig-b-8);
}
.ik-personel-avatar {
  display: flex;
  flex: none;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  font-size: var(--ig-fs-12);
  font-weight: var(--ig-fw-kalin);
  line-height: 1;
  color: var(--ig-yesil-metin);
  background-color: var(--ig-yesil-acik);
  border-radius: 50%;
}
.ik-personel-kimlik-metin {
  display: flex;
  flex-direction: column;
  min-width: 0;
}
.ik-personel-ad {
  font-weight: var(--ig-fw-kalin);
  color: var(--ig-metin);
  text-decoration: none;
}
.ik-personel-ad:hover {
  color: var(--ig-yesil-metin);
  text-decoration: underline;
  text-underline-offset: 3px;
}
.ik-personel-ad:focus-visible {
  outline: 0;
  border-radius: var(--ig-r-4);
  box-shadow: var(--ig-odak);
}
.ik-personel-meta {
  overflow: hidden;
  font-size: var(--ig-fs-12);
  color: var(--ig-soluk);
  white-space: nowrap;
  text-overflow: ellipsis;
}
.ik-personel-soluk {
  color: var(--ig-soluk);
}

/* --- 12.1.2 Detay gövdesi: sekme şeridi navbar'da, kartlar altında --------- */
.ig-bant-govde.ik-personel-govde {
  margin-top: 0;
  padding-bottom: var(--ig-b-24);
}
.ik-personel-yigin {
  display: flex;
  flex-direction: column;
  gap: var(--ig-b-16);
}

/* --- 12.1.3 Form kartı (FormC: alan padding 0 20 20, etiket 14/600, girdi 40) */
.ik-personel-form-kart {
  overflow: hidden;
  margin-bottom: 0;
}
.ik-personel-alanlar {
  padding: 0 var(--ig-b-20) var(--ig-b-20);
}
.form-label.ik-personel-etiket {
  display: block;
  margin-bottom: var(--ig-b-6);
  font-size: var(--ig-fs-14);
  font-weight: var(--ig-fw-kalin);
  color: var(--ig-metin);
}
.form-control.ik-personel-girdi,
.form-select.ik-personel-girdi {
  height: var(--ig-girdi-h);
  font-size: var(--ig-fs-14);
  border-radius: var(--ig-r-6);
}
textarea.form-control.ik-personel-girdi {
  height: auto;
  min-height: 96px;
}
.ik-personel-ipucu {
  margin: 0;
  font-size: var(--ig-fs-12);
  color: var(--ig-soluk);
}

/* Telefon: +90 öneki girdiyle bitişik */
.ik-personel-telefon {
  display: flex;
  align-items: stretch;
}
.ik-personel-onek {
  display: flex;
  flex: none;
  align-items: center;
  padding: 0 var(--ig-b-12);
  font-size: var(--ig-fs-14);
  font-weight: var(--ig-fw-kalin);
  color: var(--ig-soluk);
  background-color: var(--ig-zemin);
  border: 1px solid var(--ig-cizgi);
  border-right: 0;
  border-radius: var(--ig-r-6) 0 0 var(--ig-r-6);
}
.ik-personel-telefon .form-control.ik-personel-girdi {
  flex: 1;
  min-width: 0;
  border-top-left-radius: 0;
  border-bottom-left-radius: 0;
}

/* --- 12.1.4 Sağ panel bölümü (Yeni personel: pozisyon bilgileri) ----------- */
.ik-personel-panel-bolum {
  margin-top: var(--ig-b-16);
  padding-top: var(--ig-b-16);
  border-top: 1px solid var(--ig-cizgi);
}
.ik-personel-panel-baslik {
  margin: 0 0 var(--ig-b-12);
  font-size: var(--ig-fs-14);
  font-weight: var(--ig-fw-kalin);
  color: var(--ig-metin);
}

/* --- 12.1.5 Ekran yetkileri: kenarlı satır kutuları (kart içinde kart yok) -- */
.ik-personel-yetki-izgara {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--ig-b-12);
  margin-bottom: var(--ig-b-12);
}
.ik-personel-yetki {
  padding: var(--ig-b-12);
  border: 1px solid var(--ig-cizgi);
  border-radius: var(--ig-r-6);
}
.form-check-label.ik-personel-yetki-ad {
  font-size: var(--ig-fs-14);
  font-weight: var(--ig-fw-kalin);
  color: var(--ig-metin);
}
.ik-personel-yetki-aciklama {
  margin: var(--ig-b-6) 0 0;
  font-size: var(--ig-fs-12);
  color: var(--ig-soluk);
}

/* --- 12.1.6 Kalıcı sil kartı (yalnız süper yönetici; yıkıcı eylem modalda) -- */
.ik-personel-tehlike-kart > .ig-kart-baslik {
  align-items: center;
}
.btn.ik-personel-tehlike-dugme {
  color: var(--ig-kirmizi);
}
.btn.ik-personel-tehlike-dugme:hover {
  color: var(--ig-kirmizi);
  background-color: var(--ig-kirmizi-zemin);
  border-color: var(--ig-kirmizi-cizgi);
}

@media (max-width: 1199.98px) {
  .ik-personel-yetki-izgara { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 767.98px) {
  .ik-personel-alanlar { padding: 0 var(--ig-b-16) var(--ig-b-16); }
  .ik-personel-yetki-izgara { grid-template-columns: minmax(0, 1fr); }
  .ik-personel-meta { max-width: 200px; }
}

/* 12.2 İK MAAŞ + ÖDEME + FAZLA MESAİ */
/* ==========================================================================
   views/ik/personel_detayi_{maas,odemeler,fazlamesai}.php — personel detayının
   mali sekmeleri (cari-detay/CariHareket + urun-detay-v2 kart kalıbı).
   Bant, sekme şeridi, kart başlığı, tablo, durum etiketi, satır işlemi, boş
   durum, sağ panel ve onay modalı 3-4. ve 8. bölümden gelir; burada yalnız bu
   üç ekrana özgü yığın, özet ızgarası, tutar alanı ve toplam satırı var.
   12.1 (.ik-personel-*) ile aynı dil; yalnız --ig-* token'ları kullanılır.
   ========================================================================== */

/* --- 12.2.1 Sekme gövdesi ve kart yığını ---------------------------------- */
.ig-bant-govde.ik-mali-govde {
  padding-bottom: var(--ig-b-32);
}
.ik-mali-yigin {
  display: flex;
  flex-direction: column;
  gap: var(--ig-b-16);
}
.ik-mali-kart {
  overflow: hidden;
  margin-bottom: 0;
}

/* --- 12.2.2 Güncel maaş özeti (3'lü ızgara: 12px etiket / 14px değer) ------ */
.ik-mali-ozet {
  padding: var(--ig-b-16) var(--ig-b-20) var(--ig-b-20);
}
.ik-mali-ozet .ig-kv-etiket {
  display: block;
  font-size: var(--ig-fs-12);
  color: var(--ig-soluk);
}
.ik-mali-ozet .ig-kv-deger {
  margin-top: var(--ig-b-2);
  font-size: var(--ig-fs-14);
  font-weight: var(--ig-fw-orta);
  color: var(--ig-metin);
}

/* --- 12.2.3 Tablo (başlık 40, satır 44; dönem sütunu 600) ------------------ */
.ik-mali-tablo > tbody > tr > td {
  padding-top: var(--ig-b-6);
  padding-bottom: var(--ig-b-6);
}
.ik-mali-tablo .ik-mali-donem {
  font-weight: var(--ig-fw-kalin);
  color: var(--ig-metin);
  white-space: nowrap;
}
.ik-mali-tablo .ik-mali-bos {
  color: var(--ig-girdi);
}
.ik-mali-tablo .ik-mali-islem-sutun {
  width: 132px;
}
.ik-mali-tablo > tfoot > tr.ik-mali-toplam > td {
  font-weight: var(--ig-fw-kalin);
  color: var(--ig-metin);
  background-color: var(--ig-zemin);
  border-top: 1px solid var(--ig-cizgi-koyu);
}

/* --- 12.2.4 Sağ panel formu (etiket 13/600, girdi 40, tutar 48 + ₺) -------- */
.form-label.ik-mali-etiket {
  display: block;
  margin-bottom: var(--ig-b-4);
  font-size: var(--ig-fs-13);
  font-weight: var(--ig-fw-kalin);
  color: var(--ig-metin);
}
.filter-input.ik-mali-girdi,
.filter-select.ik-mali-girdi {
  height: var(--ig-girdi-h);
  border-radius: var(--ig-r-6);
}
.ik-mali-tutar {
  position: relative;
  display: block;
}
.filter-input.ik-mali-tutar-girdi {
  width: 100%;
  height: var(--ig-tutar-h);
  padding-right: var(--ig-b-32);
  font-size: var(--ig-fs-20);
  font-weight: var(--ig-fw-kalin);
  text-align: right;
  border-radius: var(--ig-r-6);
  font-variant-numeric: tabular-nums;
}
.ik-mali-tutar-sonek {
  position: absolute;
  top: 0;
  right: var(--ig-b-12);
  display: flex;
  align-items: center;
  height: var(--ig-tutar-h);
  font-size: var(--ig-fs-16);
  color: var(--ig-soluk);
  pointer-events: none;
}

/* --- 12.2.5 Panel içi ipucu ve uyarı satırı ------------------------------- */
.ik-mali-ipucu,
.ik-mali-uyari {
  margin: 0;
  padding: var(--ig-b-8) var(--ig-b-12);
  font-size: var(--ig-fs-13);
  line-height: var(--ig-lh-govde);
  color: var(--ig-soluk);
  background-color: var(--ig-gri-zemin);
  border-radius: var(--ig-r-6);
}
.ik-mali-uyari {
  color: var(--ig-sari-metin);
  background-color: var(--ig-sari-zemin);
  border: 1px solid var(--ig-sari-cizgi);
}

@media (max-width: 767.98px) {
  .ik-mali-ozet { padding: var(--ig-b-12) var(--ig-b-16) var(--ig-b-16); }
  .ik-mali-tablo .ik-mali-islem-sutun { width: auto; }
}

/* 12.3 İK DOSYA + POZİSYON + EĞİTİM */
/* ==========================================================================
   views/ik/personel_detayi_{dosyalar,pozisyon,egitimler}.php (2026-09-16).
   Kaynak: cari-detay/gen_cari_detay.py (CariHareket tablo kartı) +
   urun-detay-v2/gen_urun_detay_v2.py (UrunV2Recete kart yığını, UrunV2Genel bilgi ızgarası).
   Yeniden tanımlanmayanlar: 3.4 tablo (başlık 40, satır 44), 4.6 satır işlemleri,
   4.9 durum etiketi, 4.11 kart başlığı, 4.12 boş durum, 4.14 sağ panel,
   8b onay modalı, 9.10 .belge-dropzone / .dragover. Yalnız --ig-* token'ları.
   ========================================================================== */

/* --- 12.3.1 Gövde: sekme şeridi navbar'da, içerik kartları altında --------- */
.ig-bant-govde.ik-sekme-govde {
  margin-top: 0;
  padding-bottom: var(--ig-b-24);
}
.ik-sekme-kart {
  overflow: hidden;
  margin-bottom: var(--ig-b-16);
}
.ik-sekme-kart:last-child {
  margin-bottom: 0;
}
.ik-sekme-kart > .ig-kart-baslik {
  align-items: center;
}
.ik-sekme-baslik-islem {
  display: flex;
  align-items: center;
  gap: var(--ig-b-8);
}

/* --- 12.3.2 Tablo hücreleri (ad 600 + soluk alt satır, boş hücre "—") ------ */
.ik-sekme-ad {
  display: block;
  font-weight: var(--ig-fw-orta);
  color: var(--ig-metin);
}
.ik-sekme-alt {
  display: block;
  font-size: var(--ig-fs-12);
  color: var(--ig-soluk);
}
.ik-sekme-bos {
  color: var(--ig-girdi);
}
.ik-sekme-islem-sutun {
  width: 128px;
}

/* --- 12.3.3 Güncel pozisyon özeti (UrunV2Genel ızgarası: 12px etiket / 14px değer) */
.ik-sekme-ozet {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--ig-b-16) var(--ig-b-24);
  padding: var(--ig-b-20);
}
.ik-sekme-ozet-oge {
  display: flex;
  flex-direction: column;
  gap: var(--ig-b-4);
  min-width: 0;
}
.ik-sekme-ozet-etiket {
  font-size: var(--ig-fs-12);
  color: var(--ig-soluk);
}
.ik-sekme-ozet-deger {
  overflow: hidden;
  font-size: var(--ig-fs-14);
  font-weight: var(--ig-fw-orta);
  color: var(--ig-metin);
  text-overflow: ellipsis;
}

/* --- 12.3.4 Sağ panel form alanları (etiket 14/600, girdi 40) -------------- */
.ik-sekme-alanlar {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--ig-b-16);
}
.ik-sekme-alan--tam {
  grid-column: 1 / -1;
}
.form-label.ik-sekme-etiket {
  display: block;
  margin-bottom: var(--ig-b-6);
  font-size: var(--ig-fs-14);
  font-weight: var(--ig-fw-kalin);
  color: var(--ig-metin);
}
.ik-sekme-alan .filter-input,
.ik-sekme-alan .filter-select {
  width: 100%;
}

@media (max-width: 991.98px) {
  .ik-sekme-ozet { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 575.98px) {
  .ik-sekme-ozet { grid-template-columns: minmax(0, 1fr); }
  .ik-sekme-alanlar { grid-template-columns: minmax(0, 1fr); }
}

/* --- 12.3.5 Yükleme alanı (9.10 .belge-dropzone üstüne; başlık, tür, ilerleme) */
.ik-sekme-dropzone-baslik {
  font-size: var(--ig-fs-14);
  font-weight: var(--ig-fw-orta);
  color: var(--ig-metin);
}
.ik-sekme-dropzone-tur {
  font-size: var(--ig-fs-12);
  color: var(--ig-soluk);
}
.ik-sekme-secilen {
  display: flex;
  align-items: center;
  gap: var(--ig-b-12);
  padding: var(--ig-b-8) var(--ig-b-12);
  text-align: left;
  background-color: var(--ig-yuzey);
  border: 1px solid var(--ig-cizgi);
  border-radius: var(--ig-r-6);
}
.ik-sekme-secilen-metin {
  flex: 1;
  min-width: 0;
}
.ik-sekme-dosya-ad {
  overflow: hidden;
  font-size: var(--ig-fs-13);
  font-weight: var(--ig-fw-orta);
  color: var(--ig-metin);
  white-space: nowrap;
  text-overflow: ellipsis;
}
.ik-sekme-dosya-boyut {
  font-size: var(--ig-fs-12);
  color: var(--ig-soluk);
}
.ik-sekme-ilerleme {
  height: 8px;
  background-color: var(--ig-gri-zemin);
  border-radius: var(--ig-r-4);
}
/* Genişlik JS'ten (style.width); başlangıç 0 */
.ik-sekme-ilerleme .progress-bar {
  width: 0;
  background-color: var(--ig-birincil);
}
.ik-sekme-ilerleme-satir {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--ig-b-8);
  margin-bottom: var(--ig-b-4);
  font-size: var(--ig-fs-13);
}
.ik-sekme-yukleme-oge {
  margin-bottom: var(--ig-b-12);
}
.ik-sekme-yukleme-oge:last-child {
  margin-bottom: 0;
}
.ik-sekme-bolum-baslik {
  margin: var(--ig-b-16) 0 var(--ig-b-8);
  font-size: var(--ig-fs-13);
  font-weight: var(--ig-fw-kalin);
  color: var(--ig-metin);
}

/* --- 12.3.6 Belge önizleme modalı (indir düğmesi başlıkta) ---------------- */
.ik-sekme-modal-islem {
  display: flex;
  align-items: center;
  gap: var(--ig-b-12);
}
.ik-sekme-onizleme-sar {
  padding: var(--ig-b-16);
  text-align: center;
}
.ik-sekme-onizleme {
  max-width: 100%;
  max-height: 70vh;
  border-radius: var(--ig-r-6);
}
.ik-sekme-cerceve {
  width: 100%;
  height: 70vh;
  border: 0;
}
.ik-sekme-onizlenemez {
  padding: var(--ig-b-24);
  font-size: var(--ig-fs-13);
  color: var(--ig-soluk);
  text-align: center;
}
.ik-sekme-secilen .btn-close:focus-visible {
  outline: 0;
  border-radius: var(--ig-r-4);
  box-shadow: var(--ig-odak);
}

/* 12.5 İK İZİN + VARDİYA + PUANTAJ */
/* ==========================================================================
   Kaynak ekranlar: views/ik/izinler.php, vardiya_plani.php, puantaj_cetveli.php.
   Ortak görünüm (bant, kart, tablo, hap filtre, satır işlemleri, durum etiketi,
   boş durum, sağ panel) ig-* sınıflarından gelir; burada yalnız bu üç ekrana
   özgü yerleşim var: sekme şeridi, plan ızgarası ve puantaj cetveli.
   TUTARLILIK §1: başlık satırı 40px/ZEMIN/12-600, satır 44px, etiket 22px.
   Eski sınıf adları (.izin-tablo, .puantaj-cell, .puantaj-sticky-col, .od-panel,
   .pill-filter) JS seçicisi olduğu için korunur, biçim ik-* sınıflarından verilir.
   ========================================================================== */

/* 12.5.1 İzin sekme şeridi (kart içi, §1 Detay sekme şeridi dili) --------- */
.ik-izin-sekmeler {
  padding: 0 var(--ig-b-16);
  border-bottom: 1px solid var(--ig-cizgi);
}
.ik-izin-sekme-liste {
  display: flex;
  flex-wrap: wrap;
  gap: var(--ig-b-16);
  margin: 0;
  padding: 0;
  list-style: none;
}
.ik-izin-sekme-liste .nav-item { margin: 0; }
.ik-izin-sekme.nav-link {
  display: inline-flex;
  align-items: center;
  gap: var(--ig-b-8);
  height: 48px;
  padding: 0;
  font-size: var(--ig-fs-14);
  font-weight: var(--ig-fw-orta);
  color: var(--ig-soluk);
  background: none;
  border: 0;
  border-bottom: 2px solid transparent;
  border-radius: 0;
}
.ik-izin-sekme.nav-link:hover { color: var(--ig-metin); }
.ik-izin-sekme.nav-link.active {
  font-weight: var(--ig-fw-kalin);
  color: var(--ig-metin);
  background: none;
  border-bottom-color: var(--ig-yesil);
}
.ik-izin-sekme.nav-link:focus-visible {
  outline: 0;
  box-shadow: var(--ig-odak);
}
/* Sayaç: 12px soluk, renkli rozet değil (§1 Detay sekme şeridi) */
.ik-izin-sayac.badge {
  padding: 0;
  font-size: var(--ig-fs-12);
  font-weight: var(--ig-fw-orta);
  color: var(--ig-soluk);
  background: none;
}
.ik-izin-sekme.nav-link.active .ik-izin-sayac.badge { color: var(--ig-metin-2); }

/* 12.5.2 İzin tablosu ve onay modalı ------------------------------------- */
.ik-izin-gun {
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}
.ik-izin-yetkisiz {
  font-size: var(--ig-fs-12);
  color: var(--ig-soluk);
}
/* §1 Onay/eylem modalı: 400–420px */
.ik-izin-onay .modal-dialog,
.ik-vardiya-onay .modal-dialog,
.ik-puantaj-onay .modal-dialog { max-width: var(--ig-onay-w); }

/* 12.5.3 Vardiya planı ızgarası ------------------------------------------ */
.ik-vardiya-hafta {
  display: flex;
  align-items: center;
  gap: var(--ig-b-12);
}
.ik-vardiya-hafta-metin {
  min-width: 180px;
  text-align: center;
}
.ik-vardiya-hafta-ad {
  margin: 0;
  font-size: var(--ig-fs-14);
  font-weight: var(--ig-fw-kalin);
  color: var(--ig-metin);
}
.ik-vardiya-hafta-no {
  font-size: var(--ig-fs-12);
  color: var(--ig-soluk);
}
.ik-vardiya-lejant {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--ig-b-8);
  padding: var(--ig-b-12) var(--ig-b-16);
  border-bottom: 1px solid var(--ig-cizgi);
}
.ik-vardiya-lejant-etiket {
  font-size: var(--ig-fs-12);
  font-weight: var(--ig-fw-kalin);
  color: var(--ig-soluk);
}

.ik-izin-yetkili-liste {
  display: flex;
  flex-wrap: wrap;
  gap: var(--ig-b-4);
}
.ik-izin-yetkili {
  display: inline-flex;
  align-items: center;
  height: 22px;
  padding: 0 8px;
  font-size: var(--ig-fs-12);
  color: var(--ig-metin-2);
  background-color: var(--ig-gri-zemin);
  border: 1px solid var(--ig-cizgi);
  border-radius: var(--ig-r-4);
}

/* 12.5.4 Puantaj cetveli --------------------------------------------------
   Durum anahtarları Personel_model::get_puantaj_durum_listesi() ile birebir:
   normal · izinli · raporlu · mazeretli · devamsiz · tatil · yarim_gun.
   Bootstrap bg-* rozetleri yerine §1 durum etiketi (22px) kullanılır. */
.ik-puantaj-arac { border-bottom: 1px solid var(--ig-cizgi); }
.ik-puantaj-lejant {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--ig-b-8);
  padding: var(--ig-b-12) var(--ig-b-16);
  border-bottom: 1px solid var(--ig-cizgi);
}
.ik-puantaj-durum--normal    { color: var(--ig-yesil-metin); background-color: var(--ig-yesil-acik); border-color: var(--ig-yesil-cizgi); }
.ik-puantaj-durum--izinli    { color: var(--ig-mavi);        background-color: var(--ig-mavi-zemin); border-color: var(--ig-mavi-cizgi); }
.ik-puantaj-durum--raporlu   { color: var(--ig-sari-metin);  background-color: var(--ig-sari-zemin); border-color: var(--ig-sari-cizgi); }
.ik-puantaj-durum--mazeretli { color: var(--ig-soluk);       background-color: var(--ig-gri-zemin);  border-color: var(--ig-cizgi); }
.ik-puantaj-durum--devamsiz  { color: var(--ig-kirmizi);     background-color: var(--ig-kirmizi-etiket-zemin); border-color: var(--ig-kirmizi-etiket-cizgi); }
.ik-puantaj-durum--tatil     { color: var(--ig-metin-2);     background-color: var(--ig-zemin);      border-color: var(--ig-cizgi); }
.ik-puantaj-durum--yarim_gun { color: var(--ig-mavi);        background-color: var(--ig-yuzey);      border-color: var(--ig-mavi-cizgi); }
/* Cetvel: gün sütunları dar ve ortalı; personel sütunu yatay kaydırmada sabit */
.ik-puantaj-kart .puantaj-sticky-col {
  position: sticky;
  left: 0;
  z-index: 2;
  min-width: 180px;
  background-color: var(--ig-yuzey);
}
.ik-puantaj-kart thead .puantaj-sticky-col { background-color: var(--ig-zemin); }
.ik-puantaj-gun {
  min-width: 40px;
  font-variant-numeric: tabular-nums;
}
.ik-puantaj-gun-ad {
  display: block;
  font-size: var(--ig-fs-12);
  font-weight: var(--ig-fw-orta);
  color: var(--ig-soluk);
}
.ik-puantaj-hucre {
  min-width: 40px;
  cursor: pointer;
}
.ik-puantaj-hafta-sonu { background-color: var(--ig-zemin); }
.ik-puantaj-bos { color: var(--ig-soluk); }
.ik-puantaj-toplam {
  font-weight: var(--ig-fw-kalin);
  font-variant-numeric: tabular-nums;
}

/* 12.5.5 Panel/modal etiketi — isgelir-ui.css'te .ig-panel-etiket yok; §1 Sağ panel
   "etiket 13–14px/600" kuralının bu üç ekrandaki karşılığı. */
.ik-izin-kart .ig-panel-etiket,
.ig-panel .ig-panel-etiket,
.ik-izin-onay .ig-panel-etiket,
.ik-vardiya-onay .ig-panel-etiket,
.ik-puantaj-onay .ig-panel-etiket {
  display: block;
  margin-bottom: var(--ig-b-4);
  font-size: var(--ig-fs-13);
  font-weight: var(--ig-fw-kalin);
  color: var(--ig-metin);
}

/* 12.5.6 Vardiya planı ızgarası ------------------------------------------
   Hücre renkleri sınıfla verilir (inline style yok). Vardiya rengi veritabanında
   serbest hex tuttuğu için ızgarada sıra numarasına bağlı 8 renkli palet kullanılır;
   eşleşme data-vardiya-sira ile PHP'den gelir. */
.ik-vardiya-personel { min-width: 180px; }
.ik-vardiya-personel-ad {
  font-weight: var(--ig-fw-kalin);
  color: var(--ig-metin);
}
.ik-vardiya-personel-alt {
  font-size: var(--ig-fs-12);
  color: var(--ig-soluk);
}
.ik-vardiya-gun { min-width: 110px; }
.ik-vardiya-gun-ad {
  display: block;
  font-weight: var(--ig-fw-kalin);
  color: var(--ig-metin);
}
.ik-vardiya-gun-tarih {
  font-size: var(--ig-fs-12);
  color: var(--ig-soluk);
}
.ik-vardiya-hucre {
  min-width: 110px;
  cursor: pointer;
}
.ik-vardiya-hucre--kilitli { cursor: default; }
.ik-vardiya-bugun { background-color: var(--ig-yesil-acik); }
.ik-vardiya-hafta-sonu { background-color: var(--ig-zemin); }
.ik-vardiya-bos { color: var(--ig-soluk); }
.ik-vardiya-etiket--1 { color: var(--ig-yesil-metin); background-color: var(--ig-yesil-acik); border-color: var(--ig-yesil-cizgi); }
.ik-vardiya-etiket--2 { color: var(--ig-mavi);        background-color: var(--ig-mavi-zemin);  border-color: var(--ig-mavi-cizgi); }
.ik-vardiya-etiket--3 { color: var(--ig-sari-metin);  background-color: var(--ig-sari-zemin);  border-color: var(--ig-sari-cizgi); }
.ik-vardiya-etiket--4 { color: var(--ig-metin-2);     background-color: var(--ig-gri-zemin);   border-color: var(--ig-cizgi); }
.ik-vardiya-etiket--5 { color: var(--ig-yesil-metin); background-color: var(--ig-yuzey);       border-color: var(--ig-yesil-cizgi); }
.ik-vardiya-etiket--6 { color: var(--ig-mavi);        background-color: var(--ig-yuzey);       border-color: var(--ig-mavi-cizgi); }
.ik-vardiya-etiket--7 { color: var(--ig-sari-metin);  background-color: var(--ig-yuzey);       border-color: var(--ig-sari-cizgi); }
.ik-vardiya-etiket--8 { color: var(--ig-soluk);       background-color: var(--ig-yuzey);       border-color: var(--ig-cizgi); }
/* Otomatik doldur modalı: mod seçimi ve desen ızgarası */
.ik-vardiya-mod {
  display: flex;
  flex-wrap: wrap;
  gap: var(--ig-b-8);
}
.ik-vardiya-desen {
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
  gap: var(--ig-b-8);
}
.ik-vardiya-desen-etiket {
  display: block;
  margin-bottom: var(--ig-b-4);
  font-size: var(--ig-fs-12);
  color: var(--ig-soluk);
  text-align: center;
}
.ik-vardiya-not {
  font-size: var(--ig-fs-13);
  color: var(--ig-soluk);
}
.ik-vardiya-kural {
  display: flex;
  flex-wrap: wrap;
  gap: var(--ig-b-16);
}
/* Hedef hafta seçimi (Haftayı kopyala modalı): ızgara dışı, ortalanmış blok */
.ik-vardiya-hafta--secim {
  justify-content: center;
  padding: var(--ig-b-16);
  background-color: var(--ig-zemin);
  border: 1px solid var(--ig-cizgi);
  border-radius: var(--ig-r-6);
}
/* Puantaj kaydı modalında Sil solda durur; yıkıcı eylem kırmızı metin (§1 Düğmeler) */
.ik-puantaj-sil {
  margin-right: auto;
  color: var(--ig-kirmizi);
}
/* Vardiya planı kartı: ızgara yatay kayar, kart iç boşluğu yok (tablo kenara oturur) */
.ik-vardiya-kart .table-responsive { overflow-x: auto; }

/* ==========================================================================
   12.4–12.9 İK KALAN (Faz 6)
   ========================================================================== */

/* 12.4 İK İZİN + PUANTAJ + ZİMMET + VİZE SEKMELERİ */
/* ==========================================================================
   Personel detay sekmeleri: izin · puantaj · zimmet · vize belgesi.
   Kart, başlık, tablo, satır işlemleri, durum etiketi, sağ panel ve boş durum
   ortak parçalardan gelir (4, 8b, 9). Sekme tablosu/özeti/panel alanları 12.3
   (.ik-sekme-*), mali tablo 12.2 (.ik-mali-*), puantaj ızgarası ve durum
   anahtarları 12.5 (.ik-puantaj-*) içinde TANIMLI — burada yeniden tanımlanmaz.
   Aşağıda yalnız bu dört ekranda yeni olan iki kural var.
   Yalnız --ig-* token'ları.
   ========================================================================== */

/* --- 12.4.1 Kart içi hap filtre çubuğu (puantaj yıl/ay) --------------------
   12.5.4'teki .ik-puantaj-arac cetvel kartına bağlıdır; sekme kartında filtre
   çubuğu kart başlığının altında durur ve tablodan çizgiyle ayrılır. */
.ik-sekme-kart > .ig-arac {
  border-bottom: 1px solid var(--ig-cizgi);
}

/* --- 12.4.2 Tablo toplam satırı (izin günü toplamı) -----------------------
   12.2'deki .ik-mali-toplam yalnız .ik-mali-tablo altında geçerlidir; sekme
   tablosunun toplam satırı için aynı dil (zemin + 600) burada kurulur. */
.ik-sekme-tablo > tfoot > tr.ik-sekme-toplam > td {
  font-weight: var(--ig-fw-kalin);
  color: var(--ig-metin);
  background-color: var(--ig-zemin);
  border-top: 1px solid var(--ig-cizgi);
}

/* 12.6 İK MASRAF + BORDRO */
/* ==========================================================================
   Kaynak ekranlar: views/ik/masraf_listesi.php, bordro_listesi.php,
   bordro_detay.php. Ortak görünüm (bant, kart, tablo 40/44, hap filtre,
   satır işlemleri, durum etiketi, boş durum, sağ panel, onay modalı) 3., 4.,
   8b ve 9. bölümlerden gelir; yeniden tanımlanmaz.
   Yeniden KULLANILANLAR (burada tekrar yazılmadı):
     12.5.1 .ik-izin-sekme*  → masraf sekme şeridi
     12.2.3 .ik-mali-tablo / .ik-mali-toplam / .ik-mali-donem → bordro tabloları
     12.2.4 .ik-mali-etiket / .ik-mali-girdi / .ik-mali-tutar* → masraf sağ paneli
     4.16 .ig-tutar, 4.9 .ig-durum, 4.12 .ig-bos, 4.14 .ig-panel-*
   TUTARLILIK §1: başlık satırı 40px/ZEMIN/12-600, satır 44px, etiket 22px,
   tutar sonekli ve tabular, onay modalı 400–420.
   ========================================================================== */

/* --- 12.6.1 Masraf tablosu: personel hücresi (600 + SOLUK alt satır) ------- */
.ik-masraf-ad {
  font-weight: var(--ig-fw-kalin);
  color: var(--ig-metin);
}
.ik-masraf-meta {
  display: block;
  margin-top: var(--ig-b-2);
  font-size: var(--ig-fs-12);
  color: var(--ig-soluk);
}
.ik-masraf-yetkisiz {
  font-size: var(--ig-fs-12);
  color: var(--ig-soluk);
}
.ik-masraf-islem-sutun {
  width: 132px;
}

/* --- 12.6.2 Onay/red/ödendi/sil modalları (§1 Onay modalı 400–420) -------- */
.ik-masraf-onay .modal-dialog,
.ik-bordro-onay .modal-dialog { max-width: var(--ig-onay-w); }
/* Bordro detay modalı özet tablo taşır; §1 "gerekirse kenarlı özet tablosu" */
.ik-bordro-detay-modal .modal-dialog { max-width: 720px; }
.ik-bordro-detay-govde {
  max-height: 60vh;
  overflow-y: auto;
  padding: var(--ig-b-16) var(--ig-b-20);
}

/* --- 12.6.3 Bordro detayı: 3'lü bilgi ızgarası (12px etiket / 14px değer) -- */
.ik-bordro-ozet {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--ig-b-16);
  padding: var(--ig-b-16) var(--ig-b-20) var(--ig-b-20);
}
.ik-bordro-ozet .ig-kv-etiket {
  display: block;
  font-size: var(--ig-fs-12);
  color: var(--ig-soluk);
}
.ik-bordro-ozet .ig-kv-deger {
  margin-top: var(--ig-b-2);
  font-size: var(--ig-fs-14);
  font-weight: var(--ig-fw-orta);
  color: var(--ig-metin);
  font-variant-numeric: tabular-nums;
}

/* --- 12.6.4 Bordro kalem tablosu: kalem adı solda, tutar sağda ------------ */
.ik-bordro-kalem > tbody > tr > td:first-child { color: var(--ig-metin-2); }
.ik-bordro-kalem-not {
  display: block;
  margin-top: var(--ig-b-2);
  font-size: var(--ig-fs-12);
  color: var(--ig-soluk);
}

@media (max-width: 767.98px) {
  .ik-bordro-ozet {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    padding: var(--ig-b-12) var(--ig-b-16) var(--ig-b-16);
  }
  .ik-masraf-islem-sutun { width: auto; }
}

/* 12.7 İK BİRİMLER + ONAY AYARLARI */
/* ik/{ayarlar_birimler, ayarlar_izin_onay, ayarlar_masraf_onay}.php
   Kabuk, kart başlığı, hap filtre çubuğu, satır işlemleri (.ig-islemler/.ig-islem), sağ panel,
   boş durum ve durum etiketi ortak sınıflardan gelir (isgelir-ui.css 4, 8b).
   Ağaç düğümü, girinti çizgileri ve sürükle-bırak bölgesi 9. bölümdeki .org-tree-* kurallarıdır;
   burada yeniden tanımlanmaz, yalnız İK'ya özgü satır içeriği ve sıra düğmeleri eklenir. */

/* --- Onay kademeleri tablosu --- */
.ik-onay-sira-sutun {
  width: 96px;
  white-space: nowrap;
}
.ik-onay-sira {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 24px;
  height: 22px;
  padding: 0 8px;
  font-size: var(--ig-fs-12);
  font-weight: var(--ig-fw-orta);
  color: var(--ig-yesil-metin);
  font-variant-numeric: tabular-nums;
  background: var(--ig-yesil-acik);
  border: 1px solid var(--ig-yesil-cizgi);
  border-radius: var(--ig-r-4);
}
.ik-onay-tasi {
  display: inline-flex;
  gap: var(--ig-b-2);
  margin-left: var(--ig-b-4);
  vertical-align: middle;
}
.ik-onay-ok {
  width: 20px;
  height: 20px;
  padding: 0;
  color: var(--ig-soluk);
  cursor: pointer;
  background: none;
  border: 0;
  border-radius: var(--ig-r-4);
}
.ik-onay-ok::before {
  display: block;
  width: 6px;
  height: 6px;
  margin: 0 auto;
  content: "";
  border-top: 1px solid currentColor;
  border-right: 1px solid currentColor;
  transform: rotate(-45deg);
}
.ik-onay-ok--asagi::before { transform: rotate(135deg); }
.ik-onay-ok:hover,
.ik-onay-ok:focus-visible { color: var(--ig-metin); background: var(--ig-gri-zemin); }
.ik-onay-ad {
  font-weight: var(--ig-fw-kalin);
  color: var(--ig-metin);
}

/* --- Onaycı listesi (satır içinde) --- */
.ik-onay-kisiler {
  display: flex;
  flex-wrap: wrap;
  gap: var(--ig-b-8);
  align-items: center;
}
.ik-onay-kisi {
  display: inline-flex;
  gap: var(--ig-b-8);
  align-items: center;
  height: 32px;
  padding: 0 var(--ig-b-4) 0 var(--ig-b-4);
  background: var(--ig-zemin);
  border: 1px solid var(--ig-cizgi);
  border-radius: var(--ig-r-6);
}
.ik-onay-rozet {
  display: inline-flex;
  flex: none;
  align-items: center;
  justify-content: center;
  width: 24px;
  height: 24px;
  font-size: var(--ig-fs-12);
  font-weight: var(--ig-fw-kalin);
  color: var(--ig-yesil-metin);
  background: var(--ig-yesil-acik);
  border-radius: 50%;
}
.ik-onay-kisi-ad {
  font-size: var(--ig-fs-13);
  color: var(--ig-metin);
}
.ik-onay-kisi-sil {
  display: inline-flex;
  flex: none;
  align-items: center;
  justify-content: center;
  width: 20px;
  height: 20px;
  padding: 0;
  color: var(--ig-soluk);
  cursor: pointer;
  background: none;
  border: 0;
  border-radius: var(--ig-r-4);
}
.ik-onay-kisi-sil:hover,
.ik-onay-kisi-sil:focus-visible { color: var(--ig-kirmizi); background: var(--ig-gri-zemin); }
.ik-onay-bos {
  font-size: var(--ig-fs-13);
  color: var(--ig-soluk);
}

/* --- Onay akışı şeridi --- */
.ik-onay-akis {
  display: flex;
  flex-wrap: wrap;
  gap: var(--ig-b-8);
  align-items: center;
  padding: var(--ig-b-16);
}
.ik-onay-akis-ok {
  display: inline-block;
  width: 16px;
  height: 1px;
  background: var(--ig-cizgi-koyu);
}

/* --- Birim tipleri tablosu --- */
.ik-birim-sira-sutun { width: 96px; }
.ik-birim-sira-sutun .filter-input {
  width: 64px;
  height: 32px;
  text-align: right;
}
/* Kolon adı 10.15'teki .muh-ayar-renk-kod ile aynı dil: 12px soluk, tabular (yazı ailesi yeniden tanımlanmaz) */
.ik-birim-kolon {
  font-size: var(--ig-fs-12);
  color: var(--ig-soluk);
  font-variant-numeric: tabular-nums;
}
.ik-birim-altlik {
  display: flex;
  justify-content: flex-end;
  padding: var(--ig-b-12) var(--ig-b-16);
  border-top: 1px solid var(--ig-cizgi);
}
.ik-birim-ipucu {
  display: block;
  margin-top: var(--ig-b-4);
  font-size: var(--ig-fs-12);
  color: var(--ig-soluk);
}
.ik-birim-uyari {
  margin: var(--ig-b-8) 0 0;
  font-size: var(--ig-fs-13);
  color: var(--ig-kirmizi);
}

/* --- Organizasyon ağacı (9. bölüm .org-tree-* üstüne) --- */
.ik-birim-agac { padding: var(--ig-b-16); }
.ik-birim-govde {
  display: flex;
  flex: 1 1 auto;
  gap: var(--ig-b-12);
  align-items: center;
  min-width: 0;
}
.ik-birim-ad {
  overflow: hidden;
  font-size: var(--ig-fs-13);
  font-weight: var(--ig-fw-kalin);
  color: var(--ig-metin);
  white-space: nowrap;
  text-overflow: ellipsis;
}
.ik-birim-alt {
  display: inline-flex;
  gap: var(--ig-b-8);
  align-items: center;
}
.ik-birim-sayi {
  font-size: var(--ig-fs-12);
  color: var(--ig-soluk);
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}
/* Tutamaç: ikon kutusu değil, nokta deseni (kapı 67) */
.ik-birim-tutamac {
  width: 10px;
  height: 16px;
  background-image: radial-gradient(circle, var(--ig-girdi) 1px, transparent 1px);
  background-position: 0 var(--ig-b-2);
  background-size: 5px 5px;
}
.ik-birim-ok {
  display: block;
  width: 6px;
  height: 6px;
  border-bottom: 1px solid currentColor;
  border-left: 1px solid currentColor;
  transform: rotate(-45deg);
  transition: transform 0.15s ease;
}
.ik-birim-toggle--kapali .ik-birim-ok { transform: rotate(-135deg); }
.ik-birim-toggle--bos { cursor: default; }
.ik-birim-bos {
  padding: var(--ig-b-24) var(--ig-b-16);
  font-size: var(--ig-fs-13);
  color: var(--ig-soluk);
  text-align: center;
}

@media (prefers-reduced-motion: reduce) {
  .ik-birim-ok { transition: none; }
}

/* 12.8 İK AYARLAR */
/* ==========================================================================
   views/ik/{ayarlar, ayarlar_zimmet_kategorileri, ayarlar_isten_ayrilma_nedenleri,
   ayarlar_masraf_kategorileri, ayarlar_vardiyalar, ayarlar_duyurular, ayarlar_bordro}.php
   liste-c/ListeC · form-sayfa-c/FormC · kabuk-katman/KabukModul.
   Bant, araç çubuğu, hap filtre, satır işlemleri, durum etiketi, sağ panel, onay modalı ve
   boş durum ortak sınıflardan (3-4, 8) gelir. Ayar girişi kartı, liste kartı, sıra/ad/soluk/sayı
   hücreleri, renk kutusu, form kartı ve yapışkan altlık 10.15'teki .muh-ayar-* sınıflarıyla
   ortaktır; burada yalnız İK ayar ekranlarına özgü parçalar tanımlıdır.
   Yalnız --ig-* token'ları kullanılır.
   ========================================================================== */

/* Vardiya saat hücresi (başlangıç/bitiş) */
.ik-ayar-saat {
  color: var(--ig-metin);
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}

/* Bordro parametresi: alan altındaki anahtar adı (teknik karşılık) */
.ik-ayar-anahtar {
  display: block;
  margin-top: var(--ig-b-4);
  font-size: var(--ig-fs-12);
  color: var(--ig-soluk);
}

/* Yüzde/çarpan öneki: girdi ile aynı satırda, Türkçe önek biçimi ("%15") */
.ik-ayar-onek {
  display: flex;
  align-items: stretch;
  gap: var(--ig-b-8);
}
.ik-ayar-onek-isaret {
  flex: none;
  min-width: 36px;
  font-size: var(--ig-fs-14);
  font-weight: var(--ig-fw-orta);
  line-height: var(--ig-girdi-h);
  color: var(--ig-soluk);
  text-align: center;
  background-color: var(--ig-zemin);
  border: 1px solid var(--ig-cizgi);
  border-radius: var(--ig-r-6);
}
.ik-ayar-onek .filter-input {
  flex: 1 1 auto;
  min-width: 0;
  text-align: right;
  font-variant-numeric: tabular-nums;
}

/* 12.9 İK ÖZET + TAKVİM + DÜZELTMELER */
/* ==========================================================================
   views/ik/anasayfa_yeni.php · views/ik/takvim_sistem.php
   views/is/projeler/proje_detay_cepheler.php (yalnız seçim göstergesi düzeltmesi)
   Onaylı kalıp: modul-varyant-c/ModulC (bant + .ig-bant-govde), TUTARLILIK §1
   (kart başlığı, seçim, durum etiketi, boş durum, tipografi, para soneki).
   Yalnız --ig-* token'ları; isgelir-ui.css 4 (.ig-bant*, .ig-arac, .ig-hap),
   5.4.6 (.fc), 8b (partial'lar), 9 (miras), 10.3 (özet), 11.2/11.3 üstüne.
   ========================================================================== */

/* --- 12.9.1 İK genel özet: bölüm aralığı — artık ortak kural, 4.1b .ig-ozet-bolum
   (view'da sınıf adı değişti: ik-ozet-bolum → ig-ozet-bolum). ------------------ */

/* --- 12.9.2 Grafik kartı (kart başlığı 15/600 + 13 SOLUK alt satır) ------- */
.ik-ozet-grafik-kart {
  display: flex;
  flex-direction: column;
  height: 100%;
  background: var(--ig-yuzey);
  border: 1px solid var(--ig-cizgi);
  border-radius: var(--ig-r-8);
  box-shadow: var(--ig-golge-kart);
}
.ik-ozet-grafik-bas {
  padding: var(--ig-b-16) var(--ig-b-20) var(--ig-b-12);
  border-bottom: 1px solid var(--ig-cizgi);
}
.ik-ozet-grafik-ad {
  margin: 0;
  font-size: var(--ig-fs-15);
  font-weight: var(--ig-fw-kalin);
  line-height: var(--ig-lh-baslik);
  color: var(--ig-metin);
}
.ik-ozet-grafik-alt {
  display: block;
  margin-top: var(--ig-b-4);
  font-size: var(--ig-fs-13);
  color: var(--ig-soluk);
}
.ik-ozet-grafik-govde {
  position: relative;
  height: 260px;
  padding: var(--ig-b-16) var(--ig-b-20) var(--ig-b-20);
}
.ik-ozet-grafik-govde--donut { height: 240px; }
.ik-ozet-grafik-bos {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 100%;
  font-size: var(--ig-fs-13);
  color: var(--ig-soluk);
}

/* --- 12.9.3 Grafik lejantı (kutusuz, nokta + metin) ---------------------- */
.ik-ozet-lejant {
  display: flex;
  align-items: center;
  gap: var(--ig-b-16);
  padding: var(--ig-b-8) var(--ig-b-20) 0;
  font-size: var(--ig-fs-12);
  color: var(--ig-soluk);
}
.ik-ozet-lejant-oge {
  display: inline-flex;
  align-items: center;
  gap: var(--ig-b-6);
}
.ik-ozet-lejant-nokta {
  width: var(--ig-b-8);
  height: var(--ig-b-8);
  border-radius: 50%;
  background: var(--ig-birincil);
}
.ik-ozet-lejant-nokta--maliyet { background: var(--ig-kirmizi); }

/* --- 12.9.4 Özet satırı (bekleyen iş / doğum günü kartları) -------------- */
.ik-ozet-satir {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--ig-b-12);
  padding: var(--ig-b-12) var(--ig-b-20);
  font-size: var(--ig-fs-13);
  color: var(--ig-metin);
  text-decoration: none;
  border-top: 1px solid var(--ig-cizgi);
}
.ik-ozet-satir:first-child { border-top: 0; }
a.ik-ozet-satir:hover { color: var(--ig-metin); background-color: var(--ig-yesil-hover); }
a.ik-ozet-satir:focus-visible { outline: 0; box-shadow: var(--ig-odak); }
.ik-ozet-satir-deger {
  font-weight: var(--ig-fw-kalin);
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}
.ik-ozet-satir-not { color: var(--ig-soluk); white-space: nowrap; }

/* --- 12.9.5 Takvim sayfası: araç çubuğu hapları (4.5 .ig-hap dili) ------- */
.ik-takvim-arac { flex-wrap: wrap; border-bottom: 1px solid var(--ig-cizgi); }
.takvim-filter-btn.ik-takvim-hap {
  display: inline-flex;
  align-items: center;
  gap: var(--ig-b-6);
  height: var(--ig-dugme-kart-h, 32px);
  padding: 0 var(--ig-b-12);
  font-size: var(--ig-fs-13);
  font-weight: var(--ig-fw-orta);
  color: var(--ig-metin-2);
  background: var(--ig-yuzey);
  border: 1px solid var(--ig-cizgi);
  border-radius: var(--ig-r-6);
  cursor: pointer;
}
.takvim-filter-btn.ik-takvim-hap:hover { border-color: var(--ig-cizgi-koyu); }
.takvim-filter-btn.ik-takvim-hap:focus-visible { outline: 0; box-shadow: var(--ig-odak); }
.takvim-filter-btn.ik-takvim-hap.active {
  color: var(--ig-yesil-metin);
  background: var(--ig-yesil-acik);
  border-color: var(--ig-yesil-cizgi);
}
.ik-takvim-hap-sayi {
  font-variant-numeric: tabular-nums;
  font-weight: var(--ig-fw-kalin);
}
.ik-takvim-govde { padding: var(--ig-b-16) var(--ig-b-20) var(--ig-b-20); }

/* --- 12.9.6 Yaklaşan etkinlik satırı (tarih bloğu + ad + etiket) --------- */
.ik-takvim-satir {
  display: flex;
  align-items: flex-start;
  gap: var(--ig-b-12);
  padding: var(--ig-b-12) var(--ig-b-20);
  border-top: 1px solid var(--ig-cizgi);
}
.ik-takvim-satir:first-child { border-top: 0; }
.ik-takvim-satir-tarih {
  display: flex;
  flex: none;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  width: 40px;
  padding: var(--ig-b-4) 0;
  background: var(--ig-zemin);
  border: 1px solid var(--ig-cizgi);
  border-radius: var(--ig-r-6);
}
.ik-takvim-satir-gun {
  font-size: var(--ig-fs-14);
  font-weight: var(--ig-fw-kalin);
  font-variant-numeric: tabular-nums;
  line-height: 1;
  color: var(--ig-metin);
}
.ik-takvim-satir-ay {
  font-size: var(--ig-fs-12);
  color: var(--ig-soluk);
}
.ik-takvim-satir-govde { min-width: 0; }
.ik-takvim-satir-ad {
  overflow: hidden;
  font-size: var(--ig-fs-13);
  font-weight: var(--ig-fw-kalin);
  color: var(--ig-metin);
  text-overflow: ellipsis;
  white-space: nowrap;
}

/* --- 12.9.7 Etkinlik türü etiketi (§1 Durum etiketi: 22px, radius 4) ----- */
.ik-takvim-etiket {
  display: inline-flex;
  align-items: center;
  height: 22px;
  margin-top: var(--ig-b-4);
  padding: 0 var(--ig-b-8);
  font-size: var(--ig-fs-12);
  font-weight: var(--ig-fw-orta);
  border: 1px solid var(--ig-cizgi);
  border-radius: var(--ig-r-4);
}
.ik-takvim-etiket--izin {
  color: var(--ig-mavi);
  background: var(--ig-mavi-zemin);
  border-color: var(--ig-mavi-cizgi);
}
.ik-takvim-etiket--tatil {
  color: var(--ig-sari-metin);
  background: var(--ig-sari-zemin);
  border-color: var(--ig-sari-cizgi);
}
.ik-takvim-etiket--dogum {
  color: var(--ig-yesil-metin);
  background: var(--ig-yesil-acik);
  border-color: var(--ig-yesil-cizgi);
}
.ik-takvim-bos { padding: var(--ig-b-24) var(--ig-b-20); }

/* --- 12.9.8 Etkinlik detay bildirimi (§1 Toast: sağ üst, 360px) ----------
   Eski satır içi `style.cssText` yerine geçer (view'da stil tutulmaz).        */
.ik-takvim-detay {
  position: fixed;
  top: var(--ig-b-20);
  right: var(--ig-b-24);
  z-index: 1080;
  min-width: 360px;
  box-shadow: var(--ig-golge-katman);
}

/* --- 12.9.9 Takvim ızgarası köprüsü (5.4.6 üstüne, FullCalendar 5) ------- */
.ik-takvim .fc .fc-toolbar-title {
  font-size: var(--ig-fs-16);
  font-weight: var(--ig-fw-kalin);
  color: var(--ig-metin);
}
.ik-takvim .fc .fc-col-header-cell-cushion {
  padding: var(--ig-b-8) var(--ig-b-4);
  font-size: var(--ig-fs-12);
  font-weight: var(--ig-fw-kalin);
  color: var(--ig-soluk);
  text-decoration: none;
}
.ik-takvim .fc .fc-daygrid-day-number {
  font-size: var(--ig-fs-13);
  color: var(--ig-metin-2);
  text-decoration: none;
}
.ik-takvim .fc .fc-event {
  padding: 0 var(--ig-b-4);
  font-size: var(--ig-fs-12);
  border: 0;
  border-radius: var(--ig-r-4);
}
.ik-takvim .fc .fc-event.event-izin {
  color: var(--ig-mavi);
  background-color: var(--ig-mavi-zemin);
}
.ik-takvim .fc .fc-event.event-tatil {
  color: var(--ig-sari-metin);
  background-color: var(--ig-sari-zemin);
}
.ik-takvim .fc .fc-event.event-dogum {
  color: var(--ig-yesil-metin);
  background-color: var(--ig-yesil-acik);
}

/* --- 12.9.10 Faz 5 #4: seçili cephe satırı --------------------------------
   11.2 `.facade-card` seçili göstergesi 3px mavi sol kenarlıktı (kapı 5 ve
   §1 "Seçim" ihlali). Seçim artık zemin + yeşil ad ile gösterilir; kenarlık
   şeffaflaşır. Daha spesifik seçici (0,3,1 / 0,3,2) ile 9633-9634 ezilir.    */
.is-cephe-tablo tbody tr.facade-card.active {
  background: none;
  border-left-color: transparent;
  outline: 0;
}
.is-cephe-tablo tbody tr.facade-card.active > td {
  background-color: var(--ig-yesil-secili);
}
.is-cephe-tablo tbody tr.facade-card.active > td.is-cephe-ad,
.is-cephe-tablo tbody tr.facade-card.active > td.is-cephe-ad a {
  color: var(--ig-yesil-metin);
}


/* ==========================================================================
   13. SEÇİM BİLEŞENİ (igSecim)
   ==========================================================================
   assets/js/isgelir-ui.js içindeki igSecim bileşeninin görünümü. select2
   yerine geçer: kap ig-hap-girdi ile aynı yükseklik/yazı/iç boşlukta kalır,
   genişlik içeriğe göre 140-320px arasıdır (select2 kabı filtre çubuğunda
   608px açılıp çubuğu taşırıyordu). Panel §1 "Hap açılır paneli" ölçüsünde:
   240-320 genişlik, 32px arama, 36px seçenek satırı, sağda sayı/alt metin.
   Panel body'ye (ya da kapsayıcıya) taşınır ve position:fixed ile konumlanır;
   left/top/width değerleri JS tarafından atanır.                             */

.ig-secim-kaynak {
  display: none;
}
.ig-secim {
  display: inline-flex;
  flex: none;
  align-items: center;
  gap: var(--ig-b-6);
  box-sizing: border-box;
  min-width: 140px;
  max-width: 320px;
  height: var(--ig-hap-h);
  padding: 0 8px 0 10px;
  font-size: var(--ig-fs-13);
  color: var(--ig-metin);
  cursor: pointer;
  background-color: var(--ig-yuzey);
  border: 1px solid var(--ig-cizgi);
  border-radius: var(--ig-r-6);
}
.ig-secim--sm {
  height: 28px;
  font-size: var(--ig-fs-12);
}
.ig-secim--lg {
  height: 36px;
}
.ig-secim--tam {
  display: flex;
  width: 100%;
  max-width: none;
}
.ig-secim:focus-visible {
  border-color: var(--ig-koyu);
  box-shadow: var(--ig-odak);
  outline: 0;
}
.ig-secim.is-acik {
  border-color: var(--ig-koyu);
  box-shadow: none;
  outline: 0;
}
.ig-secim.is-pasif {
  color: var(--ig-soluk);
  cursor: default;
  background-color: var(--ig-zemin);
}
.ig-secim-deger {
  flex: 1;
  overflow: hidden;
  color: var(--ig-soluk);
  text-overflow: ellipsis;
  white-space: nowrap;
}
.ig-secim.is-secili .ig-secim-deger {
  font-weight: var(--ig-fw-kalin);
  color: var(--ig-metin);
}
.ig-secim-temizle {
  display: inline-flex;
  flex: none;
  align-items: center;
  justify-content: center;
  width: 18px;
  height: 18px;
  padding: 0;
  color: var(--ig-soluk);
  background: none;
  border: 0;
  border-radius: var(--ig-r-4);
}
.ig-secim-temizle:hover {
  color: var(--ig-metin);
  background-color: var(--ig-zemin);
}
.ig-secim-ok {
  display: inline-flex;
  flex: none;
  align-items: center;
  color: var(--ig-soluk);
}
.ig-secim-panel {
  z-index: 1060;
  box-sizing: border-box;
  width: var(--ig-popover-w);
  max-height: 320px;
  padding: 4px;
  overflow-y: auto;
  background-color: var(--ig-yuzey);
  border: 1px solid var(--ig-cizgi);
  border-radius: var(--ig-r-6);
  box-shadow: var(--ig-golge-popover);
}
.ig-secim-arama {
  padding: 2px 2px 6px;
}
.ig-secim-arama-girdi {
  box-sizing: border-box;
  width: 100%;
  height: 32px;
  padding: 0 8px;
  font-family: inherit;
  font-size: var(--ig-fs-13);
  color: var(--ig-metin);
  background-color: var(--ig-yuzey);
  border: 1px solid var(--ig-cizgi);
  border-radius: var(--ig-r-6);
}
.ig-secim-arama-girdi:focus {
  border-color: var(--ig-koyu);
  box-shadow: none;
  outline: 0;
}
.ig-secim-grup {
  padding: 8px 6px 4px;
  font-size: var(--ig-fs-12);
  color: var(--ig-soluk);
}
.ig-secim-secenek {
  display: flex;
  align-items: center;
  gap: 6px;
  height: 36px;
  padding: 0 6px;
  font-size: var(--ig-fs-13);
  color: var(--ig-metin);
  cursor: pointer;
  border-radius: var(--ig-r-6);
}
.ig-secim-secenek.is-aktif {
  background-color: var(--ig-zemin);
}
.ig-secim-secenek[aria-selected="true"] {
  font-weight: var(--ig-fw-kalin);
  background-color: var(--ig-yesil-secili);
}
.ig-secim-secenek.is-pasif {
  color: var(--ig-soluk);
  cursor: default;
}
.ig-secim-tik {
  display: inline-flex;
  flex: none;
  align-items: center;
  justify-content: center;
  width: 12px;
  color: var(--ig-yesil-metin);
}
.ig-secim-ad {
  flex: 1;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.ig-secim-sag {
  flex: none;
  font-size: var(--ig-fs-12);
  color: var(--ig-soluk);
}
.ig-secim-bos,
.ig-secim-dipnot {
  padding: 10px 8px;
  font-size: var(--ig-fs-13);
  color: var(--ig-soluk);
}
.ig-secim-dipnot {
  font-size: var(--ig-fs-12);
  border-top: 1px solid var(--ig-cizgi);
}

/* ==========================================================================
   14. İPUCU (igIpucu)
   ========================================================================== */
/* ==========================================================================
   14. İPUCU (igIpucu)
   ==========================================================================
   Bootstrap Tooltip/Popper kullanılmaz (5.0.0 API sınırı). Kutu body'ye bir kez
   eklenir, position fixed olduğu için tablo overflow'u kırpmaz.

   Yüzey kararı — koyu zemin (§1 uyumu): Toast ve sağ panel beyaz/kenarlı KALICI
   yüzeylerdir, içlerinde eylem taşırlar. İpucu ise geçici mikro-etikettir; beyaz
   kart dilini kullanırsa tablonun üstünde ikinci bir panel gibi okunur. Koyu bant rengi
   (--ig-koyu) zaten 12px beyaz-soluk etiket taşıyan yüzeydir; ipucu aynı tipografik
   rolü sürdürür ve kalıcı yüzeylerden bakışta ayrışır. Ok çizilmez: 240px'e kadar
   genişleyen kutu viewport'a yatayda sıkıştırıldığında ok hedefin ortasından
   kayar; 4px radius'lu küçük kutuda yönü konumun kendisi taşır.
   ========================================================================== */
.ig-ipucu {
  position: fixed;
  top: 0;
  left: 0;
  z-index: 100010;
  max-width: 240px;
  padding: var(--ig-b-4) var(--ig-b-8);
  font-family: var(--ig-font);
  font-size: var(--ig-fs-12);
  font-weight: var(--ig-fw-orta);
  line-height: var(--ig-lh-govde);
  color: var(--ig-beyaz);
  pointer-events: none;
  visibility: hidden;
  opacity: 0;
  background-color: var(--ig-koyu);
  border-radius: var(--ig-r-4);
  box-shadow: var(--ig-golge-popover);
  transition: opacity 0.12s ease, visibility 0.12s ease;
}

.ig-ipucu.is-acik {
  visibility: visible;
  opacity: 1;
}

@media (prefers-reduced-motion: reduce) {
  .ig-ipucu {
    transition: none;
  }
}

/* 13. ÜRETİM GENEL ÖZETİ */
/* views/urt/anasayfa.php — dashboard_hero → .ig-bant-govde (KPI) → .ig-ozet-bolum.
   Bölüm ritmi artık ortak kural: 4.1b .ig-ozet-bolum (view'da sınıf adı değişti:
   urt-ozet-bolum → ig-ozet-bolum). Kart, KPI ve kart başlığı markup'ı ortak
   partial'lardan gelir, burada tanımlanacak bölüme özgü kural kalmadı. */

/* 14. PROFİL DROPDOWN (üst kabuk kullanıcı menüsü) */
/* views/layout/sidebar.php — .ig-kabuk-kullanici / .ig-kabuk-kullanici-menu.
   Taban kurallar bölüm 7.4'te; burada yalnız ekleniyor / cascade ile override
   ediliyor, 7.4 bloğu satır kaydırma çakışmasını önlemek için değiştirilmedi. */
.ig-kabuk-avatar {
  border: 1px solid var(--ig-beyaz-kenar);
  border-radius: 50%;
}
.ig-kabuk-kullanici-bas-rol {
  color: var(--ig-soluk);
}
.ig-kabuk-kullanici-bas-firma {
  display: inline-block;
  align-self: flex-start;
  margin-top: 3px;
  padding: 1px 8px;
  font-size: 11px;
  font-weight: var(--ig-fw-kalin);
  color: var(--ig-metin-2);
  background: var(--ig-zemin);
  border-radius: var(--ig-r-6);
}
.ig-kabuk-kullanici-cikis {
  color: var(--ig-kirmizi);
}
.ig-kabuk-kullanici-cikis:hover,
.ig-kabuk-kullanici-cikis:focus {
  color: var(--ig-kirmizi);
  background: var(--ig-kirmizi-zemin);
}

/* 15. FİLTRE BARI (layout/filter_bar.php + hap markup'ının elle tekrarlandığı
   8 view: muh_report_header, svk/rut_listesi, muh/cek_senet/{cek,senet}_listesi,
   muh/uretim/{listesi,gecmis}, ik/{puantaj_cetveli,vardiya_plani}).
   Kök nedenler:
   1) select.ig-hap-girdi'ye input.ig-hap-girdi ile eşdeğer sabit genişlik
      tanımlı DEĞİLDİ (3026-3028) → select tarayıcının en uzun <option>'ına göre
      serbest genişlik alıyor, input'lar 172/120/200px'e sabit; aynı satırdaki
      "Cari kategorisi" / "Ürün kategorisi" farklı genişliklerde oluşup dar
      ekranda öngörülemez noktada sarıyor ("altlı üstlü kalmış").
   2) 9.3'teki .filter-input/.filter-select/.datepicker-input:not(.form-control)
      kuralı (3272-3285) iki class'lık seçici olduğu için tek class'lık
      .ig-hap-girdi'den (8.3, 3014) daha yüksek özgüllükte; hap içine yanlışlıkla
      "datepicker-input" da eklenen alan (muh/uretim/listesi.php:36) kendi opak
      arka planını + kenarlığını + width:100%'ünü hap'ın şeffaf/kenarlıksız
      girdisinin üstüne yazıyor → tarih kutusu diğer haplardan farklı, kendi
      çerçevesiyle "patlamış" görünüyor. Aşağıdaki blok bu iki class'ı hap
      bağlamında etkisiz kılar; .filter-input/.filter-select'in kendi
      (hap DIŞI) kullanımları (rapor filtreleri vb.) değişmez. */
.ig-hap-girdi,
.ig-hap-girdi.filter-input,
.ig-hap-girdi.filter-select,
.ig-hap-girdi.datepicker-input:not(.form-control) {
  box-sizing: border-box;
  width: auto;
  height: 30px;
  padding: 0;
  background-color: transparent;
  background-image: none;
  border: 0;
  border-radius: 0;
  box-shadow: none;
}
input.ig-hap-girdi,
input.ig-hap-girdi.datepicker-input:not(.form-control) {
  width: 172px;
}
select.ig-hap-girdi,
select.ig-hap-girdi.filter-select {
  width: 172px;
  padding-right: 0;
  cursor: pointer;
  -webkit-appearance: menulist;
  -moz-appearance: menulist;
  appearance: menulist;
}
.ig-hap--sm input.ig-hap-girdi,
.ig-hap--sm select.ig-hap-girdi { width: 120px; }
.ig-hap--lg input.ig-hap-girdi,
.ig-hap--lg select.ig-hap-girdi { width: 200px; }
/* Hap etiketi + girdisi tek satırda hizalı kalsın; select'in native ok'u
   kutunun dışına taşmasın. */
.ig-hap--alan {
  align-items: center;
}
.ig-hap--alan .ig-hap-girdi {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
/* Dar ekranda kontrolsüz taşma yerine düzenli sarma (satır aralığı ile). */
@media (max-width: 767.98px) {
  .ig-arac.ig-filtre {
    row-gap: var(--ig-b-8);
  }
}

/* --- 15.1 Yükseklik eşitleme (filtre barındaki her kontrol 32px) -----------
   Ölçüm (production, muh/uretim, getBoundingClientRect().height):
   arama 30 · tarih 30 · cari kategorisi 32 · ürün kategorisi 32 · "Ara" 32.
   Kök neden iki katmanın karışması: dış kutular (.ig-arama, .ig-hap) 32px
   (--ig-hap-h) iken iç girdiler (.ig-arama input = %100, .ig-hap-girdi = 30px)
   kendi başlarına ölçülebiliyor; select ise menulist görünümü yüzünden 30px'e
   inmeyip 32px'te kalıyor ve 32px'lik etiketin 30px'lik içerik kutusunu 2px
   taşırıyor. Aşağıdaki blok iki katmanı da sabitler: dış kutu 32, iç kontrol 30
   (32 − 2×1px kenarlık) — böylece hem dıştan hem içten ölçüm tutarlı çıkar.
   Hedef 32px: --ig-hap-h token'ı ve 8.3/9.3 blok başlıklarındaki "§1 Hap filtre
   çubuğu: 32px" kuralı ile aynı; tasarim-referanslari tablo-dashboard.md'de de
   küçük buton / sayfa boyutu seçici h-8 = 32px. Yeni bir ölçü uydurulmadı.
   Seçiciler .ig-arac ile kapsandı: 9.3'teki .filter-input/.filter-select/
   .datepicker-input kurallarını yalnız filtre barı içinde geçer, bar dışındaki
   (rapor filtresi, modal) kullanımları değişmez. */
.ig-arac .ig-arama,
.ig-arac .ig-hap,
.ig-arac .ig-hap-ekle,
.ig-arac .btn,
.ig-arac .ig-ikon-dugme {
  box-sizing: border-box;
  height: var(--ig-hap-h);
  min-height: var(--ig-hap-h);
}
.ig-arac .btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding-top: 0;
  padding-bottom: 0;
  line-height: 1;
}
.ig-arac .ig-arama input,
.ig-arac input.ig-hap-girdi,
.ig-arac select.ig-hap-girdi,
.ig-arac input.ig-hap-girdi.datepicker-input:not(.form-control),
.ig-arac select.ig-hap-girdi.filter-select {
  box-sizing: border-box;
  height: 30px;
  min-height: 30px;
  max-height: 30px;
  padding-top: 0;
  padding-bottom: 0;
  line-height: 30px;
  vertical-align: middle;
}
/* Etiket ile girdi ortak taban çizgisinde: bar 52px, kontroller 32px ve ortalı. */
.ig-arac,
.ig-arac .ig-arama,
.ig-arac .ig-hap,
.ig-arac .ig-hap--alan,
.ig-arac .ig-arac-sag {
  align-items: center;
}

/* 16. KLAVYE KISAYOLLARI (isgelir-ui.js bölüm 15, igKisayol).
   Yardım penceresi JS ile inject edilen application/views/layout/kisayol_yardimi.php
   markup'ı ile birebir aynıdır; buradaki kurallar yalnız o modalın ve keşif düğmesinin
   görünümünü tanımlar, mevcut hiçbir kural değiştirilmedi. */
.ig-kisayol-tus {
  display: inline-block;
  padding: 1px 6px;
  font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: 12px;
  color: var(--ig-metin-2);
  background-color: var(--ig-zemin);
  border: 1px solid var(--ig-cizgi-koyu);
  border-radius: var(--ig-r-6);
  box-shadow: var(--ig-golge-kart);
}
.ig-kisayol-tablo th,
.ig-kisayol-tablo td {
  vertical-align: middle;
}
.ig-kisayol-not {
  margin: var(--ig-b-8) 0 0;
  font-size: 12px;
  color: var(--ig-soluk);
}
/* Keşif düğmesi: sol-alt, 24/24 — global-chat-fab sağ-alt 24/24 ile çakışmasın. */
.ig-kisayol-tetik {
  position: fixed;
  left: 24px;
  bottom: 24px;
  z-index: 99998;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 6px 10px;
  font-size: 12px;
  font-weight: var(--ig-fw-kalin);
  color: var(--ig-metin-2);
  background-color: var(--ig-yuzey);
  border: 1px solid var(--ig-cizgi);
  border-radius: var(--ig-r-8);
  box-shadow: var(--ig-golge-kart);
  cursor: pointer;
}
.ig-kisayol-tetik:hover,
.ig-kisayol-tetik:focus {
  color: var(--ig-birincil);
  border-color: var(--ig-birincil);
}
.ig-kisayol-tetik .ig-kisayol-tus {
  box-shadow: none;
}
@media (max-width: 767.98px) {
  .ig-kisayol-tetik {
    display: none;
  }
}


/* --- 15.2 Sohbet paneli yeniden tasarımı (2026-09-22) ---------------------
   9.19'un üstüne biner; 9.19 yerleşimi (yükseklik zinciri, kaydırma, liste ↔
   konuşma geçişi) korunur, burada görsel karar değişir.

   Kök nedenler ve karşılıkları:
   - Gönderen adı BALONUN İÇİNDEYDİ. Uzun bir ad ("Mehmet Ali Karadeniz")
     balonun en dar halini belirliyordu; iki harflik mesaj bile geniş çiziliyordu.
     Ad artık balonun dışında, blok başlığı olarak bir kez yazılıyor;
     balon .chat-bubble { width: fit-content } ile içeriğine göre daralıyor.
   - Mesaj zemini ile balon zemini ikisi de çok açıktı (#FAFAFA / #FFF),
     balon yalnız 1px çizgiyle ayrılıyordu. Zemin --ig-gri-zemin'e indi,
     beyaz balon artık kendi kendine okunuyor.
   - Kendi mesaj: sağda + --ig-yesil-acik dolgu. Karşı: solda + beyaz + avatar.
     Köşe yarıçapı yön veriyor (tail köşesi 2px), ayrı bir ok/üçgen yok.
   Kapı 67: avatar kimlik verisidir (baş harf), süs ikon kutusu değil; kanal
   satırında ve başlıkta ikon kutusu yok. */

/* Panel: 460 -> 480; balon ölçeği ve dosya eki satırı 460'ta sıkışıyordu. */
.global-chat-panel { width: min(480px, 100vw); }

.global-chat-shell .chat-messages,
.chat-messages { padding: var(--ig-b-16); background-color: var(--ig-gri-zemin); }

/* Satır: [avatar] [ad + balon]. Kendi mesajda avatar yok, blok sağa yaslanır. */
.chat-row { display: flex; gap: var(--ig-b-8); align-items: flex-start; margin-bottom: 0; }
.chat-row--bas { margin-top: var(--ig-b-12); }
.chat-row--devam { margin-top: 4px; }
.chat-row:first-child { margin-top: 0; }
.chat-row-govde { display: flex; flex-direction: column; min-width: 0; }
.chat-row--own .chat-row-govde { align-items: flex-end; }

/* Avatar: 28px, baş harf. Devam satırlarında yalnız hizayı koruyan boşluk. */
.chat-avatar {
  display: inline-flex;
  flex: none;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  font-size: var(--ig-fs-12);
  font-weight: var(--ig-fw-kalin);
  color: var(--ig-metin-2);
  background-color: var(--ig-cizgi);
  border-radius: 50%;
}
.chat-avatar--bos { background: none; }

.chat-sender {
  display: block;
  margin: 0 0 4px;
  font-size: var(--ig-fs-13);
  font-weight: var(--ig-fw-kalin);
  color: var(--ig-metin-2);
  text-transform: none;
}

.chat-bubble {
  position: relative;
  width: fit-content;
  max-width: 100%;
  padding: 8px 12px;
  font-size: var(--ig-fs-14);
  line-height: var(--ig-lh-govde);
  white-space: pre-wrap;
  word-break: break-word;
  border: 1px solid transparent;
  border-radius: var(--ig-r-8);
}
.global-chat-shell .chat-bubble { max-width: 100%; }
.chat-row-govde { max-width: min(380px, 86%); }
.chat-bubble--own {
  color: var(--ig-metin);
  background-color: var(--ig-yesil-acik);
  border-color: var(--ig-yesil-cizgi);
  border-bottom-right-radius: 2px;
}
.chat-bubble--other {
  color: var(--ig-metin);
  background-color: var(--ig-yuzey);
  border-color: var(--ig-cizgi);
  border-bottom-left-radius: 2px;
}
.chat-row--devam .chat-bubble--own { border-top-right-radius: 2px; }
.chat-row--devam .chat-bubble--other { border-top-left-radius: 2px; }
.chat-meta { margin-top: 4px; }

/* Boş durum ve yükleniyor: ortak .ig-bos kalıbı (ikon yok). */
.chat-bos {
  align-items: center;
  justify-content: center;
  min-height: 160px;
  padding: var(--ig-b-24) var(--ig-b-16);
  text-align: center;
}
.chat-bos .ig-bos-metin { margin-inline: auto; }
.chat-empty-state { padding: 0; background-color: var(--ig-gri-zemin); }
.chat-yukleniyor {
  display: flex;
  gap: var(--ig-b-8);
  align-items: center;
  justify-content: center;
  padding: var(--ig-b-12);
  font-size: var(--ig-fs-13);
  color: var(--ig-soluk);
}

/* Görsel ek: tıklanabilir, ölçülü, altında dosya adı + boyut. */
.chat-attachment--image { max-width: 260px; }
.chat-attachment-image { width: 100%; max-height: 240px; object-fit: cover; }
.chat-attachment-image-btn { display: block; width: 100%; cursor: pointer; }
.chat-attachment-image-btn:focus-visible { outline: 2px solid var(--ig-birincil); outline-offset: 2px; }
.chat-attachment-image-caption {
  display: block;
  overflow: hidden;
  padding: 4px 8px;
  font-size: var(--ig-fs-12);
  color: var(--ig-soluk);
  text-overflow: ellipsis;
  white-space: nowrap;
  border-top: 1px solid var(--ig-cizgi);
}
.chat-image-preview-meta {
  margin: var(--ig-b-8) 0 0;
  font-size: var(--ig-fs-13);
  color: var(--ig-soluk);
  text-align: center;
}

/* Başlık rozeti artık etiketli ("N çevrimiçi" / "Bağlanıyor"); dar ekranda da kalsın. */
.chat-status-pill { display: inline-flex; }

/* Anasayfa sohbet kartı: satırlar <a> değil <button> (paneli açar, sayfa değiştirmez). */
button.ig-ana-oda {
  width: 100%;
  text-align: left;
  background: none;
  border-right: 0;
  border-bottom: 0;
  border-left: 0;
  cursor: pointer;
}
button.ig-ana-oda:hover { color: var(--ig-metin); background-color: var(--ig-yesil-hover); }

@media (max-width: 575.98px) {
  .chat-row-govde { max-width: 88%; }
}

/* --- 15.3 ig-hap içindeki igSecim vekili (2026-09-22) ---------------------
   footer.php initBusinessSelect2() id/name'i "cari"/"personel"/"sorumlu"
   içeren select'leri igSecim'e yükseltir. Bu kural artık .ig-hap içindeki
   select'leri kapsam dışı bırakıyor (bkz. footer.php), ama bir .ig-hap
   içine ileride bilerek igSecim bağlanırsa (örn. gerçekten arama gerektiren
   uzun bir liste) komşu native <select class="ig-hap-girdi"> ile GÖRSEL
   OLARAK aynı kalsın diye bu blok kalıcı bir güvenlik ağı olarak duruyor.
   Kök nedenler (muh/uretim, #cari_kategori_id ölçümü, düzeltilmeden önce):
   - Çift çerçeve: .ig-hap zaten 1px kenarlık çiziyor, vekil (.ig-secim)
     kendi 1px kenarlığını + zeminini üstüne bindiriyordu.
   - Gri metin: .ig-secim-deger boşken/seçiliyken ayrı renk taşıyordu; native
     .ig-hap-girdi { color:inherit } her durumda tek renk kullanıyor.
   - Taşma: taban §13 kuralındaki .ig-secim--tam { width:100% } shrink-to-fit
     .ig-hap içinde genişliği kendi içeriğiyle döngüsel hesaplayıp 238px'e
     çıkıyor, 172px'lik hap'tan 89px taşıyordu (ok komşu hap'ın altında
     kalıyordu). Taban kural DEĞİŞMEDİ (.ig-hap dışı select2 köprüsü
     kullanımlarını etkilemesin diye); yalnız bu kapsamda native kardeşiyle
     (172/120/200) aynı sabit genişliğe kilitlendi. */
.ig-hap .ig-secim {
  height: 30px;
  min-width: 0;
  width: 172px;
  max-width: 172px;
  padding: 0 8px 0 10px;
  color: var(--ig-metin);
  background: transparent;
  border: 0;
  border-radius: 0;
}
.ig-hap .ig-secim--tam {
  width: 172px;
  max-width: 172px;
}
.ig-hap--sm .ig-secim,
.ig-hap--sm .ig-secim--tam {
  width: 120px;
  max-width: 120px;
}
.ig-hap--lg .ig-secim,
.ig-hap--lg .ig-secim--tam {
  width: 200px;
  max-width: 200px;
}
.ig-hap .ig-secim-deger {
  color: var(--ig-metin);
}
.ig-hap .ig-secim:focus-visible,
.ig-hap .ig-secim.is-acik {
  border: 0;
  box-shadow: none;
  outline: 0;
}

/* ==========================================================================
   17. TARİH KISAYOL ŞERİDİ (ikInitDatepicker, footer.php)
   ========================================================================== */
/* singleDatePicker + ranges birlikte çalışmadığı için footer.php kendi şeridini
   picker.container altına enjekte ediyor (Bugün/Dün/Yarın/Temizle). 9.16'daki
   .ranges li diliyle aynı aile (nötr metin, hover zemin), ayrı bir renk yok. */
.ig-tarih-kisayol {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  padding: var(--ig-b-8) var(--ig-b-12);
  border-top: 1px solid var(--ig-cizgi);
}
.ig-tarih-kisayol-btn {
  height: 27px;
  padding: 0 10px;
  font-size: var(--ig-fs-12);
  font-weight: var(--ig-fw-orta);
  color: var(--ig-metin-2);
  cursor: pointer;
  background-color: var(--ig-zemin);
  border: 1px solid var(--ig-cizgi-koyu);
  border-radius: var(--ig-r-6);
}
.ig-tarih-kisayol-btn:hover {
  color: var(--ig-metin);
  background-color: var(--ig-gri-zemin);
}
.ig-tarih-kisayol-btn:disabled {
  cursor: not-allowed;
  opacity: 0.45;
}
.ig-tarih-kisayol-btn--temizle {
  color: var(--ig-soluk);
}

/* ==========================================================================
   18. KISAYOL TABLOSU PLATFORM UYARISI
   macOS'ta F4 isletim sistemi tarafindan tuketilir, tarayiciya ulasmaz
   (2026-09-22 dogrulandi; kod tarafi dogru, ortam kaynakli sinirlama).
   ========================================================================== */
.ig-kisayol-uyari {
  margin-left: var(--ig-b-4);
  font-size: 11px;
  color: var(--ig-soluk);
}

/* ==========================================================================
   19. MOBİL DOKUNMA HEDEFİ GENİŞLETME (375px denetiminde ölçülen küçük
   hedefler; 2026-09-22). Görsel kutu ölçüsü DEĞİŞMEZ — yalnız görünmez
   ::after katmanıyla dokunma alanı büyütülür (position:relative + inset).
   Komşu tıklanabilir öğeyle çakışma riski olan yerlerde hedef asimetrik
   ya da 44px altında tutulur; gerekçe her alt bölümde yazılıdır.
   ========================================================================== */
@media (max-width: 480px) {
  /* --- 19.1 Filtre hapı kaldırma oku (a.ig-hap-kapat, ölçülen 20×20,
     filter_bar.php + muh/uretim/gecmis.php, 22 ekran). Sağda bir sonraki
     hap --ig-b-8 (8px) uzakta; sağa geniş taşarsa komşu hapın alanını
     yer. Solda yalnız kendi hapının tıklanamayan metni var (güvenli).
     Sonuç: 40×40 (sağ dar, sol geniş). */
  .ig-hap-kapat { position: relative; }
  .ig-hap-kapat::after {
    content: '';
    position: absolute;
    top: -10px;
    right: -6px;
    bottom: -10px;
    left: -14px;
  }

  /* --- 19.2 igSecim temizle düğmesi (button.ig-secim-temizle, ölçülen
     18×18, isgelir-ui.js). Sağda --ig-b-6 (6px) ötede .ig-secim-ok var;
     kutunun tamamı tıklanınca panel açılır (isgelir-ui.js click handler,
     yalnız temizleEl.contains(target) ise temizler). Sağa taşan bir hedef
     "aç" niyetini "temizle"ye çevirir → sağ dar (-5px) tutulur, sol/üst/
     alt geniş. Sonuç: 36×36. */
  .ig-secim-temizle { position: relative; }
  .ig-secim-temizle::after {
    content: '';
    position: absolute;
    top: -9px;
    right: -5px;
    bottom: -9px;
    left: -13px;
  }

  /* --- 19.3 Cari adres bağlantısı (button.ig-cari-baglanti.js-cari-adresleri,
     ölçülen 43×20, muh/cari/cari_listesi.php, 4 ekran). Hücre dolgusu 12px
     (.table > :not(caption) > * > *), satır yüksekliği taban 44px + kart
     özel 6+6px dolgu (iki satırlı ünvan hücresi) ile ≥56px'e çıkıyor;
     komşu sütuna da 12px dolgu payı var. Çakışma riski yok → tam 44×44.
     .ig-cari-baglanti (fiyat listesi bağlantısı) kapsam dışı bırakıldı,
     denetimde ölçülmedi. */
  .ig-cari-baglanti.js-cari-adresleri { position: relative; }
  .ig-cari-baglanti.js-cari-adresleri::after {
    content: '';
    position: absolute;
    top: -12px;
    right: -1px;
    bottom: -12px;
    left: -1px;
  }

  /* --- 19.4 Liste seçim kutuları (.ig-sec-hucre içindeki
     .it-erisim-checkbox: #cariSecTumu, #personelSecTumu, satır .js-cari-sec/
     .js-personel-sec — muh/cariler, ik/personeller). Görsel kutu 16×16
     (TUTARLILIK §1) ve appearance:none/width/height DEĞİŞTİRİLMEDİ (bkz.
     9b.1 "legacy checkbox hijack" notu). Başlık satırı --ig-baslik-h 40px
     sabit; 16px kutunun her yönde yalnız 12px payı var, tam 44 dikeyde bu
     payı aşıp bir alttaki satırın kutusuna taşabilir → dikey ölçülü (-6px,
     28px) tutuldu, yatayda kolon boşluğu bol olduğu için -8px (32px)
     kullanıldı. Sonuç: 32×28. .ig-sec-hucre DIŞINDAKİ it-erisim-checkbox
     kullanımları (puantaj_cetveli, personel_detayi_ekranyetkisi — yoğun
     ızgara, ölçülmedi) kapsam dışı bırakıldı. */
  .ig-sec-hucre .it-erisim-checkbox.form-check-input { position: relative; }
  .ig-sec-hucre .it-erisim-checkbox.form-check-input::after {
    content: '';
    position: absolute;
    top: -6px;
    right: -8px;
    bottom: -6px;
    left: -8px;
  }
}

/* --- 19.5 Oturum yönetimi "N oturum" düğmesi (admin/oturum_yonetimi.php,
   ölçülen 56×15, eski class'ta .p-0 Bootstrap utility'si !important ile
   dolguyu sıfırlıyordu). Genişlik değil, gerçek dokunma yüksekliği
   büyütülür; metin görünümü (link rengi/altı çizgisiz) korunur. Tüm genişlik
   aralıklarında geçerli — 15px yükseklik yalnız mobilde değil masaüstünde de
   dar bir hedeftir. */
.ig-oturum-satir-buton {
  display: inline-flex;
  align-items: center;
  min-height: 32px;
  padding: 6px 0;
}

/* ==========================================================================
   20. 2026-09-23 TOPLU UI DÜZELTMESİ (denetim: docs/screenshots/2026-09-23-ui/rapor.json)
   Her alt bölüm tek bir iş paketine aittir; paket yalnız kendi işaretleri arasına yazar.
   ========================================================================== */

/* 20A · Kabuk: modül menüsü ikonları, modül sekmeleri, igSecim/select yüksekliği */
/* Modül dropdown/dugme: ikon + ad + ok arasi 10px (18px ikon, metinle dikey ortali).
   .ig-kabuk-menu-oge zaten 10px gap tasiyor (§7.5); yalniz dugme 8px'ten 10'a cikti. */
.ig-kabuk-modul-dugme {
  gap: 10px;
}
/* Ust cubuktaki modul dugmesinde aktif modulun ikonu gorunur, digerleri gizli
   (modulGoster() sayfa yenilenmeden data-modul-ikon'u aktif moduile esler). */
.ig-kabuk-modul-simge {
  display: none;
}
.ig-kabuk-modul-simge.is-aktif {
  display: flex;
}

/* Tablet hizasizligi (768-1199px): .ig-kabuk yan bosluğu clamp(16px,8.33vw,120px)
   iken .ig-bant/.ig-bant-govde/.ig-ozet-bolum/.common-dashboard-hero (ve digerleri)
   sabit --ig-bant-x=120px kullaniyordu (§4.1 TODO satiri bunu zaten not etmisti).
   768: kabuk 64px / bant 120px (56px fark) · 1024: 85 / 120 (35px) · 1180: 98 / 120
   (22px) · 1440+: ikisi de 120, fark yok. Tek gutter degerine baglamak icin
   degiskenin KENDISI clamp'e cevrildi; --ig-bant-x'i kullanan 14 kural (ig-bant,
   ig-bant-govde, ig-ozet-bolum, common-dashboard-hero/surface, ig-kabuk'un kendi
   clamp'i dahil) tek noktadan ayni degeri alir, .ig-kabuk zaten clamp icinde
   var(--ig-bant-x)'i UST SINIR olarak kullandigi icin ic ice clamp matematiksel
   olarak ayni sonucu verir (regresyon yok). <768px .ig-bant medya sorgusu duz
   16px ZORLUYOR (bu degiskeni kullanmiyor), bu yuzden telefon kirilim noktasina
   dokunulmadi. */
:root {
  --ig-bant-x: clamp(var(--ig-b-16), 8.33vw, 120px);
}

/* igSecim (footer.php initBusinessSelect2 -> igSecim.kur, ebat varsayilani 'md')
   DOM'a "ig-secim ig-secim--md" sinifini yaziyor ama §13 yalniz --sm(28px)/--lg(36px)
   tanimliyor; --md hic tanimlanmamis, taban .ig-secim{height:var(--ig-hap-h)}=32px'e
   duşuyordu. Komsu .form-control/.form-select 40px (--ig-girdi-h) oldugu icin
   sps/irsaliye/olustur formunda 32px/40px uyumsuzlugu olusuyordu (kok neden). Tek
   class ekleyerek duzeltiliyor: --sm/--lg ve .ig-hap .ig-secim (filtre cubugu,
   daha yuksek ozgullukte, 30px) etkilenmez. */
.ig-secim--md {
  height: var(--ig-girdi-h);
}

/* Ek bulgu (deploy sonrası, 1440px): modül sekme satırı §4.2/§7.6'daki 1600px-alti
   "taşma" numarasıyla bant/logo/kartlardan sola kayıyordu. Kök neden: §4.2 (satır
   ~2459-2464) 992-1599.98 araliginda .ig-kabuk .ig-modul-sekme'ye NEGATIF margin
   veriyor (calc(16px - clamp(16,8.33vw,--ig-bant-x))) — 1440px'de bu -104px'e denk
   gelir, sekme kutusu+alt çizgisi 16→1424 (1408px) genişler; ayni genislikte
   .ig-bant/.ig-bant-govde/.ig-ozet-bolum/logo ise --ig-bant-x=120px dolgusunda
   kalir (120→1320). Numara sekme sayisi sigsin diye eklenmisti; hizalamayi bozdugu
   icin 992-1599.98 araliginda notrlendi. Sekme sayisi gutter'a sigmazsa mevcut
   nowrap + overflow:visible tasma davranisi (§4.2/§7.6, DOKUNULMADI) surer. */
@media (min-width: 992px) and (max-width: 1599.98px) {
  .ig-kabuk .ig-modul-sekme {
    margin-left: 0;
    margin-right: 0;
  }
}

/* Ek bulgu: sabit "Kısayollar" (sol-alt) ve sohbet (sağ-alt) düğmeleri, sayfaya
   yapışan alt kaydet çubuklarının (§20D .ig-form-altlik, §20F .svk-form-alt,
   muh/evrak .irs-form-altlik/.irs-olustur-altlik, fatura/tahsilat/depozito/
   muh-ayar/is-proje/is-teklif/is-ziyaret/ik-birim "-altlik" ailesi) solundaki/
   sağındaki içeriği (ör. "…Cari, başlık ve tarih zorunludur." ipucu) örtüyordu.
   Tek genel kural: sayfada BUNLARDAN biri varsa iki sabit düğme çubuğun ÜSTÜNE
   çıkar (24 taban + 44 buton + 24 çubuk dolgu + 8 boşluk = 100px). Kısayollar
   düğmesi zaten ≤767.98px'te gizli (yukarıda); sohbet düğmesi mobilde görünür
   kalmaya devam eder, iki satıra düşen çubuklarda kısmi örtüşme kalabilir. */
body:has(.ig-form-altlik, .irs-form-altlik, .irs-olustur-altlik, .fatura-form-altlik,
  .tahsilat-form-altlik, .depozito-altlik, .muh-ayar-altlik, .is-proje-altlik,
  .is-teklif-altlik, .is-ziyaret-altlik, .ik-birim-altlik, .svk-form-alt) .ig-kisayol-tetik,
body:has(.ig-form-altlik, .irs-form-altlik, .irs-olustur-altlik, .fatura-form-altlik,
  .tahsilat-form-altlik, .depozito-altlik, .muh-ayar-altlik, .is-proje-altlik,
  .is-teklif-altlik, .is-ziyaret-altlik, .ik-birim-altlik, .svk-form-alt) .global-chat-fab {
  bottom: 100px;
}
/* 20A son */

/* 20B · Rapor sayfaları: üst sekme + içerik kabı */
/* layout/report_catalog: kategori gezgini soldan üste taşındı (ik/is/svk/urt/muh raporlar girişi).
   768px altı zaten yatay hap şeridiydi (10.4.4, dokunulmadı); burada yalnız ≥768px için 10.4.1-10.4.2
   tabanının üstüne binen kurallar var, aynı kalıp: .nav-tabs / layout/detail_tabs (.ig-alt-serit-oge)
   alt çizgili sekme dili. Kart artık .ig-bant-govde ile banda bindiriliyor (diğer liste ekranları gibi). */
@media (min-width: 768px) {
  .ig-rk-govde { flex-direction: column; }
  .ig-rk-gezgin {
    flex-direction: row;
    align-items: stretch;
    width: auto;
    gap: var(--ig-b-20);
    padding: 0 var(--ig-b-20);
    overflow-x: auto;
    overflow-y: hidden;
    border-right: 0;
    border-bottom: 1px solid var(--ig-cizgi);
  }
  .ig-rk-kat {
    flex: none;
    min-height: var(--ig-alt-serit-h);
    margin: 0;
    padding: 0 var(--ig-b-4);
    border-radius: 0;
    border-bottom: 2px solid transparent;
    white-space: nowrap;
  }
  .ig-rk-kat:hover { background-color: transparent; }
  .ig-rk-kat.is-secili { background-color: transparent; border-bottom-color: var(--ig-birincil); }
  .ig-rk--arama .ig-rk-kat.is-secili { border-bottom-color: transparent; }
}
/* 20B son */

/* 20C · İK ekranları */
/* 20C.1 İK liste kartları: filtre çubuğu sığmayınca satır kırar.
   Kök neden: .ig-arac ≥768px'te nowrap; personel çubuğu (arama 320 + 3 seçici +
   tarih + sayaç + Yazdır/Excel) 1200px kartı aşıyor, .ik-personel-kart overflow:hidden
   sağdaki .ig-arac-sag'ı (Yazdır) kesiyordu. Sağ grup margin-left:auto ile sağda kalır. */
.ik-personel-kart > .ig-arac,
.ik-izin-kart > .ig-arac,
.ik-masraf-kart > .ig-arac,
.ik-mali-kart > .ig-arac {
  flex-wrap: wrap;
  row-gap: var(--ig-b-8);
  padding-top: var(--ig-b-10, 10px);
  padding-bottom: var(--ig-b-10, 10px);
}
.ik-personel-kart > .ig-arac .ig-arama { width: 280px; }

/* 20C.2 ik/takvim: FullCalendar araç çubuğu kart gövdesine hizalı (başlık solda,
   Bugün + önceki/sonraki sağda); 5.4.6'daki 0 .75rem kenar boşluğu burada sıfırlanır. */
.content-wrapper .ik-takvim .fc .fc-toolbar.fc-toolbar {
  margin: 0 0 var(--ig-b-12);
  padding: 0;
}
.content-wrapper .ik-takvim .fc .fc-toolbar-chunk {
  display: flex;
  align-items: center;
  gap: var(--ig-b-8);
}
.content-wrapper .ik-takvim .fc .fc-button-primary { border-radius: var(--ig-r-6); box-shadow: none; }
.content-wrapper .ik-takvim .fc .fc-button-primary:focus { box-shadow: var(--ig-odak); }
.content-wrapper .ik-takvim .fc .fc-button-primary:disabled { opacity: 0.5; }
.ik-takvim .fc-theme-standard td,
.ik-takvim .fc-theme-standard th,
.ik-takvim .fc-theme-standard .fc-scrollgrid { border-color: var(--ig-cizgi); }

/* 20C.3 ik/ayarlar/birimler: ağaç girintisi. Kök neden: .org-tree-children için
   girinti kuralı custom.css'ten (yüklenmiyor) isgelir-ui.css'e taşınmamıştı; bağlantı
   çizgileri (9b.21, left:-20px) vardı ama düğümler aynı hizada kaldı. Seviye başına 24px. */
.ik-birim-agac .org-tree-children {
  position: relative;
  padding-left: 24px;
}
.ik-birim-agac .org-tree-children > .org-tree-node::before { left: -12px; top: 0; }
.ik-birim-agac .org-tree-children > .org-tree-node::after { left: -12px; top: 24px; width: 12px; }
.ik-birim-agac .org-tree-children > .org-tree-node:last-child::before { bottom: auto; height: 24px; }
.ik-birim-agac .org-tree-children > .org-tree-node:only-child::before { display: block; top: 0; bottom: auto; height: 24px; }
.ik-birim-agac .org-tree-node.sortable-ghost::before,
.ik-birim-agac .org-tree-node.sortable-ghost::after,
.ik-birim-agac .org-tree-node.sortable-drag::before,
.ik-birim-agac .org-tree-node.sortable-drag::after { display: none; }

/* 20C.4 ik/ayarlar/bordro: % öneki girdiyle tek kutu (ayrık kutu + 8px boşluk idi);
   tüm sayısal girdiler sağa hizalı, tablo rakamı. */
.ik-bordro-kart .ik-ayar-onek { gap: 0; }
.ik-bordro-kart .ik-ayar-onek-isaret {
  border-right: 0;
  border-radius: var(--ig-r-6) 0 0 var(--ig-r-6);
}
.ik-bordro-kart .ik-ayar-onek .filter-input { border-radius: 0 var(--ig-r-6) var(--ig-r-6) 0; }
.ik-bordro-kart .ik-bordro-girdi {
  text-align: right;
  font-variant-numeric: tabular-nums;
}

/* 20C.5 ik/vardiya-plani otomatik doldur modalı: radyo + gün kutuları.
   Kök neden: düz Bootstrap .form-check-input, eski style.css [type=radio|checkbox]
   gizleme hilesine yakalanıyordu (legacy checkbox hijack). Kutular 9b.1
   .it-erisim-checkbox'a bağlandı; radyonun karşılığı yoktu, aynı dille burada. */
.it-erisim-radio.form-check-input {
  position: static;
  left: auto;
  float: none;
  flex: none;
  width: 16px;
  min-width: 16px;
  height: 16px;
  margin: 0;
  opacity: 1;
  vertical-align: middle;
  cursor: pointer;
  -webkit-appearance: none;
  appearance: none;
  background-color: var(--ig-yuzey);
  background-image: none;
  border: 1px solid var(--ig-girdi);
  border-radius: 50%;
  box-shadow: none;
  transition: border-color 0.12s ease, box-shadow 0.12s ease;
}
.it-erisim-radio.form-check-input:checked {
  background-color: var(--ig-yuzey);
  background-image: none;
  border-color: var(--ig-birincil);
  box-shadow: inset 0 0 0 4px var(--ig-birincil);
}
.it-erisim-radio.form-check-input:focus-visible {
  border-color: var(--ig-koyu);
  outline: none;
  box-shadow: var(--ig-odak);
}
.it-erisim-radio.form-check-input:checked:focus-visible { box-shadow: inset 0 0 0 4px var(--ig-birincil), var(--ig-odak); }
.it-erisim-radio.form-check-input:focus:not(:focus-visible) { outline: none; }
.it-erisim-radio.form-check-input:focus:not(:focus-visible):not(:checked) { box-shadow: none; }
.it-erisim-radio + .form-check-label {
  margin-left: var(--ig-b-8);
  font-size: var(--ig-fs-14);
  color: var(--ig-metin);
  cursor: pointer;
}
.ik-vardiya-kural .form-check.form-check-inline {
  display: inline-flex;
  align-items: center;
  min-height: 24px;
  margin: 0 var(--ig-b-16) var(--ig-b-4) 0;
  padding-left: 0;
}
/* 20C son */

/* 20D · İş Takip: oluştur formları (proje, teklif, ziyaret) */
/* Kaynak: docs/screenshots/2026-09-23-ui/is_projeler_olustur.png (kartlar arası boşluk
   yoktu, tek yüzey gibi görünüyordu), is_teklifler_olustur.png (kaydet çubuğu sayfa
   düzeyinde sabit kalmalı), is_ziyaretler_olustur.png (girdiler 32px hap/filtre
   ölçüsünde kalmış, diğer iki ekranla aynı 40px olmalı). Üç ekran da form-sayfa-c
   (FormC) kalıbını artık TEK ortak sınıfla paylaşır; alan adı/id/JS değişmedi. */

/* Kart yığını: kartlar arasına dikey boşluk (proje_olustur.php'de .card'lar doğrudan
   <form> altındaydı, aralarında boşluk yoktu). .is-teklif-yigin ile aynı 16px kural. */
.ig-form-yigin {
  display: flex;
  flex-direction: column;
  gap: var(--ig-b-16);
}

/* Yapışkan kaydet çubuğu: üç ekranın da paylaştığı TEK sınıf (önceki
   .is-proje-altlik / .is-teklif-altlik / .is-ziyaret-altlik yerine). Sayfa
   düzeyinde <form>'un doğrudan çocuğu olarak kullanılır (kart içine gömülmez;
   proje_olustur.php'de kart içindeydi, sticky menzili o karta hapsoluyordu). */
.ig-form-altlik {
  position: sticky;
  bottom: 0;
  z-index: 3;
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: var(--ig-b-12);
  margin-top: var(--ig-b-16);
  padding: var(--ig-b-12) var(--ig-bant-x);
  background: var(--ig-yuzey);
  border-top: 1px solid var(--ig-cizgi);
}
.ig-form-altlik-ipucu {
  margin-right: auto;
  font-size: var(--ig-fs-13);
  color: var(--ig-soluk);
}
.ig-form-altlik .btn { height: var(--ig-dugme-altlik-h); }
@media (max-width: 1199.98px) {
  .ig-form-altlik { padding-right: var(--ig-b-24); padding-left: var(--ig-b-24); }
}
@media (max-width: 767.98px) {
  .ig-form-altlik { flex-direction: column; align-items: stretch; gap: var(--ig-b-8); }
  .ig-form-altlik-ipucu { margin-right: 0; }
}

/* Ziyaret oluştur: sayfa girdileri .filter-input/.filter-select (hap filtre
   çubuğu, 32px/13px) ile kurulmuş; proje/teklif'teki 40px/14px standarda
   çekilir (.modal/.offcanvas override'ıyla aynı değerler, §1 Sağ panel ölçüsü).
   Alan adı/id/JS seçicileri değişmedi, yalnız görünüm. */
.is-ziyaret-form .filter-input,
.is-ziyaret-form .filter-select,
.is-ziyaret-form .datepicker-input:not(.form-control) {
  height: var(--ig-girdi-h);
  padding-left: 12px;
  font-size: var(--ig-fs-14);
}
.is-ziyaret-form .filter-select {
  padding-right: 36px;
  background-position: right 12px center;
}
.is-ziyaret-form .form-label {
  font-size: var(--ig-fs-14);
  font-weight: var(--ig-fw-kalin);
}
/* 20D son */

/* 20E · İş Takip: görevler, takvim */
/* --- Görev görünüm sekmesi (Akış panosu / Ekip yükü) ----------------------
   is/gorevler/kanban.php: .ig-alt-serit / .ig-alt-serit-oge yeniden kullanılır
   (4.3), .ig-bant-govde içindeki konum için alt boşluk eklenir. Sekmeler burada
   <a> değil <button> — üst/sağ/sol kenarlık ve zemin tarayıcı varsayılanı
   sıfırlanır; alt kenarlık (aktif çizgisi) 4.3'teki kurala bırakılır. */
.is-kanban-gorunum-sekme { margin-bottom: var(--ig-b-16); }
.is-kanban-gorunum-sekme .ig-alt-serit-oge {
  background: transparent;
  border-top: 0;
  border-right: 0;
  border-left: 0;
  cursor: pointer;
}

/* --- Takvim ızgarası köprüsü (5.4.6 üstüne, FullCalendar) ------------------
   .ig-takvim: is/takvim.php + is/ziyaretler/ziyaret_takvim.php ortak kapsamı.
   ik/takvim.php ayrı pakette .ik-takvim ile aynı kuralları taşıyor (12.9.9);
   iki takvim aynı görünsün diye kurallar burada tekrar edildi, birleştirme
   ana oturumun kararı (ik tarafına da .ig-takvim eklenip .ik-takvim'in
   kaldırılması önerilir). */
.ig-takvim .fc .fc-toolbar-title {
  font-size: var(--ig-fs-16);
  font-weight: var(--ig-fw-kalin);
  color: var(--ig-metin);
}
.ig-takvim .fc .fc-col-header-cell-cushion {
  padding: var(--ig-b-8) var(--ig-b-4);
  font-size: var(--ig-fs-12);
  font-weight: var(--ig-fw-kalin);
  color: var(--ig-soluk);
  text-decoration: none;
}
.ig-takvim .fc .fc-daygrid-day-number {
  font-size: var(--ig-fs-13);
  color: var(--ig-metin-2);
  text-decoration: none;
}
.ig-takvim .fc .fc-event {
  padding: 0 var(--ig-b-4);
  font-size: var(--ig-fs-12);
  border: 0;
  border-radius: var(--ig-r-4);
}
/* 20E son */

/* 20F · Sipariş/Sevkiyat (sps) ekranları */
/* Araç detayı (svk/arac_detayi_*): sekme şeridi navbar'daki .ig-bant-govde'de banda biner;
   içerik gövdesi ikinci kez -44px yukarı çekilirse kartlar sekme şeridinin üstüne biner.
   Kalıp: .ig-bant-govde.urun-sekme-govde (10.8.2.1). */
.ig-bant-govde.svk-sekme-govde {
  margin-top: 0;
  padding: var(--ig-b-16) 0 var(--ig-b-24);
}
.svk-sekme-ic { padding: 0; }
.svk-sekme-kart { overflow: hidden; }
.svk-sekme-kart .table-responsive { margin: 0; }
/* Rut föyü: Bootstrap .px-4 kaçışı yerine banda hizalı dikey blok aralığı */
.svk-blok { padding-top: var(--ig-b-16); }
.svk-blok--ilk { padding-top: 0; }
.svk-blok--son { padding-bottom: var(--ig-b-24); }
/* Rut oluştur/düzenle: kaydet çubuğu kart altında yapışık kalır */
.svk-form-alt {
  position: sticky;
  bottom: 0;
  z-index: 5;
  align-items: center;
  justify-content: flex-end;
  background-color: var(--ig-yuzey);
  border-bottom-right-radius: inherit;
  border-bottom-left-radius: inherit;
}
/* Sipariş oluştur: kategori sekmeleri solda, ürün arama aynı satırda sağda; dar ekranda arama alta iner */
.sip-olustur-serit {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  gap: 0 var(--ig-b-12);
  border-bottom: 1px solid var(--ig-cizgi);
}
.sip-olustur-serit > .nav-tabs.sip-olustur-kategori {
  flex: 1 1 0;
  min-width: 0;
  border-bottom: 0;
}
.sip-olustur-serit > .sip-olustur-arac {
  flex: 0 0 auto;
  align-self: center;
  margin-left: auto;
}
@media (max-width: 991.98px) {
  .sip-olustur-serit > .nav-tabs.sip-olustur-kategori { flex-basis: 100%; }
  .sip-olustur-serit > .sip-olustur-arac {
    flex-basis: 100%;
    padding-bottom: var(--ig-b-12);
    border-top: 1px solid var(--ig-cizgi);
    padding-top: var(--ig-b-12);
  }
  .sip-olustur-serit .ig-arama.sip-olustur-arama { width: 100%; }
  .sip-olustur-serit .sip-olustur-arama-form { flex: 1 1 auto; }
}
/* 20F son */

/* 20G · Muhasebe / Üretim / Sevkiyat(svk) / Yönetim denetim bulguları */
/* 20G.1 Filtre çubuğu kartı taşırmaz (layout/filter_bar.php + elle yazılmış
   .ig-arac çubukları: muh_report_header, cek/senet, uretim, rut_listesi, puantaj,
   vardiya, fiyatlandirma, kasa_rapor, stok_deger_raporu).
   Kök neden: 4.4'te .ig-arac ≥768px'te flex-wrap:nowrap ve TÜM çocuklar flex:none
   (hap 172px sabit, arama --ig-arama-w, sağ grup). Arama + 4–5 hap + "Ara" + sayaç +
   Yazdır/Excel toplamı 1200px kartı aşınca hiçbir öğe küçülemiyor, satır da
   kırılamıyordu; overflow:hidden kartlarda sağ grup kesiliyor, diğerlerinde kart
   dışına çıkıyordu (denetim: sag=1340–1525, kap=1320). Çözüm: çubuk sarar; tek
   satırda yükseklik yine 52px (10 + 32 + 10); sağ grup margin-left:auto ile sarılan
   satırda da sağa yaslı kalır; hiçbir hap/arama kutusu satırdan geniş olamaz. */
.ig-arac {
  flex-wrap: wrap;
  row-gap: var(--ig-b-8);
  padding-top: calc((var(--ig-arac-h) - var(--ig-hap-h)) / 2);
  padding-bottom: calc((var(--ig-arac-h) - var(--ig-hap-h)) / 2);
}
.ig-arac > .ig-arama,
.ig-arac > .ig-hap,
.ig-arac > .ig-arac-sag {
  max-width: 100%;
}
.ig-arac > .ig-hap .ig-hap-girdi {
  max-width: 100%;
}
.ig-arac > .ig-arac-sag {
  flex-wrap: wrap;
  justify-content: flex-end;
  margin-left: auto;
}
/* 20G son */
