/* ═══════════════════════════════════════════════════════════════
   app.css  —  Lojistik uygulaması ortak UI bileşenleri
   ═══════════════════════════════════════════════════════════════ */

/* ── Sayfa düzeyi kompakt sarmalayıcı ─────────────────────────── */
.lj-page-compact              { font-size: 0.875rem; }
.lj-page-compact h2           { font-size: 1.25rem; }
.lj-page-compact .badge       { font-size: 0.8em; }

/* ── Kompakt tablo genel ──────────────────────────────────────── */
.lj-table-compact,
.lj-table-compact td,
.lj-table-compact th { font-size: 0.875rem; }

.lj-table-compact .btn { font-size: 0.8rem; padding: .2rem .45rem; }

/* ── Sticky thead ─────────────────────────────────────────────── */
.lj-table thead th {
    position: sticky;
    top: 0;
    z-index: 2;
    background: #f8f9fa;
    border-bottom: 2px solid #dee2e6;
    white-space: nowrap;
}

/* ── Scrollable tablo sarmalayıcı ─────────────────────────────── */
.lj-table-wrap {
    max-height: 72vh;
    overflow-y: auto;
}

/* ── Filtre kart ──────────────────────────────────────────────── */
.lj-filter-card               { font-size: 0.875rem; }
.lj-filter-card .form-label   { font-size: 0.80rem; }
.lj-filter-card .form-control,
.lj-filter-card .btn          { font-size: 0.875rem; padding: .3rem .5rem; height: auto; }

/* ── Özet kartlar ─────────────────────────────────────────────── */
.lj-ozet-kart {
    display: inline-flex;
    flex-direction: column;
    background: #f8f9fa;
    border-radius: .375rem;
    padding: .4rem .75rem;
    min-width: 115px;
    border: 1px solid #e9ecef;
}
.lj-ozet-kart small             { font-size: 0.72rem; color: #6c757d; }
.lj-ozet-kart .val              { font-size: 0.95rem; font-weight: 600; }
/* Dashboard kart etiket + değer */
.lj-ozet-kart-label             { font-size: 0.72rem; color: #6c757d; margin-bottom: .1rem; }
.lj-ozet-kart-deger             { font-size: 1.35rem; font-weight: 700; color: #1e293b; line-height: 1.15; }

/* Tıklanabilir özet kart (link olarak render edilen) */
a.lj-ozet-link {
    text-decoration: none;
    color: inherit;
    cursor: pointer;
    transition: transform .12s ease, box-shadow .12s ease, border-color .12s ease;
}
a.lj-ozet-link:hover {
    transform: translateY(-1px);
    box-shadow: 0 4px 12px rgba(0,0,0,0.08);
    border-color: #cbd5e1;
}
a.lj-ozet-link:hover .lj-ozet-kart-label { color: #1e293b; }

/* Süresi BİTEN belge — kırmızı vurgu */
.lj-ozet-kart.lj-ozet-alert {
    background: #fef2f2;
    border-color: #fecaca;
}
.lj-ozet-kart.lj-ozet-alert .lj-ozet-kart-label { color: #991b1b; }

/* 30 gün içinde BİTECEK — sarı/amber vurgu */
.lj-ozet-kart.lj-ozet-warn {
    background: #fffbeb;
    border-color: #fde68a;
}
.lj-ozet-kart.lj-ozet-warn .lj-ozet-kart-label { color: #92400e; }

/* ── Cari — satır renkleri ────────────────────────────────────── */
.tr-kapali   { background-color: rgba(25,135,84,0.10)  !important; }
.tr-kapali:hover  { background-color: rgba(25,135,84,0.18)  !important; }

.tr-tahsilat { background-color: rgba(25,135,84,0.05)  !important; }
.tr-tahsilat:hover { background-color: rgba(25,135,84,0.12) !important; }

.tr-borc     { background-color: rgba(220,53,69,0.05)  !important; }
.tr-borc:hover    { background-color: rgba(220,53,69,0.11)  !important; }

.tr-devir    { background-color: rgba(13,110,253,0.06) !important; }
.tr-devir:hover   { background-color: rgba(13,110,253,0.13) !important; }

.tr-acilis   {
    background: linear-gradient(90deg,#f0f4ff,#f8f9fa) !important;
    border-left: 3px solid #6610f2;
}

/* ── Sipariş durum — satır renkleri ───────────────────────────── */
/* 0 = Taslak */
.tr-durum-0       { background-color: rgba(108,117,125,0.05) !important; }
.tr-durum-0:hover { background-color: rgba(108,117,125,0.11) !important; }

/* 1 = Yüklendi */
.tr-durum-1       { background-color: rgba(13,202,240,0.06) !important; }
.tr-durum-1:hover { background-color: rgba(13,202,240,0.13) !important; }

/* 2 = Araçta */
.tr-durum-2       { background-color: rgba(13,110,253,0.06) !important; }
.tr-durum-2:hover { background-color: rgba(13,110,253,0.13) !important; }

/* 3 = Tamamlandı */
.tr-durum-3       { background-color: rgba(25,135,84,0.07)  !important; }
.tr-durum-3:hover { background-color: rgba(25,135,84,0.14)  !important; }

/* ── Bakiye / Net değer renkleri ──────────────────────────────── */
.bky-pos, .net-pos { color: #198754; font-weight: 600; }
.bky-neg, .net-neg { color: #dc3545; font-weight: 600; }
.bky-zero,.net-zero{ color: #6c757d; font-style: italic; }

/* ── Rowlink — tıklanabilir tablo satırı ─────────────────────── */
tr.rowlink { cursor: pointer; }
tr.rowlink:hover td { background-color: rgba(13,110,253,0.04) !important; }

/* ── Sıralama başlıkları ──────────────────────────────────────── */
th.sortable a              { color: inherit; text-decoration: none; }
th.sortable a:hover        { text-decoration: underline; color: #0d6efd; }
th.sortable .sort-icon     { color: #adb5bd; font-size: 0.75em; }
th.sortable.active .sort-icon { color: #0d6efd; }

/* ── Pastel aksiyon butonları (Seferler vb.) ──────────────────── */
.btn-pastel-blue  { background:#dbeafe; color:#1e40af; border:1px solid #bfdbfe; }
.btn-pastel-blue:hover  { background:#bfdbfe; color:#1e3a8a; }
.btn-pastel-amber { background:#fef3c7; color:#92400e; border:1px solid #fde68a; }
.btn-pastel-amber:hover { background:#fde68a; color:#78350f; }
.btn-pastel-red   { background:#fee2e2; color:#991b1b; border:1px solid #fecaca; }
.btn-pastel-red:hover   { background:#fecaca; color:#7f1d1d; }
.btn-pastel-green { background:#dcfce7; color:#166534; border:1px solid #bbf7d0; }
.btn-pastel-green:hover { background:#bbf7d0; color:#14532d; }
.btn-pastel-blue.disabled,
.btn-pastel-amber.disabled,
.btn-pastel-red.disabled  { opacity:.45; pointer-events:none; }

/* ── Sefer durum — satır sol-kenar renkleri ───────────────────── */
.tr-sefer-yeni       { border-left: 3px solid #6c757d !important; }
.tr-sefer-planlandi  { border-left: 3px solid #0dcaf0 !important; }
.tr-sefer-kapali     { border-left: 3px solid #495057 !important; }
.tr-sefer-tamamlandi { border-left: 3px solid #198754 !important; }
.tr-sefer-iptal      { border-left: 3px solid #dc3545 !important; }

/* ── Navbar (lj-navbar) ───────────────────────────────────────── */
.lj-navbar {
    background-color: #1e293b !important;  /* koyu slate-navy */
}
.lj-navbar .navbar-toggler-icon { filter: brightness(0) invert(1); }
.lj-navbar .navbar-toggler { border-color: rgba(255,255,255,0.25); }

/* nav-link renk + geçiş */
.lj-navbar .nav-link {
    color: rgba(255,255,255,0.80) !important;
    transition: color .15s ease, border-color .15s ease;
    border-bottom: 2px solid transparent;
    padding-bottom: calc(0.5rem - 2px);
}
.lj-navbar .nav-link:hover,
.lj-navbar .nav-link:focus {
    color: #fff !important;
}

/* aktif sayfa — alt çizgi vurgusu */
.lj-navbar .nav-link.active {
    color: #fff !important;
    border-bottom: 2px solid #60a5fa;   /* açık mavi çizgi */
}

/* dropdown menü */
.lj-navbar .dropdown-menu {
    border: none;
    border-radius: .5rem;
    box-shadow: 0 6px 20px rgba(0,0,0,0.18);
    padding: .35rem 0;
}
.lj-navbar .dropdown-item {
    font-size: .875rem;
    padding: .4rem 1rem;
    color: #1e293b;
}
.lj-navbar .dropdown-item:hover {
    background-color: #eff6ff;
    color: #1e40af;
}

/* dropdown içindeki aktif item */
.lj-navbar .dropdown-item.lj-active {
    background-color: #dbeafe;
    color: #1e40af;
    font-weight: 600;
}

/* kullanıcı dropdown firma adı */
.lj-navbar .lj-firma-kodu {
    font-size: .75rem;
    color: rgba(255,255,255,0.50);
    margin-left: .3rem;
}

/* ── Zorunlu alan göstergesi (kırmızı yıldız) ─────────────────── */
.required-mark {
    color: #dc3545;
    font-weight: 700;
    margin-left: .15rem;
    user-select: none;
}

/* ── Cascading dropdown yükleme spinner'ı ─────────────────────── */
.lj-select-wrap {
    position: relative;
}
.lj-select-wrap .lj-select-spinner {
    position: absolute;
    top: 50%;
    right: 2.25rem;            /* Bootstrap select chevron'unun solu */
    transform: translateY(-50%);
    width: 1rem;
    height: 1rem;
    border: 2px solid #cbd5e1;
    border-top-color: #0d6efd;
    border-radius: 50%;
    animation: lj-spin .7s linear infinite;
    pointer-events: none;
    display: none;
}
.lj-select-wrap.is-loading .lj-select-spinner { display: block; }
.lj-select-wrap.is-loading select               { color: #6c757d; }

@keyframes lj-spin {
    to { transform: translateY(-50%) rotate(360deg); }
}

/* ── İndir butonu (download dropdown) ─────────────────────────── */
.lj-download-btn { white-space: nowrap; }
.lj-download-btn .dropdown-item { font-size: .85rem; padding: .35rem .9rem; }
.lj-download-btn .dropdown-item:hover { background-color: #eff6ff; }

/* ── NProgress (sayfa yükleme barı) renk override ─────────────── */
#nprogress .bar {
    background: linear-gradient(90deg, #60a5fa 0%, #0d6efd 50%, #2563eb 100%) !important;
    height: 3px !important;
}
#nprogress .peg {
    box-shadow: 0 0 10px #0d6efd, 0 0 5px #0d6efd !important;
}
#nprogress .spinner-icon {
    border-top-color: #0d6efd !important;
    border-left-color: #0d6efd !important;
}

/* ── Yazdırma (print) stilleri ────────────────────────────────── */
@media print {
    /* Navbar, footer, butonlar, filtre kartı — gizle */
    header, .navbar, footer,
    .lj-filter-card,
    .lj-download-btn,
    .btn,
    .btn-group,
    th:last-child.text-end,             /* "İşlemler" başlığı */
    td:last-child.text-end,             /* "İşlemler" hücreleri */
    .dropdown,
    .lj-print-hide {
        display: none !important;
    }

    /* Sayfa boşluğu */
    body { margin: 0 !important; padding: 0 !important; }
    .container { max-width: 100% !important; padding: 0 .5cm !important; }

    /* Tablolar sayfaya yayılsın */
    .lj-table-wrap { max-height: none !important; overflow: visible !important; }
    .lj-table { font-size: 10pt !important; width: 100% !important; }
    .lj-table th, .lj-table td { padding: .25rem .35rem !important; }

    /* Sticky thead → print için kapat */
    .lj-table thead th { position: static !important; }

    /* Renkleri koru (Chrome) */
    * { -webkit-print-color-adjust: exact !important; print-color-adjust: exact !important; }

    /* Sayfa kırılması */
    tr, td, th { page-break-inside: avoid !important; }
    h2 { page-break-after: avoid !important; margin-bottom: .5rem !important; }

    /* Linkler — alt çizgi olmasın */
    a { color: inherit !important; text-decoration: none !important; }

    /* Print-only başlık (rapor başlığı) */
    .lj-print-only { display: block !important; }
}

.lj-print-only { display: none; }
