/* Tablolarin izgara gorunumu (#15541): her hucre ince cerceveli; renkler temanin kendisinde.
   Tema dosyasindan sonra yuklenir; cerceve istenmeyen tabloda temanin table-borderless sinifi bu kurallari devre disi birakir.
   Dis cerceve tablo yerine hucrelere cizilir: tabloya overflow:hidden verilseydi hucre icindeki
   acilir menuler kesilirdi. */

:root {
    --table-grid-border: #dfe1e6;
    --table-grid-cell-padding-x: 0.75rem;
}

.table:not(.table-borderless) {
    border-collapse: separate;
    border-spacing: 0;
}

.table:not(.table-borderless) > :not(caption) > tr > *,
.table:not(.table-borderless) > :not(caption) > tr {
    border-style: solid;
    border-color: var(--table-grid-border);
}

/* Her hucre yalniz sag ve alt cizgiyi cizer; ust ve sol cizgi ilk satira ve ilk kolona aittir. */
.table:not(.table-borderless) > :not(caption) > tr > * {
    border-width: 0 1px 1px 0;
}

.table:not(.table-borderless) > :not(caption) > tr > *:first-child {
    border-left-width: 1px;
}

.table:not(.table-borderless) > :first-child > tr:first-child > * {
    border-top-width: 1px;
}

/* Tema son satirin alt cizgisini !important ile kaldiriyor; izgarada dis cerceve olarak gerekli. */
.table:not(.table-borderless) > :last-child > tr:last-child > * {
    border-bottom: 1px solid var(--table-grid-border) !important;
}

/* gs-0 gibi siniflar ilk ve son hucrenin yatay boslugunu siliyor; cerceveye yapisan yazi olmasin. */
.table:not(.table-borderless) > :not(caption) > tr > *:first-child {
    padding-left: var(--table-grid-cell-padding-x) !important;
}

.table:not(.table-borderless) > :not(caption) > tr > *:last-child {
    padding-right: var(--table-grid-cell-padding-x) !important;
}

/* Tablo yuklenirken satirlarin yerinde gosterilen iskelet (skeleton). Temada hazir bileseni
   olmadigi icin burada; kullanmak icin satir hucrelerine <span class="table-skeleton"></span> konur. */
.table-skeleton {
    display: block;
    height: 0.875rem;
    border-radius: 0.25rem;
    background: linear-gradient(90deg, #e4e6ef 25%, #f5f8fa 50%, #e4e6ef 75%);
    background-size: 200% 100%;
    animation: table-skeleton-shimmer 1.2s ease-in-out infinite;
}

@keyframes table-skeleton-shimmer {
    from { background-position: 200% 0; }
    to { background-position: -200% 0; }
}

/* Hareket azaltma tercihi olan kullanicida iskelet sabit durur. */
@media (prefers-reduced-motion: reduce) {
    .table-skeleton {
        animation: none;
    }
}

/* "Isleniyor" kutusu gosterilmez: veri istenirken tablo satirlarinin yerinde iskelet cizilir
   (js/application/datatables-setup.js). */
div.dataTables_processing {
    display: none !important;
}
