/* Capa visual compartida para módulos rpt_. Todas las reglas están aisladas por .rpt-ux. */
.rpt-ux {
    --rpt-primary: #0d6efd;
    --rpt-info: #0f8fa8;
    --rpt-border: #dfe5ec;
    --rpt-surface: #ffffff;
    --rpt-surface-soft: #f7f9fc;
    --rpt-text: #243447;
    --rpt-muted: #667085;
    --rpt-radius: .65rem;
    --rpt-shadow: 0 .125rem .45rem rgba(31, 45, 61, .08);
}

.rpt-ux .content-wrapper,
.rpt-ux main,
.rpt-ux > form {
    background-color: var(--rpt-surface-soft);
}

.rpt-ux .card {
    border-color: var(--rpt-border);
    border-radius: var(--rpt-radius);
}

.rpt-ux .rpt-filter-card,
.rpt-ux .rpt-results-card,
.rpt-ux .card.shadow-sm,
.rpt-ux .card.border-0 {
    box-shadow: var(--rpt-shadow) !important;
}

.rpt-ux .rpt-filter-card {
    border: 0;
    margin-bottom: .75rem !important;
    background: var(--rpt-surface);
}

.rpt-ux .rpt-filter-card > .card-body,
.rpt-ux .card-body.p-1 {
    padding: .65rem !important;
}

.rpt-ux .card-header {
    background: var(--rpt-surface);
    border-bottom-color: var(--rpt-border);
    padding-top: .6rem;
    padding-bottom: .6rem;
}

.rpt-ux .card-title,
.rpt-ux .card-header h1,
.rpt-ux .card-header h2,
.rpt-ux .card-header h3,
.rpt-ux .card-header h4,
.rpt-ux .card-header h5,
.rpt-ux .card-header h6 {
    color: var(--rpt-text);
    font-weight: 650;
    letter-spacing: -.01em;
}

.rpt-ux .row.g-0 {
    --bs-gutter-x: .5rem;
    --bs-gutter-y: .5rem;
}

.rpt-ux .input-group {
    min-width: 0;
}

.rpt-ux .input-group-text {
    color: #52606d;
    background-color: #f1f5f9;
    border-color: #ced7e0;
}

.rpt-ux .form-control,
.rpt-ux .form-select,
.rpt-ux select.form-control {
    border-color: #cbd5df;
    border-radius: .4rem;
}

.rpt-ux input.form-control,
.rpt-ux select.form-control,
.rpt-ux select.form-select,
.rpt-ux textarea.form-control {
    min-height: 32px;
}

.rpt-ux .form-control:focus,
.rpt-ux .form-select:focus,
.rpt-ux select.form-control:focus {
    border-color: #86b7fe;
    box-shadow: 0 0 0 .18rem rgba(13, 110, 253, .14);
}

.rpt-ux label,
.rpt-ux .form-label {
    color: #475467;
}

.rpt-ux .text-bold {
    font-weight: 700 !important;
}

.rpt-ux .btn {
    border-radius: .42rem;
}

.rpt-ux .input-group .btn,
.rpt-ux .btn-sm {
    min-height: 31px;
}

.rpt-ux .btn-outline-info {
    color: #087990;
    border-color: #55b4c5;
}

.rpt-ux .btn-outline-info:hover,
.rpt-ux .btn-outline-info:focus {
    color: #fff;
    background-color: #087990;
    border-color: #087990;
}

.rpt-ux a:focus-visible,
.rpt-ux button:focus-visible,
.rpt-ux input:focus-visible,
.rpt-ux select:focus-visible,
.rpt-ux textarea:focus-visible {
    outline: 3px solid rgba(13, 110, 253, .28);
    outline-offset: 2px;
}

.rpt-ux .table-responsive {
    border-radius: 0 0 var(--rpt-radius) var(--rpt-radius);
    scrollbar-width: thin;
}

.rpt-ux table.table {
    color: var(--rpt-text);
    vertical-align: middle;
}

.rpt-ux table.table > thead > tr > th,
.rpt-ux table.table > tbody > tr:first-child > th {
    color: #344054;
    background-color: #eef3f8;
    border-color: #d8e0e8;
    font-weight: 650;
    white-space: nowrap;
}

.rpt-ux table.table > tbody > tr > td {
    border-color: #e5eaf0;
}

.rpt-ux table.table-hover > tbody > tr:hover > * {
    --bs-table-accent-bg: #f0f7ff;
    color: var(--rpt-text);
}

.rpt-ux table.table-striped > tbody > tr:nth-of-type(odd) > * {
    --bs-table-accent-bg: rgba(245, 248, 252, .72);
}

.rpt-ux .rpt-empty-state {
    padding: 2.75rem 1rem;
    color: var(--rpt-muted);
    text-align: center;
}

.rpt-ux .badge {
    font-weight: 600;
    letter-spacing: .01em;
}

.rpt-ux .pagination-ys,
.rpt-ux .pagination {
    margin: .5rem;
}

.rpt-ux .pagination-ys a,
.rpt-ux .pagination-ys span {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 32px;
    min-height: 32px;
    margin: 1px;
    padding: .25rem .5rem;
    border: 1px solid #d6dee7;
    border-radius: .38rem;
    text-decoration: none;
}

.rpt-ux .pagination-ys span {
    color: #fff;
    background: var(--rpt-primary);
    border-color: var(--rpt-primary);
}

.rpt-ux .rpt-icon-action {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 32px;
}

.rpt-ux .alert[role="alert"],
.rpt-ux .rpt-live-region {
    border-radius: .5rem;
}

.rpt-ux .rpt-kpi,
.rpt-ux .kpi-card,
.rpt-ux .info-box,
.rpt-ux .small-box {
    box-shadow: var(--rpt-shadow);
}

@media (max-width: 767.98px) {
    .rpt-ux .rpt-filter-card .row > [class*="col-"] {
        margin-bottom: .15rem;
    }

    .rpt-ux .card-header {
        padding-left: .75rem;
        padding-right: .75rem;
    }

    .rpt-ux .table-responsive {
        -webkit-overflow-scrolling: touch;
    }

    .rpt-ux table.table {
        font-size: .78rem;
    }

    .rpt-ux .btn:not(.btn-tool):not(.btn-close) {
        min-height: 34px;
    }
}

@media (prefers-reduced-motion: reduce) {
    .rpt-ux *,
    .rpt-ux *::before,
    .rpt-ux *::after {
        scroll-behavior: auto !important;
        transition-duration: .01ms !important;
        animation-duration: .01ms !important;
        animation-iteration-count: 1 !important;
    }
}

@media print {
    .rpt-ux .main-header,
    .rpt-ux .main-sidebar,
    .rpt-ux .main-footer,
    .rpt-ux .rpt-filter-card,
    .rpt-ux .btn,
    .rpt-ux .card-tools,
    .rpt-ux .pagination-ys {
        display: none !important;
    }

    .rpt-ux .content-wrapper,
    .rpt-ux .card,
    .rpt-ux .table-responsive {
        margin: 0 !important;
        padding: 0 !important;
        overflow: visible !important;
        box-shadow: none !important;
        border-color: #bbb !important;
    }

    .rpt-ux table.table {
        font-size: 9pt;
    }
}

/* Prevenir que los tooltips de Bootstrap queden atrapados recibiendo punteros */
.tooltip, .bs-tooltip-auto, .popover {
    pointer-events: none !important;
}

