/* ══════════════════════════════════════════════════════════════════════
   EscCommerce Admin — Mobil görünüm
   ----------------------------------------------------------------------
   A) Mobil düzeltmeler        — telefon/tablet (≤767px)
   B) Tablo → kart dönüşümü    — admin-mobil.js tabloya .tablo-kart ekler
   C) Mobil bileşenler         — istatistik kartı, sekme/pil şeridi, filtre
   ══════════════════════════════════════════════════════════════════════ */


/* ══════════════ A) MOBİL DÜZELTMELER ══════════════ */
@media (max-width: 767.98px) {

    /* iOS input'a odaklanınca 16px altındaki yazıda sayfayı zoomlar — engelle */
    .form-control,
    .form-select,
    .form-control-sm,
    .form-select-sm,
    textarea.form-control {
        font-size: 16px;
        min-height: 42px;
    }

    /* Dokunma hedefleri */
    .btn { min-height: 40px; }
    .btn-sm { min-height: 34px; padding: 6px 12px; }
    .nav-link.icon { padding: 8px 10px; }

    .card { margin-bottom: 12px; }
    .card-body { padding: 12px; }
    .card-header { padding: 10px 12px; flex-wrap: wrap; gap: 8px; }
    .card-options { flex-wrap: wrap; gap: 6px; }

    /* Sayfa başlığı + aksiyon butonları alt alta */
    .page-header { flex-direction: column; align-items: flex-start !important; gap: 8px; }
    .page-header .ms-auto { margin-left: 0 !important; width: 100%; }
    .pageheader-btn { width: 100%; justify-content: flex-start; flex-wrap: wrap; gap: 6px; }

    /* Modal telefonda kenarlara yapışmasın */
    .modal-dialog { margin: 10px; }

    /* DataTables kontrolleri tam genişlik */
    .dataTables_wrapper .dataTables_length,
    .dataTables_wrapper .dataTables_filter,
    .dataTables_wrapper .dataTables_info,
    .dataTables_wrapper .dataTables_paginate {
        float: none !important;
        width: 100%;
        text-align: left !important;
        margin-bottom: 8px;
    }
    .dataTables_wrapper .dataTables_filter input { width: 100%; margin-left: 0; }

    /* Filtre satırları taşmasın */
    .row > [class*="col-"] { margin-bottom: 4px; }

    /* Filtre/işlem dropdown'ları (min-width:250-300px veriliyor) ekranı taşırmasın */
    .dropdown-menu { max-width: calc(100vw - 24px); }
    .dropdown-menu.p-3 { overflow-x: hidden; }

    /* Yatay taşan her şey için son emniyet. "clip" kaydırma kabı oluşturmaz;
       "hidden" oluşturuyordu ve içerideki position:sticky (ürün formundaki kaydet
       çubuğu) telefonda yapışmıyordu. clip'i tanımayan eski tarayıcı hidden'da kalır. */
    .main-container { overflow-x: hidden; overflow-x: clip; }
}

/* Şablonun sol menüsü telefonda çekmece olarak açılıyor. Çift dokunuş
   beklemesini kaldır; basılı geri bildirimi :active versin (hover dokunmatikte
   "yapışıp" ilk dokunuşu yutuyordu). Etkinleştirme admin-mobil.js'te. */
@media (max-width: 991.98px) {
    .app-sidebar .side-menu__item,
    .app-sidebar .slide-item,
    .app-sidebar .sub-side-menu__item {
        touch-action: manipulation;
        -webkit-tap-highlight-color: transparent;
    }
    .app-sidebar .side-menu__item:active,
    .app-sidebar .slide-item:active { background-color: rgba(0,0,0,.05); }
    .dark-mode .app-sidebar .side-menu__item:active,
    .dark-mode .app-sidebar .slide-item:active { background-color: rgba(255,255,255,.06); }
}


/* ══════════════ B) TABLO → KART ══════════════
   admin-mobil.js her tabloya .tablo-kart, sarmalayıcıya .tablo-kart-sarmal ekler,
   her <td>'ye başlığı data-etiket olarak, hücrenin görevini data-mobil-rol
   olarak yazar. Roller:
     baslik → kartın üst satırı (sipariş no, ürün adı…) — etiketi gizli, büyük
     alt    → başlığın altındaki ikinci satır (müşteri, e-posta…) — etiketi gizli
     tutar  → para değeri, vurgulu
     secim  → satır seçim kutusu, kartın sağ üst köşesine sabitlenir
     islem  → butonlar, kartın alt şeridine iner
   Sütun rolü <th data-mobil="..."> ile elle de verilebilir; verilmezse JS tahmin
   eder. Kart dönüşümünü kapatmak için tabloya data-mobil-kart="0" yaz. */
@media (max-width: 767.98px) {

    .tablo-kart-sarmal { overflow-x: visible !important; }

    table.tablo-kart { border: 0 !important; margin-bottom: 0; background: transparent !important; }
    table.tablo-kart thead,
    table.tablo-kart tfoot { display: none; }

    table.tablo-kart,
    table.tablo-kart tbody,
    table.tablo-kart tr,
    table.tablo-kart td { display: block; width: auto !important; }

    /* ───── Kart gövdesi ───── */
    table.tablo-kart tbody tr {
        position: relative;
        background: #fff;
        border: 1px solid #e9edf4;
        border-left: 3px solid var(--primary-bg-color, #6259ca);
        box-shadow: 0 1px 3px rgba(28,32,55,.06);
        padding: 11px 13px;
        margin-bottom: 10px;
    }
    table.tablo-kart tbody tr:last-child { margin-bottom: 0; }
    table.tablo-kart tbody tr:has(.custom-control-input:checked),
    table.tablo-kart tbody tr:has(input[type="checkbox"]:checked) {
        background: rgba(98,89,202,.05);
        border-color: rgba(98,89,202,.35);
    }

    /* ───── Ortak hücre: etiket solda, değer sağda ───── */
    table.tablo-kart tbody td {
        display: flex;
        align-items: baseline;
        justify-content: space-between;
        gap: 10px;
        padding: 4px 0 !important;
        border: 0 !important;
        text-align: right;
        white-space: normal !important;
        font-size: 13px;
        line-height: 1.45;
    }
    table.tablo-kart tbody td::before {
        content: attr(data-etiket);
        flex: 0 0 auto;
        max-width: 45%;
        text-align: left;
        font-size: 10.5px;
        font-weight: 600;
        letter-spacing: .4px;
        text-transform: uppercase;
        color: #9698b3;
    }
    table.tablo-kart tbody td br { display: none; }
    table.tablo-kart tbody td small { font-size: 11px; }
    table.tablo-kart tbody td .badge { font-size: 10.5px; }

    /* Değeri boş hücre kartı şişirmesin (JS işaretler) */
    table.tablo-kart tbody td[data-mobil-bos="1"] { display: none !important; }

    /* ───── Başlık satırı ───── */
    table.tablo-kart tbody td[data-mobil-rol="baslik"] {
        flex-wrap: wrap;
        align-items: center;
        justify-content: flex-start;
        gap: 4px 8px;
        padding: 0 32px 0 0 !important;
        text-align: left;
        font-size: 15px;
        font-weight: 600;
        line-height: 1.35;
    }
    table.tablo-kart tbody td[data-mobil-rol="baslik"]::before { display: none; }
    table.tablo-kart tbody td[data-mobil-rol="baslik"] a { font-size: 15px; }
    table.tablo-kart tbody td[data-mobil-rol="baslik"] img { max-width: 40px; }

    /* ───── Başlık altı ikinci satır ───── */
    table.tablo-kart tbody td[data-mobil-rol="alt"] {
        display: block;
        padding: 2px 32px 0 0 !important;
        text-align: left;
        font-size: 12.5px;
        color: #74769a;
    }
    table.tablo-kart tbody td[data-mobil-rol="alt"]::before { display: none; }
    table.tablo-kart tbody td[data-mobil-rol="alt"] .fw-semibold { font-weight: 500 !important; }
    table.tablo-kart tbody td[data-mobil-rol="alt"] small { display: block; }

    /* Başlık bloğunu detaylardan ayıran çizgi (JS son üst hücreye koyar) */
    table.tablo-kart tbody td[data-mobil-ayrac="1"] {
        padding-bottom: 9px !important;
        margin-bottom: 8px;
        border-bottom: 1px solid #eef0f7 !important;
    }

    /* ───── Tutar ───── */
    table.tablo-kart tbody td[data-mobil-rol="tutar"] {
        font-size: 15px;
        font-weight: 700;
        color: #2e2e4a;
    }

    /* ───── Seçim kutusu: kartın sağ üstü ───── */
    table.tablo-kart tbody td[data-mobil-rol="secim"] {
        position: absolute;
        top: 9px;
        right: 10px;
        padding: 0 !important;
        margin: 0;
        z-index: 2;
    }
    table.tablo-kart tbody td[data-mobil-rol="secim"]::before { display: none; }

    /* ───── İşlem butonları: kart alt şeridi ───── */
    table.tablo-kart tbody td[data-mobil-rol="islem"] {
        justify-content: flex-end;
        flex-wrap: wrap;
        gap: 6px;
        margin-top: 9px;
        padding-top: 9px !important;
        border-top: 1px solid #eef0f7 !important;
    }
    table.tablo-kart tbody td[data-mobil-rol="islem"]::before { display: none; }
    /* Butonlar şeridi paylaşsın: tek ikon butonun sağda asılı kalması kartın
       altında boş bir bant bırakıyordu, dokunma hedefi de küçüktü. */
    table.tablo-kart tbody td[data-mobil-rol="islem"] > .d-flex,
    table.tablo-kart tbody td[data-mobil-rol="islem"] > .btn-list,
    table.tablo-kart tbody td[data-mobil-rol="islem"] > .btn-group { width: 100%; }
    table.tablo-kart tbody td[data-mobil-rol="islem"] .btn {
        flex: 1 1 0;
        min-width: 0;
        min-height: 34px;
        padding: 6px 12px;
        overflow: hidden;
        white-space: nowrap;
    }
    /* Tek buton varsa yer bol — title'ını yazıya dök ki ikon tek başına
       anlamsız kalmasın. Birden çok butonda sadece ikon kalır. */
    table.tablo-kart tbody td[data-mobil-rol="islem"] .btn:only-child[title]::after {
        content: attr(title);
        margin-left: 7px;
        font-size: 12.5px;
        font-weight: 500;
    }

    /* Etiketsiz hücreler ve boş-liste satırı */
    table.tablo-kart tbody td[data-etiket=""]::before { display: none; }
    table.tablo-kart tbody td[data-etiket=""] { justify-content: flex-end; }
    table.tablo-kart tbody td[colspan] {
        display: block;
        text-align: center;
        border-bottom: 0 !important;
    }
    table.tablo-kart tbody td[colspan]::before { display: none; }

    /* Hücre içi öğeler sağa yaslansın, taşarsa alta düşsün */
    table.tablo-kart tbody td .btn-group,
    table.tablo-kart tbody td .btn-list,
    table.tablo-kart tbody td .dropdown { flex-wrap: wrap; justify-content: flex-end; }
    table.tablo-kart tbody td > .d-flex { justify-content: flex-end; }
    table.tablo-kart tbody td img { max-width: 52px; height: auto; }

    /* text-nowrap sınıfı kartta satır kırılmasını engelliyordu */
    table.tablo-kart.text-nowrap,
    table.tablo-kart.text-nowrap td,
    table.tablo-kart.text-nowrap th { white-space: normal !important; }

    /* Koyu tema */
    .dark-mode table.tablo-kart tbody tr,
    .transparent-mode table.tablo-kart tbody tr {
        background: #23234a;
        border-color: rgba(255,255,255,.07);
        border-left-color: var(--primary-bg-color, #6259ca);
        box-shadow: none;
    }
    .dark-mode table.tablo-kart tbody td[data-mobil-ayrac="1"],
    .transparent-mode table.tablo-kart tbody td[data-mobil-ayrac="1"],
    .dark-mode table.tablo-kart tbody td[data-mobil-rol="islem"],
    .transparent-mode table.tablo-kart tbody td[data-mobil-rol="islem"] {
        border-color: rgba(255,255,255,.08) !important;
    }
    .dark-mode table.tablo-kart tbody td[data-mobil-rol="tutar"],
    .transparent-mode table.tablo-kart tbody td[data-mobil-rol="tutar"] { color: #f0f0ff; }
    .dark-mode table.tablo-kart tbody td::before,
    .transparent-mode table.tablo-kart tbody td::before { color: #7f81a8; }
    .dark-mode table.tablo-kart tbody td[data-mobil-rol="alt"],
    .transparent-mode table.tablo-kart tbody td[data-mobil-rol="alt"] { color: #9a9cc4; }
    /* Koyu temada saydam vurgu kartı arka plandan koparıyordu — düz renk ver */
    .dark-mode table.tablo-kart tbody tr:has(input[type="checkbox"]:checked),
    .transparent-mode table.tablo-kart tbody tr:has(input[type="checkbox"]:checked) {
        background: #2c2c60;
        border-color: rgba(98,89,202,.55);
    }
}


/* ══════════════ C) MOBİL BİLEŞENLER ══════════════ */
@media (max-width: 767.98px) {

    /* İstatistik kartları — 2'li grid, kompakt.
       Kullanımı: sütun div'ine class="col-6 col-lg-3 esc-stat"

       Yerleşim: masaüstünde "yazı solda / ikon sağda" tek satır. Dar ekranda
       yan yana sığmıyor — 205.084,95 TL gibi bir ciroda "TL" alt satıra düşüp
       kartı komşusundan uzun yapıyordu. Mobilde ikonu etiketin hizasına alıp
       rakama satırın tamamını veriyoruz:

           Toplam Ciro     [ikon]
           205.084,95 TL

       Bunu yapmak için d-flex'i grid'e çeviriyoruz; p ve h2 bir ara div'in
       içinde olduğundan o div display:contents ile grid'e şeffaflaşıyor. */
    .esc-stat .card { margin-bottom: 8px; }
    .esc-stat .card-body { padding: 10px 11px; }

    .esc-stat .card-body > .d-flex {
        display: grid !important;
        grid-template-columns: minmax(0, 1fr) auto;
        align-items: center;
        column-gap: 6px;
    }
    .esc-stat .card-body > .d-flex > div:first-child { display: contents; }
    .esc-stat .card-body > .d-flex > .ms-auto {
        grid-column: 2; grid-row: 1;
        margin-left: 0 !important;
    }
    .esc-stat p {
        grid-column: 1; grid-row: 1;
        font-size: 10.5px !important;
        margin-bottom: 0 !important;
        letter-spacing: .2px;
        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis;
    }
    .esc-stat h2 {
        grid-column: 1 / -1; grid-row: 2;
        margin-top: 2px;
        font-size: 18px !important;
        /* Sabit satır yüksekliği: punto sığdırma için düşünce (bkz. statSigdir)
           kart komşusundan kısalmasın */
        line-height: 24px;
        white-space: nowrap;
    }
    /* line-height:1 — "TL" satır kutusunu 3px büyütüp ciro kartlarını
       adet kartlarından uzun yapıyordu */
    .esc-stat h2 small { font-size: 10px !important; line-height: 1; }
    .esc-stat .avatar {
        width: 28px; height: 28px; line-height: 28px;
        min-width: 28px; font-size: 13px;
    }
    .esc-stat .avatar i { font-size: 14px !important; }

    /* Sekmeler alt alta kaymasın — tek satır, yatay kayar şerit */
    .card-header-tabs {
        flex-wrap: nowrap;
        overflow-x: auto;
        overflow-y: hidden;
        -webkit-overflow-scrolling: touch;
        scrollbar-width: none;
        padding-bottom: 1px;
    }
    .card-header-tabs::-webkit-scrollbar { display: none; }
    .card-header-tabs .nav-item { flex: 0 0 auto; }
    .card-header-tabs .nav-link { white-space: nowrap; padding: 9px 12px; font-size: 13px; }

    /* Yatay kayan pil şeridi (kaynak filtresi vb.) */
    .esc-pil-serit {
        flex-wrap: nowrap !important;
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
        scrollbar-width: none;
        padding-bottom: 2px;
    }
    .esc-pil-serit::-webkit-scrollbar { display: none; }
    .esc-pil-serit > * { flex: 0 0 auto; }

    /* Kaydığı belli olsun: sağ kenarda soluma. Maske olmadan son sekme
       ("Teslim Edildi" → "Tesl") kesilmiş gibi duruyor, kaydırılabildiği
       anlaşılmıyor. Sona gelinince maske kalkar (admin-mobil.js sınıfı verir). */
    .esc-serit-tasiyor {
        -webkit-mask-image: linear-gradient(to right, #000 calc(100% - 34px), transparent 100%);
                mask-image: linear-gradient(to right, #000 calc(100% - 34px), transparent 100%);
    }
    .esc-serit-tasiyor.esc-serit-son {
        -webkit-mask-image: none;
                mask-image: none;
    }

    /* Katlanır filtre paneli tetikleyicisi */
    .esc-filtre-ac {
        display: flex;
        align-items: center;
        justify-content: space-between;
        width: 100%;
        padding: 9px 12px;
        border: 1px solid var(--bs-border-color, #e9edf4);
        background: transparent;
        color: inherit;
        font-size: 13px;
        font-weight: 500;
    }
    /* transform inline öğede çalışmıyor — ikonu inline-block yap */
    .esc-filtre-ok { display: inline-block; transition: transform .15s; }
    .esc-filtre-ac[aria-expanded="true"] .esc-filtre-ok { transform: rotate(180deg); }
}
