div.dt-container {
    width: 100%;
    color: #343a40;
}

/* Todas las tablas operativas conservan aire dentro de su tarjeta. */
.card > .table-responsive,
.card > .card-body.table-responsive,
.card > .card-body.p-0 > .table-responsive,
.card.datatable-card > .card-body {
    padding: 1rem !important;
}

.card.datatable-card > .card-body {
    overflow: visible;
}

.card .table-responsive > table.table:not(.dataTable) {
    width: 100%;
    margin: 0;
    border: 1px solid #dee2e6;
    background: #fff;
}

.card .table-responsive > table.table:not(.dataTable) thead th {
    padding: .85rem 1rem;
    border-top: 0;
    border-bottom: 2px solid #dfe4e8;
    background: #f6f8fa;
    vertical-align: middle;
    white-space: nowrap;
}

.card .table-responsive > table.table:not(.dataTable) tbody td {
    padding: .85rem 1rem;
    vertical-align: middle;
}

div.dt-container .dt-layout-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .75rem;
    margin: 0;
    padding: .7rem 0 !important;
}

div.dt-container .dt-layout-row:first-child {
    background: transparent;
    border-bottom: 0;
    padding-top: 0 !important;
}

div.dt-container .dt-layout-row:last-child:not(.dt-layout-table) {
    background: transparent;
    border-top: 0;
    padding-bottom: 0 !important;
}

div.dt-container .dt-layout-row.dt-layout-table {
    display: block;
    padding: 0 !important;
    overflow-x: auto;
    border: 1px solid #dee2e6;
    border-radius: .45rem;
    background: #fff;
}

div.dt-container .dt-layout-cell {
    display: flex;
    align-items: center;
}

div.dt-container .dt-layout-row.dt-layout-table > .dt-layout-cell {
    display: block;
    width: 100%;
}

div.dt-container .dt-search,
div.dt-container .dt-length {
    display: flex;
    align-items: center;
    gap: .5rem;
    margin: 0;
}

div.dt-container .dt-search label,
div.dt-container .dt-length label {
    margin: 0;
    white-space: nowrap;
    font-weight: 400;
}

div.dt-container .dt-search input {
    width: min(260px, 36vw);
    min-height: 38px;
    margin: 0;
    border: 1px solid #ced4da;
    border-radius: .25rem;
    padding: .375rem .75rem;
}

div.dt-container .dt-length select {
    min-width: 72px;
    min-height: 38px;
    margin: 0;
    border-color: #ced4da;
    border-radius: .25rem;
}

div.dt-container .dt-info {
    padding: 0;
    color: #6c757d;
}

div.dt-container .dt-paging {
    margin-left: auto;
}

div.dt-container .pagination {
    margin: 0;
    flex-wrap: wrap;
}

table.dataTable {
    margin: 0 !important;
    border-collapse: collapse !important;
    width: 100% !important;
}

table.dataTable thead th {
    white-space: nowrap;
    vertical-align: middle;
    border-top: 0;
}

table.dataTable tbody td {
    vertical-align: middle;
    padding: .85rem 1rem;
}

table.dataTable thead th {
    padding: .85rem 1rem;
    background: #f6f8fa;
    border-bottom: 2px solid #dfe4e8;
}

table.dataTable tbody tr:last-child td {
    border-bottom: 0;
}

table.dataTable tbody tr:hover {
    background-color: #f3f8fc;
}

.card.datatable-card .card-header {
    border-bottom: 1px solid rgba(0, 0, 0, .08);
}

.card.datatable-card .card-footer {
    padding: .75rem 1rem;
    background: #fff;
}

table.dataTable td form {
    margin: 0;
}

table.dataTable td .btn + .btn {
    margin-left: .2rem;
}

@media (max-width: 767.98px) {
    div.dt-container .dt-layout-row {
        align-items: stretch;
        flex-direction: column;
        padding: .55rem 0;
    }

    div.dt-container .dt-layout-cell,
    div.dt-container .dt-search,
    div.dt-container .dt-length {
        width: 100%;
    }

    div.dt-container .dt-search input {
        width: 100%;
    }

    div.dt-container .dt-paging {
        margin-left: 0;
        overflow-x: auto;
    }

    .card > .table-responsive,
    .card > .card-body.table-responsive,
    .card > .card-body.p-0 > .table-responsive,
    .card.datatable-card > .card-body {
        padding: .65rem !important;
    }

    table.dataTable thead th,
    table.dataTable tbody td {
        padding: .7rem .75rem;
    }
}
