/* ============================================================
   RideOps Design System — responsive.css
   Masaüstü / Laptop / Tablet / Mobil için uyarlamalar.
   Sidebar off-canvas, AI paneli içerik altına geçer, widget'lar
   alt alta dizilir, grafikler yeniden boyutlanır.
   ============================================================ */

/* Laptop (≤1280px): istatistik kartları daha sık gridlenir */
@media (max-width: 1280px) {
    .ops-stat-grid,
    .fi-wi-stats-overview-stats-ctn {
        grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    }
}

/* Tablet (≤1100px): ana içerik + AI paneli alt alta */
@media (max-width: 1100px) {
    .ro-layout,
    .dash-layout,
    .opboard-layout {
        flex-direction: column !important;
    }
    .ro-layout-aside,
    .dash-aside,
    .opboard-side {
        flex: 0 0 auto !important;
        width: 100% !important;
        max-width: 100% !important;
        position: static !important;
        align-self: auto !important;
        max-height: none !important;
        overflow-y: visible !important;
    }
    /* Daraltılmış ray da mobilde tam genişlik gösterilsin */
    .dash-layout.aside-collapsed .dash-aside,
    .opboard-layout.aside-collapsed .opboard-side {
        flex: 0 0 auto !important;
        width: 100% !important;
        overflow: visible !important;
        opacity: 1 !important;
        pointer-events: auto !important;
    }
    .ops-chart-grid,
    .ops-bottom-grid {
        grid-template-columns: 1fr !important;
    }
}

/* Tablet (≤900px) */
@media (max-width: 900px) {
    .ops-stat-grid,
    .fi-wi-stats-overview-stats-ctn {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }
    .ops-quick-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }
}

/* Mobil (≤640px): sidebar tamamen off-canvas, tek sütun düzen */
@media (max-width: 640px) {
    .ops-stat-grid,
    .fi-wi-stats-overview-stats-ctn,
    .ops-quick-grid {
        grid-template-columns: 1fr !important;
    }

    .fi-topbar nav {
        padding-inline: var(--ro-space-3) !important;
    }

    .fi-section,
    .ro-card {
        padding: var(--ro-space-3) !important;
    }

    .fi-header-heading {
        font-size: 1.125rem !important;
    }

    .ops-chartbox {
        height: 200px !important;
    }
}

/* Sidebar her zaman off-canvas davranır (lg altı) — Filament'in kendi
   mekanizmasını kullanıyoruz, sadece geçiş animasyonu yumuşatılıyor. */
@media (max-width: 1024px) {
    .fi-sidebar {
        box-shadow: var(--ro-shadow-lg) !important;
    }
}

/* ============================================================
   (A) MOBİL TABLO → KART (≤768px)
   ------------------------------------------------------------
   Filament tabloları mobilde satır = kart olur. Her hücrenin
   etiketi, table-mobile-cards.js'in yazdığı data-label'dan
   ::before ile gelir. Boş başlıklı (checkbox/aksiyon) hücreler
   data-label taşımaz → etiket gösterilmez, içerik sağa yaslanır.
   ============================================================ */
@media (max-width: 768px) {
    /* Yatay scroll'a gerek kalmasın — kartlar tam genişlik */
    .fi-ta-content,
    .fi-ta-ctn {
        overflow-x: visible !important;
    }

    .fi-ta-table thead {
        display: none !important;
    }

    .fi-ta-table,
    .fi-ta-table tbody,
    .fi-ta-table tr,
    .fi-ta-row {
        display: block !important;
        width: 100% !important;
    }

    .fi-ta-row {
        background: var(--ro-card) !important;
        border: 1px solid var(--ro-border) !important;
        border-radius: var(--ro-radius-lg) !important;
        margin: 0 0 12px 0 !important;
        padding: 6px 14px !important;
        box-shadow: var(--ro-shadow-sm);
    }
    .fi-ta-row:last-child {
        margin-bottom: 0 !important;
    }

    .fi-ta-cell {
        display: flex !important;
        justify-content: space-between !important;
        align-items: center !important;
        gap: 12px !important;
        width: 100% !important;
        margin: 0 !important;
        padding: 8px 0 !important;
        border: 0 !important;
        border-bottom: 1px solid var(--ro-border-soft) !important;
    }
    .fi-ta-cell:last-child {
        border-bottom: none !important;
    }

    /* Etiket solda (sadece başlığı olan hücrelerde) */
    .fi-ta-cell[data-label]::before {
        content: attr(data-label);
        flex-shrink: 0;
        color: var(--ro-muted);
        font-size: 12px;
        font-weight: 600;
        letter-spacing: .04em;
        text-transform: uppercase;
        text-align: left;
    }

    /* İçerik sağda */
    .fi-ta-cell > * {
        text-align: right;
        margin-left: auto;
    }
    /* Başlıksız hücre (checkbox/aksiyon) → içerik tamamen sağa */
    .fi-ta-cell:not([data-label]) {
        justify-content: flex-end !important;
    }

    /* Kart içinde fazla dikey boşluğu sıfırla (tables.css 14px padding) */
    .fi-ta-cell .fi-ta-text {
        padding-top: 0 !important;
        padding-bottom: 0 !important;
    }

    /* ------------------------------------------------------------
       sr-only sızması düzeltmesi (seçim checkbox etiketi)
       Mobil kart reseti .fi-ta-cell'i display:block/flex yapınca
       seçim hücresindeki sr-only <label> klipsiz kalıp görünür
       hâle geliyor ("Toplu işlemler için ... seç"). Etiketleri
       tekrar kliple — checkbox tıklanabilir/işlevsel kalır.
       ------------------------------------------------------------ */
    .fi-ta-row .sr-only,
    .fi-ta-cell .sr-only,
    .fi-ta-cell label.sr-only {
        position: absolute !important;
        width: 1px !important;
        height: 1px !important;
        padding: 0 !important;
        margin: -1px !important;
        overflow: hidden !important;
        clip: rect(0, 0, 0, 0) !important;
        white-space: nowrap !important;
        border: 0 !important;
    }

    /* Seçim checkbox hücresi: sadece sade, sola hizalı checkbox dursun */
    .fi-ta-row .fi-ta-cell:has(input[type="checkbox"]) {
        justify-content: flex-start !important;
    }
    .fi-ta-row .fi-ta-cell:has(input[type="checkbox"])::before {
        content: none !important;
    }
    /* :has desteklenmese de checkbox içeren hücredeki içerik sola yaslı */
    .fi-ta-row .fi-ta-cell:has(input[type="checkbox"]) > * {
        margin-left: 0 !important;
        text-align: left !important;
    }
}

/* ============================================================
   (B) DASHBOARD GRAFİK LEJANTLARI (mobil taşma) (≤768px)
   ------------------------------------------------------------
   Çizgi grafik lejantı başlığın altına sarar; donut + lejant
   alt alta dizilir. Canvas her zaman kapsayıcı genişliğinde
   kalır → sağ kenardan taşma olmaz.
   ============================================================ */
@media (max-width: 768px) {
    .ops-chart-card,
    .ops-bottom-card {
        max-width: 100%;
        overflow: hidden;
    }

    /* Canvas taşmasın */
    .ops-chartbox {
        width: 100% !important;
    }
    .ops-chartbox canvas {
        width: 100% !important;
        max-width: 100% !important;
    }

    /* "Son 7 Gün" çizgi grafik: lejant başlığın ALTINA insin, sarsın */
    .ops-chart-head {
        flex-direction: column;
        align-items: flex-start;
        gap: 10px;
    }
    .ops-line-legend {
        display: flex;
        flex-wrap: wrap;
        gap: 8px 14px;
        max-width: 100%;
    }
    .ops-line-leg-item {
        font-size: 11px;
    }
    .ops-line-leg-dot {
        width: 20px;
    }

    /* "Operasyon Durumu" donut + lejant alt alta */
    .ops-donut-wrap {
        flex-direction: column;
        align-items: stretch;
        gap: 16px;
    }
    .ops-donut-box {
        margin: 0 auto;
    }
    .ops-donut-legend {
        width: 100%;
        max-width: 100%;
    }
    .ops-leg-item {
        width: 100%;
    }
    .ops-leg-name {
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
    }
}
