/* Logistic proje stilleri — template'in style.css'inden SONRA yüklenir.
   Kural (RULES §1.3): yalnız template token'ları (--bs-*) kullanılır; template sınıfları burada yeniden tanımlanmaz.
   Her kural için gerekçe yazılır. */

/* 1. Geçici metin logo (ADR-0002 §11).
   Template .logo-abbr ve .brand-title'ı SVG için boyutlandırır (.brand-title font-size: 2.375rem, style.css .nav-header .brand-title);
   metin logoda bu, nav-header'a sığmayan bir yazı üretir. Boyutlar template SVG'lerinin kutusuna (39×23 ve 47×16) yaklaştırıldı.
   Nihai logo SVG olarak gelince bu blok silinir. */
.nav-header .brand-logo .logo-abbr {
    font-size: 1.625rem;
    line-height: 1;
}

.nav-header .brand-logo .brand-title {
    font-size: 1.375rem;
    line-height: 1;
    margin-top: 0;
}

/* 2. Header'daki karanlık mod düğmesi Font Awesome <i> kullanıyor (ADR-0002 §10).
   Template, koyu header'da yalnız SVG ikonları beyaza çeviriyor (style.css:14654 svg path stroke #fff) ve
   hover'da primary yapıyor (style.css:14667); aynı davranış <i> için eşleniyor. */
body:not([data-headerbg=color_1]) .header-right .notification_dropdown .nav-link i {
    color: #fff;
}

.header-right .notification_dropdown .nav-link:hover i {
    color: var(--bs-primary);
}

/* 3. Sidebar menü ikonları Font Awesome <i> (MenuRegistry; proje sahibi 2026-10-11: template'in menü SVG'leri lojistik kavramlarına uymuyordu).
   Template <i> rengini zaten veriyor (style.css .deznav .metismenu > li > a i { color: #96A0AF }); boyut template menü SVG'lerinin
   20-22 px kutusuna, etkin/üzerine gelme rengi SVG kuralının eşine (style.css .mm-active > a .menu-icon svg path { stroke: var(--bs-primary) })
   eşlenir. */
.deznav .metismenu > li > a .menu-icon i {
    font-size: 1.125rem;
    line-height: 1.375rem;
}

.deznav .metismenu > li.mm-active > a .menu-icon i,
.deznav .metismenu > li:hover > a .menu-icon i,
.deznav .metismenu > li:focus > a .menu-icon i {
    color: var(--bs-primary);
}

/* Template, tam genişlik dikey menüde etkin öğenin <i> ikonuna font-weight: 300 ve beyaz renk veriyor
   (style.css [data-sidebar-style=full][data-layout=vertical] .deznav .metismenu > li.mm-active > a i). Font Awesome Free Solid yalnız 900
   ağırlığında glif içerir; 300'de ikon kutu (tofu) olarak çıkıyordu. Ek .menu-icon sınıfıyla daha belirgin seçici. */
[data-sidebar-style][data-layout] .deznav .metismenu > li.mm-active > a .menu-icon i {
    font-weight: 900;
    color: var(--bs-primary) !important;
}

/* 4. DataTables arama kutusu kart gövdesinde (table-card-body px-0) kart kenarına yapışıyordu (inceleme S1-4). Template yalnız bilgi ve
   sayfalama satırına yatay boşluk veriyor (plugins.css .dataTables_info / .dataTables_paginate); arama kutusu aynı boşluğu alır. */
.card-body.px-0 .dataTables_wrapper .dataTables_filter,
.table-responsive > .dataTables_wrapper .dataTables_filter {
    padding: 0 var(--bs-card-spacer-x, 1.25rem);
    margin-bottom: 0.75rem;
}

/* 5. Telefonda tablo → kart listesi (js/table-cards.js; sadelik testi 2026-10-11). Template'te karşılığı yok; yalnız template token'ları.
   576 px altında başlık satırı gizlenir, her satır kenarlıklı kart, her hücre "Başlık ........ değer" satırı olur. */
@media (max-width: 575.98px) {
    table.table-cards > thead {
        display: none;
    }

    table.table-cards,
    table.table-cards > tbody,
    table.table-cards > tfoot,
    table.table-cards > tbody > tr,
    table.table-cards > tfoot > tr {
        display: block;
        width: 100% !important;
    }

    table.table-cards > tbody > tr,
    table.table-cards > tfoot > tr {
        border: 1px solid var(--bs-border-color);
        border-radius: var(--bs-border-radius-lg, 0.5rem);
        margin: 0 0.75rem 0.75rem;
        width: auto !important;
        padding: 0.5rem 0.875rem;
        background-color: var(--bs-body-bg);
    }

    table.table-cards > tbody > tr > td,
    table.table-cards > tfoot > tr > td,
    table.table-cards > tfoot > tr > th {
        display: flex;
        justify-content: space-between;
        align-items: flex-start;
        gap: 0.75rem;
        border: 0 !important;
        padding: 0.3rem 0 !important;
        text-align: end !important;
        white-space: normal !important;
        width: auto !important;
    }

    table.table-cards > tbody > tr > td::before,
    table.table-cards > tfoot > tr > td::before,
    table.table-cards > tfoot > tr > th::before {
        content: attr(data-label);
        flex-shrink: 0;
        max-width: 45%;
        text-align: start;
        font-weight: 500;
        color: var(--bs-body-color);
    }

    table.table-cards > tbody > tr > td[data-label=""]::before {
        content: none;
    }

    /* Uzun belge no / sigorta adı kartı genişletmesin (inceleme D1-3) ama tarih ve "N gün kaldı" bölünmesin (inceleme V1-4: "anywhere"
       kuralı "15.10.2026"yı ortadan bölüyordu): yalnız tek başına sığmayan sözcük kırılır; değer etiketin yanına sığmazsa alt satıra iner. */
    table.table-cards > tbody > tr > td {
        overflow-wrap: break-word;
        flex-wrap: wrap;
        min-width: 0;
    }

    table.table-cards > tbody > tr > td > * {
        max-width: 100%;
    }

    table.table-cards > tbody > tr > td[data-label=""] {
        justify-content: flex-start;
    }

    table.table-cards > tbody > tr > td.dataTables_empty {
        display: block;
        text-align: center !important;
    }

    .table-responsive:has(> table.table-cards),
    .table-responsive:has(.dataTables_wrapper > table.table-cards) {
        overflow-x: visible;
    }
}

/* 6. Geçersiz bootstrap-select (inceleme B1-13, B2-9). Doğrulama "is-invalid"i sarmalayıcı div.form-select'e de kopyalıyor; Bootstrap'in
   .form-select.is-invalid kuralı ona hata simgesi + 4,125rem sağ boşluk veriyor → düğme daralıyor, simge metnin üstüne biniyor.
   Sarmalayıcıda simge ve fazladan boşluk kaldırılır; hata yalnız kırmızı kenarlık ve alttaki mesajla gösterilir. */
.bootstrap-select.form-select.is-invalid,
.bootstrap-select.form-select.is-invalid:not([multiple]):not([size]) {
    padding-right: 0;
    background-image: none;
}

.bootstrap-select.is-invalid > .dropdown-toggle {
    background-image: none;
    border-color: var(--bs-form-invalid-border-color, var(--bs-danger));
}

/* 7. Karanlık modda .table-light (inceleme B3-1). Template zemin değişkenlerini koyulaştırıyor ([data-bs-theme=dark] .table-light) ama
   Bootstrap'in --bs-table-color: #000 değeri kalıyor; tfoot "Genel Toplam" satırı koyu zeminde siyah yazı oluyordu (kontrast 1,3:1). */
[data-bs-theme=dark] .table-light {
    --bs-table-color: var(--bs-body-color);
    color: var(--bs-body-color);
}

/* 8. Form alanlarında kayıtlı değer (inceleme F4 / sadelik raporu 5): template .form-control ve .form-select yazısını --bs-body-color (#888)
   veriyor; kayıtlı değerler yer tutucu (örnek metin) gibi gri görünüyordu. Değer başlık rengiyle, yer tutucu template'in gri tonuyla kalır. */
.form-control,
.form-select,
.bootstrap-select > .dropdown-toggle:not(.bs-placeholder) {
    color: var(--bs-heading-color);
}

/* 9. Daraltılmış menü (hamburger) üzerine gelince template <i>'yi beyaz yapıyor (style.css [data-sidebar-style=full][data-layout=vertical]
   .menu-toggle ... li:hover > a i { color: #fff }) ama zemin açık kalıyor; ikon kayboluyordu (inceleme D4-02). */
[data-sidebar-style][data-layout] .menu-toggle .deznav .metismenu > li:hover > a .menu-icon i {
    color: var(--bs-primary);
}

/* 10. Klavye erişimi (inceleme D4-04): menü ve header bağlantılarında görünür odak; kapalı sohbet paneli Tab sırasından çıkar
   (template paneli right:-31,25rem ile ekran dışına itiyor, içindeki bağlantılar odak alıyordu). */
.deznav .metismenu a:focus-visible,
.header-right .nav-link:focus-visible,
.nav-control:focus-visible {
    outline: 2px solid var(--bs-primary);
    outline-offset: -2px;
    border-radius: 0.375rem;
}

.chatbox {
    visibility: hidden;
    transition: all 0.8s, visibility 0s linear 0.8s;
}

.chatbox.active {
    visibility: visible;
    transition: all 0.8s, visibility 0s linear 0s;
}

/* 11. Menü sıkılığı (inceleme D5-31): 5 bölüm + 18 öğe template boşluklarıyla (öğe 0,75rem dikey, ~46 px) 900 px yükseklikte sığmıyor,
   FİRMA grubu ilk ekranda görünmüyordu. Dikey boşluk 0,5rem (~38 px; dokunma hedefi yeterli), bölüm başlığı boşlukları azaltıldı. */
[data-sidebar-style=full][data-layout=vertical] .deznav .metismenu > li > a {
    padding-top: 0.5rem;
    padding-bottom: 0.5rem;
}

[data-sidebar-style=full][data-layout=vertical] .deznav .metismenu .menu-title {
    padding-top: 6px;
    padding-bottom: 4px;
}

/* 12. Karanlık modda ikincil düğmeler (inceleme D6-10, D3-24): template btn-light'ı koyu temada kart zeminiyle neredeyse aynı tonda veriyor
   (kontrast ≈ 2:1, kenarlık görünmüyor). Vazgeç/Sıfırla gibi nötr düğmeler okunur ve düğme olduğu anlaşılır olsun. */
[data-bs-theme=dark] .btn-light {
    --bs-btn-bg: #3a3a3a;
    --bs-btn-border-color: #5c5c5c;
    --bs-btn-color: #f2f2f2;
    --bs-btn-hover-bg: #4a4a4a;
    --bs-btn-hover-border-color: #707070;
    --bs-btn-hover-color: #fff;
}

[data-bs-theme=dark] .btn-outline-secondary {
    --bs-btn-color: #d6d6d6;
    --bs-btn-border-color: #6a6a6a;
    --bs-btn-hover-bg: #4a4a4a;
    --bs-btn-hover-color: #fff;
}

/* 13. Tablo arama kutusu (inceleme D1-17, D3, D4-07): plugins.css 150 px veriyor; yer tutucu kesiliyordu. */
.dataTables_filter input {
    width: 15rem;
    max-width: 100%;
}

/* 14. Dar ekranda breadcrumb (inceleme D4-16): başlık zaten son öğeyi söylüyor; 576 px altında yalnız başlık kalır. */
@media (max-width: 575.98px) {
    .page-title .breadcrumb .breadcrumb-item {
        display: none;
    }
}

/* 15. Mobil menü karartması (inceleme D4-06; js/mobile-menu.js): menü açıkken içerik karartılır, dışına dokununca kapanır.
   Template'in z-index değerleri ekran genişliğine göre değişiyor (375 px'te .deznav 3) — katman 4 iken menünün üstünde kalıp
   dokunuşları yutuyordu (inceleme V3-01, gerileme). Menü açıkken menü ve logo/hamburger şeridi açıkça katmanın üstüne alınır. */
.app-menu-overlay {
    position: fixed;
    inset: 0;
    background: rgba(0, 0, 0, 0.4);
    z-index: 1040;
}

@media (max-width: 767.98px) {
    #main-wrapper.menu-toggle .deznav {
        z-index: 1045;
    }

    #main-wrapper.menu-toggle .nav-header {
        z-index: 1046;
    }
}

/* 16. Daraltılmış (ikonlu) menüde kaydırma (inceleme V3-02): template alt menü açılır kutuları için kaydırmayı kapatıyor
   (style.css ... .menu-toggle .deznav .deznav-scroll { overflow: visible !important }); bizim menüde alt menü yok, alttaki öğelere
   (İşlem Geçmişi) kısa ekranda ulaşılamıyordu. */
[data-sidebar-style=full][data-layout=vertical] #main-wrapper.menu-toggle .deznav .deznav-scroll {
    overflow-y: auto !important;
}

/* 17. Karanlık modda dolu ikincil düğme (inceleme V3-03): btn-secondary beyaz ikon / açık gri zemin (≈2:1). */
[data-bs-theme=dark] .btn-secondary {
    --bs-btn-bg: #5a5a5a;
    --bs-btn-border-color: #5a5a5a;
    --bs-btn-color: #fff;
    --bs-btn-hover-bg: #6b6b6b;
    --bs-btn-hover-border-color: #6b6b6b;
}

/* 18. Karanlık modda yer tutucu (inceleme D6-23): template rengi koyu zeminde ≈2,4:1. */
[data-bs-theme=dark] .form-control::placeholder {
    color: #9a9a9a;
    opacity: 1;
}

