/* Shared filters and pagination */

.filter-toolbar {
    display: flex !important;
    align-items: flex-end !important;
    gap: 12px !important;
    flex-wrap: wrap !important;

    width: 100%;
    margin: 0 0 16px !important;
    padding: 14px 16px !important;

    background: var(--surface, #ffffff) !important;
    border: 1px solid var(--border, #dfe4ea) !important;
    border-radius: 10px !important;
    box-shadow:
        var(
            --shadow,
            0 4px 14px rgba(31, 41, 55, 0.07)
        ) !important;
}

.filter-field {
    display: flex !important;
    flex-direction: column !important;
    gap: 6px !important;
}

.filter-field label {
    margin: 0 !important;
    color: var(--muted, #687483) !important;
    font-size: 11px !important;
    font-weight: bold !important;
    text-transform: uppercase !important;
}

.filter-field input,
.filter-field select {
    height: 40px !important;
    margin: 0 !important;
    padding: 8px 11px !important;

    border: 1px solid var(--border, #dfe4ea) !important;
    border-radius: 7px !important;

    background: var(--surface, #ffffff) !important;
    color: var(--text, #202936) !important;

    font-family: inherit !important;
    font-size: 13px !important;
}

.filter-field input {
    min-width: 150px;
}

.filter-field select {
    min-width: 80px;
}

.filter-field input:focus,
.filter-field select:focus {
    border-color: var(--info, #0d6efd) !important;
    outline: 3px solid rgba(13, 110, 253, 0.12);
}

.filter-actions {
    display: flex !important;
    align-items: center !important;
    gap: 8px !important;
}

.filter-submit,
.filter-clear {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;

    min-height: 40px !important;
    margin: 0 !important;
    padding: 8px 15px !important;

    border-radius: 7px !important;

    font-family: inherit !important;
    font-size: 13px !important;
    font-weight: bold !important;
    line-height: 1 !important;
    text-decoration: none !important;
}

.filter-submit {
    border: 1px solid var(--info, #0d6efd) !important;
    background: var(--info, #0d6efd) !important;
    color: #ffffff !important;
    cursor: pointer;
}

.filter-submit:hover {
    filter: brightness(0.95);
}

.filter-clear {
    border: 1px solid var(--border, #dfe4ea) !important;
    background: var(--surface, #ffffff) !important;
    color: var(--info, #0d6efd) !important;
}

.filter-clear:hover {
    background: var(--surface-soft, #f8fafc) !important;
}

.filter-summary {
    align-self: center;
    margin-left: auto !important;
    color: var(--muted, #687483) !important;
    font-size: 13px !important;
    white-space: nowrap;
}

.pagination {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    gap: 12px !important;
    flex-wrap: wrap !important;

    width: 100%;
    margin: 14px 0 0 !important;
}

.pagination-info {
    color: var(--muted, #687483) !important;
    font-size: 13px !important;
}

.pagination-links {
    display: flex !important;
    align-items: center !important;
    gap: 7px !important;
    flex-wrap: wrap !important;
}

.pagination a,
.pagination span {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;

    min-width: 38px !important;
    min-height: 38px !important;
    padding: 7px 11px !important;

    border: 1px solid var(--border, #dfe4ea) !important;
    border-radius: 7px !important;

    background: var(--surface, #ffffff) !important;
    color: var(--info, #0d6efd) !important;

    font-size: 13px !important;
    text-decoration: none !important;
}

.pagination a:hover {
    background: var(--surface-soft, #f8fafc) !important;
}

.pagination span.active {
    border-color: var(--info, #0d6efd) !important;
    background: var(--info, #0d6efd) !important;
    color: #ffffff !important;
}

.pagination span.disabled {
    background: var(--surface-soft, #f8fafc) !important;
    color: var(--muted, #687483) !important;
}

@media (max-width: 700px) {
    .filter-toolbar {
        align-items: stretch !important;
    }

    .filter-field {
        width: 100%;
    }

    .filter-field input,
    .filter-field select {
        width: 100% !important;
    }

    .filter-actions {
        width: 100%;
    }

    .filter-submit,
    .filter-clear {
        flex: 1;
    }

    .filter-summary {
        width: 100%;
        margin-left: 0 !important;
    }

    .pagination {
        align-items: stretch !important;
        flex-direction: column !important;
    }
}

/* Sortable columns */

.sortable-table th.sortable-column {
    position: relative;
    padding-right: 28px !important;
    cursor: pointer;
    user-select: none;
}

.sortable-table th.sortable-column::after {
    position: absolute;
    top: 50%;
    right: 10px;

    content: "↕";

    color: var(--muted, #687483);
    font-size: 12px;

    opacity: 0.6;
    transform: translateY(-50%);
}

.sortable-table th.sortable-column.sort-ascending::after {
    content: "▲";
    color: var(--info, #0d6efd);
    opacity: 1;
}

.sortable-table th.sortable-column.sort-descending::after {
    content: "▼";
    color: var(--info, #0d6efd);
    opacity: 1;
}

.sortable-table th.sortable-column:hover {
    background: var(--surface-soft, #f8fafc);
}

/* Sortable columns */

.sortable-table th.sortable-column {
    position: relative;
    padding-right: 28px !important;
    cursor: pointer;
    user-select: none;
}

.sortable-table th.sortable-column::after {
    position: absolute;
    top: 50%;
    right: 10px;

    content: "↕";

    color: var(--muted, #687483);
    font-size: 12px;

    opacity: 0.6;
    transform: translateY(-50%);
}

.sortable-table th.sortable-column.sort-ascending::after {
    content: "▲";
    color: var(--info, #0d6efd);
    opacity: 1;
}

.sortable-table th.sortable-column.sort-descending::after {
    content: "▼";
    color: var(--info, #0d6efd);
    opacity: 1;
}

.sortable-table th.sortable-column:hover {
    background: var(--surface-soft, #f8fafc);
}
