/**
 * DataTables loading: hide built-in .dataTables_processing; show .nestiko-dt-processing-veil
 * (frosted full-table backdrop + centered spinner on top). Driven by common.js processing.dt.
 */

.dataTables_wrapper {
    position: relative;
}

/* Never show DataTables’ own node */
.dataTables_wrapper .dataTables_processing {
    display: none !important;
    visibility: hidden !important;
    position: absolute !important;
    width: 0 !important;
    height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: hidden !important;
    clip: rect(0, 0, 0, 0) !important;
    border: 0 !important;
    pointer-events: none !important;
}

.dataTables_wrapper.dt-processing-active .dataTables_scroll,
.dataTables_wrapper.dt-processing-active .dataTables_scrollHead,
.dataTables_wrapper.dt-processing-active .dataTables_scrollBody,
.dataTables_wrapper.dt-processing-active .dataTables_scrollFoot {
    position: relative;
    z-index: 0;
}

/* Keep table region visibly “expanded” while data loads (reload / first draw) */
.dataTables_wrapper.dt-processing-active {
    min-height: min(42vh, 28rem);
}

.dataTables_wrapper.dt-processing-active .dataTables_scrollBody {
    min-height: min(42vh, 28rem);
}

/* Full-area veil: backdrop behind, spinner in front */
.nestiko-dt-processing-veil {
    display: none;
    position: absolute;
    inset: 0;
    z-index: 5000;
    pointer-events: none;
}

.nestiko-dt-processing-veil--visible {
    display: block !important;
    pointer-events: auto;
}

.nestiko-dt-processing-veil__backdrop {
    position: absolute;
    inset: 0;
    z-index: 0;
    background: rgba(255, 255, 255, 0.78);
    background: color-mix(in srgb, var(--bg-surface, #fff) 82%, transparent);
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
}

:root[data-theme='dark'] .nestiko-dt-processing-veil__backdrop {
    background: rgba(15, 23, 42, 0.82);
    background: color-mix(in srgb, var(--bg-surface, #0f172a) 78%, transparent);
}

.nestiko-dt-processing-veil__spinner {
    position: absolute;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
    z-index: 1;
    pointer-events: none;
}

.nestiko-dt-processing-indicator__ring {
    display: block;
    width: 1.35rem;
    height: 1.35rem;
    box-sizing: border-box;
    border-radius: 50%;
    border: 2px solid rgba(148, 163, 184, 0.45);
    border-top-color: var(--accent-primary, #8351ec);
    border-right-color: color-mix(in srgb, var(--accent-primary, #8351ec) 50%, transparent);
    animation: nestiko-dt-ring-spin 0.65s linear infinite;
}

:root[data-theme='dark'] .nestiko-dt-processing-indicator__ring {
    border-color: rgba(71, 85, 105, 0.55);
    border-top-color: var(--accent-primary, #a78bfa);
    border-right-color: color-mix(in srgb, var(--accent-primary, #a78bfa) 50%, transparent);
}

@keyframes nestiko-dt-ring-spin {
    to {
        transform: rotate(360deg);
    }
}
