/* ============================================================
   prestamos.css  —  Modulo Prestamos / Centro de Reportes
   Estilos para panel de reportes consolidados
   ============================================================ */

/* ── Variables del modulo ──────────────────────────────────── */
:root {
    --pres-bg: #f6f7fa;
    --pres-card-radius: 10px;
    --pres-shadow-sm: 0 1px 3px rgba(0,0,0,.06);
    --pres-shadow-md: 0 4px 12px rgba(0,0,0,.08);
    --pres-shadow-hover: 0 6px 20px rgba(0,0,0,.12);
    --pres-transition: all 0.25s cubic-bezier(.4,0,.2,1);
    --pres-primary: var(--primario, #284A70);
    --pres-accent: var(--secundario, #fe7800);
    --pres-success: #22c55e;
    --pres-warning: #f59e0b;
    --pres-danger: #ef4444;
    --pres-muted: #94a3b8;
    --pres-border: #e2e8f0;
    --pres-bg-subtle: #f8fafc;
}

/* ============================================================
   Centro de Reportes  —  Panel principal con tarjetas
   ============================================================ */

.rep-centro-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
    gap: 20px;
    padding: 16px 0;
}

.rep-centro-card {
    background: #fff;
    border-radius: var(--pres-card-radius);
    box-shadow: var(--pres-shadow-sm);
    border: 1px solid var(--pres-border);
    overflow: hidden;
    transition: var(--pres-transition);
    cursor: pointer;
    display: flex;
    flex-direction: column;
}

.rep-centro-card:hover {
    box-shadow: var(--pres-shadow-hover);
    transform: translateY(-2px);
}

.rep-centro-card-accent {
    height: 5px;
}

.rep-centro-card-body {
    padding: 20px 20px 16px;
    flex: 1;
    display: flex;
    flex-direction: column;
}

.rep-centro-card-icon {
    width: 48px;
    height: 48px;
    border-radius: 12px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 22px;
    margin-bottom: 14px;
}

.rep-centro-card-title {
    font-size: 16px;
    font-weight: 700;
    color: var(--pres-primary);
    margin: 0 0 6px;
}

.rep-centro-card-desc {
    font-size: 13px;
    color: var(--pres-muted);
    line-height: 1.45;
    margin: 0 0 14px;
    flex: 1;
}

.rep-centro-card-count {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 12px;
    color: var(--pres-muted);
    border-top: 1px solid var(--pres-border);
    padding-top: 12px;
    margin-top: auto;
}

.rep-centro-card-count .count-num {
    background: var(--pres-bg-subtle);
    color: var(--pres-primary);
    font-weight: 700;
    padding: 2px 10px;
    border-radius: 10px;
    font-size: 13px;
}

/* ============================================================
   Selector de sub-reportes (chips)
   ============================================================ */

.rep-vista-selector {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-bottom: 16px;
}

.rep-vista-chip {
    padding: 6px 16px;
    border-radius: 20px;
    font-size: 13px;
    font-weight: 500;
    border: 1px solid var(--pres-border);
    background: #fff;
    color: #64748b;
    cursor: pointer;
    transition: var(--pres-transition);
    white-space: nowrap;
}

.rep-vista-chip:hover {
    border-color: var(--pres-primary);
    color: var(--pres-primary);
    background: #f0f4f8;
}

.rep-vista-chip.active {
    background: var(--pres-primary);
    color: #fff;
    border-color: var(--pres-primary);
}

/* ============================================================
   Tarjetas de indicadores (KPI)
   ============================================================ */

.rep-stat-cards {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    margin-bottom: 10px;
}

.rep-stat-card {
    background: #fff;
    border: 1px solid var(--pres-border);
    border-radius: var(--pres-card-radius);
    padding: 14px 20px;
    flex: 1;
    min-width: 160px;
    box-shadow: var(--pres-shadow-sm);
}

.rep-stat-card .stat-label {
    font-size: 12px;
    color: var(--pres-muted);
    font-weight: 500;
    margin-bottom: 4px;
}

.rep-stat-card .stat-value {
    font-size: 22px;
    font-weight: 700;
    color: var(--pres-primary);
}

.rep-stat-card .stat-sub {
    font-size: 12px;
    color: var(--pres-muted);
    margin-top: 2px;
}

/* ============================================================
   Contenedor de tablas con estilo
   ============================================================ */

.rep-table-container {
    background: #fff;
    border: 1px solid var(--pres-border);
    border-radius: var(--pres-card-radius);
    box-shadow: var(--pres-shadow-sm);
    overflow: hidden;
}

.rep-table-container .table {
    margin-bottom: 0;
}

.rep-table-container thead th {
    background: #f8fafc;
    border-bottom: 2px solid var(--pres-border);
    font-size: 12px;
    font-weight: 600;
    color: #475569;
    text-transform: uppercase;
    letter-spacing: 0.3px;
    padding: 10px 14px;
    white-space: nowrap;
}

.rep-table-container tbody td {
    font-size: 13px;
    padding: 10px 14px;
    color: #334155;
    border-bottom: 1px solid #f1f5f9;
}

.rep-table-container tbody tr:hover {
    background: #f8fafc;
}

/* ============================================================
   Badges de estado
   ============================================================ */

.rep-badge {
    display: inline-flex;
    padding: 3px 10px;
    border-radius: 12px;
    font-size: 12px;
    font-weight: 600;
}

.rep-badge-success { background: #dcfce7; color: #15803d; }
.rep-badge-warning { background: #fef3c7; color: #b45309; }
.rep-badge-danger  { background: #fef2f2; color: #dc2626; }
.rep-badge-info    { background: #dbeafe; color: #1d4ed8; }
.rep-badge-muted   { background: #f1f5f9; color: #64748b; }

/* ============================================================
   Estados vacios y cargando
   ============================================================ */

.rep-empty-state {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 60px 20px;
    color: var(--pres-muted);
}

.rep-empty-state i {
    font-size: 48px;
    margin-bottom: 12px;
    opacity: 0.5;
}

.rep-loading {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    padding: 40px;
    color: var(--pres-primary);
    font-size: 14px;
}

/* ============================================================
   Responsive
   ============================================================ */

@media (max-width: 768px) {
    .rep-centro-grid {
        grid-template-columns: 1fr;
    }

    .rep-stat-cards {
        flex-direction: column;
    }
}

/* ═══════════════════════════════════════════════════════
   CENTRAL DE COBRANZAS (.ccob-) — avisos WhatsApp + CRM
   ═══════════════════════════════════════════════════════ */

.ccob-kpis {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(182px, 1fr));
    gap: 10px;
    margin-bottom: 14px;
}

.ccob-kpi {
    background: #fff;
    border: 1px solid var(--linea-suave, #e0e4ec);
    border-radius: 12px;
    padding: 12px 14px;
    border-top: 3px solid var(--primario, #284A70);
    box-shadow: 0 1px 3px rgba(30, 58, 95, 0.06);
}

.ccob-kpi--hoy { border-top-color: #1976d2; }
.ccob-kpi--porvencer { border-top-color: #2c5282; }
.ccob-kpi--vencidas { border-top-color: #c62828; }
.ccob-kpi--compromisos { border-top-color: #d4af37; }
.ccob-kpi--avisos { border-top-color: var(--secundario, #fe7800); }
.ccob-kpi--recuperado { border-top-color: #2e7d32; }
.ccob-kpi--promesasmes { border-top-color: #1e3a5f; }

.ccob-kpi__label {
    font-size: 10.5px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    color: #667085;
}

.ccob-kpi__valor {
    font-size: 24px;
    font-weight: 800;
    color: #1e3a5f;
    line-height: 1.2;
}

.ccob-kpi__sub {
    font-size: 12px;
    color: #98a2b3;
}

.ccob-banner-off {
    background: #fff8e6;
    border: 1px solid #f0dfa8;
    border-left: 4px solid #d4af37;
    border-radius: 8px;
    padding: 10px 14px;
    margin-bottom: 12px;
    font-size: 13px;
    color: #6b5b21;
}

.ccob-card { border-radius: 12px; overflow: hidden; }

.ccob-tabla thead th {
    background: #1e3a5f;
    color: #fff;
    font-size: 12px;
    white-space: nowrap;
    position: sticky;
    top: 0;
    z-index: 1;
}

.ccob-tabla td {
    font-size: 13px;
    vertical-align: middle;
}

.ccob-titular { font-weight: 700; color: #1d2939; }
.ccob-subtexto { font-size: 11.5px; color: #98a2b3; }

.ccob-chip {
    display: inline-block;
    padding: 2px 10px;
    border-radius: 12px;
    font-size: 11px;
    font-weight: 700;
    white-space: nowrap;
}

.ccob-chip--verde { background: #e6f4ea; color: #2e7d32; }
.ccob-chip--rojo { background: #fdecec; color: #c62828; }
.ccob-chip--naranja { background: #fff3e6; color: #c77700; }
.ccob-chip--azul { background: #e7f0ff; color: #1976d2; }
.ccob-chip--gris { background: #f2f4f8; color: #667085; }

.ccob-btn-enviar {
    background: #25D366;
    color: #fff;
    font-weight: 700;
    border: none;
}
.ccob-btn-enviar:hover:not(:disabled) { background: #1ebe5b; color: #fff; }

.ccob-fila-sintel td { background: #fff8f4; }

/* ── Overlays / modales ── */
.ccob-overlay {
    position: fixed;
    inset: 0;
    background: rgba(10, 20, 35, 0.55);
    z-index: 1055;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 20px;
}

.ccob-modal {
    background: #fff;
    border-radius: 14px;
    border-top: 4px solid #d4af37;
    width: min(860px, 96vw);
    max-height: 88vh;
    display: flex;
    flex-direction: column;
    box-shadow: 0 18px 50px rgba(10, 20, 35, 0.35);
}

.ccob-modal--chico { width: min(560px, 96vw); }

.ccob-modal__header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 14px 18px;
    background: #1e3a5f;
    color: #fff;
    font-weight: 700;
    border-radius: 10px 10px 0 0;
}

.ccob-modal__cerrar {
    background: rgba(255, 255, 255, 0.15);
    border: none;
    color: #fff;
    width: 30px;
    height: 30px;
    border-radius: 8px;
    cursor: pointer;
}

.ccob-modal__body {
    padding: 16px 18px;
    overflow-y: auto;
    flex: 1 1 auto;
    min-height: 0;
}

.ccob-modal__footer {
    display: flex;
    justify-content: flex-end;
    gap: 10px;
    padding: 12px 18px;
    border-top: 1px solid var(--linea-suave, #e0e4ec);
}

/* ── Timeline ── */
.ccob-timeline { padding-left: 8px; }

.ccob-evento {
    position: relative;
    padding: 0 0 16px 26px;
    border-left: 2px solid #e0e4ec;
    margin-left: 8px;
}

.ccob-evento:last-child { border-left-color: transparent; }

.ccob-evento__punto {
    position: absolute;
    left: -7px;
    top: 2px;
    width: 12px;
    height: 12px;
    border-radius: 50%;
    background: #1976d2;
    border: 2px solid #fff;
    box-shadow: 0 0 0 2px #1976d2;
}

.ccob-evento--aviso .ccob-evento__punto { background: #25D366; box-shadow: 0 0 0 2px #25D366; }
.ccob-evento--gestion .ccob-evento__punto { background: #d4af37; box-shadow: 0 0 0 2px #d4af37; }

.ccob-evento__titulo {
    font-weight: 700;
    font-size: 13px;
    color: #1d2939;
}

.ccob-evento__fecha {
    font-weight: 400;
    font-size: 11.5px;
    color: #98a2b3;
    margin-left: 6px;
}

/* ── Monitor de tareas ── */
.ccob-detalle-corrida {
    background: #f5f7fb;
}

.ccob-detalle-corrida pre {
    margin: 0;
    padding: 10px 14px;
    font-size: 12px;
    color: #344054;
    white-space: pre-wrap;
    word-break: break-word;
}

@media (max-width: 992px) {
    .ccob-kpis { grid-template-columns: repeat(2, 1fr); }
}

/* ═══════════ Cobranza Paquete 5 ═══════════ */

/* ── Tramos de mora / antigüedad (chips-filtro) ── */
.ccob-tramos {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
    padding: 0;
}

.ccob-tramo {
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 9px;
    min-width: 148px;
    padding: 7px 14px;
    border: 1px solid #e0e4ec;
    border-radius: 10px;
    background: #fff;
    cursor: pointer;
    transition: border-color .15s ease, box-shadow .15s ease, background .15s ease;
    line-height: 1.3;
    text-align: left;
}

.ccob-tramo:hover { border-color: #1976d2; box-shadow: 0 2px 6px rgba(30,58,95,.12); }

.ccob-tramo__punto {
    flex: 0 0 auto;
    width: 9px;
    height: 9px;
    border-radius: 50%;
    background: #98a2b3;
}

.ccob-tramo__punto--azul { background: #1976d2; }
.ccob-tramo__punto--verde { background: #2e7d32; }
.ccob-tramo__punto--dorado { background: #d4af37; }
.ccob-tramo__punto--naranja { background: var(--secundario, #fe7800); }
.ccob-tramo__punto--rojo { background: #c62828; }
.ccob-tramo__punto--vino { background: #8a1f1f; }

.ccob-tramo__txt { display: flex; flex-direction: column; min-width: 0; }

.ccob-tramo__nombre { font-size: 10.5px; font-weight: 700; color: #667085; text-transform: uppercase; letter-spacing: .4px; }
.ccob-tramo__datos { font-size: 12.5px; font-weight: 700; color: #1e3a5f; white-space: nowrap; }

.ccob-tramo--activo {
    background: #1e3a5f;
    border-color: #1e3a5f;
}
.ccob-tramo--activo .ccob-tramo__nombre,
.ccob-tramo--activo .ccob-tramo__datos { color: #fff; }

/* ── Strip "Canceladas en caja" ── */
.ccob-recuperadas {
    margin: 14px 0 0 0;
    border: 1px solid #cde9d4;
    background: #f2fbf4;
    border-radius: 10px;
    overflow: hidden;
}

.ccob-recuperadas__toggle {
    width: 100%;
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 8px 14px;
    background: transparent;
    border: 0;
    font-size: 12.5px;
    font-weight: 700;
    color: #2e7d32;
    cursor: pointer;
}

.ccob-recuperadas__toggle .fa-chevron-up,
.ccob-recuperadas__toggle .fa-chevron-down { margin-left: auto; }

.ccob-recuperadas__lista {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
    padding: 0 14px 10px 14px;
}

.ccob-recuperada {
    display: flex;
    flex-direction: column;
    padding: 5px 10px;
    background: #fff;
    border: 1px solid #cde9d4;
    border-radius: 8px;
    line-height: 1.3;
}

.ccob-recuperada__titular { font-size: 12px; font-weight: 600; color: #1d2939; }
.ccob-recuperada__monto { font-size: 11.5px; color: #2e7d32; font-weight: 700; }

/* ── Barra de contexto de pestaña (Mi día, Promesas, filtro de antigüedad) ── */
.ccob-midia-barra {
    display: flex;
    align-items: center;
    gap: 12px;
    flex-wrap: wrap;
    padding: 8px 12px;
    background: #f5f7fb;
    border: 1px solid #e0e4ec;
    border-radius: 8px;
    margin: 14px 14px 10px 14px;
    font-size: 12.5px;
    color: #475467;
}

.ccob-midia-check {
    display: flex;
    align-items: center;
    gap: 6px;
    margin: 0;
    font-size: 12.5px;
    font-weight: 600;
    color: #344054;
    cursor: pointer;
    white-space: nowrap;
}

.ccob-midia-cat {
    background: #eef4fb !important;
}

.ccob-midia-cat td {
    font-size: 12px;
    font-weight: 800;
    color: #1e3a5f;
    text-transform: uppercase;
    letter-spacing: .4px;
    padding: 6px 10px !important;
    border-top: 2px solid #d3e2f2 !important;
}

.ccob-score {
    display: inline-block;
    min-width: 34px;
    text-align: center;
    padding: 2px 7px;
    border-radius: 8px;
    background: #eef2f7;
    color: #1e3a5f;
    font-size: 11.5px;
    font-weight: 800;
}

/* ── Promesas (chips + banda) ── */
.ccob-chip-filtro {
    padding: 4px 14px;
    border: 1px solid #d0d5dd;
    border-radius: 20px;
    background: #fff;
    font-size: 12.5px;
    font-weight: 600;
    color: #475467;
    cursor: pointer;
    transition: all .12s ease;
}

.ccob-chip-filtro:hover { border-color: #1976d2; color: #1976d2; }

.ccob-chip-filtro--activo {
    background: #1e3a5f;
    border-color: #1e3a5f;
    color: #fff;
}

.ccob-banda-promesas {
    display: flex;
    gap: 18px;
    align-items: center;
    margin-left: auto;
    font-size: 12.5px;
    color: #475467;
}

.ccob-banda-promesas b { color: #1e3a5f; }

/* ── Botón mini (lápiz teléfonos, meta) ── */
.ccob-btn-mini {
    border: 1px solid #e0e4ec;
    background: #fff;
    color: #667085;
    border-radius: 6px;
    padding: 1px 6px;
    font-size: 11px;
    cursor: pointer;
    transition: all .12s ease;
}

.ccob-btn-mini:hover { color: #1976d2; border-color: #1976d2; }

/* ── Overlay de teléfonos ── */
.ccob-telefono {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 8px 12px;
    border: 1px solid #e0e4ec;
    border-radius: 10px;
    margin-bottom: 8px;
    background: #fff;
}

.ccob-telefono__dato { flex: 1 1 auto; line-height: 1.3; }
.ccob-telefono__dato b { font-size: 14px; color: #1d2939; }
.ccob-telefono__dato small { display: block; color: #98a2b3; }

.ccob-telefono__chips { display: flex; gap: 5px; flex-wrap: wrap; }
.ccob-telefono__acciones { display: flex; gap: 4px; }

.ccob-telefono--errado { background: #fdf3f3; border-color: #f2c7c7; }
.ccob-telefono--errado .ccob-telefono__dato b { text-decoration: line-through; color: #c62828; }

.ccob-telefono-nuevo {
    border-top: 2px dashed #e0e4ec;
    margin-top: 12px;
    padding-top: 12px;
}

.ccob-telefono-nuevo .form-row { align-items: flex-end; }

/* ══════════════════════════════════════════════════════════════════════
   Equipo de Cobranza (CobranzaEquipoPage) + Avisos y parametros
   de cobranza (CobranzaConfigPage)
   ══════════════════════════════════════════════════════════════════════ */
.ccob-equipo-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 10px;
    padding: 4px 15px 10px 15px;
}

.ccob-equipo-header__titulo {
    font-size: 20px;
    font-weight: 800;
    color: #1e3a5f;
    line-height: 1.25;
}

.ccob-equipo-header__titulo i { color: #d4af37; margin-right: 6px; }

.ccob-equipo-header__sub {
    display: block;
    font-size: 12.5px;
    font-weight: 400;
    color: #98a2b3;
}

.ccob-equipo-header__filtros {
    display: flex;
    gap: 8px;
    align-items: center;
}

.ccob-equipo-header__filtros select { width: auto; min-width: 110px; }

.ccob-equipo-content .container-fluid { padding-bottom: 30px; }

/* ── Selector de periodo tipo stepper ── */
.ccob-periodo {
    display: inline-flex;
    align-items: center;
    background: #fff;
    border: 1px solid var(--linea-suave, #e0e4ec);
    border-radius: 10px;
    overflow: hidden;
}

.ccob-periodo__nav {
    width: 32px;
    height: 32px;
    border: 0;
    background: #f7f8fb;
    color: #2c5282;
    cursor: pointer;
    transition: background .12s ease;
}

.ccob-periodo__nav:hover { background: #e7f0ff; }

.ccob-periodo__valor {
    min-width: 128px;
    text-align: center;
    font-size: 12.5px;
    font-weight: 700;
    color: #1e3a5f;
}

/* ── Botones propios de la vista ── */
.ccob-btn-ghost {
    height: 32px;
    padding: 0 11px;
    background: #fff;
    border: 1px solid var(--linea-suave, #e0e4ec);
    border-radius: 9px;
    color: #2c5282;
    font-size: 12.5px;
    cursor: pointer;
    transition: all .12s ease;
}

.ccob-btn-ghost:hover { border-color: #1976d2; color: #1976d2; }

.ccob-btn-excel {
    height: 32px;
    padding: 0 13px;
    background: #fff;
    border: 1px solid #cde9d4;
    border-radius: 9px;
    color: #2e7d32;
    font-size: 12.5px;
    font-weight: 700;
    cursor: pointer;
    transition: all .12s ease;
}

.ccob-btn-excel:hover:not(:disabled) { background: #f2fbf4; }
.ccob-btn-excel:disabled { opacity: .6; cursor: not-allowed; }

.ccob-btn-naranja {
    background: var(--secundario, #fe7800);
    border: 0;
    color: #fff;
    border-radius: 9px;
    padding: 8px 16px;
    font-size: 12.5px;
    font-weight: 700;
    cursor: pointer;
    transition: background .12s ease;
}

.ccob-btn-naranja:hover:not(:disabled) { background: #e56d00; }
.ccob-btn-naranja:disabled { opacity: .6; cursor: not-allowed; }

.ccob-btn-azul {
    background: #2c5282;
    border: 0;
    color: #fff;
    border-radius: 9px;
    padding: 7px 14px;
    font-size: 12.5px;
    font-weight: 700;
    cursor: pointer;
    transition: background .12s ease;
}

.ccob-btn-azul:hover:not(:disabled) { background: #1e3a5f; }
.ccob-btn-azul:disabled { opacity: .6; cursor: not-allowed; }

/* ── Pestanias propias ── */
.ccob-tabs {
    display: flex;
    gap: 4px;
    border-bottom: 2px solid var(--linea-suave, #e0e4ec);
    margin-bottom: 16px;
}

.ccob-tab {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    padding: 9px 16px;
    border: 0;
    background: transparent;
    font-size: 13px;
    font-weight: 600;
    color: #667085;
    cursor: pointer;
    border-bottom: 2px solid transparent;
    margin-bottom: -2px;
    transition: color .12s ease, border-color .12s ease;
}

.ccob-tab i { font-size: 13px; color: #98a2b3; }
.ccob-tab:hover { color: #2c5282; }

.ccob-tab--activo { color: #1e3a5f; font-weight: 800; border-bottom-color: #d4af37; }
.ccob-tab--activo i { color: #d4af37; }

.ccob-tab__badge {
    background: #fff3e6;
    color: #c77700;
    border-radius: 9px;
    padding: 1px 7px;
    font-size: 10.5px;
    font-weight: 800;
}

/* ── Cards ── */
.ccob-card {
    background: #fff;
    border: 1px solid #e0e4ec;
    border-radius: 12px;
    padding: 14px 16px;
    margin-bottom: 16px;
    box-shadow: 0 1px 3px rgba(30,58,95,.06);
}

.ccob-card__titulo {
    font-size: 14px;
    font-weight: 800;
    color: #1e3a5f;
    margin-bottom: 10px;
}

.ccob-card__titulo i { color: #d4af37; margin-right: 6px; }

.ccob-card__cab {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 10px;
    flex-wrap: wrap;
    margin-bottom: 8px;
}

.ccob-card__cab .ccob-card__titulo { margin-bottom: 2px; }

.ccob-card__sub {
    font-size: 11.5px;
    color: #98a2b3;
}

.ccob-card__pie {
    border-top: 1px solid #f0f2f6;
    margin-top: 10px;
    padding-top: 9px;
    font-size: 11.5px;
    color: #98a2b3;
}

.ccob-card__acciones {
    border-top: 1px solid #f0f2f6;
    margin-top: 10px;
    padding-top: 12px;
    display: flex;
    justify-content: flex-end;
}

.ccob-vacio {
    text-align: center;
    color: #98a2b3;
    font-size: 13px;
    padding: 26px 10px;
}

.ccob-vacio i { display: block; font-size: 26px; margin-bottom: 8px; color: #d0d5dd; }

/* ── KPIs de la pestania de ranking ── */
.ccob-kpis4 {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 12px;
    margin-bottom: 16px;
}

.ccob-kpi4 {
    background: #fff;
    border: 1px solid var(--linea-suave, #e0e4ec);
    border-top: 3px solid #2c5282;
    border-radius: 12px;
    padding: 12px 15px;
    box-shadow: 0 1px 3px rgba(30,58,95,.06);
}

.ccob-kpi4--recuperado { border-top-color: #2e7d32; }
.ccob-kpi4--vencida { border-top-color: #c62828; }
.ccob-kpi4--promesas { border-top-color: #d4af37; }
.ccob-kpi4--alerta { border-top-color: #fe7800; }

.ccob-kpi4__label {
    font-size: 10.5px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .5px;
    color: #98a2b3;
}

.ccob-kpi4__valor {
    font-size: 22px;
    font-weight: 800;
    color: #1e3a5f;
    line-height: 1.3;
}

.ccob-kpi4__sub { font-size: 11.5px; color: #98a2b3; }

/* ── Rejilla de 2 columnas ── */
.ccob-equipo-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.55fr) minmax(0, 1fr);
    gap: 16px;
    align-items: start;
}

/* ── Fila de gestor del ranking ── */
.ccob-gestor {
    display: grid;
    grid-template-columns: 24px 34px minmax(0, 1fr) 168px 122px 62px 26px;
    align-items: center;
    gap: 10px;
    padding: 11px 4px;
    border-top: 1px solid #f0f2f6;
}

.ccob-gestor:first-child { border-top: 0; }
.ccob-gestor:hover { background: #fafbfd; }

.ccob-gestor__pos {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 22px;
    height: 22px;
    border-radius: 50%;
    font-size: 11.5px;
    font-weight: 800;
    background: #f2f4f8;
    color: #98a2b3;
}

.ccob-gestor__pos--1 { background: #f6e9be; color: #8a6d12; }
.ccob-gestor__pos--2 { background: #e8eaee; color: #5e6b7c; }
.ccob-gestor__pos--3 { background: #f2e0cf; color: #8a5a2b; }

.ccob-avatar {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 34px;
    height: 34px;
    border-radius: 50%;
    background: #eef4fb;
    color: #2c5282;
    font-size: 12px;
    font-weight: 800;
    letter-spacing: .3px;
}

.ccob-gestor__nombre {
    font-size: 13.5px;
    font-weight: 700;
    color: #1d2939;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.ccob-gestor__linea { font-size: 11.5px; color: #98a2b3; }

.ccob-gestor__metabox { min-width: 0; }
.ccob-gestor__metalbl { font-size: 11px; color: #667085; white-space: nowrap; }

.ccob-gestor__monto { text-align: right; }

.ccob-gestor__monto-val {
    font-size: 14px;
    font-weight: 800;
    color: #1e3a5f;
    white-space: nowrap;
}

.ccob-gestor__monto-lbl {
    font-size: 10.5px;
    text-transform: uppercase;
    letter-spacing: .4px;
    color: #98a2b3;
}

.ccob-meta { display: flex; align-items: center; gap: 6px; justify-content: flex-end; }
.ccob-meta__texto { font-size: 11.5px; color: #475467; white-space: nowrap; }

.ccob-meta__barra {
    width: 60px;
    height: 8px;
    background: #eef2f7;
    border-radius: 5px;
    overflow: hidden;
}

.ccob-gestor__metabox .ccob-meta__barra { width: 100%; margin-top: 4px; }

.ccob-meta__fill { height: 100%; background: #1976d2; border-radius: 5px; }
.ccob-meta__fill--ok { background: #2e7d32; }
.ccob-meta__fill--medio { background: #d4af37; }
.ccob-meta__fill--bajo { background: #c62828; }

.ccob-meta-edit { display: flex; gap: 4px; align-items: center; }
.ccob-meta-edit input { width: 96px; }

/* ── Card oscura: cartera sin gestor ── */
.ccob-nogestor {
    background: linear-gradient(135deg, #1e3a5f 0%, #2c5282 100%);
    border-top: 3px solid #d4af37;
    border-radius: 12px;
    padding: 16px;
    margin-bottom: 16px;
    color: #fff;
    box-shadow: 0 2px 8px rgba(30,58,95,.18);
}

.ccob-nogestor__label {
    font-size: 10.5px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .6px;
    color: rgba(255,255,255,.7);
}

.ccob-nogestor__valor {
    font-size: 26px;
    font-weight: 800;
    line-height: 1.3;
}

.ccob-nogestor__valor small {
    font-size: 13px;
    font-weight: 600;
    color: rgba(255,255,255,.8);
}

.ccob-nogestor__txt {
    font-size: 12px;
    color: rgba(255,255,255,.78);
    margin: 6px 0 12px;
}

.ccob-nogestor--ok {
    background: linear-gradient(135deg, #1f5f3a 0%, #2e7d32 100%);
    border-top-color: #cde9d4;
}

/* ── Barra de filtros de cartera ── */
.ccob-cartera-bar {
    display: flex;
    align-items: center;
    gap: 12px;
    flex-wrap: wrap;
    margin-bottom: 12px;
}

.ccob-cartera-bar > input[type="text"] { width: 280px; }

.ccob-cartera-tot {
    margin-left: auto;
    font-size: 12.5px;
    color: #667085;
    white-space: nowrap;
}

.ccob-cartera-tot b { color: #1e3a5f; }

/* ── Tabla limpia (cartera) ── */
.ccob-grid { width: 100%; border-collapse: collapse; }

.ccob-grid thead th {
    background: #f7f8fb;
    color: #667085;
    font-size: 10.5px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .5px;
    padding: 9px 10px;
    border-bottom: 1px solid var(--linea-suave, #e0e4ec);
    white-space: nowrap;
    text-align: left;
}

.ccob-grid tbody td {
    padding: 11px 10px;
    border-bottom: 1px solid #f0f2f6;
    font-size: 13px;
    vertical-align: middle;
}

.ccob-grid tbody tr:hover { background: #fafbfd; }

.ccob-grid__num {
    text-align: right;
    font-family: Consolas, "Courier New", monospace;
    font-size: 12.5px;
    color: #1d2939;
}

.ccob-fila-sel { background: #eef4fb !important; }

.ccob-pill {
    display: inline-block;
    padding: 2px 9px;
    border-radius: 11px;
    font-size: 11px;
    font-weight: 800;
}

.ccob-pill--ambar { background: #fff3e6; color: #c77700; }
.ccob-pill--rojo { background: #fdecec; color: #c62828; }
.ccob-pill--gris { background: #f2f4f8; color: #667085; }

.ccob-pill-sin {
    display: inline-block;
    padding: 2px 10px;
    border: 1px dashed var(--secundario, #fe7800);
    background: #fff8f2;
    color: #c77700;
    border-radius: 11px;
    font-size: 11px;
    font-weight: 700;
}

.ccob-gestor-chip {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    background: #eef4fb;
    border-radius: 14px;
    padding: 2px 11px 2px 3px;
    font-size: 12px;
    font-weight: 600;
    color: #2c5282;
}

.ccob-gestor-chip__av {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 20px;
    height: 20px;
    border-radius: 50%;
    background: #2c5282;
    color: #fff;
    font-size: 9.5px;
    font-weight: 800;
}

.ccob-cartera-pie {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
    font-size: 12px;
    color: #98a2b3;
    padding-top: 10px;
}

.ccob-cartera-pag {
    display: flex;
    align-items: center;
    gap: 10px;
    justify-content: flex-end;
    margin-left: auto;
    font-size: 12.5px;
    color: #475467;
}

/* ── Barra inferior de asignacion (solo con seleccion) ── */
.ccob-asignar-bar {
    position: sticky;
    bottom: 0;
    z-index: 5;
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
    background: #1e3a5f;
    color: #fff;
    border-radius: 10px;
    padding: 10px 14px;
    margin-top: 12px;
    box-shadow: 0 -4px 18px rgba(30,58,95,.2);
}

.ccob-asignar-bar__cant { font-size: 13px; font-weight: 800; white-space: nowrap; }
.ccob-asignar-bar select { width: auto; min-width: 215px; }

/* ══════════ Avisos y parametros de cobranza (CobranzaConfigPage) ══════════ */
.ccob-cfg-grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1.05fr);
    gap: 16px;
    align-items: start;
}

.ccob-cfg-fila {
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 12px 2px;
    border-top: 1px solid #f0f2f6;
}

.ccob-cfg-fila:first-child { border-top: 0; }

.ccob-cfg-fila__txt { flex: 1 1 auto; min-width: 0; }

.ccob-cfg-fila__lbl { font-size: 13px; font-weight: 700; color: #1d2939; }
.ccob-cfg-fila__desc { font-size: 11.5px; color: #98a2b3; margin-top: 2px; }

.ccob-cfg-fila__ctl { flex: 0 0 auto; }
.ccob-cfg-fila__ctl input[type="text"] { width: 230px; }

.ccob-stepper {
    display: inline-flex;
    align-items: center;
    border: 1px solid var(--linea-suave, #e0e4ec);
    border-radius: 9px;
    overflow: hidden;
    background: #fff;
}

.ccob-stepper__btn {
    width: 30px;
    height: 30px;
    border: 0;
    background: #f7f8fb;
    color: #2c5282;
    font-size: 15px;
    font-weight: 800;
    line-height: 1;
    cursor: pointer;
    transition: background .12s ease;
}

.ccob-stepper__btn:hover:not(:disabled) { background: #e7f0ff; }
.ccob-stepper__btn:disabled { color: #c9ced6; cursor: not-allowed; }

.ccob-stepper__val {
    min-width: 78px;
    text-align: center;
    font-size: 12.5px;
    font-weight: 700;
    color: #1e3a5f;
}

.ccob-switch {
    position: relative;
    display: inline-block;
    width: 42px;
    height: 23px;
    margin: 0;
}

.ccob-switch input { opacity: 0; width: 0; height: 0; }

.ccob-switch__slider {
    position: absolute;
    inset: 0;
    background: #d0d5dd;
    border-radius: 23px;
    cursor: pointer;
    transition: background .15s ease;
}

.ccob-switch__slider::before {
    content: "";
    position: absolute;
    left: 3px;
    top: 3px;
    width: 17px;
    height: 17px;
    background: #fff;
    border-radius: 50%;
    box-shadow: 0 1px 2px rgba(16,24,40,.2);
    transition: left .15s ease;
}

.ccob-switch input:checked + .ccob-switch__slider { background: #2e7d32; }
.ccob-switch input:checked + .ccob-switch__slider::before { left: 22px; }

.ccob-vars {
    display: flex;
    gap: 6px;
    flex-wrap: wrap;
    padding: 2px 0 12px;
}

.ccob-var {
    border: 1px solid var(--linea-suave, #e0e4ec);
    background: #fff;
    border-radius: 14px;
    padding: 3px 11px;
    font-size: 11.5px;
    color: #475467;
    cursor: pointer;
    transition: all .12s ease;
}

.ccob-var:hover { border-color: #25D366; background: #f2fbf4; color: #1a7f43; }
.ccob-var b { font-family: Consolas, "Courier New", monospace; color: #1e3a5f; }

.ccob-wsp-icono { color: #25D366 !important; }

@media (max-width: 1200px) {
    .ccob-gestor { grid-template-columns: 24px 34px minmax(0, 1fr) 140px 108px 56px 26px; gap: 8px; }
}

@media (max-width: 992px) {
    .ccob-equipo-grid,
    .ccob-cfg-grid { grid-template-columns: 1fr; }
    .ccob-kpis4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .ccob-gestor { grid-template-columns: 24px 34px minmax(0, 1fr) 110px 26px; row-gap: 6px; }
    .ccob-gestor__monto, .ccob-gestor .ccob-chip { grid-column: 3 / -1; text-align: left; }
    .ccob-cartera-tot { margin-left: 0; }
}

/* F4.2 — banner de sesion WhatsApp gateway baneada */
.ccob-banner-baneo {
    display: flex; align-items: center; gap: 12px;
    background: #fdeaea; border: 1px solid #f3c6c6; border-left: 4px solid #c62828;
    color: #8a1f1f; border-radius: 8px; padding: 12px 16px; margin: 4px 0 14px;
    font-size: 13.5px;
}
.ccob-banner-baneo i { font-size: 20px; color: #c62828; }
.ccob-banner-baneo a { color: #c62828; font-weight: 600; text-decoration: underline; }

/* ── V2-2: panel de contexto Cobranza en la bandeja de chat (plugin PanelContextoCobranza) ── */
.chcob-list { display: flex; flex-direction: column; gap: 10px; margin-top: 6px; }
.chcob-item {
    background: #fff; border: 1px solid var(--linea, #e0e4ec); border-left: 3px solid var(--primario, #284A70);
    border-radius: 8px; padding: 10px 12px;
}
.chcob-item--vencido { border-left-color: #c62828; }
.chcob-item__top { display: flex; justify-content: space-between; align-items: baseline; gap: 8px; }
.chcob-item__nro { font-weight: 600; color: var(--primario, #284A70); font-size: 13px; }
.chcob-item__saldo { font-weight: 700; font-size: 13.5px; color: #1e3a5f; white-space: nowrap; }
.chcob-item__row { font-size: 12.5px; color: #55607a; margin-top: 6px; display: flex; align-items: center; gap: 6px; }
.chcob-item__row i { width: 14px; text-align: center; }
.chcob-vencido { color: #c62828; font-weight: 600; }
.chcob-promesa { color: #2e7d32; }

/* ── Plantillas de mensajes WhatsApp (CobranzaConfigPage, F1 Reestructura Config) ── */
.ccob-plantilla {
    border: 1px solid var(--linea-suave, #e0e4ec);
    border-radius: 10px;
    padding: 11px 14px;
    margin-bottom: 10px;
    background: #fff;
}

.ccob-plantilla__head {
    display: flex;
    align-items: center;
    gap: 8px;
}

.ccob-plantilla__head .btn,
.ccob-plantilla__head .ccob-btn-mini {
    margin-left: auto;
}

.ccob-plantilla__punto {
    flex: 0 0 auto;
    width: 9px;
    height: 9px;
    border-radius: 50%;
    background: #25D366;
}

.ccob-plantilla__punto--off { background: #c9ced6; }

.ccob-plantilla__titulo {
    font-size: 13px;
    font-weight: 700;
    color: #1d2939;
}

.ccob-plantilla__cod {
    font-family: Consolas, "Courier New", monospace;
    font-size: 10.5px;
    background: #f2f4f8;
    color: #667085;
    border-radius: 5px;
    padding: 1px 7px;
}

.ccob-plantilla__burbuja {
    background: #f2fbf4;
    border: 1px solid #d7eddd;
    border-left: 3px solid #25D366;
    border-radius: 8px;
    padding: 8px 12px;
    margin-top: 8px;
    font-size: 12.5px;
    color: #33513f;
    white-space: pre-wrap;
}

.ccob-plantilla__texto {
    color: #5a6474;
    font-size: 0.86rem;
    margin-top: 6px;
    white-space: pre-wrap;
}

.ccob-plantilla__editor {
    display: flex;
    flex-direction: column;
    gap: 6px;
    margin-top: 8px;
}

.ccob-plantilla__preview {
    background: #f2fbf4;
    border: 1px solid #d7eddd;
    border-left: 3px solid #25D366;
    border-radius: 8px;
    padding: 7px 11px;
    font-size: 0.82rem;
    color: #33513f;
    white-space: pre-wrap;
}

.ccob-plantilla__acciones {
    display: flex;
    gap: 8px;
    justify-content: flex-end;
}

/* ═══════════════════════════════════════════════════════════════════════
   REDISEÑO Central de Cobranzas (/prestamos/cobranzaspage)
   Cabecera ejecutiva + pestañas pill + Resumen + tablas limpias +
   tarjetas de promesas + lista de avisos + pie de paginación.
   ═══════════════════════════════════════════════════════════════════════ */

/* ── Cabecera (reusa .ccob-equipo-header y solo sube la jerarquía visual) ── */
.ccob-hero { padding: 4px 15px 12px 15px; }

.ccob-hero__titulo { font-size: 25px; letter-spacing: -.2px; }
.ccob-hero__titulo .ccob-equipo-header__sub { margin-top: 3px; font-size: 13px; }

.ccob-hero__btn {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    padding: 9px 16px;
    border-radius: 9px;
    font-size: 13px;
    font-weight: 700;
    cursor: pointer;
    white-space: nowrap;
    transition: background .14s ease, border-color .14s ease, color .14s ease;
}

.ccob-hero__btn--enviar {
    background: #25D366;
    border: 1px solid #25D366;
    color: #fff;
}

.ccob-hero__btn--enviar:hover { background: #1ebe5b; border-color: #1ebe5b; }

.ccob-hero__btn--ghost {
    background: #fff;
    border: 1px solid var(--linea-suave, #e0e4ec);
    color: #2c5282;
}

.ccob-hero__btn--ghost:hover { border-color: #1976d2; color: #1976d2; }

/* ── Fila de navegación: pestañas pill + buscador a la derecha ── */
.ccob-navrow {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    flex-wrap: wrap;
    padding: 0 15px;
}

/* .rc-tabs vive en insi-busqueda.css (compartido) y se carga después: los ajustes de esta
   página van SIEMPRE anidados bajo .ccob-navrow/.ccob-tabsbar para ganar por especificidad
   sin tocar el componente compartido. */
.ccob-navrow .ccob-tabsbar { margin-bottom: 0; flex: 0 1 auto; max-width: 100%; }

.ccob-tabsbar .rc-tab { font-weight: 600; padding: 7px 14px; }
.ccob-tabsbar .rc-tab--active { color: #1e3a5f; font-weight: 800; }
.ccob-tabsbar .rc-tab i { color: #98a2b3; }
.ccob-tabsbar .rc-tab--active i { color: #d4af37; }

.ccob-tbadge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 20px;
    height: 20px;
    padding: 0 6px;
    border-radius: 10px;
    background: #e4e8ef;
    color: #55607a;
    font-size: 11px;
    font-weight: 800;
    line-height: 1;
}

.ccob-tabsbar .rc-tab--active .ccob-tbadge { background: #1e3a5f; color: #fff; }

.ccob-buscador { flex: 0 1 420px; min-width: 300px; margin-left: auto; }
.ccob-buscador .barra-busqueda-wrapper { margin-bottom: 0 !important; }

/* ── Pestaña Resumen ── */
.ccob-resumen { padding: 16px 14px 18px 14px; }

.ccob-resumen__cab {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 10px;
}

.ccob-resumen__t {
    font-size: 11px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .6px;
    color: #98a2b3;
}

.ccob-resumen__cab .ccob-btn-ghost { margin-left: auto; }

.ccob-aging {
    display: flex;
    align-items: center;
    gap: 12px;
    flex-wrap: wrap;
}

.ccob-aging__lbl {
    font-size: 10.5px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .6px;
    color: #98a2b3;
    white-space: nowrap;
}

/* ── Tabla limpia (Mi día / Agenda / Gestiones) ── */
.ccob-tb {
    width: 100%;
    border-collapse: collapse;
    background: #fff;
}

.ccob-tb thead th {
    position: sticky;
    top: 0;
    z-index: 1;
    background: #fff;
    color: #98a2b3;
    font-size: 10.5px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .55px;
    text-align: left;
    white-space: nowrap;
    padding: 11px 14px;
    border-bottom: 1px solid var(--linea-suave, #e0e4ec);
}

.ccob-tb thead th.text-center { text-align: center; }
.ccob-tb thead th.text-right { text-align: right; }

.ccob-tb tbody td {
    height: 56px;
    padding: 9px 14px;
    font-size: 13px;
    color: #344054;
    vertical-align: middle;
    border-bottom: 1px solid #eef1f6;
}

.ccob-tb tbody tr:hover > td { background: #fafbfd; }

.ccob-tb tbody tr:last-child > td { border-bottom: 0; }

.ccob-tb__vacio {
    text-align: center;
    color: #98a2b3;
    padding: 34px 14px !important;
    height: auto !important;
}

.ccob-tb__fecha { color: #55607a; font-variant-numeric: tabular-nums; white-space: nowrap; }
.ccob-tb__monto { font-weight: 800; color: #1d2939; white-space: nowrap; font-variant-numeric: tabular-nums; }
.ccob-tb__gest { font-size: 12.5px; color: #475467; }
.ccob-tb__nulo { font-size: 12px; color: #c2c8d2; }
.ccob-tb__nota { font-size: 12px; color: #667085; max-width: 260px; }

/* la cabecera de categoría de "Mi día" mantiene su look dentro de la tabla nueva */
.ccob-tb .ccob-midia-cat td { height: auto; background: #eef4fb; }

/* ── Celda de persona (avatar + nombre + sub-línea) ── */
.ccob-per { display: flex; align-items: center; gap: 10px; min-width: 0; }

.ccob-per__txt { min-width: 0; line-height: 1.35; }

.ccob-per__nom {
    display: flex;
    align-items: center;
    gap: 6px;
    flex-wrap: wrap;
    font-size: 13.5px;
    font-weight: 700;
    color: #1d2939;
}

.ccob-btn-tel { margin-top: 3px; }
.ccob-btn-tel i { margin-right: 3px; }

/* ── Tags (tipo de aviso, sin teléfono) ── */
.ccob-tag {
    display: inline-block;
    padding: 2px 8px;
    border-radius: 6px;
    font-size: 9.5px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .5px;
    white-space: nowrap;
}

.ccob-tag--azul { background: #e7f0ff; color: #1976d2; }
.ccob-tag--ambar { background: #fff3e6; color: #c77700; }
.ccob-tag--rojo { background: #fdecec; color: #c62828; }
.ccob-tag--sintel { background: #fdecec; color: #c62828; }

.ccob-pill--verde { background: #e6f4ea; color: #2e7d32; }

.ccob-txt-rojo { color: #c62828; }
.ccob-txt-ambar { color: #c77700; }

/* ── Botones de acción de fila ── */
.ccob-ibs { display: inline-flex; align-items: center; gap: 6px; }

.ccob-ib {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 30px;
    height: 30px;
    border-radius: 8px;
    background: #fff;
    border: 1px solid var(--linea-suave, #e0e4ec);
    color: #667085;
    font-size: 13px;
    cursor: pointer;
    transition: background .14s ease, border-color .14s ease, color .14s ease;
}

.ccob-ib--wsp { border-color: #b7e7c9; color: #1a7f43; }
.ccob-ib--wsp:hover { background: #25D366; border-color: #25D366; color: #fff; }

.ccob-ib--naranja { border-color: #ffd9b3; color: #c77700; }
.ccob-ib--naranja:hover { background: var(--secundario, #fe7800); border-color: var(--secundario, #fe7800); color: #fff; }

.ccob-ib--gris:hover { border-color: #98a2b3; color: #344054; }

.ccob-btn-gest {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    height: 30px;
    padding: 0 11px;
    border-radius: 8px;
    background: #fff;
    border: 1px solid #cfdcf0;
    color: #2c5282;
    font-size: 12px;
    font-weight: 700;
    white-space: nowrap;
    cursor: pointer;
    transition: background .14s ease, border-color .14s ease, color .14s ease;
}

.ccob-btn-gest:hover { background: #eef4fb; border-color: #1976d2; color: #1976d2; }

.ccob-btn-ok {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    height: 30px;
    padding: 0 12px;
    border-radius: 8px;
    background: #2e7d32;
    border: 1px solid #2e7d32;
    color: #fff;
    font-size: 12px;
    font-weight: 700;
    white-space: nowrap;
    cursor: pointer;
    transition: background .14s ease;
}

.ccob-btn-ok:hover { background: #256828; }

/* ── Promesas: grid de tarjetas ── */
.ccob-promgrid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
    gap: 12px;
    padding: 4px 14px 18px 14px;
}

.ccob-prom {
    display: flex;
    flex-direction: column;
    gap: 9px;
    background: #fff;
    border: 1px solid var(--linea-suave, #e0e4ec);
    border-left: 3px solid #98a2b3;
    border-radius: 12px;
    padding: 12px 14px;
    box-shadow: 0 1px 3px rgba(30, 58, 95, .06);
}

.ccob-prom--verde { border-left-color: #2e7d32; }
.ccob-prom--ambar { border-left-color: #d4af37; }
.ccob-prom--rojo { border-left-color: #c62828; }
.ccob-prom--gris { border-left-color: #98a2b3; }

.ccob-prom__top { display: flex; align-items: center; gap: 10px; }

.ccob-prom__ident { flex: 1 1 auto; min-width: 0; line-height: 1.35; }

.ccob-prom__nom {
    font-size: 13.5px;
    font-weight: 700;
    color: #1d2939;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.ccob-prom__datos {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 8px;
    padding: 9px 0 2px;
    border-top: 1px solid #eef1f6;
}

.ccob-prom__dato { display: flex; flex-direction: column; min-width: 0; }

.ccob-prom__lbl {
    font-size: 9.5px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .5px;
    color: #98a2b3;
}

.ccob-prom__val {
    font-size: 13px;
    font-weight: 800;
    color: #1d2939;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.ccob-prom__val--txt { font-weight: 600; color: #475467; }

.ccob-prom__conc {
    font-size: 11.5px;
    color: #2e7d32;
    background: #f2fbf4;
    border: 1px solid #d7eddd;
    border-radius: 7px;
    padding: 5px 9px;
}

.ccob-prom__nota {
    font-size: 12px;
    color: #667085;
    background: #f7f8fb;
    border-radius: 7px;
    padding: 6px 9px;
}

.ccob-prom__pie {
    display: flex;
    align-items: center;
    gap: 7px;
    padding-top: 2px;
}

.ccob-prom__pie .ccob-ib--gris:last-child { margin-left: auto; }

/* ── Historial de avisos: lista de filas ── */
.ccob-avlist { display: flex; flex-direction: column; padding: 4px 0 0 0; }

.ccob-av {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 12px 16px;
    border-bottom: 1px solid #eef1f6;
}

.ccob-av:hover { background: #fafbfd; }

.ccob-av__ico {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 34px;
    height: 34px;
    border-radius: 50%;
    font-size: 15px;
}

.ccob-av__ico--verde { background: #e6f4ea; color: #1a7f43; }
.ccob-av__ico--azul { background: #e7f0fb; color: #1565c0; }
.ccob-av__ico--rojo { background: #fdecec; color: #c62828; }
.ccob-av__ico--gris { background: #f2f4f8; color: #98a2b3; }

.ccob-av__mid { flex: 1 1 auto; min-width: 0; line-height: 1.4; }

.ccob-av__nom {
    display: flex;
    align-items: center;
    gap: 7px;
    flex-wrap: wrap;
    font-size: 13.5px;
    font-weight: 700;
    color: #1d2939;
}

.ccob-av__err { font-size: 11.5px; color: #c62828; }

.ccob-av__right { flex: 0 0 auto; text-align: right; line-height: 1.4; }

.ccob-av__fecha { font-size: 11.5px; color: #98a2b3; font-variant-numeric: tabular-nums; white-space: nowrap; }

.ccob-av__estado {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 6px;
    font-size: 12.5px;
    font-weight: 700;
    color: #475467;
}

.ccob-dot {
    display: inline-block;
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: #98a2b3;
}

.ccob-dot--verde { background: #2e7d32; }
.ccob-dot--azul { background: #1976d2; }
.ccob-dot--rojo { background: #c62828; }
.ccob-dot--gris { background: #c2c8d2; }

.ccob-avlist__pie {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    flex-wrap: wrap;
    padding: 12px 16px;
    font-size: 12px;
    color: #667085;
}

.ccob-avlist__nota { color: #98a2b3; }

/* ── Pie: tamaño de página + paginación ── */
.ccob-pagbar {
    display: flex;
    align-items: center;
    gap: 14px;
    flex-wrap: wrap;
    padding: 10px 2px 0 2px;
}

.ccob-pagsize {
    display: flex;
    align-items: center;
    gap: 7px;
    font-size: 12.5px;
    color: #667085;
    white-space: nowrap;
}

.ccob-pagsize select { width: auto; min-width: 78px; }

.ccob-pagbar__tot { font-size: 12.5px; color: #667085; white-space: nowrap; }
.ccob-pagbar__tot b { color: #1e3a5f; }

.ccob-pagbar__pag { flex: 1 1 320px; min-width: 280px; }
.ccob-pagbar__pag nav { margin-bottom: 0; }

@media (max-width: 1200px) {
    .ccob-buscador { flex: 1 1 100%; margin-left: 0; }
}

@media (max-width: 992px) {
    .ccob-hero__titulo { font-size: 21px; }
    .ccob-tabsbar { width: 100%; overflow-x: auto; }
    .ccob-promgrid { grid-template-columns: 1fr; }
    .ccob-av { align-items: flex-start; }
    .ccob-av__right { text-align: left; }
    .ccob-av__estado { justify-content: flex-start; }
}

/* ══ Central de Cobranzas — rediseño didáctico (2026-09-04) ══════════════════════════════
   Filtros INLINE (sin popup: lo que se ve es lo que filtra), descripción por pestaña,
   selección múltiple en "Cuotas pendientes" y regla visible del envío automático. */

.ccob-filtros {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
    margin-left: auto;
}

.ccob-filtro {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    margin: 0;
    padding: 0 8px;
    height: 34px;
    border: 1px solid var(--linea-suave, #e0e4ec);
    border-radius: 8px;
    background: #fff;
    font-size: 12px;
    color: #475467;
}

.ccob-filtro > span { font-weight: 700; color: #667085; }
.ccob-filtro > i { color: #98a2b3; }

.ccob-filtro input,
.ccob-filtro select {
    border: 0;
    outline: 0;
    background: transparent;
    font-size: 12.5px;
    color: #1d2939;
    height: 30px;
}

.ccob-filtro input[type="date"] { width: 128px; }
.ccob-filtro select { max-width: 170px; }
/* Los nombres de asesor son más largos que los valores de los otros combos */
.ccob-filtro--asesor select { max-width: 230px; }

.ccob-filtro--texto { flex: 0 1 300px; min-width: 220px; padding-right: 4px; }
.ccob-filtro--texto input { flex: 1; min-width: 0; }

.ccob-filtro--texto button {
    border: 0;
    background: #1e3a5f;
    color: #fff;
    width: 26px;
    height: 26px;
    border-radius: 6px;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.ccob-filtro-limpiar,
.ccob-filtro-excel {
    height: 34px;
    padding: 0 10px;
    border-radius: 8px;
    font-size: 12px;
    font-weight: 700;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    gap: 6px;
}

.ccob-filtro-limpiar { border: 1px dashed #c62828; background: #fff; color: #c62828; }
.ccob-filtro-limpiar:hover { background: #fdecea; }
.ccob-filtro-excel { border: 1px solid #2e7d32; background: #fff; color: #2e7d32; }
.ccob-filtro-excel:hover { background: #e8f5e9; }

/* Descripción de la pestaña activa: una línea que dice QUÉ es lo que se está viendo */
.ccob-tabdesc {
    display: flex;
    align-items: flex-start;
    gap: 8px;
    margin: 8px 15px 0 15px;
    padding: 7px 11px;
    border-left: 3px solid #d4af37;
    background: #fbf8ee;
    border-radius: 0 8px 8px 0;
    font-size: 12.5px;
    color: #5b4a12;
    line-height: 1.45;
}

.ccob-tabdesc i { color: #b8912a; margin-top: 2px; }

/* Selección múltiple */
.ccob-tb__chk { width: 34px; text-align: center; }
.ccob-tb__chk input { width: 15px; height: 15px; cursor: pointer; }
.ccob-tb__chk input:disabled { cursor: not-allowed; opacity: .35; }

/* Lista de "Avisos pendientes de envío": aviso marcado que no lleva mensaje propio porque viaja dentro del
   mensaje de otra cuota del mismo titular (un solo mensaje con el total adeudado). Atenuado, no deshabilitado:
   sigue marcado y queda registrado igual. */
.ccob-fila-incl td { background: #fafbfd; color: #667085; }

.ccob-selbar {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
    margin: 10px 14px 0 14px;
    padding: 8px 12px;
    border: 1px solid #b9c6dd;
    background: #eef3fa;
    border-radius: 8px;
    font-size: 12.5px;
    color: #1e3a5f;
}

.ccob-selbar > i { color: #1976d2; }
.ccob-selbar__sp { flex: 1; }

.ccob-selbar__link {
    border: 0;
    background: transparent;
    color: #1976d2;
    font-weight: 700;
    text-decoration: underline;
    cursor: pointer;
    font-size: 12.5px;
    padding: 0;
}

.ccob-selbar__btn {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 6px 12px;
    border-radius: 8px;
    border: 1px solid #25D366;
    background: #25D366;
    color: #fff;
    font-weight: 700;
    font-size: 12.5px;
    cursor: pointer;
}

.ccob-selbar__btn:disabled { opacity: .55; cursor: not-allowed; }

/* Contador en el botón del hero */
.ccob-hero__cnt {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 22px;
    height: 22px;
    padding: 0 7px;
    border-radius: 11px;
    background: rgba(255,255,255,.28);
    font-size: 12px;
    font-weight: 800;
}

/* Regla del envío automático dentro del modal */
.ccob-regla {
    display: flex;
    gap: 10px;
    align-items: flex-start;
    padding: 10px 12px;
    margin-bottom: 10px;
    border-radius: 8px;
    background: #eef3fa;
    border: 1px solid #b9c6dd;
    font-size: 12.5px;
    color: #1e3a5f;
    line-height: 1.5;
}

.ccob-regla i { color: #1976d2; margin-top: 2px; }

.ccob-prevchips {
    display: flex;
    align-items: center;
    gap: 6px;
    flex-wrap: wrap;
    margin-bottom: 10px;
    font-size: 12px;
    color: #667085;
}

.ccob-tb__sel td { background: #eef3fa !important; }


/* ══ Cartera Inactiva y Recuperación (/prestamos/repclientessinrenovar, 2026-09-22) ═══════════════════
   Reusa la cabecera, las pestañas, los KPI, las tags y los botones de la Central de Cobranzas (.ccob-*).
   Lo propio: el umbral en la cabecera, la barra de calificación, la letra de calificación y la tabla
   con EncabezadoGrid (que trae estilos en línea propios y hay que neutralizar). */

.cinac-umbral {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    padding: 7px 12px;
    border: 1px solid var(--linea-suave, #e0e4ec);
    border-radius: 9px;
    background: #fff;
    font-size: 12.5px;
    color: #475467;
    white-space: nowrap;
}

.cinac-umbral > i { color: #d4af37; }
.cinac-umbral b { color: #1e3a5f; }

.cinac-umbral__tag {
    padding: 1px 7px;
    border-radius: 6px;
    background: #fff3e6;
    color: #c77700;
    font-size: 10px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .4px;
}

.cinac-umbral__cfg { color: #98a2b3; }
.cinac-umbral__cfg:hover { color: #1976d2; }

/* La barra de búsqueda lleva Excel y el menú de fila: necesita más ancho que el buscador de la Central */
.ccob-navrow .cinac-buscador { flex: 0 1 560px; }

.cinac { padding-top: 12px; padding-bottom: 24px; }

.cinac-kpis { transition: opacity .15s ease; }
.cinac-kpis--cargando { opacity: .55; }
.cinac-kpis .ccob-kpi__valor small { font-size: 13px; font-weight: 700; color: #98a2b3; }
.cinac-kpis .ccob-kpi__label i { color: #98a2b3; }

/* ── Letra de calificación ── */
.cinac-calif {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 26px;
    height: 26px;
    padding: 0 5px;
    border-radius: 7px;
    font-size: 12px;
    font-weight: 800;
    line-height: 1;
    flex: 0 0 auto;
}

.cinac-calif--a { background: #2e7d32; color: #fff; }
.cinac-calif--b { background: #e6f4ea; color: #2e7d32; }
.cinac-calif--c { background: #fff3e6; color: #c77700; }
.cinac-calif--d { background: #fde2d3; color: #c2410c; }
.cinac-calif--e { background: #c62828; color: #fff; }
.cinac-calif--sd { background: #f2f4f8; color: #667085; font-size: 10px; }

.cinac-califcel { display: flex; align-items: center; gap: 9px; }
.cinac-calif__txt { font-size: 12.5px; font-weight: 700; color: #344054; white-space: nowrap; }

/* ── Distribución por calificación (barra + leyenda que filtra) ── */
.cinac-dist {
    background: #fff;
    border: 1px solid var(--linea-suave, #e0e4ec);
    border-radius: 12px;
    padding: 12px 14px;
    margin-bottom: 14px;
    box-shadow: 0 1px 3px rgba(30, 58, 95, 0.06);
}

.cinac-dist__cab { display: flex; align-items: baseline; gap: 10px; flex-wrap: wrap; margin-bottom: 8px; }

.cinac-dist__barra,
.cinac-minibarra {
    display: flex;
    gap: 2px;
    height: 12px;
    border-radius: 6px;
    overflow: hidden;
    background: #f2f4f8;
}

.cinac-minibarra { height: 9px; min-width: 140px; }

/* En la barra el color va de fondo sólido aunque la letra use el tono claro */
.cinac-dist__seg { min-width: 3px; }
.cinac-dist__seg.cinac-calif--a { background: #2e7d32; }
.cinac-dist__seg.cinac-calif--b { background: #66bb6a; }
.cinac-dist__seg.cinac-calif--c { background: #f0a53a; }
.cinac-dist__seg.cinac-calif--d { background: #e8703a; }
.cinac-dist__seg.cinac-calif--e { background: #c62828; }
.cinac-dist__seg.cinac-calif--sd { background: #c2c8d2; }

.cinac-dist__leyenda { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 10px; }

.cinac-dist__item {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    padding: 4px 10px 4px 5px;
    border: 1px solid var(--linea-suave, #e0e4ec);
    border-radius: 9px;
    background: #fff;
    font-size: 12px;
    color: #475467;
    cursor: pointer;
    transition: border-color .14s ease, background .14s ease;
}

.cinac-dist__item:hover:not(:disabled) { border-color: #1976d2; }
.cinac-dist__item:disabled { opacity: .45; cursor: default; }
.cinac-dist__item b { color: #1e3a5f; }
.cinac-dist__item--activo { border-color: #1e3a5f; background: #eef4fb; box-shadow: inset 0 0 0 1px #1e3a5f; }
.cinac-dist__nom { white-space: nowrap; }

/* ── Tarjeta de la lista ── */
.cinac-cardcab {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    flex-wrap: wrap;
    padding: 10px 14px;
    border-bottom: 1px solid #eef1f6;
}

.cinac-vistas { display: inline-flex; gap: 6px; flex-wrap: wrap; }
.cinac-vistas .ccob-chip-filtro i { margin-right: 4px; }

.cinac-tabla { max-height: 64vh; overflow: auto; }

/* EncabezadoGrid pone padding-left:2px en línea y la clase .border-left de Bootstrap en cada th */
.cinac-tb thead th { padding-left: 14px !important; vertical-align: middle; }
/* StylePos.css fuerza white-space:normal !important en toda tabla dentro de .table-responsive */
.cinac-tabla > .cinac-tb thead th { white-space: nowrap !important; }
.cinac-tb thead th.border-left { border-left: 0 !important; }
.cinac-tb thead th .th-filter-label { color: #98a2b3; font-size: 10.5px; font-weight: 800; text-transform: uppercase; letter-spacing: .55px; }
.cinac-tb tbody td { vertical-align: middle; }
.cinac-tb tbody tr { cursor: pointer; }

.cinac-ncred {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 26px;
    height: 26px;
    border-radius: 13px;
    background: #eef4fb;
    color: #1e3a5f;
    font-size: 12px;
    font-weight: 800;
}

.cinac-tag--apto { background: #e6f4ea; color: #2e7d32; }
.cinac-tag--apto i { margin-right: 2px; }

.cinac-sintel { color: #c62828; font-weight: 700; }
.cinac-txt-rojo { color: #c62828 !important; }
.cinac-vacio__icono { color: #c2c8d2; margin-bottom: 8px; }

/* ── Resumen por asesor ── */
.cinac-restb__total td {
    background: #f5f7fb;
    font-weight: 800;
    color: #1e3a5f;
    padding: 10px 14px;
    border-top: 1px solid var(--linea-suave, #e0e4ec);
}

/* ── Modal de gestión: contexto del cliente ── */
.cinac-ctx {
    padding: 9px 12px;
    margin-bottom: 12px;
    border-left: 3px solid #1e3a5f;
    background: #f5f7fb;
    border-radius: 0 8px 8px 0;
    font-size: 13px;
    color: #344054;
    line-height: 1.5;
}

/* ── Configuración de Cobranza: el umbral de la Cartera Inactiva ── */
.cinac-cfg-num { display: inline-flex; align-items: center; gap: 6px; font-size: 12.5px; color: #667085; }
.cinac-cfg-num input { width: 86px; text-align: right; }

@media (max-width: 1200px) {
    .ccob-navrow .cinac-buscador { flex: 1 1 100%; }
}

@media (max-width: 768px) {
    .cinac-umbral { white-space: normal; }
    .cinac-dist__nom { display: none; }
}
