/* Módulo Cuentas de cobro -- hereda las variables del panel (--tarjeta, --borde, --texto, --texto-suave, ...). */
#seccionCobro { --c-verde: #1e8e5a; --c-amarillo: #e0a21e; --c-rojo: #d33a3a; --c-gris: #b9b4a4; }
.cobro-barra { display: flex; flex-wrap: wrap; gap: 16px; align-items: center; margin-bottom: 14px; }
.cobro-barra label { display: flex; gap: 6px; align-items: center; font-size: .85rem; color: var(--texto-suave); }
.cobro-subtabs { margin-left: auto; display: flex; gap: 4px; }
.cobro-subtabs button.activa { background: var(--negro, var(--negro)); color: #fff; border-color: var(--negro, #111); }
.cobro-aviso { background: var(--naranja-bg); border: 1px solid #e0b73a; border-radius: 8px; padding: 8px 12px; margin: 0 0 12px; font-size: .85rem; }
.cobro-grid { display: grid; grid-template-columns: minmax(0, 1fr) 290px; gap: 16px; align-items: start; }
@media (max-width: 1100px) { .cobro-grid { grid-template-columns: 1fr; } }
@media (max-width: 760px) { .cobro-grid { grid-template-columns: 1fr; } }
.cobro-col { display: flex; flex-direction: column; gap: 12px; min-width: 0; }
.cobro-tarjeta, .cobro-editor, .cobro-central { background: var(--tarjeta); border: 1px solid var(--borde); border-radius: 12px; padding: 14px; }
.cobro-tarjeta { display: flex; flex-direction: column; gap: 8px; }
.cobro-tarjeta h4, .cobro-editor h4 { margin: 0 0 4px; font-size: .95rem; }
.cobro-tarjeta label, .cobro-editor label { display: flex; flex-direction: column; gap: 3px; font-size: .78rem; color: var(--texto-suave); }
.cobro-editor input, .cobro-editor select, .cobro-editor textarea, .cobro-tarjeta input { width: 100%; font-family: inherit; padding: 6px 8px; border: 1px solid var(--borde); border-radius: 6px; font-size: .88rem; }
.cobro-editor .dos { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.cobro-editor { gap: 8px; }
.acciones { display: flex; gap: 8px; justify-content: flex-end; flex-wrap: wrap; }
.suave { color: var(--texto-suave); font-size: .82rem; }
.cobro-vacio { color: var(--texto-suave); font-size: .88rem; text-align: center; padding: 18px 8px; margin: 0; }
.cobro-lista h5 { margin: 8px 2px 4px; font-size: .78rem; text-transform: uppercase; letter-spacing: .04em; color: var(--texto-suave); }
.cobro-paquete { width: 100%; text-align: left; display: flex; flex-direction: column; gap: 4px; padding: 10px 12px; margin-bottom: 6px; background: var(--tarjeta); }
.cobro-paquete.sel { border-color: var(--negro, #111); box-shadow: 0 0 0 1px var(--negro, #111) inset; }
.cobro-paquete .fila { display: flex; justify-content: space-between; align-items: center; gap: 8px; font-size: .88rem; }
.cobro-paquete .fila.suave { font-size: .78rem; }
.cobro-mini { display: flex; height: 5px; border-radius: 3px; overflow: hidden; background: var(--borde); }
.cobro-mini i.verde, .sem.verde { background: var(--c-verde); } .cobro-mini i.amarillo, .sem.amarillo { background: var(--c-amarillo); }
.cobro-mini i.rojo, .sem.rojo { background: var(--c-rojo); } .cobro-mini i.gris { background: var(--c-gris); }
.cobro-chip { font-size: .72rem; padding: 2px 8px; border-radius: 10px; background: var(--naranja-bg); color: var(--texto-2); white-space: nowrap; }
.cobro-chip.auditado, .cobro-chip.auditada { background: var(--ok-bg); color: var(--ok-tx); }
.cobro-chip.en_auditoria { background: var(--naranja-bg); color: var(--naranja-tx); }
.cobro-cab { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; }
.cobro-cab h3 { margin: 0; font-size: 1.1rem; }
.cobro-hojas { display: flex; flex-wrap: wrap; gap: 6px; }
.cobro-hoja { padding: 5px 10px; font-size: .8rem; border-radius: 16px; background: var(--tarjeta); }
.cobro-hoja.auditada { background: var(--ok-bg); border-color: #9dd3b4; }
.cobro-hoja.sel { border-color: var(--negro, #111); box-shadow: 0 0 0 1px var(--negro, #111) inset; font-weight: 600; }
.cobro-scroll { overflow-x: auto; }
.cobro-tabla { width: 100%; border-collapse: collapse; font-size: .82rem; }
.cobro-tabla th { text-align: left; font-size: .7rem; text-transform: uppercase; letter-spacing: .03em; color: var(--texto-suave); padding: 6px 6px; border-bottom: 1px solid var(--borde); white-space: nowrap; }
.cobro-tabla td { padding: 5px 6px; border-bottom: 1px solid var(--borde); vertical-align: middle; }
.cobro-tabla td.num { text-align: right; font-variant-numeric: tabular-nums; white-space: nowrap; }
.cobro-tabla tbody tr { cursor: pointer; }
.cobro-tabla tr.sel td { background: var(--naranja-bg); }
.cobro-tabla tr.libre { cursor: default; opacity: .75; } .cobro-tabla tr.libre td { padding: 3px 6px; }
.cobro-tabla tr.sem-verde td:first-child { box-shadow: inset 4px 0 0 var(--c-verde); }
.cobro-tabla tr.sem-amarillo td:first-child { box-shadow: inset 4px 0 0 var(--c-amarillo); }
.cobro-tabla tr.sem-rojo td { text-decoration: line-through; color: var(--texto-suave); } .cobro-tabla tr.sem-rojo td:first-child { box-shadow: inset 4px 0 0 var(--c-rojo); }
.cobro-valor { width: 96px; padding: 3px 6px; border: 1px solid var(--borde); border-radius: 5px; text-align: right; font-size: .82rem; }
.cobro-sem { white-space: nowrap; vertical-align: top; }
.cobro-sem-botones { display: flex; align-items: center; }
.cobro-sem .cobro-alerta { display: inline-block; margin: 4px 0 0; max-width: 150px; overflow: hidden; text-overflow: ellipsis; }
.sem { width: 18px; height: 18px; padding: 0; border-radius: 50%; border: 2px solid transparent; opacity: .28; margin-right: 3px; }
.sem.on { opacity: 1; border-color: var(--texto, #222); }
.sem.fallido { background: var(--mor-tx, #4b3a86); }      /* morado del fallido: el mismo de la etiqueta «fallido» y de la leyenda */
.cobro-dup { color: var(--c-rojo); font-weight: 600; font-size: .72rem; }
.cobro-man { color: var(--texto-suave); font-size: .72rem; }
.pequeno { padding: 2px 8px; font-size: .75rem; }
.cobro-pie { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 10px; align-items: center; padding-top: 4px; font-size: .88rem; }
.cobro-pie .dif { color: var(--texto-suave); }
.cobro-totales { display: grid; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); gap: 12px; margin-bottom: 14px; }
.cobro-totales > div { background: var(--tarjeta); border: 1px solid var(--borde); border-radius: 12px; padding: 12px 14px; display: flex; flex-direction: column; gap: 2px; }
.cobro-totales small { color: var(--texto-suave); font-size: .75rem; text-transform: uppercase; letter-spacing: .03em; }
.cobro-totales b { font-size: 1.25rem; font-variant-numeric: tabular-nums; }

/* La planilla necesita ancho: en esta pestaña el panel usa toda la pantalla */
main:has(#seccionCobro:not(.oculto)) { max-width: 1760px; }
.cobro-tabla td { white-space: nowrap; }
.cobro-tabla td:nth-child(3) { white-space: normal; min-width: 150px; max-width: 220px; }

/* Cargue de la quincena: franja compacta y plegable arriba, para dejar todo el ancho a la planilla */
.cobro-barra .busca input { width: 140px; }
.cobro-barra select, .cobro-barra input { font-family: inherit; padding: 5px 8px; border: 1px solid var(--borde); border-radius: 6px; font-size: .85rem; }
.cobro-carga { background: var(--tarjeta); border: 1px solid var(--borde); border-radius: 10px; padding: 8px 14px; margin-bottom: 14px; }
.cobro-carga h4 { margin: 0; font-size: .88rem; }
.cobro-carga-campos { display: flex; flex-wrap: wrap; gap: 12px; align-items: end; margin: 10px 0 6px; }
.cobro-carga-campos label { display: flex; flex-direction: column; gap: 3px; font-size: .75rem; color: var(--texto-suave); }
.cobro-carga-campos input, .cobro-carga-campos select { font-family: inherit; padding: 5px 8px; border: 1px solid var(--borde); border-radius: 6px; font-size: .85rem; }
.cobro-carga small { color: var(--texto-suave); }
/* Qué planilla es: EPS (logo) y fechas */
.cobro-datos { display: flex; flex-wrap: wrap; gap: 22px; align-items: center; background: var(--naranja-bg); border-radius: 8px; padding: 8px 12px; }
.cobro-datos > span { display: flex; flex-direction: column; gap: 1px; }
.cobro-datos small { font-size: .68rem; text-transform: uppercase; letter-spacing: .03em; color: var(--texto-suave); }
.cobro-datos b { font-size: .95rem; }
.cobro-logo { height: 34px; max-width: 120px; object-fit: contain; background: var(--tarjeta); border: 1px solid var(--borde); border-radius: 6px; padding: 2px 6px; }
.cobro-datos .sin-eps .fila-eps { display: flex; gap: 6px; }
.cobro-datos .sin-eps input { padding: 4px 8px; border: 1px solid var(--c-amarillo); border-radius: 6px; font-size: .85rem; min-width: 220px; }

.cobro-movil-caja { display: inline-flex; gap: 4px; align-items: center; }
.cobro-movil { min-width: 230px; }

/* Tarjetas de la zona que se está auditando (debajo de la planilla): avance de planillas por móvil */
.cobro-zona { background: var(--tarjeta); border: 1px solid var(--borde); border-radius: 12px; padding: 14px; }
.cobro-zona-cab { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: baseline; gap: 8px; margin-bottom: 10px; }
.cobro-zona-cab h4 { margin: 0; font-size: .95rem; }
.cobro-zona-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(168px, 1fr)); gap: 10px; }
.cobro-zona-card { display: flex; flex-direction: column; gap: 6px; text-align: left; padding: 10px 12px; background: var(--tarjeta); }
.cobro-zona-card .fila { display: flex; justify-content: space-between; align-items: center; gap: 6px; font-size: .86rem; }
.cobro-zona-card.sel { border-color: var(--negro, #111); box-shadow: 0 0 0 1px var(--negro, #111) inset; }

.cobro-progreso { height: 6px; border-radius: 3px; background: var(--borde); overflow: hidden; }
.cobro-progreso i { display: block; height: 100%; background: var(--c-verde); }

/* Color por estado: gris azulado = recibido, ámbar = en auditoría, verde = auditado */
.cobro-zona-card.recibido { background: var(--info-bg); border-color: var(--info-bd); }
.cobro-zona-card.recibido .cobro-progreso { background: var(--info-bg); }
.cobro-zona-card.recibido .cobro-progreso i { background: #4b7bd1; }
.cobro-zona-card.en_auditoria { background: var(--naranja-bg); border-color: #eccb7a; }
.cobro-zona-card.en_auditoria .cobro-progreso { background: var(--naranja-bg); }
.cobro-zona-card.en_auditoria .cobro-progreso i { background: #e09a14; }
.cobro-zona-card.auditado { background: var(--ok-bg); border-color: #8fcfa9; }
.cobro-zona-card.auditado .cobro-progreso { background: var(--ok-bg); }
.cobro-zona-card.auditado .cobro-progreso i { background: #1e8e5a; }
.cobro-zona-card .cobro-progreso { height: 8px; }
.cobro-zona-card.sel { box-shadow: 0 0 0 2px var(--negro, #111); border-color: var(--negro, #111); }
.cobro-zona-card:hover { filter: brightness(.97); }
.cobro-zona-card .cobro-chip { background: rgba(255, 255, 255, .75); }

/* Semáforo de Mogotax (solo informativo por ahora) */
.cobro-semaforo-carga { border-top: 1px dashed var(--borde); padding-top: 10px; margin-top: 4px; }
.mog { display: inline-block; font-size: .72rem; padding: 2px 8px; border-radius: 10px; background: var(--info-bg); color: var(--info-tx); white-space: nowrap; }
.mog-no { background: var(--naranja-bg); color: var(--naranja-tx); }
.mog-alerta { color: var(--naranja-tx); }
.cobro-mogotax { background: var(--info-bg); border: 1px solid var(--info-bd); border-radius: 8px; padding: 8px 10px; }
.cobro-mogotax small { display: block; font-size: .68rem; text-transform: uppercase; letter-spacing: .03em; color: var(--texto-suave); margin-bottom: 4px; }
.cobro-mogotax .linea { display: flex; justify-content: space-between; gap: 10px; font-size: .8rem; padding: 1px 0; }
.cobro-mogotax .linea span { color: var(--texto-suave); } .cobro-mogotax .linea b { text-align: right; font-weight: 600; }

/* El cuadro toma el color de la fila en la hoja de Mogotax: el texto de apoyo hereda el contraste */
.cobro-mogotax small, .cobro-mogotax .linea span { color: inherit; opacity: .8; }

.cobro-raro { color: var(--naranja-tx); font-weight: 700; font-size: .75rem; cursor: help; }
.cobro-mogotax .cobro-ruta { border-bottom: 1px solid currentColor; opacity: .95; margin-bottom: 6px; padding-bottom: 6px; }
.cobro-mogotax .cobro-ruta > div { display: flex; flex-direction: column; font-size: .78rem; margin-top: 3px; }
.cobro-mogotax .cobro-ruta span { opacity: .75; font-size: .7rem; }
.cobro-mogotax .cobro-ruta b { font-weight: 600; word-break: break-word; }

.cobro-ok { color: var(--ok-tx); font-weight: 700; font-size: .8rem; }
.cobro-lotes { display: inline-flex; flex-wrap: wrap; gap: 6px; align-items: center; font-size: .8rem; color: var(--texto-suave); }
.cobro-lote { display: inline-flex; align-items: center; gap: 4px; background: var(--info-bg); border: 1px solid var(--info-bd); border-radius: 12px; padding: 2px 4px 2px 10px; color: var(--texto); }
.cobro-x { border: none; background: none; cursor: pointer; font-size: 1rem; line-height: 1; padding: 0 6px; color: var(--texto-suave); }
.cobro-tarifa { border-radius: 8px; padding: 8px 10px; border: 1px solid var(--borde); font-size: .82rem; }
.cobro-tarifa small { display: block; font-size: .68rem; text-transform: uppercase; letter-spacing: .03em; color: var(--texto-suave); margin-bottom: 4px; }
.cobro-tarifa.coincide { background: var(--ok-bg); border-color: #9fd4b3; }
.cobro-tarifa.difiere { background: var(--naranja-bg); border-color: #f0b27a; }
.cobro-tarifa.sin_tarifa { background: var(--warn-bg); }
.cobro-tarifa .linea { display: flex; justify-content: space-between; gap: 10px; }

/* Planilla devuelta al móvil, estado de Drive e historial */
.cobro-hoja.devuelta { background: var(--naranja-bg); border-color: #f0b27a; }
.cobro-chip.devuelta { background: var(--naranja-bg); color: var(--naranja-tx); }
.cobro-drive { font-size: .75rem; padding: 2px 8px; border-radius: 10px; background: var(--ok-bg); color: var(--ok-tx); }
.cobro-drive.sin_drive { background: var(--naranja-bg); color: var(--texto-2); }
.cobro-drive.error { background: var(--bad-bg); color: var(--bad-tx); }
.cobro-dialogo { width: min(900px, 94vw); max-height: 86vh; border: 1px solid var(--borde); border-radius: 12px; padding: 16px 18px; background: var(--tarjeta); color: var(--texto); }
.cobro-dialogo::backdrop { background: rgba(0, 0, 0, .35); }
.cobro-dialogo h4 { margin: 0 0 10px; }
.cobro-dialogo .cobro-scroll { max-height: 60vh; overflow: auto; }

/* Panel lateral de cargue y configuración (estilo Gmail): fijo o recogido en una columna de íconos */
.cobro-marco { display: flex; gap: 14px; align-items: flex-start; }
.cobro-principal { flex: 1; min-width: 0; }
.cobro-lateral { width: 300px; flex: none; position: sticky; top: 8px; max-height: calc(100vh - 16px); overflow: auto; background: var(--tarjeta); border: 1px solid var(--borde); border-radius: 12px; padding: 8px 10px; }
.cobro-lat-cab { display: flex; justify-content: space-between; align-items: center; gap: 8px; padding: 2px 2px 6px; font-size: .9rem; }
.cobro-icono { position: relative; display: inline-flex; align-items: center; justify-content: center; width: 36px; height: 36px; padding: 0; border: 0; border-radius: 50%; background: transparent; color: var(--texto-suave); cursor: pointer; }
.cobro-icono:hover { background: var(--info-bg); color: var(--texto); }
.cobro-icono.activo { background: var(--info-bg); color: var(--texto); }
.cobro-ico { display: inline-flex; }
.cobro-lat-sec { border-top: 1px solid var(--borde); padding: 4px 0; }
.cobro-lat-sec summary { display: flex; align-items: center; gap: 10px; padding: 8px 6px; border-radius: 8px; cursor: pointer; font-weight: 600; font-size: .88rem; list-style: none; }
.cobro-lat-sec summary::-webkit-details-marker { display: none; }
.cobro-lat-sec summary:hover { background: var(--info-bg); }
.cobro-lat-sec summary .tit { flex: 1; }
.cobro-lat-sec[open] summary { margin-bottom: 4px; }
.cobro-lat-campos { display: flex; flex-direction: column; gap: 8px; padding: 2px 6px 8px; }
.cobro-lat-campos label { display: flex; flex-direction: column; gap: 3px; font-size: .75rem; color: var(--texto-suave); }
.cobro-lat-campos input, .cobro-lat-campos select { width: 100%; box-sizing: border-box; font-family: inherit; padding: 5px 8px; border: 1px solid var(--borde); border-radius: 6px; font-size: .85rem; }
.cobro-lat-campos small { color: var(--texto-suave); }
.cobro-punto { width: 8px; height: 8px; border-radius: 50%; background: var(--c-gris); flex: none; }
.cobro-punto.ok { background: var(--c-verde); }
.cobro-punto.falta { background: var(--c-amarillo); }
.cobro-riel .cobro-punto { position: absolute; top: 6px; right: 6px; }
.cobro-riel { width: 48px; flex: none; position: sticky; top: 8px; display: flex; flex-direction: column; align-items: center; gap: 4px; }
.cobro-flotante { position: absolute; left: 54px; top: 0; width: 320px; max-height: calc(100vh - 24px); overflow: auto; z-index: 30; background: var(--tarjeta); border: 1px solid var(--borde); border-radius: 12px; padding: 8px 10px; box-shadow: 0 8px 28px rgba(0, 0, 0, .18); }
@media (max-width: 900px) {
  .cobro-marco { flex-direction: column; }
  .cobro-lateral { width: auto; align-self: stretch; position: static; max-height: none; }
  .cobro-riel { width: auto; flex-direction: row; position: relative; top: 0; }
  .cobro-flotante { left: 0; top: 44px; width: min(320px, 92vw); }
}

/* Mensaje de "no hay móvil abierto" con botones para llegar a lo cargado */
.cobro-saltos { display: flex; flex-wrap: wrap; gap: 8px; justify-content: center; }

.cobro-pie-movil { display: flex; justify-content: flex-start; padding: 2px 0 8px; }

/* Leyenda del semáforo del auditor, sobre la tabla de recorridos */
.cobro-leyenda { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 18px; font-size: .8rem; color: var(--texto-suave); padding: 6px 2px 2px; }
.cobro-ley-tit { font-weight: 600; color: var(--texto); }
.cobro-ley-item { display: inline-flex; align-items: center; gap: 5px; }
.cobro-ley-item b { color: var(--texto); font-weight: 600; }
.cobro-leyenda .sem { margin: 0; flex: none; cursor: default; }
.cobro-leyenda .sem.on-ley { opacity: 1; }
.cobro-leyenda .sem.sin-ley { background: transparent; border: 2px solid var(--c-gris); opacity: 1; }
.cobro-leyenda .sem.fallido-ley { background: var(--mor-tx, #4b3a86); border-color: var(--mor-bd, #cfc2f0); opacity: 1; }      /* el morado de la etiqueta «fallido» */

/* Tarifa según el trayecto del semáforo, dentro de la caja de Mogotax */
.cobro-trayecto { margin-top: 8px; padding-top: 8px; border-top: 1px solid rgba(255, 255, 255, .45); font-size: .85rem; }
.cobro-trayecto small { display: block; margin-bottom: 3px; text-transform: uppercase; letter-spacing: .04em; opacity: .9; }
.cobro-trayecto.difiere small { font-weight: 700; }
.cobro-trayecto .linea { display: flex; justify-content: space-between; gap: 10px; }

/* Ventana de búsqueda de tarifas */
.cobro-busca-campos { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin: 8px 0; }
.cobro-busca-campos label { display: flex; flex-direction: column; gap: 3px; font-size: .78rem; color: var(--texto-suave); }
.cobro-busca-campos input { font-family: inherit; padding: 6px 8px; border: 1px solid var(--borde); border-radius: 6px; font-size: .9rem; }
.cobro-aplicar { white-space: nowrap; display: flex; gap: 6px; }

.cobro-tabla tr.libre .cobro-incluir { margin-left: 14px; opacity: 1; }

/* La columna de íconos (y su ventana flotante) debe quedar por encima de la tabla: sin esto, filas y círculos del semáforo se asomaban sobre la ventana */
.cobro-riel { z-index: 40; }
.cobro-lateral { z-index: 10; }
.cobro-flotante { background: var(--tarjeta, var(--tarjeta)); isolation: isolate; }

/* Planillas generadas con el Excel de Traslados */
.cobro-chip.generada { background: var(--info-bg); color: var(--info-tx); }

/* Panel del Móvil dentro de las planillas generadas con traslados */
.cobro-alerta { font-size: .72rem; padding: 1px 6px; border-radius: 9px; margin-left: 6px; white-space: nowrap; }
.cobro-alerta.alerta-roja { background: var(--bad-bg); color: var(--bad-tx); }
.cobro-alerta.alerta-amarilla { background: var(--naranja-bg); color: var(--naranja-tx); }
.cobro-alerta.alerta-gris { background: var(--fondo-2); color: var(--texto-2); }
.cobro-alerta.alerta-morada { background: var(--mor-bg); color: var(--mor-tx); }
.cobro-resumen-traslados { display: flex; gap: 10px; align-items: center; justify-content: space-between; flex-wrap: wrap; width: 100%; padding: 6px 10px; border-radius: 8px; font-size: .84rem; }
.cobro-resumen-traslados.sin-alertas { background: var(--ok-bg); color: var(--ok-tx); }
.cobro-resumen-traslados.con-alertas { background: var(--naranja-bg); color: var(--naranja-tx); }
.cobro-cifras { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 10px; margin: 8px 0 12px; }
.cobro-cifra { background: var(--naranja-bg); border-radius: 10px; padding: 10px; text-align: center; }
.cobro-cifra b { display: block; font-size: 1.25rem; }
.cobro-cifra small { color: var(--texto-suave); font-size: .72rem; }
.cobro-total-movil { background: var(--ok-bg); color: var(--ok-tx); border-radius: 10px; padding: 10px; text-align: center; font-size: .95rem; }
.cobro-total-movil b { font-size: 1.3rem; }
.cobro-informe-barra { display: flex; flex-wrap: wrap; gap: 14px; align-items: end; margin-bottom: 14px; }
.cobro-informe-barra label { display: flex; flex-direction: column; gap: 3px; font-size: .78rem; color: var(--texto-suave); }
.cobro-informe-barra select { font-family: inherit; padding: 6px 8px; border: 1px solid var(--borde); border-radius: 6px; max-width: 360px; }
.cobro-informe h4 { margin: 16px 0 6px; }
.cobro-tabla-corta { max-width: 420px; }

/* Informe general dinámico */
.cobro-kpis .cobro-cifra.destacada { background: var(--ok-bg); color: var(--ok-tx); }
.cobro-graficas { display: grid; grid-template-columns: repeat(auto-fit, minmax(340px, 1fr)); gap: 14px; margin: 12px 0; }
.cobro-grafica { background: var(--tarjeta); border: 1px solid var(--borde); border-radius: 12px; padding: 12px 14px; min-width: 0; }
.cobro-grafica.ancha { grid-column: 1 / -1; }
.cobro-grafica h4 { margin: 0 0 8px; font-size: .9rem; }
.gr-barra { display: grid; grid-template-columns: minmax(70px, 130px) 1fr auto; gap: 8px; align-items: center; margin: 5px 0; font-size: .8rem; }
.gr-nombre { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.gr-pista { background: var(--naranja-bg); border-radius: 6px; height: 14px; overflow: hidden; }
.gr-pista i { display: block; height: 100%; border-radius: 6px; }
.gr-dona { display: flex; gap: 14px; align-items: center; flex-wrap: wrap; }
.gr-dona ul { list-style: none; margin: 0; padding: 0; font-size: .8rem; }
.gr-dona li { display: flex; gap: 6px; align-items: center; margin: 3px 0; }
.gr-dona li i { width: 11px; height: 11px; border-radius: 3px; display: inline-block; }
.gr-dias rect:hover { opacity: 1; }
.cobro-sabana th.eps { text-align: center; }
.cobro-sabana td.num, .cobro-sabana th.ordenable { text-align: right; }
.cobro-sabana td.cero { color: #bbb; }
.cobro-sabana td.total { font-weight: 700; }
.cobro-sabana th.ordenable { cursor: pointer; }
.cobro-sabana th.ordenable.activa { text-decoration: underline; }
.cobro-sabana tfoot td { font-weight: 700; background: var(--naranja-bg); position: sticky; bottom: 0; }
.cobro-sabana thead th, .cobro-calendario thead th { position: sticky; top: 0; z-index: 2; background: var(--tarjeta); }
.cobro-sabana, .cobro-calendario { max-height: 520px; }
.cobro-calendario td.dia, .cobro-calendario th.dia { text-align: center; padding: 2px 0; min-width: 22px; font-size: .72rem; }
.cobro-calendario td.dia.trabajo { color: var(--ok-tx); font-weight: 600; }
.cobro-acciones-excel { display: inline-flex; gap: 8px; }

.cobro-fichas { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; margin: 6px 0 10px; }
.cobro-fichas .ficha { border: 0; border-radius: 999px; background: var(--ok-bg); color: var(--ok-tx); padding: 4px 12px; cursor: pointer; font-size: .8rem; }
.cobro-fichas .ficha:hover { background: var(--ok-bg); }
.cobro-cifra.alerta { background: var(--naranja-bg); color: var(--naranja-tx); }
.gr-barra.clic { cursor: pointer; border-radius: 6px; padding: 1px 4px; margin: 2px -4px; }
.gr-barra.clic:hover { background: var(--naranja-bg); }
.gr-barra.activa { background: var(--ok-bg); font-weight: 600; }
.gr-col { fill: var(--c-verde); opacity: .85; cursor: pointer; transition: opacity .15s; }
.gr-col:hover { opacity: 1; }
.gr-col.activa { fill: #17663f; opacity: 1; }
.gr-col.apagada { opacity: .3; }
.cobro-sabana tbody tr.clic { cursor: pointer; }
.cobro-sabana tbody tr.clic:hover td { filter: brightness(.95); }
.cobro-dialogo.ancho { width: min(1100px, 95vw); max-width: 95vw; }
.cobro-dialogo tr.sin-factura td { color: #8a8576; text-decoration: line-through; text-decoration-color: #b9b4a4; }

.cobro-dialogo.ancho td { white-space: normal; vertical-align: top; }
.cobro-dialogo.ancho td:nth-child(5) { min-width: 150px; }

.cobro-vacio-fila { padding: 18px 12px; color: var(--texto-2); text-align: center; white-space: normal; }

.cobro-control { margin-bottom: 14px; }
.cobro-revision { border-radius: 8px; padding: 8px 10px; margin: 6px 0; background: var(--naranja-bg); }
.cobro-revision.ok { background: var(--ok-bg); color: var(--ok-tx); }
.cobro-revision.alerta { background: var(--naranja-bg); }
.cobro-revision summary { cursor: pointer; }
.cobro-revision .cobro-scroll { margin-top: 8px; background: var(--tarjeta); border-radius: 6px; }

.cobro-fuera { color: var(--naranja-tx); cursor: help; font-weight: 700; }
.veh-chip { display: inline-flex; align-items: center; gap: 6px; background: var(--fondo, #fff); border: 1px solid var(--borde); border-radius: 999px; padding: 2px 4px 2px 10px; margin: 3px 6px 3px 0; font-size: .8rem; }
.veh-bien { color: var(--ok-tx); background: var(--ok-bg); border-radius: 8px; padding: 8px 10px; font-size: .85rem; margin: 6px 0 12px; }
.veh-estado { border: 0; border-radius: 999px; padding: 2px 10px; font-size: .72rem; font-weight: 700; letter-spacing: .02em; cursor: pointer; }
.veh-estado.on { background: var(--ok-bg); color: var(--ok-tx); }
.veh-estado.off { background: var(--bad-bg); color: var(--bad-tx); }
.veh-aviso { display: inline-block; margin-left: 6px; font-size: .72rem; color: var(--naranja-tx); font-weight: 600; white-space: nowrap; }
.veh-tabla tbody tr { cursor: default; }
.veh-tabla tr.veh-alerta td { background: var(--naranja-bg); }
.veh-carga { border-top: 1px dashed var(--borde); padding-top: 10px; }
.veh-dialogo { max-width: min(640px, 94vw); }
.veh-form { display: grid; grid-template-columns: repeat(auto-fill, minmax(190px, 1fr)); gap: 8px 12px; margin: 8px 0 12px; }
.veh-form label { display: flex; flex-direction: column; gap: 3px; font-size: .78rem; color: var(--texto-suave); }
.pagos-dialogo { width: min(1200px, 96vw); max-width: 96vw; max-height: 94vh; }
.pagos-sub { width: min(760px, 94vw); max-width: 94vw; max-height: 90vh; overflow: auto; }
.pagos-cab { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.pagos-cab h4 { margin: 0; }
.pagos-scroll { max-height: 56vh; overflow: auto; }
.pagos-tabla thead th { position: sticky; top: 0; background: var(--fondo, #fff); z-index: 1; }
.pagos-pct { width: 72px; text-align: right; font-variant-numeric: tabular-nums; }
.pagos-menos { color: var(--bad-tx); }
.pagos-saldo { font-weight: 700; }
.pagos-saldo.debe { color: var(--naranja-tx); }
.ind-modulo { padding-bottom: 14px; }
.ind-tabla th, .ind-tabla td { white-space: nowrap; }
.ind-tabla .ind-act { background: var(--naranja-bg); font-weight: 600; }
.ind-tabla tfoot td { border-top: 2px solid var(--borde); font-weight: 600; }
.ind-var { font-variant-numeric: tabular-nums; font-size: .8rem; }
.var-bien { color: var(--ok-tx); } .var-mal { color: var(--bad-tx); } .var-neutro { color: var(--texto-suave); }
.ind-dims { margin-top: 12px; }
.cobro-fuera-caja { background: var(--naranja-bg); border-radius: 8px; padding: 8px 10px; font-size: .82rem; margin: 6px 0; }
.cobro-dialogo .cobro-cifra.destacada { background: var(--naranja-bg); color: var(--naranja-tx); }

.cobro-obs-imp { cursor: help; }
.cobro-obs-hoja { background: var(--naranja-bg); border-radius: 10px; padding: 8px 12px; margin: 10px 0; }
.cobro-obs-hoja.alerta { background: var(--naranja-bg); }
.cobro-obs-hoja summary { cursor: pointer; font-weight: 600; }
.cobro-alerta.alerta-verde { background: var(--ok-bg); color: var(--ok-tx); }

.cobro-dialogo label { display: block; }
.cobro-dialogo textarea { display: block; width: 100%; box-sizing: border-box; margin-top: 4px; }

.cobro-filtros-cuentas { display: flex; gap: 12px; align-items: end; flex-wrap: wrap; margin: 0 0 12px; position: sticky; top: 0; z-index: 3; background: var(--fondo, var(--naranja-bg)); padding: 8px 0; }
.cobro-filtros-cuentas label { display: flex; flex-direction: column; gap: 3px; font-size: .72rem; color: var(--texto-suave, var(--texto-2)); }
.cobro-filtros-cuentas input[type=search] { min-width: 150px; }
.cobro-tabla tbody tr.clic { cursor: pointer; }
.cobro-tabla tbody tr.clic:hover td { background: var(--naranja-bg); }

.cobro-otro-tramo { background: var(--info-bg); color: var(--info-tx); border-radius: 999px; padding: 1px 8px; font-size: .72rem; margin-left: 4px; white-space: nowrap; cursor: help; }

/* Avales y descuentos (módulo del director) */
.cobro-subtabs.izq { margin-left: 0; margin-bottom: 10px; }
.cobro-aval { border-radius: 999px; padding: 2px 10px; font-size: .74rem; font-weight: 600; white-space: nowrap; cursor: help; border: 1.5px solid transparent; }
.cobro-aval.aval-pendiente { background: var(--naranja-bg); color: var(--naranja-tx); border-color: #e0a21e; }
.cobro-aval.aval-aprobado { background: var(--ok-bg); color: var(--ok-tx); border-color: #1e8e5a; }
.cobro-aval.aval-rechazado { background: var(--bad-bg); color: var(--bad-tx); border-color: #c0392b; }
.cobro-banner-aval { border-radius: 12px; margin: 0 0 12px; display: grid; gap: 8px; }
.cobro-banner-aval p { margin: 0; }
.cobro-aval-resp { border: 1.5px solid #1e8e5a; background: var(--ok-bg); color: var(--ok-tx); border-radius: 10px; padding: 8px 12px; display: grid; gap: 4px; }
.cobro-aval-resp.rechazado { border-color: #c0392b; background: var(--bad-bg); color: var(--bad-tx); }
.cobro-aval-resp .suave { color: inherit; opacity: .85; }
.cobro-aviso-pend { background: var(--naranja-bg); border: 1.5px solid #e0a21e; color: var(--naranja-tx); border-radius: 10px; padding: 8px 12px; font-weight: 600; }
.cobro-fuera-caja.rechazado { background: var(--bad-bg); }
.cobro-fuera-caja.aprobado { background: var(--ok-bg); }
.cobro-suma { color: var(--ok-tx); font-weight: 600; }
.cobro-resta { color: var(--bad-tx); font-weight: 600; }
.cobro-cifra.suma b { color: var(--ok-tx); }
.cobro-cifra.resta b { color: var(--bad-tx); }
.cobro-form-nov { align-items: end; }

/* Filtros de la Autorización de tarifas: cada estado con su color */
.filtro-aval { border-width: 2px; font-weight: 600; transition: background .15s, color .15s; }
.filtro-aval.f-pendiente { border-color: #e0a21e; background: var(--naranja-bg); color: var(--naranja-tx); }
.filtro-aval.f-aprobado { border-color: #1e8e5a; background: var(--ok-bg); color: var(--ok-tx); }
.filtro-aval.f-rechazado { border-color: #c0392b; background: var(--bad-bg); color: var(--bad-tx); }
.filtro-aval.f-verificado { border-color: #2f6fed; background: color-mix(in srgb, var(--en-curso) 10%, var(--tarjeta)); color: var(--en-curso); }
.filtro-aval.f-todos { border-color: #8a8576; background: var(--naranja-bg); color: var(--texto-2); }
.filtro-aval.f-pendiente.activa { background: #e0a21e; color: #fff; }
.filtro-aval.f-aprobado.activa { background: #1e8e5a; color: #fff; }
.filtro-aval.f-rechazado.activa { background: #c0392b; color: #fff; }
.filtro-aval.f-todos.activa { background: #3c392f; color: #fff; }
.filtro-aval:not(.activa):hover { filter: brightness(.96); }

/* Gestión por auditor */
.cobro-tabla tbody tr.sel td { background: var(--info-bg); }
.ind-gestion { display: flex; align-items: center; gap: 8px; min-width: 150px; }
.ind-gestion .ind-barra { flex: 1; height: 10px; border-radius: 999px; background: var(--naranja-bg); overflow: hidden; }
.ind-gestion .ind-barra span { display: block; height: 100%; border-radius: 999px; }
.ind-gestion.verde b { color: var(--ok-tx); }  .ind-gestion.verde .ind-barra span { background: #1e8e5a; }
.ind-gestion.amarillo b { color: var(--naranja-tx); } .ind-gestion.amarillo .ind-barra span { background: #e0a21e; }
.ind-gestion.rojo b { color: var(--bad-tx); }   .ind-gestion.rojo .ind-barra span { background: #c0392b; }
.gestion-barras { position: relative; display: flex; align-items: flex-end; gap: 4px; height: 190px; padding: 6px 8px 0; background: var(--naranja-bg); border-radius: 10px; overflow-x: auto; }
.gb-col { flex: 1 0 22px; max-width: 54px; height: 100%; display: flex; flex-direction: column; justify-content: flex-end; align-items: center; gap: 2px; }
.gb-col small { font-size: .66rem; color: var(--texto-suave, var(--texto-2)); white-space: nowrap; height: 16px; }
.gb-n { font-size: .72rem; font-weight: 600; min-height: 14px; }
.gb-barra { width: 70%; border-radius: 4px 4px 0 0; }
.gb-barra.cumple { background: #1e8e5a; } .gb-barra.parcial { background: #e0a21e; } .gb-barra.vacio { background: transparent; }
.gb-meta { position: absolute; left: 0; right: 0; border-top: 2px dashed #3c392f; pointer-events: none; }
.gb-meta small { position: absolute; right: 6px; top: -16px; font-size: .68rem; background: var(--naranja-bg); padding: 0 4px; }

/* Lo que lleva el móvil y sus deducciones */
.cobro-movil-nov { background: var(--tarjeta); border: 1px solid var(--naranja-bd); border-radius: 12px; padding: 12px 14px; margin: 0 0 14px; display: grid; gap: 8px; }
.cobro-movil-nov h4 { margin: 0; }
.cobro-movil-nov tr.total td { font-weight: 700; background: var(--naranja-bg); }

/* Borrar datos (administrador) */
.cobro-check { flex-direction: row !important; align-items: center; gap: 6px !important; }
.cobro-lat-campos .cobro-fuera-caja.rechazado { display: grid; gap: 6px; }

/* Por qué no se factura */
.cobro-nofactura { margin-top: 10px; display: grid; gap: 8px; }
.cobro-nofactura h5 { margin: 0; }
.cobro-nofactura .nf-item { display: grid; gap: 1px; padding: 6px 8px; background: var(--naranja-bg); border-radius: 8px; }
.cobro-nofactura .nf-item small { font-size: .74rem; }

/* Candado del borrado */
.cobro-candado { display: grid; gap: 6px; padding: 8px 10px; border-radius: 10px; border: 1.5px solid; }
.cobro-candado.cerrado { background: var(--ok-bg); border-color: #1e8e5a; color: var(--ok-tx); }
.cobro-candado.abierto { background: var(--bad-bg); border-color: #c0392b; color: var(--bad-tx); }
.cobro-candado small { color: inherit; opacity: .85; }

/* Calendario con novedades, domingos y festivos + semanario + panel de Transportes */
.cobro-calendario th.dia { line-height: 1.1; }
.cobro-calendario th.dia small { display: block; font-size: .6rem; font-weight: 400; color: var(--texto-suave, var(--texto-2)); }
.cobro-calendario th.dia.dom, .cobro-calendario th.dia.fest { background: var(--naranja-bg); }
.cobro-calendario td.dia.descanso { background: var(--fondo-2); }
.cobro-calendario td.dia.extra.trabajo { box-shadow: inset 0 0 0 2px #0d3d26; }
.cobro-calendario td.dia.nov { color: #fff; font-weight: 700; font-size: .66rem; }
.cobro-calendario td.clic { cursor: pointer; }
.cobro-calendario td.clic:hover b { text-decoration: underline; }
.cal-rep { color: var(--bad-tx); font-weight: 700; cursor: help; }
.cal-leyenda { display: flex; flex-wrap: wrap; gap: 6px 14px; margin: 6px 0 10px; font-size: .74rem; }
.cal-ley { display: inline-flex; align-items: center; gap: 5px; }
.cal-ley i { width: 14px; height: 14px; border-radius: 3px; display: inline-block; }
.cal-tipo { color: #fff; border-radius: 999px; padding: 2px 10px; font-size: .74rem; font-weight: 600; white-space: nowrap; }
.cal-chip { display: inline-block; background: var(--tarjeta); border: 1px solid #e0a21e; border-radius: 999px; padding: 1px 9px; margin: 2px 4px 2px 0; font-size: .74rem; cursor: help; }
.sem-dialogo { width: min(980px, 96vw); }
.sem-tabla { width: 100%; border-collapse: separate; border-spacing: 4px; table-layout: fixed; margin: 8px 0; }
.sem-tabla th { font-size: .74rem; color: var(--texto-suave, var(--texto-2)); text-align: center; }
.sem-tabla td { height: 78px; vertical-align: top; border-radius: 8px; padding: 4px 6px; font-size: .74rem; }
.sem-vacia { background: transparent; }
.sem-dia { display: table-cell; background: var(--naranja-bg); }
.sem-dia .sem-num { font-weight: 700; font-size: .8rem; }
.sem-dia .sem-num small { font-weight: 400; font-size: .64rem; }
.sem-dia b, .sem-dia small { display: block; }
.sem-dia.trabajo { color: var(--ok-tx); }
.sem-dia.nov { color: #fff; }
.sem-dia.descanso { background: var(--naranja-bg); color: var(--texto-2); }
.sem-dia.sin { background: var(--tarjeta); outline: 1.5px dashed #c0392b; color: var(--bad-tx); }
.sem-dia.futuro { background: var(--naranja-bg); opacity: .6; }
.sem-extra { font-style: italic; }
.cobro-calendario td.dia.conflicto { outline: 2px solid #c0392b; outline-offset: -2px; }
.sem-dia.trabajo .sem-extra { color: var(--bad-tx); font-weight: 700; }
.cobro-aval.cal-azul { background: var(--info-bg); color: var(--info-tx); border-color: #3b78c4; }

/* Cuadro de avisos del Editor (2026-10-10) */
.cobro-avisos { background: var(--tarjeta); border: 1px solid var(--borde); border-radius: 14px; padding: 12px 14px; margin-bottom: 12px; }
.cobro-avisos h5 { margin: 0 0 6px; font-size: .78rem; letter-spacing: .06em; text-transform: uppercase; color: var(--texto-suave); }
.aviso-fila { margin: 10px 0 0; }
.aviso-fila .cobro-alerta { display: inline-block; }
.aviso-texto { margin-top: 4px; font-size: .9rem; line-height: 1.45; white-space: pre-wrap; overflow-wrap: anywhere; }
.cobro-mogotax-plegado { margin-bottom: 12px; }
.cobro-mogotax-plegado > summary { cursor: pointer; font-size: .8rem; color: var(--texto-suave); padding: 4px 0; }

/* Opciones vereda / ciudad dentro de «Avisos de este servicio» (2026-10-11) */
.aviso-opciones { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.aviso-opcion { display: flex; flex-direction: column; gap: 2px; padding: 10px; border: 1px solid var(--borde); border-radius: 12px; background: var(--fondo-2); font-size: .85rem; }
.aviso-opcion.ahora { background: var(--ok-bg); border-color: var(--ok-bd); }
.aviso-opcion small { color: var(--texto-suave); text-transform: uppercase; letter-spacing: .05em; font-size: .68rem; }
.aviso-opcion span { font-size: 1.05rem; font-weight: 650; font-variant-numeric: tabular-nums; }
.aviso-opcion em { font-style: normal; color: var(--texto-suave); font-size: .76rem; overflow-wrap: anywhere; }
.aviso-botones { display: flex; flex-direction: column; gap: 6px; margin-top: 8px; }
.aviso-botones button { width: 100%; }

/* La tarjeta «Avisos de este servicio» se tiñe cuando el servicio es fallido (morado) o cancelado (rojo) */
.cobro-avisos.tono-fallido { background: var(--mor-bg); border-color: var(--mor-bd); }
.cobro-avisos.tono-cancelado { background: var(--bad-bg); border-color: var(--bad-bd); }
.cobro-avisos.tono-fallido h5 { color: var(--mor-tx); }
.cobro-avisos.tono-cancelado h5 { color: var(--bad-tx); }
.cobro-avisos.tono-fallido .cobro-alerta.alerta-gris, .cobro-avisos.tono-cancelado .cobro-alerta.alerta-gris { background: color-mix(in srgb, var(--tarjeta) 65%, transparent); }

/* Asignación de EPS por auditor (2026-10-11) */
.asig-barra { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }
.asig-chip { display: inline-flex; align-items: center; gap: 4px; background: var(--info-bg); color: var(--info-tx); border-radius: 999px; padding: 2px 4px 2px 10px; margin: 2px 4px 2px 0; font-size: .82rem; }
.asig-chip button { border: none; background: transparent; color: inherit; padding: 0 6px; border-radius: 999px; font-size: .8rem; cursor: pointer; }
.asig-chip button:hover { background: var(--info-bd); }

/* Cancelados dentro de la planilla (2026-10-11) */
.cobro-cancelados { margin: 14px 0; padding: 12px 14px; border: 1px solid var(--borde); border-radius: 14px; background: var(--tarjeta); }
.cobro-cancelados.con-pendientes { background: var(--bad-bg); border-color: var(--bad-bd); }
.cobro-cancelados h4 { margin: 0 0 4px; }
.cobro-cancelados .suave { margin: 0 0 8px; font-size: .86rem; }
.fila-cancelado { cursor: pointer; }
.fila-cancelado.sel td { background: var(--fondo-2); }
.fila-cancelado:hover td { background: var(--fondo-2); }

/* Cancelados desplegable (2026-10-11) */
.cobro-cancelados > summary { cursor: pointer; display: flex; align-items: center; gap: 12px; flex-wrap: wrap; list-style: none; padding: 2px 0; }
.cobro-cancelados > summary::-webkit-details-marker { display: none; }
.cobro-cancelados > summary::before { content: '▸'; font-size: .9rem; color: var(--texto-suave); transition: transform .15s ease; }
.cobro-cancelados[open] > summary::before { transform: rotate(90deg); }
.cobro-cancelados[open] > summary { margin-bottom: 8px; }
.cobro-cancelados .canc-barra { width: 140px; margin: 0; }
.cobro-cancelados.al-dia { background: var(--ok-bg); border-color: var(--ok-bd); }
.cobro-cancelados-hechos { margin-top: 10px; }
.cobro-cancelados-hechos > summary { cursor: pointer; font-size: .86rem; color: var(--texto-suave); padding: 4px 0; }

/* Barra paso a paso: cada filtro nuevo aparece suavemente (2026-10-11) */
.cobro-barra label.paso { animation: aparecer-paso .28s ease both; }
@keyframes aparecer-paso { from { opacity: 0; transform: translateX(-8px); } to { opacity: 1; transform: none; } }

/* Menú en cascada Regional > EPS > Móvil (2026-10-11) */
.cobro-campo-menu { display: flex; gap: 6px; align-items: center; font-size: .85rem; color: var(--texto-suave); }
.selmenu { position: relative; }
.selmenu-boton { display: inline-flex; align-items: center; gap: 4px; max-width: min(560px, 62vw); padding: 7px 14px; font-size: .9rem; border-radius: 10px; }
.selmenu-texto { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.selmenu-panel { position: absolute; top: calc(100% + 8px); left: 0; z-index: 60; display: flex; max-width: 94vw; background: var(--tarjeta); border: 1px solid var(--borde); border-radius: 16px; box-shadow: var(--sombra-alta); overflow: hidden; }
.selmenu-panel.anima { animation: aparecer-paso .18s ease both; }
.selmenu-col { min-width: 230px; max-width: 300px; max-height: 360px; overflow-y: auto; padding: 8px; border-right: 1px solid var(--borde); display: flex; flex-direction: column; gap: 2px; }
.selmenu-col:last-child { border-right: none; }
.selmenu-item { display: flex; justify-content: space-between; align-items: center; gap: 10px; width: 100%; text-align: left; background: transparent; border: none; border-radius: 10px; padding: 9px 12px; font-size: .94rem; color: var(--texto-2); cursor: pointer; }
.selmenu-item small { display: block; font-size: .74rem; color: var(--texto-suave); margin-top: 1px; }
.selmenu-item:hover, .selmenu-item:focus-visible { background: var(--fondo-2); color: var(--texto); }
.selmenu-item.activo { color: var(--acento); background: color-mix(in srgb, var(--acento) 10%, transparent); font-weight: 600; }
.selmenu-flecha { font-style: normal; color: var(--texto-suave); font-size: 1.1rem; }
@media (max-width: 720px) { .selmenu-panel { flex-direction: column; width: calc(100vw - 32px); } .selmenu-col { max-width: none; max-height: 220px; border-right: none; border-bottom: 1px solid var(--borde); } }

/* Pantalla de inicio: solo el período (2026-10-11) */
.inicio-periodo input { border-color: var(--acento); box-shadow: 0 0 0 3px color-mix(in srgb, var(--acento) 18%, transparent); }
.cobro-inicio { max-width: 640px; }
.cobro-inicio h3 { margin: 0 0 6px; }

/* Cabecera del móvil: Móvil › Conductor › Propietario, Planillas desplegable, Resumen y Alertas (2026-10-11) */
.cab-movil-caja { display: flex; flex-direction: column; align-items: stretch; gap: 10px; }
.cab-identidad { display: flex; flex-wrap: wrap; gap: 10px 28px; align-items: flex-end; }
.cab-dato { display: flex; flex-direction: column; min-width: 0; }
.cab-dato small { font-size: .7rem; text-transform: uppercase; letter-spacing: .06em; color: var(--texto-suave); }
.cab-dato b { font-size: .98rem; overflow-wrap: anywhere; }
.cab-dato.cab-movil b { font-size: 1.25rem; }
.cab-meta { display: flex; flex-wrap: wrap; gap: 8px 12px; align-items: center; font-size: .84rem; }
.cab-planillas, .cab-resumen-alertas { display: flex; flex-wrap: wrap; gap: 8px 12px; align-items: center; }
.cab-rotulo { min-width: 66px; font-size: .7rem; text-transform: uppercase; letter-spacing: .06em; color: var(--texto-suave); }
.cab-cifras { font-size: .8rem; }
.pl-menu, .al-menu { position: relative; }
.pl-boton { display: inline-flex; align-items: baseline; gap: 8px; padding: 8px 14px; border-radius: 12px; border: 1.5px solid var(--borde); background: var(--tarjeta); color: var(--texto); font-size: .95rem; }
.pl-boton small { font-size: .76rem; color: inherit; opacity: .85; }
.pl-ok { background: var(--ok-bg); border-color: var(--ok-bd); color: var(--ok-tx); }
.pl-proceso { background: var(--naranja-bg); border-color: var(--naranja-bd); color: var(--naranja-tx); }
.pl-vacia { background: var(--tarjeta); border-color: var(--borde); color: var(--texto); }
.pl-lista { position: absolute; top: calc(100% + 6px); left: 0; z-index: 60; min-width: min(430px, 92vw); max-height: 380px; overflow-y: auto; display: flex; flex-direction: column; gap: 4px; padding: 8px; background: var(--tarjeta); border: 1px solid var(--borde); border-radius: 16px; box-shadow: var(--sombra-alta); animation: aparecer-paso .16s ease both; }
.pl-item { display: flex; align-items: center; gap: 10px; width: 100%; text-align: left; padding: 8px 12px; border-radius: 10px; border: 1.5px solid transparent; font-size: .9rem; }
.pl-item .pl-item-txt { flex: 1; display: flex; flex-direction: column; min-width: 0; }
.pl-item small { font-size: .74rem; opacity: .8; }
.pl-item .pl-estado { font-size: .78rem; font-weight: 700; white-space: nowrap; }
.pl-item.sel { border-color: var(--texto); }
.pl-item:hover { filter: brightness(.97); }
.pl-cuenta { display: inline-flex; flex-wrap: wrap; gap: 6px; }
.pl-punto { font-size: .74rem; padding: 2px 9px; border-radius: 10px; border: 1px solid var(--borde); }
.al-boton { padding: 6px 14px; border-radius: 12px; font-size: .88rem; border: 1.5px solid var(--borde); }
.al-boton.con { background: var(--naranja-bg); border-color: var(--naranja-bd); color: var(--naranja-tx); font-weight: 600; }
.al-boton.sin { background: var(--ok-bg); border-color: var(--ok-bd); color: var(--ok-tx); }
.al-panel { position: absolute; top: calc(100% + 6px); left: 0; z-index: 60; min-width: min(460px, 92vw); display: flex; flex-direction: column; gap: 8px; padding: 12px; background: var(--tarjeta); border: 1px solid var(--borde); border-radius: 16px; box-shadow: var(--sombra-alta); animation: aparecer-paso .16s ease both; }
.al-fila { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px; }

/* Resumen y Alertas ahora van entre la tabla de servicios y los cancelados: el panel de alertas se abre hacia arriba (2026-10-11) */
.cab-resumen-alertas.debajo-tabla { margin: 10px 0; }
.cab-resumen-alertas.debajo-tabla .al-panel { top: auto; bottom: calc(100% + 6px); }

/* Barras de desplazamiento propias (2026-10-11): la tabla de la planilla y el Editor se mueven por dentro, para no tener que subir la página a ver los avisos del servicio */
.cobro-scroll-tabla { max-height: 62vh; overflow: auto; }
.cobro-scroll-tabla .cobro-tabla th { position: sticky; top: 0; z-index: 2; background: var(--tarjeta); }
@media (min-width: 1101px) {
  .cobro-grid > .cobro-editor { position: sticky; top: 8px; max-height: calc(100vh - 16px); overflow-y: auto; }
}

/* Leyenda del semáforo debajo de la tabla, uno encima de otro (2026-10-12) */
.cobro-leyenda.leyenda-vertical { flex-direction: column; align-items: flex-start; gap: 5px; padding: 8px 2px 4px; }

/* Tarifario y tarifa urbana de solo lectura (2026-10-12) */
.cobro-lectura { display: flex; flex-direction: column; gap: 4px; font-size: .86rem; }

/* Velocidad (2026-10-12): barra fina de carga arriba y «Cargando…» al cambiar de pestaña */
#cobroCarga { position: fixed; top: 0; left: 0; right: 0; height: 3px; z-index: 9999; background: transparent; overflow: hidden; opacity: 0; transition: opacity .15s ease; pointer-events: none; }
#cobroCarga.activa { opacity: 1; }
#cobroCarga::before { content: ''; position: absolute; top: 0; bottom: 0; width: 38%; background: var(--acento, #0a84ff); border-radius: 3px; animation: cobro-barra 1.1s ease-in-out infinite; }
@keyframes cobro-barra { 0% { left: -40%; } 100% { left: 102%; } }
.cobro-cargando-vista { display: flex; align-items: center; gap: 12px; padding: 36px 10px; color: var(--texto-suave); font-size: .95rem; }
.cobro-spinner { width: 20px; height: 20px; border: 3px solid var(--borde); border-top-color: var(--acento, #0a84ff); border-radius: 50%; animation: cobro-giro .8s linear infinite; }
@keyframes cobro-giro { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) { #cobroCarga::before, .cobro-spinner { animation-duration: 3s; } }

/* aviso de derechos de autor */
.derechos { font-size: .74rem; line-height: 1.4; color: var(--texto-suave, #77736a); text-align: center; margin: 14px 0 0; }
.derechos-pie { padding: 18px 16px 26px; border-top: 1px solid var(--linea, #e3dfd2); margin-top: 28px; }
#vistaLogin:not(.oculto) ~ #pieDerechos { display: none; }

/* «Auditorías realizadas» (gestión por auditor): tarjeta suave azulada en vez del naranja de las alertas (2026-10-15) */
.cobro-auditoria { border-radius: 10px; padding: 10px 14px; margin: 8px 0; background: color-mix(in srgb, var(--en-curso) 6%, var(--tarjeta)); border: 1px solid color-mix(in srgb, var(--en-curso) 20%, var(--borde)); }
.cobro-auditoria > div:first-child b { color: var(--texto); }
.cobro-auditoria button.pequeno { background: color-mix(in srgb, var(--en-curso) 12%, var(--tarjeta)); border-color: color-mix(in srgb, var(--en-curso) 35%, var(--borde)); color: var(--en-curso); font-weight: 600; }
.cobro-auditoria button.pequeno:hover { background: color-mix(in srgb, var(--en-curso) 20%, var(--tarjeta)); }

/* Desglose de la auditoría (ventana emergente con el formato «Relación de auditoría») */
.desglose-dialogo { width: min(760px, 94vw); max-height: 90vh; }
.desglose-cuerpo { max-height: 62vh; overflow: auto; padding-right: 4px; }
.desglose-eps { margin-bottom: 14px; }
.desglose-eps h4 { margin: 10px 0 6px; font-size: 1rem; }
.desglose-tabla { margin: 0 0 10px; width: 100%; }
.desglose-tabla thead tr:first-child th { background: color-mix(in srgb, var(--en-curso) 10%, var(--tarjeta)); }

.desglose-tabla tr.total td { font-weight: 700; border-top: 2px solid var(--borde); }
.desglose-tabla.provisional { opacity: .78; }
.desglose-estado { float: right; font-weight: 600; font-size: .72rem; padding: 2px 8px; border-radius: 10px; background: var(--borde); }
.desglose-estado.auditada { background: color-mix(in srgb, var(--exitoso) 18%, var(--tarjeta)); color: var(--exitoso); }
.desglose-estado.en_revision { background: color-mix(in srgb, var(--en-curso) 15%, var(--tarjeta)); color: var(--en-curso); }
.desglose-sub { text-align: right; margin: 0 0 6px; }
.desglose-total { text-align: right; font-size: 1.05rem; margin: 10px 0 0; padding-top: 8px; border-top: 2px solid var(--borde); }
.desglose-estado.firmando { background: var(--en-curso); color: #fff; }

/* Indicadores unidos (informe): selector de vista */
.ind-selector { display: flex; flex-wrap: wrap; gap: 6px; margin: 4px 0 12px; }
.ind-selector button.pequeno { border-radius: 16px; padding: 5px 14px; }
/* «Indicadores» desplegable: el título es el botón */
.ind-titulo { display: flex; align-items: baseline; gap: 6px; width: 100%; text-align: left; background: transparent; border: none; padding: 4px 2px; font-size: 1.05rem; font-weight: 700; cursor: pointer; color: var(--texto); }
.ind-titulo:hover { background: color-mix(in srgb, var(--en-curso) 6%, var(--tarjeta)); border-radius: 8px; }
.ind-titulo .ind-flecha { display: inline-block; width: 1.1em; color: var(--en-curso); }
.ind-titulo small { font-weight: 400; font-size: .78rem; }

/* Módulo Tarifas (2026-10-18): tarjetas de colores */
.tar { display: grid; gap: 14px; }
.tar-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 12px; }
.tar-card { border-radius: 14px; padding: 14px 16px; display: grid; gap: 4px; border: 1px solid transparent; }
.tar-card.clic { cursor: pointer; } .tar-card.clic:hover { filter: brightness(.97); }
.tar-tit { text-transform: uppercase; letter-spacing: .04em; font-weight: 700; font-size: .68rem; opacity: .85; }
.tar-num { font-size: 1.5rem; line-height: 1.15; }
.tar-pie { opacity: .8; font-size: .74rem; }
.tar-card.ok, .tar-panel.ok > .tar-cab { background: var(--ok-bg); color: var(--ok-tx); border-color: var(--ok-bd); }
.tar-card.info, .tar-panel.info > .tar-cab { background: var(--info-bg); color: var(--info-tx); border-color: var(--info-bd); }
.tar-card.naranja, .tar-panel.naranja > .tar-cab { background: var(--naranja-bg); color: var(--naranja-tx); border-color: var(--naranja-bd); }
.tar-card.mor, .tar-panel.mor > .tar-cab { background: var(--mor-bg); color: var(--mor-tx); border-color: var(--mor-bd); }
.tar-panel { background: var(--tarjeta); border: 1px solid var(--borde); border-radius: 14px; overflow: hidden; box-shadow: var(--sombra); }
.tar-panel.ok { border-color: var(--ok-bd); } .tar-panel.info { border-color: var(--info-bd); } .tar-panel.naranja { border-color: var(--naranja-bd); } .tar-panel.mor { border-color: var(--mor-bd); }
.tar-cab { display: flex; align-items: baseline; gap: 10px; flex-wrap: wrap; padding: 10px 16px; border-bottom: 1px solid transparent; }
.tar-cab b { font-size: .98rem; } .tar-cab small { opacity: .8; }
.tar-cuerpo { padding: 12px 16px 14px; display: grid; gap: 8px; }
.tar-fila { display: flex; gap: 10px; flex-wrap: wrap; align-items: flex-end; }
.tar-campo { display: flex; flex-direction: column; gap: 2px; font-size: .78rem; color: var(--texto-suave); }
.tar-par { display: flex; gap: 32px; flex-wrap: wrap; } .tar-par small { display: block; color: var(--texto-suave); }

.tar-edita { display: grid; gap: 6px; background: var(--info-bg); color: var(--info-tx); border: 1px solid var(--info-bd); border-radius: 10px; padding: 10px 12px; margin-top: 8px; }
.tar-edita .tar-campo { color: var(--info-tx); }

.tar-card.bad, .tar-panel.bad > .tar-cab { background: var(--bad-bg); color: var(--bad-tx); border-color: var(--bad-bd); }
.tar-panel.bad { border-color: var(--bad-bd); }

/* Tarifas › Autorización y Georeferenciación (2026-10-18) */
.aut-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 10px 16px; }
.aut-dato { display: grid; gap: 1px; align-content: start; } .aut-dato.ancho { grid-column: span 2; }
.aut-dato small { color: var(--texto-suave); font-size: .72rem; } .aut-dato b { font-size: .92rem; font-weight: 600; overflow-wrap: anywhere; }
.aut-archivos { display: grid; gap: 4px; } .aut-archivo { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; font-size: .85rem; }
.aut-recogida { font-weight: 700; font-size: .98rem; overflow-wrap: anywhere; }
.aut-mapa { width: 100%; height: 360px; border: 1px solid var(--borde); border-radius: 12px; }
@media (max-width: 560px) { .aut-dato.ancho { grid-column: span 1; } .aut-mapa { height: 280px; } }
.tar-cuerpo { grid-template-columns: minmax(0, 1fr); } .tar-cuerpo > * { min-width: 0; }
.aut-manual { border: 1px dashed var(--borde); border-radius: 10px; padding: 8px 12px; display: grid; gap: 8px; } .aut-manual summary { cursor: pointer; font-weight: 600; font-size: .85rem; }

/* Pestañas del módulo con tonos suaves (2026-10-18): cada pestaña principal tiene su color y sus subpestañas llevan el mismo color, más claro. */
.t-planillas, [data-vista="planillas"] { --h-bg: #d6e6fb; --h-bg2: #edf4fd; --h-tx: #1b4b86; --h-bd: #a9c8f0; }
.t-avales, [data-vista="avales"] { --h-bg: #e4dcf8; --h-bg2: #f2eefc; --h-tx: #46357f; --h-bd: #c5b6ec; }
.t-tarifas, [data-vista="tarifas"] { --h-bg: #d3efdd; --h-bg2: #eaf7ef; --h-tx: #14633a; --h-bd: #a3d8b9; }
.t-transportes, [data-vista="transportes"] { --h-bg: #cdeeee; --h-bg2: #e6f6f6; --h-tx: #0f5e5e; --h-bd: #9ad3d3; }
.t-propietarios, [data-vista="propietarios"] { --h-bg: #f8dce8; --h-bg2: #fbeef4; --h-tx: #8a2a55; --h-bd: #eeb0c9; }
.t-integraciones, [data-vista="integraciones"] { --h-bg: #dde3ec; --h-bg2: #eef1f6; --h-tx: #3a475c; --h-bd: #b7c1d1; }
.t-informe, [data-vista="informe"] { --h-bg: #f6ebc3; --h-bg2: #fbf5df; --h-tx: #6e5410; --h-bd: #e2cf8a; }
:root[data-theme="dark"] .t-planillas, :root[data-theme="dark"] [data-vista="planillas"] { --h-bg: #1c3250; --h-bg2: #15233a; --h-tx: #9cc8ff; --h-bd: #2f527f; }
:root[data-theme="dark"] .t-avales, :root[data-theme="dark"] [data-vista="avales"] { --h-bg: #2d2549; --h-bg2: #211b36; --h-tx: #c9b8ff; --h-bd: #4a3d7a; }
:root[data-theme="dark"] .t-tarifas, :root[data-theme="dark"] [data-vista="tarifas"] { --h-bg: #17372a; --h-bg2: #112a20; --h-tx: #8fe0b0; --h-bd: #2a6244; }
:root[data-theme="dark"] .t-transportes, :root[data-theme="dark"] [data-vista="transportes"] { --h-bg: #123a3a; --h-bg2: #0d2b2b; --h-tx: #86e0e0; --h-bd: #24625f; }
:root[data-theme="dark"] .t-propietarios, :root[data-theme="dark"] [data-vista="propietarios"] { --h-bg: #43202f; --h-bg2: #321823; --h-tx: #ffa8cb; --h-bd: #70344f; }
:root[data-theme="dark"] .t-integraciones, :root[data-theme="dark"] [data-vista="integraciones"] { --h-bg: #2a303b; --h-bg2: #1f242d; --h-tx: #b4c0d4; --h-bd: #424b5c; }
:root[data-theme="dark"] .t-informe, :root[data-theme="dark"] [data-vista="informe"] { --h-bg: #3d3414; --h-bg2: #2c250f; --h-tx: #f0d77a; --h-bd: #6b5a1d; }
.cobro-subtabs:not(.izq) button[class*="t-"] { background: var(--h-bg2); color: var(--h-tx); border: 1px solid transparent; }
.cobro-subtabs:not(.izq) button[class*="t-"]:hover { background: var(--h-bg); }
.cobro-subtabs:not(.izq) button[class*="t-"].activa { background: var(--h-bg); color: var(--h-tx); border-color: var(--h-bd); font-weight: 600; }
[data-vista] .cobro-subtabs.izq { background: color-mix(in srgb, var(--h-bg2) 55%, transparent); }
[data-vista] .cobro-subtabs.izq button { color: var(--h-tx); background: transparent; border: 1px solid transparent; }
[data-vista] .cobro-subtabs.izq button:hover { background: var(--h-bg2); }
[data-vista] .cobro-subtabs.izq button.activa { background: var(--h-bg2); color: var(--h-tx); border-color: var(--h-bd); font-weight: 600; }

.aut-ver { display: inline-flex; align-items: center; gap: 8px; font-weight: 600; box-shadow: 0 0 0 3px color-mix(in srgb, var(--acento) 22%, transparent); }
.aut-barra { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; }

/* Área de Auditoría por llamada (con Calidad adentro) */
.t-auditoria, [data-vista="auditoria"] { --h-bg: #dfe3fb; --h-bg2: #eef0fd; --h-tx: #2f3a8a; --h-bd: #b5bdf0; }
:root[data-theme="dark"] .t-auditoria, :root[data-theme="dark"] [data-vista="auditoria"] { --h-bg: #232a52; --h-bg2: #1a2040; --h-tx: #b9c3ff; --h-bd: #3d4783; }
.aut-servicio { display: grid; gap: 6px; margin: 6px 0; }
.aut-resumen { display: grid; gap: 2px; font-size: .84rem; background: var(--info-bg); color: var(--info-tx); border: 1px solid var(--info-bd); border-radius: 10px; padding: 8px 10px; }
.aut-resumen .suave { opacity: .75; }

.aut-buscar { display: inline-flex; gap: 6px; align-items: center; margin-left: auto; } .aut-resultados { display: grid; gap: 6px; margin-top: 6px; }

.aut-ver.verde { background: var(--exitoso); border-color: var(--exitoso); color: #fff; box-shadow: 0 0 0 3px color-mix(in srgb, var(--exitoso) 25%, transparent); }
.aut-ver.naranja { background: var(--no-contesta); border-color: var(--no-contesta); color: #fff; box-shadow: 0 0 0 3px color-mix(in srgb, var(--no-contesta) 28%, transparent); }

.aut-ver.blanco { background: var(--tarjeta); color: var(--texto-2); border: 1px solid var(--borde); box-shadow: none; font-weight: 500; }
.cobro-tabla tr.sem-fallido td:first-child { box-shadow: inset 4px 0 0 var(--mor-tx, #4b3a86); }
.cobro-tabla tr.sem-fallido .sem:not(.fallido) { opacity: .28; cursor: not-allowed; }

/* Planilla más ancha (2026-10-19): la tabla de servicios es más compacta (fecha y hora en dos líneas, textos largos que se parten) y el botón «Ampliar planilla» oculta el panel de cargue */
.cobro-central .cobro-tabla { font-size: .78rem; }
.cobro-central .cobro-tabla th, .cobro-central .cobro-tabla td { padding-left: 4px; padding-right: 4px; }
.cobro-central .cobro-tabla td:nth-child(3) { white-space: normal; line-height: 1.15; min-width: 62px; }
.cobro-central .cobro-tabla td:nth-child(3) small { display: block; }
.cobro-central .cobro-tabla td:nth-child(5) { white-space: nowrap; }
.cobro-central .cobro-tabla td:nth-child(4) { white-space: normal; max-width: 165px; }
.cobro-central .cobro-tabla td:nth-child(6), .cobro-central .cobro-tabla td:nth-child(7) { white-space: normal; max-width: 110px; }
.cobro-central .cobro-tabla td:nth-child(8) { white-space: normal; max-width: 84px; }
.cobro-ampliar { display: flex; justify-content: flex-end; margin: 0 0 6px; }
.cobro-marco.ancho > .cobro-lateral, .cobro-marco.ancho > .cobro-riel { display: none; }
@media (min-width: 1101px) { .cobro-marco.ancho .cobro-grid { grid-template-columns: minmax(0, 1fr) 270px; } }

/* Facturación (2026-10-22) */
.fac-form { display: flex; flex-wrap: wrap; gap: 10px; align-items: flex-end; padding: 10px 0; }
.fac-form .fac-titulo { flex-basis: 100%; }
.fac-nueva { display: inline-flex; gap: 6px; align-items: center; }
.fac-chk { display: block; margin: 6px 0; font-size: .85rem; }
.fac-detalle { margin-top: 16px; border-top: 1px solid var(--borde); padding-top: 10px; }
.fac-cab { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; }
.fac-cab h3 { margin: 0; }
.fac-total { font-weight: 700; font-variant-numeric: tabular-nums; }
.fac-botones { display: flex; flex-wrap: wrap; gap: 8px; margin: 8px 0; }
.fac-avisos { display: flex; flex-wrap: wrap; gap: 3px; }
.fac-doc { background: var(--naranja-bg); border-radius: 8px; padding: 10px 12px; margin-top: 10px; }
.fac-alertas { flex-basis: 100%; margin: 0; padding-left: 18px; font-size: .82rem; }
.fac-hist { font-size: .8rem; margin: 6px 0; padding-left: 18px; }
.cobro-chip.fac-rojo { background: #fde4e1; color: #9b1c12; }
.cobro-chip.fac-aviso { background: var(--naranja-bg); color: var(--naranja-tx); }
.cobro-chip.fac-gris { background: #e6e6e6; color: #555; }
.fac-rojo-tx { color: #9b1c12; font-weight: 600; }
.fac .cobro-tabla td { white-space: normal; vertical-align: top; } .fac .cobro-tabla td.num { white-space: nowrap; }

/* Facturación · Glosas y devoluciones (2026-10-22) */
.gl-kpis { display: flex; flex-wrap: wrap; gap: 10px; margin: 10px 0; }
.gl-kpi { background: var(--naranja-bg); border-radius: 8px; padding: 8px 14px; min-width: 130px; display: flex; flex-direction: column; gap: 2px; }
.gl-kpi b { font-size: 1.15rem; font-variant-numeric: tabular-nums; } .gl-kpi span { font-size: .75rem; color: var(--texto-suave); }
.gl-kpi.rojo { background: #fde4e1; } .gl-kpi.rojo b { color: #9b1c12; } .gl-kpi.aviso b { color: var(--naranja-tx); }
.gl-sec { border-top: 1px solid var(--borde); padding: 6px 0; } .gl-sec > summary { cursor: pointer; font-weight: 600; padding: 4px 0; }
.gl-acc { display: flex; flex-wrap: wrap; gap: 4px; align-items: center; }
.gl h4 { margin: 14px 0 6px; }

.coord .cobro-tabla td { white-space: normal; vertical-align: top; } .coord .cobro-tabla td.num { white-space: nowrap; }
