/* DataTables theme — match GoJapan design tokens */

.dataTables_wrapper {
    font-family: var(--font);
    font-size: .92rem;
}
.dataTables_wrapper .dataTables_length,
.dataTables_wrapper .dataTables_filter {
    margin-bottom: 14px;
}
.dataTables_wrapper .dataTables_length select,
.dataTables_wrapper .dataTables_filter input {
    width: auto;
    min-width: 60px;
    padding: 8px 12px;
    border: 1.5px solid var(--color-border);
    border-radius: var(--radius-sm);
    font-size: .88rem;
}
.dataTables_wrapper .dataTables_filter input {
    min-width: 200px;
    margin-left: 8px;
}
.dataTables_wrapper .dataTables_info {
    color: var(--color-muted);
    font-size: .85rem;
    padding-top: 14px;
}
.dataTables_wrapper .dataTables_paginate {
    padding-top: 14px;
}
.dataTables_wrapper .dataTables_paginate .paginate_button {
    padding: 6px 12px !important;
    margin: 0 2px !important;
    border-radius: 999px !important;
    border: 1px solid var(--color-border) !important;
    background: var(--color-surface) !important;
    color: var(--color-text) !important;
    font-weight: 600;
    font-size: .82rem;
}
.dataTables_wrapper .dataTables_paginate .paginate_button:hover {
    background: #f1f5f9 !important;
    border-color: var(--color-accent2) !important;
    color: var(--color-accent2) !important;
}
.dataTables_wrapper .dataTables_paginate .paginate_button.current {
    background: var(--gradient-brand) !important;
    border-color: transparent !important;
    color: #fff !important;
}
.dataTables_wrapper .dataTables_paginate .paginate_button.disabled {
    opacity: .45;
    cursor: not-allowed;
}
.dataTables_processing {
    background: rgba(255, 255, 255, .92) !important;
    border: 1px solid var(--color-border) !important;
    border-radius: var(--radius-sm) !important;
    color: var(--color-muted) !important;
    font-weight: 600;
    padding: 12px 20px !important;
    box-shadow: var(--shadow-md);
}
table.dataTable thead th {
    background: #f8fafc !important;
    font-size: .78rem !important;
    text-transform: uppercase;
    letter-spacing: .04em;
    color: var(--color-muted) !important;
    font-weight: 700 !important;
    border-bottom: 1px solid var(--color-border) !important;
    padding: 12px 14px !important;
}
table.dataTable tbody td {
    padding: 10px 14px !important;
    border-bottom: 1px solid var(--color-border) !important;
    vertical-align: middle !important;
}
table.dataTable tbody tr:hover td {
    background: #fafbfc !important;
}
table.dataTable.no-footer {
    border-bottom: none;
}
.card.table-wrap .dataTables_wrapper {
    padding: 4px 0;
}

@media (max-width: 640px) {
    .dataTables_wrapper .dataTables_length,
    .dataTables_wrapper .dataTables_filter {
        text-align: left;
        width: 100%;
    }
    .dataTables_wrapper .dataTables_filter input {
        width: 100%;
        margin-left: 0;
        margin-top: 6px;
    }
}
