:root {
  --fondo: #f4f6f9; --panel: #ffffff; --texto: #1f2933; --suave: #6b7785; --borde: #dde3ea;
  --primario: #0b6e8a; --primario-osc: #085870; --menu: #0f2d3d; --menu-texto: #c9d6df;
  --error: #b42318; --ok: #1a7f37; --aviso: #b54708;
  color-scheme: light;  /* los desplegables del navegador que queden, siempre claros (no negros) */
}
* { box-sizing: border-box; }
body { margin: 0; font-family: "Segoe UI", system-ui, sans-serif; font-size: 14px; color: var(--texto);
       background: var(--fondo); display: flex; min-height: 100vh; }

/* Menu lateral tipo acordeon (copiado del diseño de erp_sistema, admin.html "Menu lateral a la izquierda").
   Columna fija del alto de la ventana con scroll propio; un solo grupo abierto a la vez. */
#menu_lateral {
  display: flex; flex-direction: column; flex: none; width: 250px; height: 100vh;
  position: sticky; top: 0; align-self: flex-start; z-index: 5;
  background: #141a24; color: #dfe5ee; border-right: 1px solid #0d121a;
}
#menu_lateral .ml-marca { cursor: pointer; user-select: none; padding: 16px 18px 12px; display: flex; align-items: center; gap: 10px;
                          font-weight: 700; font-size: 15px; color: #fff; line-height: 1.15; }
#menu_lateral .ml-marca small { display: block; font-weight: 400; font-size: 12px; color: #8b97aa; }
#menu_lateral .ml-logo { width: 34px; height: 34px; border-radius: 9px; background: var(--primario); color: #fff;
                         display: flex; align-items: center; justify-content: center; flex: none; }
#menu_lateral .ml-logo svg { width: 20px; height: 20px; }
#menu_lateral .ml-buscar { margin: 0 12px 8px; background: #1f2838; border-radius: 8px; height: 34px;
                           display: flex; align-items: center; gap: 8px; padding: 0 10px; color: #8b97aa; }
#menu_lateral .ml-buscar svg { width: 16px; height: 16px; flex: none; }
#menu_lateral .ml-buscar input { all: unset; flex: 1; min-width: 0; color: #e6eaf0; font-size: 13px; }
#menu_lateral .ml-lista { flex: 1; overflow-y: auto; padding: 4px 8px 8px; scrollbar-width: thin; scrollbar-color: #3a475e transparent; }
#menu_lateral .ml-lista::-webkit-scrollbar { width: 6px; }
#menu_lateral .ml-lista::-webkit-scrollbar-thumb { background: #3a475e; border-radius: 6px; }
#menu_lateral .ml-grupo-btn { all: unset; box-sizing: border-box; width: 100%; display: flex; align-items: center; gap: 10px;
                              padding: 8px 10px; border-radius: 8px; cursor: pointer; font-size: 13.5px; font-weight: 600; color: #dfe5ee; }
#menu_lateral .ml-grupo-btn:hover { background: #1c2536; }
#menu_lateral .ml-grupo-ic { width: 28px; height: 28px; border-radius: 8px; display: flex; align-items: center; justify-content: center; flex: none; }
#menu_lateral .ml-grupo-ic svg { width: 16px; height: 16px; }
#menu_lateral .ml-grupo-tx { flex: 1; }
#menu_lateral .ml-chev { width: 15px; height: 15px; color: #8b97aa; transition: transform .2s; flex: none; display: flex; }
#menu_lateral .ml-grupo.abierto > .ml-grupo-btn { background: #1c2536; color: #fff; }
#menu_lateral .ml-grupo.abierto > .ml-grupo-btn .ml-chev { transform: rotate(90deg); color: #fff; }
#menu_lateral .ml-sub { overflow: hidden; max-height: 0; transition: max-height .25s ease; margin-left: 24px; border-left: 1px solid #2c3850; }
#menu_lateral .ml-grupo.abierto > .ml-sub { max-height: 700px; }
#menu_lateral .ml-item { all: unset; box-sizing: border-box; width: calc(100% - 8px); margin: 2px 0 2px 8px; display: flex; align-items: center; gap: 9px;
                         padding: 6px 10px; border-radius: 7px; cursor: pointer; color: #b9c3d3; font-size: 13px; line-height: 1.25; }
#menu_lateral .ml-item svg { width: 16px; height: 16px; flex: none; }
#menu_lateral .ml-item span { flex: 1; }
#menu_lateral .ml-item:hover { background: #1c2536; color: #fff; }
#menu_lateral .ml-item.activo { background: var(--primario); color: #fff; font-weight: 600; }
#menu_lateral .ml-item.pronto { color: #5f6b7e; cursor: default; }
#menu_lateral .ml-item.pronto:hover { background: none; color: #5f6b7e; }
/* submenú dentro de un grupo (Liquidación › Retenciones) */
#menu_lateral .ml-sub2 { overflow: hidden; max-height: 0; transition: max-height .25s ease; margin-left: 18px; border-left: 1px solid #2c3850; }
#menu_lateral .ml-subgrupo.abierto > .ml-sub2 { max-height: 400px; }
#menu_lateral .ml-subgrupo.abierto > .ml-subgrupo-btn { color: #fff; }
#menu_lateral .ml-item span.ml-chev { flex: none; }
#menu_lateral .ml-subgrupo.abierto > .ml-subgrupo-btn .ml-chev { transform: rotate(90deg); color: #fff; }
#menu_lateral .ml-item .ml-pronto { flex: none; font-size: 10px; font-weight: 600; padding: 1px 6px; border-radius: 8px; background: #232d3f; color: #8b97aa; }
#menu_lateral .ml-vacio { padding: 14px 10px; color: #8b97aa; font-size: 13px; }
#menu_lateral .ml-pie { border-top: 1px solid #222c3d; padding: 10px 16px; font-size: 11px; color: #6f7b8f; }

/* Contenido */
main { flex: 1; padding: 26px 32px; min-width: 0; }
.titulo { display: flex; align-items: center; justify-content: space-between; margin-bottom: 20px; gap: 12px; flex-wrap: wrap; }
.titulo h1 { margin: 0; font-size: 23px; letter-spacing: -.01em; }
.titulo-texto { display: flex; align-items: center; gap: 12px; }
.titulo-icono { width: 44px; height: 44px; border-radius: 12px; background: #d7eef4; color: var(--primario);
                display: flex; align-items: center; justify-content: center; flex: none; }
.titulo-icono svg { width: 24px; height: 24px; }
.titulo-sub { color: var(--suave); font-size: 13px; margin-top: 2px; }
.barra { display: flex; gap: 8px; margin-bottom: 14px; flex-wrap: wrap; align-items: center; }
.barra select { width: auto; min-width: 170px; }
.tarjeta { background: var(--panel); border: 1px solid var(--borde); border-radius: 12px; overflow: auto;
           box-shadow: 0 1px 2px rgba(16, 24, 40, .04); }

/* Buscador con lupa */
.buscador { flex: 1; min-width: 260px; position: relative; display: flex; align-items: center; }
.buscador svg { position: absolute; left: 11px; width: 17px; height: 17px; color: var(--suave); pointer-events: none; }
.buscador input { padding-left: 36px; height: 38px; border-radius: 10px; }

/* Tarjetas de resumen (Activos / Baja / Vitalicios / Fallecidos) */
.resumen { display: grid; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); gap: 14px; margin-bottom: 18px; }
.resumen-tarjeta { display: flex; align-items: center; gap: 14px; text-align: left; padding: 16px 18px; border-radius: 14px;
                   background: var(--panel); border: 1px solid var(--borde); box-shadow: 0 1px 2px rgba(16, 24, 40, .05);
                   transition: transform .12s ease, box-shadow .12s ease, border-color .12s ease; }
/* Tarjetas chicas (padrón de socios): título y número en una línea, para que entre más la grilla */
.resumen.compacta { grid-template-columns: repeat(auto-fill, minmax(200px, 240px)); gap: 10px; margin-bottom: 10px; }
.resumen.compacta .resumen-tarjeta { padding: 6px 12px; gap: 10px; border-radius: 10px; }
.resumen.compacta .resumen-icono { width: 30px; height: 30px; border-radius: 8px; }
.resumen.compacta .resumen-icono svg { width: 18px; height: 18px; }
.resumen.compacta .resumen-texto { flex-direction: row; align-items: baseline; gap: 8px; flex-wrap: wrap; }
.resumen.compacta .resumen-numero { font-size: 18px; margin-top: 0; }
.resumen-tarjeta:hover { transform: translateY(-2px); box-shadow: 0 6px 16px rgba(16, 24, 40, .08); }
.resumen-tarjeta.elegida { border-color: var(--c); box-shadow: 0 0 0 2px var(--c) inset, 0 6px 16px rgba(16, 24, 40, .06); }
.resumen-icono { width: 48px; height: 48px; border-radius: 12px; display: flex; align-items: center; justify-content: center;
                 background: var(--f); color: var(--c); flex: none; }
.resumen-icono svg { width: 26px; height: 26px; }
.resumen-texto { display: flex; flex-direction: column; line-height: 1.2; }
.resumen-titulo { font-size: 12px; font-weight: 600; text-transform: uppercase; letter-spacing: .05em; color: var(--suave); }
.resumen-numero { font-size: 28px; font-weight: 700; color: var(--texto); margin-top: 2px; }
.resumen-sub { font-size: 11px; color: var(--suave); }
.t-verde { --c: #16a34a; --f: #dcfce7; }
.t-rojo  { --c: #dc2626; --f: #fee2e2; }
.t-ambar { --c: #d97706; --f: #fef3c7; }
.t-gris  { --c: #4b5563; --f: #e5e7eb; }

table { width: 100%; border-collapse: collapse; }
th, td { padding: var(--grilla-interlineado) 10px; text-align: left; border-bottom: 1px solid var(--borde); white-space: nowrap; }
th { background: #eef2f6; font-weight: 600; font-size: 12px; text-transform: uppercase; color: var(--suave); }
tbody tr { cursor: pointer; }
tbody tr:hover { background: #eaf4f7; }
td.vacio { text-align: center; color: var(--suave); padding: 30px; cursor: default; }
.num { text-align: right; }
.paginador { display: flex; justify-content: space-between; align-items: center; padding: 12px 16px; color: var(--suave); }
/* Grilla que ocupa el alto de la pantalla: se desplaza adentro, con títulos fijos y el paginador siempre a la vista */
.grilla-ajustada { display: flex; flex-direction: column; overflow: hidden; }
.grilla-scroll { flex: 1; min-height: 0; overflow: auto; }
.grilla-scroll > table > thead th { position: sticky; top: 0; z-index: 2; }
.grilla-ajustada .paginador { border-top: 1px solid var(--borde); flex: none; }

/* Listados: filas mas altas y aireadas */
/* El interlineado se configura en Ajustes (parametro grilla_interlineado_px -> --grilla-interlineado) */
:root { --grilla-interlineado: 6px; }
table.listado th { background: #f8fafc; font-size: 11.5px; letter-spacing: .05em; padding: calc(var(--grilla-interlineado) + 3px) 14px;
                   border-bottom: 1px solid var(--borde); }
table.listado td { padding: var(--grilla-interlineado) 14px; border-bottom: 1px solid #eef1f5; vertical-align: middle; }
table.listado td.codigo { color: var(--suave); font-variant-numeric: tabular-nums; width: 70px; }
table.listado .nombre { font-weight: 600; white-space: nowrap; }
table.listado .chips { flex-wrap: nowrap; }
table.listado .chip { padding: 1px 8px; }
table.listado .etiqueta { padding: 1px 9px; }

/* Selector de vista (Lista / Por especialidad / Por banco) */
.segmentado.modos span { display: inline-flex; align-items: center; gap: 6px; }
.segmentado.modos svg { width: 15px; height: 15px; }

/* Vistas en arbol (acordeon como el menu) */
.arbol-barra { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; margin-bottom: 12px; }
.arbol-barra .buscador { max-width: 380px; }
/* "Mostrar [lista]" en la misma línea que el buscador y los botones (Cuotas y cargos, Retenciones fijas) */
.arbol-barra > label:not(.buscador) { display: inline-flex; align-items: center; gap: 6px; white-space: nowrap; font-size: 13px; color: var(--suave); }
.arbol-barra > label:not(.buscador) select { width: auto; min-width: 200px; margin: 0; }
.arbol-barra > button { margin: 0; }
.arbol { display: flex; flex-direction: column; gap: 8px; }
.arbol-grupo { background: var(--panel); border: 1px solid var(--borde); border-radius: 12px; overflow: hidden; }
.arbol-cab { width: 100%; display: flex; align-items: center; gap: 12px; padding: 10px 14px; background: none; border: none;
             border-radius: 0; text-align: left; font-size: 14px; font-weight: 600; color: var(--texto); }
.arbol-cab:hover { background: #f1f8fb; }
.arbol-ic { width: 34px; height: 34px; border-radius: 9px; background: #d7eef4; color: var(--primario);
            display: flex; align-items: center; justify-content: center; flex: none; }
.arbol-ic svg { width: 19px; height: 19px; }
.arbol-tx { flex: 1; }
.arbol-cant { color: var(--suave); font-weight: 500; font-size: 13px; }
.arbol-chev { width: 16px; height: 16px; color: var(--suave); display: flex; transition: transform .2s; }
.arbol-chev svg { width: 16px; height: 16px; }
.arbol-grupo.abierto > .arbol-cab { background: #eef7fa; }
.arbol-grupo.abierto .arbol-chev { transform: rotate(90deg); color: var(--primario); }
.arbol-sub { display: none; border-top: 1px solid var(--borde); }
.arbol-grupo.abierto .arbol-sub { display: block; }
.arbol .vacio, #zona-arbol .vacio { padding: 26px; text-align: center; color: var(--suave); background: var(--panel);
                                    border: 1px solid var(--borde); border-radius: 12px; }

/* Ajustes */
.ajustes-grupo { padding: 6px 20px 10px; margin-bottom: 16px; }
.ajustes-grupo h2, .vista-previa-titulo { font-size: 13px; text-transform: uppercase; letter-spacing: .05em; color: var(--suave); margin: 14px 0 6px; }
.vista-previa-titulo { padding: 0 16px; }
.ajuste { display: flex; align-items: center; justify-content: space-between; gap: 24px; padding: 14px 0; border-top: 1px solid #eef1f5; }
.ajuste:first-of-type { border-top: none; }
.ajuste-titulo { font-weight: 600; }
.ajuste-valor { display: flex; align-items: center; gap: 12px; flex: none; }
.ajuste-valor input[type=range] { width: 200px; accent-color: var(--primario); padding: 0; }
.ajuste-valor .con-sufijo { width: 90px; }
table.listado tbody tr { transition: background .1s ease; }
table.listado tbody tr:hover { background: #f1f8fb; }
table.listado tbody tr:last-child td { border-bottom: none; }

.persona { display: flex; align-items: center; gap: 12px; }
.avatar { width: 38px; height: 38px; border-radius: 50%; color: #fff; font-weight: 700; font-size: 14px;
          display: inline-flex; align-items: center; justify-content: center; flex: none; letter-spacing: .02em; }
.persona-nombre { font-weight: 600; color: var(--texto); }
.persona-sub { font-size: 12.5px; color: var(--suave); margin-top: 2px; }
.mono { font-family: "Cascadia Mono", Consolas, monospace; font-size: 13px; letter-spacing: .01em; }
.apagado { color: #b0b8c3; }
.chips { display: inline-flex; gap: 5px; flex-wrap: wrap; white-space: normal; max-width: 290px; }
.chip { background: #eef2ff; color: #3730a3; padding: 3px 9px; border-radius: 999px; font-size: 12px; font-weight: 500; }
.chip-mas { background: #f1f5f9; color: var(--suave); }
/* Especialidades al lado del nombre, en el título de la ficha del socio */
.titulo-chips { display: inline-flex; flex-wrap: wrap; gap: 5px; margin-left: 10px; vertical-align: middle; }
.titulo-chips:empty { display: none; }
.titulo-chips .chip { font-size: 12px; font-weight: 600; }
.cobro { display: inline-flex; align-items: center; gap: 7px; font-size: 13px; }
.cobro svg { width: 17px; height: 17px; color: var(--primario); flex: none; }
.cobro-falta, .cobro-falta svg { color: var(--error); }

.etiqueta { display: inline-block; padding: 3px 10px; border-radius: 999px; font-size: 12px; font-weight: 600; }
.e-ACTIVO, .e-SI { background: #dcfce7; color: var(--ok); }
.e-SUSPENDIDO { background: #fef3c7; color: var(--aviso); }
.e-BAJA, .e-NO { background: #fee4e2; color: var(--error); }
.e-FALLECIDO { background: #e5e7eb; color: #374151; }
.e-ESTANDAR { background: #f1f5f9; color: #475569; }
.e-VITALICIO { background: #fef3c7; color: #92400e; }
.e-EXENTO { background: #e0f2fe; color: #075985; }
.e-SECION { background: #ede9fe; color: #5b21b6; }
.e-SANATORIO { background: #dcfce7; color: #166534; }
.e-VIGENTE { background: #dcfce7; color: var(--ok); }
.e-ABIERTA, .e-CONFIRMADA { background: #dbeafe; color: #1d4f91; }
.e-CERRADA, .e-FACTURADA, .e-COBRADA, .e-LIQUIDADA { background: #dcfce7; color: var(--ok); }
.e-ANULADA { background: #e5e7eb; color: #374151; }

/* Importar prestaciones / Presentaciones */
.nota-aviso { display: flex; align-items: center; gap: 8px; margin: 8px 0; padding: 10px 12px; border-radius: 8px; background: #fef3c7; color: #7a4b00; }
.nota-aviso svg { width: 18px; height: 18px; flex: none; }
.nota-peligro { display: flex; gap: 10px; padding: 12px 14px; border-radius: 10px; background: #fee4e2; color: #7a271a; font-size: 13.5px; line-height: 1.5; }
.nota-peligro svg { width: 22px; height: 22px; flex: none; color: var(--error); margin-top: 2px; }
.nota-ok { margin-top: 12px; padding: 10px 12px; border-radius: 8px; background: #dcfce7; color: #14532d; }
.boton-peligro { background: var(--error); color: #fff; font-weight: 600; }
.boton-peligro:hover:not(:disabled) { background: #912018; }
.ip-sub { font-size: 14px; margin: 18px 0 8px; }
.boton-enlace { text-decoration: none; }
.precios-todos { background: #f4fafc; border: 1px solid #cfe3ea; border-radius: 8px; padding: 8px 10px; }
.medicos-precio { display: flex; align-items: center; gap: 5px; margin-top: 4px; font-size: 12px; color: #0b4f63; }
.medicos-precio svg { width: 14px; height: 14px; flex: none; }
input.cambiado { background: #fef9c3; }
.precio-suelto { display: flex; gap: 6px; margin-bottom: 6px; padding: 6px 8px; border-radius: 6px; background: #fef3c7;
                 color: #7a4b00; font-size: 12px; white-space: normal; max-width: 420px; }
.precio-suelto svg { width: 15px; height: 15px; flex: none; }
.precio-control { display: inline-flex; align-items: center; gap: 6px; flex-wrap: wrap; }
button.chico { padding: 4px 8px; font-size: 12px; }
.ia-plan { display: inline-flex; align-items: center; gap: 6px; padding: 4px 8px; background: #f8fafc; border: 1px solid var(--borde); border-radius: 8px; }
.filtro-obra { display: inline-flex; align-items: center; gap: 6px; padding: 3px; border-radius: 10px; }
.filtro-obra .fo-codigo { width: 170px; font-variant-numeric: tabular-nums; }
.filtro-obra .fo-nombre { width: 320px; }
.filtro-obra.elegida { background: #e6f3f8; }
.filtro-obra.elegida input { border-color: var(--primario); }
.fo-limpiar { font-size: 18px; line-height: 1; color: var(--suave); }
.ayuda-memoria { background: #fff; border: 1px solid #b9dcea; border-radius: 12px; padding: 12px 14px; margin-bottom: 16px; }
.ayuda-memoria-titulo { display: flex; align-items: center; gap: 8px; font-weight: 600; color: var(--primario); font-size: 14px; }
.ayuda-memoria-titulo svg { width: 18px; height: 18px; }
.ayuda-ocultar { margin-left: auto; background: none; border: none; color: var(--primario); font-size: 12.5px; padding: 2px 6px; }
.ayuda-memoria-casos { display: grid; grid-template-columns: repeat(auto-fit, minmax(290px, 1fr)); gap: 8px; margin-top: 10px; }
.ayuda-caso { border: 1px solid var(--borde); border-radius: 8px; padding: 8px 10px; font-size: 12.5px; line-height: 1.5; color: var(--texto); }
.ayuda-caso-titulo { display: flex; align-items: center; gap: 6px; font-weight: 600; margin-bottom: 2px; }
.ayuda-caso-titulo svg { width: 15px; height: 15px; flex: none; }
.am-error { color: var(--error); } .am-aviso { color: var(--aviso); } .am-info { color: var(--primario); }
.como-corregir { margin-top: 4px; font-size: 12px; white-space: normal; }
.como-corregir summary { cursor: pointer; color: var(--primario); display: inline-flex; align-items: center; gap: 4px; list-style: none; }
.como-corregir summary::-webkit-details-marker { display: none; }
.como-corregir summary svg { width: 13px; height: 13px; }
.como-corregir div { margin-top: 4px; padding: 6px 8px; border-radius: 6px; background: #e6f3f8; color: #0b4f63; max-width: 520px; line-height: 1.45; }
.ipc-opciones { display: flex; flex-direction: column; align-items: flex-start; gap: 10px; margin-top: 14px; padding: 12px 14px;
                background: #f8fafc; border: 1px solid var(--borde); border-radius: 8px; }
.ip-avisos { margin: 0; padding-left: 20px; color: var(--aviso); font-size: 13px; }
.ip-avisos b { color: var(--texto); }
.ip-detalle { margin-top: 12px; }
.ip-detalle summary { cursor: pointer; color: var(--primario); font-weight: 600; font-size: 13px; padding: 6px 0; }
.ip-detalle summary svg { width: 15px; height: 15px; vertical-align: -3px; color: #b45309; }
.ia-listas { padding: 6px 12px; }
.ia-listas-scroll { max-height: 260px; overflow: auto; }
.ia-listas-scroll a.con-icono { display: inline-flex; align-items: center; gap: 4px; }
.ia-listas-scroll a.con-icono svg { width: 14px; height: 14px; flex: none; }
.ia-avisos { margin: 4px 0 0 18px; padding: 0; font-size: 13px; max-height: 220px; overflow: auto; }
.ip-scroll { max-height: 440px; overflow: auto; border: 1px solid var(--borde); border-radius: 6px; margin-top: 6px; }
.ip-ACTIVA { background: #dcfce7; color: var(--ok); }
.ip-ERROR { background: #fee4e2; color: var(--error); }
.ip-AUDITORIA { background: #fef3c7; color: var(--aviso); }
.ip-DESCARTADA { background: #e5e7eb; color: #374151; }
.progreso { margin-top: 12px; padding: 12px 14px; border: 1px solid #cfe3ea; border-radius: 10px; background: #f4fafc; }
.progreso-texto { display: flex; justify-content: space-between; gap: 12px; font-size: 13.5px; margin-bottom: 8px; }
.progreso-pct { font-weight: 700; color: var(--primario); font-variant-numeric: tabular-nums; }
.progreso-barra { height: 12px; border-radius: 999px; background: #dfeaf0; overflow: hidden; }
.progreso-relleno { height: 100%; border-radius: 999px; background: linear-gradient(90deg, var(--primario), #1ba3c6); transition: width .4s ease; }
.progreso-barra.indeterminado .progreso-relleno {
  background: repeating-linear-gradient(45deg, var(--primario) 0 14px, #1ba3c6 14px 28px); background-size: 40px 40px;
  animation: progreso-rayas 1s linear infinite; }
@keyframes progreso-rayas { from { background-position: 0 0; } to { background-position: 40px 0; } }
.grupo-pres { display: inline-block; padding: 2px 10px; border-radius: 999px; font-size: 12px; font-weight: 700;
              background: #ede9fe; color: #5b3a8c; margin-left: 6px; white-space: nowrap; }
.division { margin: 14px 0; padding: 12px 14px; border-radius: 10px; background: #f5f3ff; border: 1px solid #ddd6fe; }
.division-titulo { font-size: 13.5px; line-height: 1.5; }
.division-titulo svg { width: 18px; height: 18px; color: #5b3a8c; vertical-align: -4px; margin-right: 4px; }
.division-grupos { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 10px; margin-top: 10px; }
.division-grupo { background: #fff; border: 1px solid #e4e0f5; border-radius: 8px; padding: 10px 12px; font-size: 13px; }
.division-grupo .grupo-pres { margin: 0 0 6px; }
.division-neto { margin-top: 4px; padding-top: 4px; border-top: 1px dashed #e4e0f5; color: #3c2a6e; }
.division-grupo summary { cursor: pointer; color: var(--primario); font-size: 12.5px; margin-top: 6px; }
.fila-total td { font-weight: 700; background: #f8fafc; }
.pr-h2 { font-size: 15px; margin: 14px 16px 10px; }
.pr-cabecera { padding: 12px 14px 0; align-items: center; }
td.pr-lineas { padding: 4px 0 12px !important; background: #fafcfd; }
table.pr-sub th { font-size: 10.5px; padding: 5px 8px; background: #eef2f6; }
table.pr-sub td { font-size: 12.5px; padding: var(--grilla-interlineado) 8px; }
td.pr-desc { max-width: 260px; overflow: hidden; text-overflow: ellipsis; }

/* Botones con icono */
.con-icono { display: inline-flex; align-items: center; gap: 7px; font-weight: 600; border-radius: 10px; padding: 9px 16px; }
.con-icono svg { width: 17px; height: 17px; }
.icono-btn { background: none; border: none; padding: 7px; border-radius: 8px; display: inline-flex; }
.icono-btn svg { width: 18px; height: 18px; }
.icono-btn.peligro:hover { background: #fee4e2; }

/* Cuentas bancarias del socio (tarjetas) */
.cuentas-cabecera { display: flex; align-items: center; justify-content: space-between; margin: 20px 0 6px; }
.cuentas-cabecera h3 { margin: 0; font-size: 15px; }
.cuentas-total { font-size: 13px; font-weight: 600; padding: 3px 10px; border-radius: 999px; background: #f1f5f9; color: var(--suave); }
.cuentas-total.ok { background: #dcfce7; color: var(--ok); }
.cuentas-total.mal { background: #fee4e2; color: var(--error); }
.cuentas-lista { display: flex; flex-direction: column; gap: 12px; }
.cuenta-card { border: 1px solid var(--borde); border-radius: 12px; padding: 14px 16px; background: #fbfcfd; transition: opacity .15s; }
.cuenta-card.inactiva { opacity: .55; }
.cuenta-card label { display: block; font-size: 12px; font-weight: 600; color: var(--suave); margin-bottom: 4px; }
.cc-cabecera { display: flex; align-items: flex-end; gap: 14px; flex-wrap: wrap; }
.cc-icono { width: 42px; height: 42px; border-radius: 10px; background: #d7eef4; color: var(--primario);
            display: flex; align-items: center; justify-content: center; flex: none; }
.cc-icono svg { width: 22px; height: 22px; }
.cc-banco { flex: 1; min-width: 220px; }
.cc-banco select { font-size: 15px; font-weight: 600; height: 40px; }
.cc-porcentaje { width: 120px; }
.con-sufijo { position: relative; }
.con-sufijo input { padding-right: 28px; height: 40px; font-weight: 600; }
.con-sufijo span { position: absolute; right: 10px; top: 50%; transform: translateY(-50%); color: var(--suave); }
.cc-cuerpo { display: grid; grid-template-columns: auto 1.4fr 1fr; gap: 14px; margin-top: 14px; }
.cbu-obligatorio { color: var(--error); font-weight: 600; }
.agregar-cuenta { margin-top: 12px; width: 100%; display: flex; align-items: center; justify-content: center; gap: 8px;
                  border: 1.5px dashed #b6c2cf; background: #fff; color: var(--primario); border-radius: 12px; padding: 11px; font-weight: 600; }
.agregar-cuenta:hover { background: #f1f8fb; border-color: var(--primario); }
.agregar-cuenta svg { width: 17px; height: 17px; }

/* Importar lista de precios: Formato Unico (aranceles armados en el CMS) */
.ia-fu { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 14px; margin: 10px 0; padding: 8px 12px;
         border: 1px solid #e5e9ef; border-radius: 10px; background: #f8fafc; }
.ia-fu .interruptor { font-weight: 600; }
.ia-fu > div { flex-basis: 100%; }
.ia-fu-banda { display: flex; align-items: center; gap: 10px; margin: 8px 0 12px; padding: 10px 14px; border-radius: 8px;
               background: #ede9fe; color: #4c1d95; }
.ia-fu-banda svg { width: 18px; height: 18px; flex: none; }

/* Precio diferencial (ficha de la obra social) */
.pd-agregar { display: flex; gap: 8px; margin: 10px 0 4px; }
.pd-agregar input { flex: 1; }
.pd-agregar button { display: inline-flex; align-items: center; gap: 6px; }
.pd-agregar button svg { width: 15px; height: 15px; }
.pd-tabla { width: 100%; border-collapse: collapse; margin-top: 8px; }
.pd-tabla th { text-align: left; font-size: 12px; color: var(--suave); font-weight: 600; padding: 6px 8px; border-bottom: 1px solid #e5e9ef; }
.pd-tabla td { padding: var(--grilla-interlineado) 8px; border-bottom: 1px solid #eef1f5; }
.pd-tabla th:first-child, .pd-tabla td:first-child { width: 70px; }
.pd-tabla td:last-child { width: 40px; text-align: right; }
#pd-vacio { padding: 10px 8px; }
/* Campo "etiquetas" (ej. especialidades del socio): caja con uno por renglón y tacho */
.et-caja { margin-top: 6px; border: 1px solid var(--borde); border-radius: 8px; max-height: 320px; overflow: auto; }
.et-caja:empty { display: none; }
.et-fila { display: flex; align-items: center; justify-content: space-between; gap: 8px; padding: var(--grilla-interlineado) 8px var(--grilla-interlineado) 12px;
           border-bottom: 1px solid #eef1f5; font-weight: 600; }
.et-fila:last-child { border-bottom: 0; }
.et-fila .icono-btn { padding-top: 0; padding-bottom: 0; }
.pd-franja { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin: 0 0 12px; padding: 8px 12px; border-radius: 8px;
             background: #fef3c7; color: #7a4b00; font-size: 13px; font-weight: 600; }
.pd-franja svg { width: 16px; height: 16px; flex: none; }
.pd-obra { background: #fff; border: 1px solid #f5d98b; border-radius: 999px; padding: 2px 10px; font-weight: 500; }

/* Carga manual de prestaciones */
.cm-fijos { display: flex; flex-wrap: wrap; gap: 14px 22px; align-items: flex-end; padding: 14px 16px; margin-bottom: 12px; }
.cm-campo { display: flex; flex-direction: column; gap: 4px; }
.cm-campo > label { font-size: 12px; font-weight: 600; color: var(--suave); }
.cm-campo input, .cm-campo select { width: 100%; }
.cm-linea { display: flex; gap: 6px; }
.cm-fijos #cm_medico { font-weight: 600; }
.cm-fijos .cm-linea button { white-space: nowrap; }
.cm-ficha { margin-left: 10px; color: var(--texto); font-weight: 700; }
.cm-ficha .etiqueta { margin-left: 6px; }
.cm-difer { display: inline-flex; align-items: center; gap: 6px; margin-left: 8px; padding: 1px 9px; border-radius: 999px; background: #fef3c7; color: #7a4b00; font-size: 12px; font-weight: 600; }
.cm-difer svg { width: 14px; height: 14px; }
.cm-carga { padding: 14px 16px; margin-bottom: 12px; border: 1.5px solid var(--primario); }
.cm-carga.cm-editando { border-color: var(--aviso); background: #fffbeb; }
.cm-carga.cm-apagada { opacity: .5; border-color: var(--borde); }
.cm-fila { display: flex; flex-wrap: wrap; gap: 10px; align-items: flex-end; }
.cm-botones { display: flex; gap: 6px; }
.cm-info { margin-top: 8px; font-size: 13px; min-height: 20px; }
.cm-mas { margin-top: 8px; }
.cm-mas summary { cursor: pointer; color: var(--primario); font-size: 13px; }
.cm-mas .cm-fila { margin-top: 8px; }
.cm-pend { align-self: center; }
#cm_mensaje { margin-top: 6px; font-size: 13px; }
.chip.cm-amano { background: #fef3c7; color: #7a4b00; }
.chip.cm-pendiente { background: #fee4e2; color: var(--error); }
.cm-resumen { padding: 10px 14px; border-bottom: 1px solid var(--borde); }
.pr-sub td.pr-acciones { white-space: nowrap; padding: 0 4px; }
.pr-sub .icono-btn { padding: 0 3px; }
.pr-sub .icono-btn svg { width: 16px; height: 16px; }
#cm_zona_lineas td.obs { max-width: 240px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
tr.cm-ultima td { background: #ecfdf3; animation: cm-recien 1.2s ease-out; }
@keyframes cm-recien { from { background: #86efac; } to { background: #ecfdf3; } }
tr.cm-fila-edit td { background: #fffbeb; }

/* Buscador con lista propia (como el del ERP): se abre abajo del campo */
.bus-lista { position: fixed; z-index: 5000; max-height: 280px; overflow-y: auto; overflow-x: hidden; background: #fff; color: var(--texto, #1f2937);
             border: 1px solid #cbd5e1; border-radius: 8px; box-shadow: 0 10px 24px rgba(15, 23, 42, .14); }
.bus-fila { display: flex; justify-content: space-between; gap: 12px; padding: 8px 12px; cursor: pointer; border-bottom: 1px solid #f1f5f9; font-size: 13px; }
.bus-fila:last-child { border-bottom: none; }
.bus-fila b { font-weight: 600; }
.bus-fila span { color: var(--suave); white-space: nowrap; }
.bus-fila b { overflow: hidden; text-overflow: ellipsis; }
.bus-fila .bus-cod { flex: none; }
.bus-fila .bus-desc { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; text-align: left; color: var(--texto); }
.bus-fila.bus-sel { background: #cfe8fb; box-shadow: inset 3px 0 0 var(--primario); }
.bus-fila.bus-sel span { color: #075985; }
.bus-vacio { padding: 10px 12px; color: var(--suave); font-size: 13px; }
.bus-pie { position: sticky; bottom: 0; padding: 5px 12px; background: #fff8e1; border-top: 1px solid #f0e0a8; color: #6b5400; font-size: 12px; }

/* Ventana del sistema (confirmaciones y avisos, en lugar de las del navegador) */
.vs-fondo { position: fixed; inset: 0; z-index: 4000; background: rgba(15, 23, 42, .45); display: flex; align-items: center; justify-content: center; padding: 16px; }
/* Nunca más alta que la pantalla (1366 × 768, Gustavo 02/10/2026): el contenido se desplaza por dentro y los
   botones de abajo quedan siempre a la vista */
.vs-ventana { background: #fff; border-radius: 14px; width: min(460px, 100%); padding: 20px 22px 16px; box-shadow: 0 20px 50px rgba(15, 23, 42, .3);
              max-height: calc(100vh - 32px); display: flex; flex-direction: column; }
.vs-cuerpo { display: flex; gap: 14px; align-items: flex-start; flex: 1 1 auto; min-height: 0; overflow-y: auto; }
.vs-botones { flex: none; }
.vs-icono { flex: none; width: 38px; height: 38px; border-radius: 50%; background: #e0f2fe; color: #0369a1; display: flex; align-items: center; justify-content: center; }
.vs-icono svg { width: 20px; height: 20px; }
.vs-peligro .vs-icono { background: #fee4e2; color: var(--error); }
.vs-titulo { font-weight: 700; font-size: 16px; margin-bottom: 4px; }
.vs-mensaje { color: #475569; font-size: 14px; line-height: 1.5; max-height: 50vh; overflow-y: auto; }
.vs-botones { display: flex; justify-content: flex-end; gap: 8px; margin-top: 18px; }
.vs-botones button { min-width: 96px; }
.vs-botones .peligro { background: var(--error); color: #fff; border: 1px solid var(--error); }
.vs-botones .peligro:hover { background: #912018; }

/* Selector de 2 opciones (tipo de cuenta) */
.segmentado { display: inline-flex; background: #eef2f6; border-radius: 10px; padding: 3px; }
.segmentado label { margin: 0 !important; }
.segmentado input { display: none; }
.segmentado span { display: block; padding: 7px 13px; border-radius: 8px; font-size: 13px; font-weight: 600; color: var(--suave);
                   cursor: pointer; white-space: nowrap; }
.segmentado input:checked + span { background: #fff; color: var(--primario); box-shadow: 0 1px 3px rgba(16, 24, 40, .12); }

/* Interruptor (activa / inactiva) */
.interruptor { display: inline-flex !important; align-items: center; gap: 8px; cursor: pointer; height: 40px; margin: 0 !important;
               font-size: 13px !important; color: var(--texto) !important; }
.interruptor input { display: none; }
.deslizador { width: 38px; height: 22px; border-radius: 999px; background: #cbd5e1; position: relative; transition: background .15s; }
.deslizador::after { content: ""; position: absolute; top: 3px; left: 3px; width: 16px; height: 16px; border-radius: 50%;
                     background: #fff; transition: transform .15s; box-shadow: 0 1px 2px rgba(0, 0, 0, .2); }
.interruptor input:checked + .deslizador { background: var(--ok); }
.interruptor input:checked + .deslizador::after { transform: translateX(16px); }

/* Controles */
input, select, textarea { font: inherit; padding: 7px 9px; border: 1px solid #c4ccd6; border-radius: 6px; background: #fff; width: 100%; }
input:focus, select:focus, textarea:focus { outline: 2px solid #9fd3e3; border-color: var(--primario); }
textarea { min-height: 60px; resize: vertical; }
button { font: inherit; padding: 8px 14px; border-radius: 6px; border: 1px solid transparent; cursor: pointer; }
.primario { background: var(--primario); color: #fff; }
.primario:hover { background: var(--primario-osc); }
.secundario { background: #fff; border-color: #c4ccd6; color: var(--texto); }
.secundario:hover { background: #f0f3f6; }
.chico { padding: 4px 9px; font-size: 13px; }
.peligro { color: var(--error); background: transparent; }

/* Modal */
.modal { position: fixed; inset: 0; background: rgba(15, 30, 40, .45); display: flex; align-items: flex-start;
         justify-content: center; padding: 16px; overflow: auto; z-index: 10; }
/* fichas: entran en la pantalla (1366 × 768); el cuerpo se desplaza y Guardar / Cancelar quedan siempre a la vista */
.modal-caja { background: var(--panel); border-radius: 10px; width: 100%; max-width: 900px; box-shadow: 0 10px 40px rgba(0,0,0,.25);
              max-height: calc(100vh - 32px); display: flex; flex-direction: column; }
.modal-caja > header, #modal-form > footer, #modal-error { flex: none; }
#modal-form { flex: 1 1 auto; min-height: 0; display: flex; flex-direction: column; }
#modal-cuerpo { flex: 1 1 auto; min-height: 0; overflow-y: auto; }
.modal header { display: flex; justify-content: space-between; align-items: center; padding: 14px 20px; border-bottom: 1px solid var(--borde); }
.modal h2 { margin: 0; font-size: 18px; }
.cerrar { background: none; font-size: 24px; line-height: 1; padding: 0 6px; color: var(--suave); }
#modal-cuerpo { padding: 16px 20px; }
.modal footer { display: flex; justify-content: flex-end; gap: 8px; padding: 12px 20px; border-top: 1px solid var(--borde); }

.pestanas { display: flex; gap: 4px; border-bottom: 1px solid var(--borde); margin-bottom: 14px; flex-wrap: wrap; }
.pestanas button { background: none; border-radius: 6px 6px 0 0; color: var(--suave); border-bottom: 2px solid transparent; }
.pestanas button.activa { color: var(--primario); border-bottom-color: var(--primario); font-weight: 600; }
.panel-pestana.oculto { display: none; }

.grilla { display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 12px 14px; }
.campo label { display: block; font-size: 12px; font-weight: 600; color: var(--suave); margin-bottom: 4px; }
.campo.ancho { grid-column: 1 / -1; }
.campo.medio { grid-column: span 2; }  /* listas con textos largos: que se lean completos */
.campo .req { color: var(--error); }
.campo.check label { display: flex; align-items: center; gap: 8px; font-size: 14px; color: var(--texto); font-weight: 400; margin-top: 22px; }
.campo.check input { width: auto; }
.multi { display: grid; grid-template-columns: repeat(auto-fill, minmax(190px, 1fr)); gap: 4px 12px;
         border: 1px solid #c4ccd6; border-radius: 6px; padding: 8px 10px; max-height: 180px; overflow: auto; }
.multi label { display: flex; align-items: center; gap: 6px; font-weight: 400; color: var(--texto); font-size: 14px; margin: 0; }
.multi input { width: auto; }
#modal-cuerpo p { margin: 0 0 14px; color: var(--suave); }
.ayuda { font-size: 12px; color: var(--suave); margin-top: 3px; }

.cuentas td { padding: 4px; white-space: normal; }
.cuentas input, .cuentas select { padding: 5px 6px; }
.cuentas tbody tr { cursor: default; }
.cuentas tbody tr:hover { background: none; }

/* Importaciones */
.paso { padding: 16px 18px; margin-bottom: 16px; overflow: visible; }
.paso h2 { margin: 0 0 6px; font-size: 16px; display: flex; align-items: center; gap: 8px; }
.paso .nro { width: 24px; height: 24px; border-radius: 50%; background: var(--primario); color: #fff; font-size: 13px;
             display: inline-flex; align-items: center; justify-content: center; }
.paso > .ayuda { margin-bottom: 12px; }
.paso table select { min-width: 220px; }
.paso label { display: inline-flex; align-items: center; gap: 6px; }
.check-linea input { width: auto; }
tr.sin-mano { cursor: default; }
tr.sin-mano:hover { background: none; }
td.obs { white-space: normal; min-width: 280px; font-size: 13px; }
.t-error { color: var(--error); }
.t-aviso { color: var(--aviso); }
.contadores { display: flex; gap: 10px; flex-wrap: wrap; margin: 10px 0 14px; }
.contadores div { background: #f0f4f8; border-radius: 8px; padding: 8px 14px; color: var(--suave); font-size: 13px; }
.contadores b { display: block; font-size: 20px; color: var(--texto); }
.contadores .c-error { background: #fee4e2; } .contadores .c-error b { color: var(--error); }
.contadores .c-aviso { background: #fef3c7; } .contadores .c-aviso b { color: var(--aviso); }
.a-NUEVO { background: #dcfce7; color: var(--ok); }
.a-ACTUALIZAR { background: #dbeafe; color: #1d4f91; }
.a-OMITIR { background: #eef2f6; color: var(--suave); }
.a-ERROR { background: #fee4e2; color: var(--error); }
button:disabled { opacity: .5; cursor: not-allowed; }

.error { margin: 0 20px 12px; padding: 10px 12px; border-radius: 6px; background: #fee4e2; color: var(--error); }
.aviso { position: fixed; bottom: 20px; right: 20px; background: var(--ok); color: #fff; padding: 10px 16px; border-radius: 6px; z-index: 20; }
.oculto { display: none !important; }

.ajuste-valor .ajuste-texto-campo { width: min(460px, 45vw); }

/* Visor de documentos: facturas, reportes y PDF adentro de la misma pantalla, como el visor de PDF del ERP
   (Gustavo, 29/09/2026: regla para todos los casos, nunca otra pestaña del navegador) */
.visor-fondo { position: fixed; inset: 0; z-index: 3000; background: rgba(20, 26, 36, .55); display: flex; align-items: center; justify-content: center; }
.visor-ventana { width: 94%; max-width: 1180px; height: 90vh; display: flex; flex-direction: column; background: #fff; border-radius: 12px; overflow: hidden;
  box-shadow: 0 20px 50px rgba(15, 23, 42, .35); }
.visor-cabecera { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 12px 18px; background: #1f2733; color: #fff; }
.visor-cabecera h2 { margin: 0; font-size: 15px; color: #fff; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.visor-acciones { display: flex; gap: 8px; flex: none; }
.visor-acciones svg { width: 16px; height: 16px; }
a.boton { display: inline-flex; align-items: center; gap: 6px; padding: 8px 14px; border-radius: 6px; text-decoration: none; cursor: pointer; }
a.boton.oculto { display: none; }
.visor-pestanas { display: flex; gap: 2px; background: #161c25; padding: 0 12px; }
.visor-pestanas button { border: none; background: transparent; color: #9aa7bb; padding: 9px 14px; font-size: 13px; font-weight: 600; border-radius: 6px 6px 0 0; }
.visor-pestanas button:hover { background: #212b3a; color: #fff; }
.visor-pestanas button.activa { background: #525659; color: #fff; }
.visor-ventana iframe { flex: 1; width: 100%; border: none; background: #525659; }

/* Migración del sistema viejo y deudas de los socios (29/09/2026) */
.mg-opcion { display: flex; gap: 10px; align-items: flex-start; padding: 8px 10px; border: 1px solid var(--borde); border-radius: 8px; margin-bottom: 6px; cursor: pointer; }
.mg-opcion input { margin-top: 3px; }
.mg-opcion small { color: var(--suave); }
.t-ok { color: var(--ok); }
/* Contaduría › Cobros registrados: ventana con todos los datos del cobro, uno debajo del otro */
.cr-detalle { width: 100%; border-collapse: collapse; margin-top: 8px; font-size: 13.5px; table-layout: fixed; }
.vs-datos .cr-detalle th, .cr-detalle th { text-align: left; font-weight: 500; font-size: 13px; color: var(--suave); background: none; text-transform: none;
  letter-spacing: normal; white-space: normal; padding: 5px 12px 5px 0; width: 40%; vertical-align: top; border-bottom: 1px solid #eef1f5; }
.vs-datos .cr-detalle td, .cr-detalle td { padding: 5px 0; border-bottom: 1px solid #eef1f5; font-weight: 600; white-space: normal;
  overflow-wrap: anywhere; color: var(--texto); }
.cr-tabla { table-layout: auto; width: 100%; }
.cr-tabla tbody tr { cursor: pointer; }
.cr-tabla > tbody > tr > td, .cr-tabla > thead > tr > th { white-space: nowrap; font-size: 13px; padding-left: 7px; padding-right: 7px; }
/* la obra social se ve completa (Gustavo, 08/10/2026): si no entra, pasa a otro renglón */
.cr-tabla > tbody > tr > td.cr-obra { white-space: normal; min-width: 200px; width: 100%; line-height: 1.3; }
.dd-resumen { display: flex; gap: 12px; margin-bottom: 12px; flex-wrap: wrap; }
.dd-resumen > div { background: #fff; border: 1px solid var(--borde); border-radius: 10px; padding: 10px 16px; min-width: 180px; }
.dd-resumen span { display: block; font-size: 12px; color: var(--suave); }
.dd-resumen b { font-size: 20px; }
.dd-dos { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin-top: 12px; }
@media (max-width: 900px) { .dd-dos { grid-template-columns: 1fr; } }
.deuda-franja { background: #fef3f2; border-color: #fecdca; color: #912018; }
/* Padrones › Generar padrones */
.gp-columnas { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 16px; padding: 10px 14px; margin-bottom: 10px; }
.gp-columnas label { display: inline-flex; align-items: center; gap: 5px; font-size: 13px; margin: 0; }
.gp-columnas input { width: auto; }
.gp-columnas .gp-fijo { color: var(--suave); }
.gp-columnas .gp-sep { font-weight: 600; color: var(--suave); margin-left: 8px; }
.gp-resumen { display: flex; align-items: center; gap: 12px; margin-bottom: 6px; }
.gp-nota { margin-bottom: 8px; }
.gp-solapas { margin: 4px 0 8px; }
.gp-resumen .btn-destacado + .btn-destacado { margin-left: 4px; }
/* Nomenclador y valores › Valores de consulta (09/10/2026): colores de la planilla de Gustavo */
.vc-nota { margin-bottom: 8px; }
.vc-tabla { table-layout: fixed; }
.vc-tabla td { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
table.listado.vc-tabla th, table.listado.vc-tabla td { padding-left: 8px; padding-right: 8px; }
.grilla-scroll:has(.vc-tabla) { overflow-x: hidden; }
.vc-tabla th.vc-grupo { text-align: center; }
.vc-tabla td.vc-modalidad { white-space: normal; line-height: 1.25; }  /* se lee entera (Gustavo, 09/10/2026) */
.vc-tabla td.vc-ultimo { text-align: center; }
.vc-tabla th { white-space: normal; line-height: 1.2; }
.vc-tabla tr.vc-novigente td { background: #f0f0f0; }  /* no vigente: todas en gris, nombre tachado y "S/C" (09/10/2026) */
.vc-tabla tr.vc-novigente td b { text-decoration: line-through; }
.vc-tabla td.vc-acciones { overflow: visible; }
.vc-tabla td.vc-nombre { white-space: normal; line-height: 1.25; }  /* nombres largos en 2 renglones, sin cortar */

/* Botón "Acciones" de las obras sociales y su menú (09/10/2026) */
.acc-boton { display: inline-flex; align-items: center; gap: 3px; padding: 0 8px; height: 22px; font-size: 12px; border-radius: 6px;
  border: 1px solid var(--borde, #cfd6de); background: #fff; color: #1d4f91; cursor: pointer; white-space: nowrap; }
.acc-boton svg { width: 12px; height: 12px; transform: rotate(90deg); }
.acc-boton:hover { background: #eef4fb; }
.acc-menu { position: fixed; z-index: 6000; background: #fff; border: 1px solid #cfd6de; border-radius: 8px; padding: 4px;
  box-shadow: 0 6px 20px rgba(0,0,0,.15); min-width: 200px; }
.acc-menu button { display: flex; align-items: center; gap: 8px; width: 100%; border: 0; background: none; padding: 7px 10px;
  border-radius: 6px; text-align: left; cursor: pointer; font-size: 13px; color: #1f2937; }
.acc-menu button:hover { background: #eef4fb; }
.acc-menu svg { width: 16px; height: 16px; flex: none; color: #1d4f91; }
.acc-menu small { display: block; color: #6b7785; font-size: 11.5px; }

/* Liquidar › interruptor "Mostrar en el portal del socio" (09/10/2026) */
.lq-portal { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; margin-top: 6px; font-size: 13px; }

/* Ficha del socio › pestaña Portal (09/10/2026) */
.ps-estado { margin-bottom: 10px; }
.ps-etq { display: inline-block; padding: 4px 12px; border-radius: 999px; font-size: 13px; font-weight: 600; }
.ps-etq.verde { background: #e3f4e8; color: #0f4f27; } .ps-etq.rojo { background: #fdecec; color: #9b1c1c; }
.ps-etq.amarillo { background: #fef3c7; color: #92400e; } .ps-etq.gris { background: #eef1f3; color: #5b6876; }
.ps-datos { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 6px 20px; margin-bottom: 12px; }
.ps-datos span { display: block; font-size: 12px; color: var(--suave); } .ps-datos b { font-weight: 600; }
.ps-botones { display: flex; flex-wrap: wrap; gap: 8px; margin: 12px 0; }
.ps-nota { margin-bottom: 10px; }
.ps-ok { background: #e3f4e8; color: #0f4f27; border-radius: 8px; padding: 8px 12px; margin: 8px 0; }
.ps-clave { background: #fff8e1; border: 1px dashed #d4a017; border-radius: 10px; padding: 10px 14px; margin: 8px 0; font-size: 15px; }
.ps-clave b { font-size: 20px; letter-spacing: .08em; font-family: Consolas, monospace; }
.ps-clave small { display: block; color: #6b5a1e; margin-top: 4px; }

/* Ficha de la obra social › Planillas */
.pl-nota { margin-bottom: 8px; }
.pl-lista { display: grid; gap: 6px; margin-bottom: 10px; }
.pl-fila { display: flex; align-items: center; gap: 10px; border: 1px solid #dfe5ec; border-radius: 8px; padding: 6px 10px; }
.pl-icono svg { width: 22px; height: 22px; color: #b42318; }
.pl-datos { flex: 1; min-width: 0; } .pl-datos b, .pl-datos small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.pl-datos small { color: #6b7785; }
.pl-subir { display: flex; gap: 8px; align-items: center; margin-bottom: 4px; } .pl-subir input[type="text"] { flex: 1; }
.pl-estado { color: #b42318; margin-top: 4px; }
.vc-tabla tr.vc-fuera td { color: var(--suave); font-style: italic; }
.no-recibe-franja { background: #f4f3ff; border-color: #d9d6fe; color: #3e1c96; }
.no-recibe-franja .pd-obra { background: #fff; }
.deuda-franja a { margin-left: auto; color: #912018; font-weight: 600; }

/* Formatos de archivo y menú Ayuda (29/09/2026) */
.ayuda-texto { padding: 6px 20px 14px; line-height: 1.6; }
.ayuda-texto h2 { font-size: 15px; margin: 14px 0 4px; color: var(--primario); }
.ayuda-texto ol { margin: 4px 0 8px; padding-left: 22px; }
.ayuda-texto li { margin-bottom: 4px; }
/* Ayudas con imágenes (08/10/2026) */
.ai-paso h2 { display: flex; align-items: center; gap: 8px; }
.ai-num { background: var(--primario); color: #fff; border-radius: 50%; width: 24px; height: 24px; display: inline-flex; align-items: center; justify-content: center; font-size: 13px; flex: none; }
.ai-nota { background: #fff7e0; border-left: 4px solid #d99a00; padding: 6px 10px; border-radius: 4px; }
.ai-img { display: block; width: 100%; max-width: 1100px; border: 1px solid var(--borde, #d5dbe1); border-radius: 8px; margin: 8px 0 4px; box-shadow: 0 2px 8px rgba(0,0,0,.08); }
.formato-intro p { margin: 10px 0 4px; }
.formato-grupo { font-size: 15px; margin: 18px 0 8px; color: #334155; }
.formato-lista { display: grid; grid-template-columns: repeat(auto-fill, minmax(420px, 1fr)); gap: 12px; }
.formato-tarjeta { background: #fff; border: 1px solid var(--borde); border-radius: 12px; padding: 12px 14px; }
.formato-cab { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; margin-bottom: 8px; font-size: 15px; }
.formato-uso { margin-left: auto; font-size: 12px; color: var(--suave); }
.chip-sistema { background: #e0f2fe; color: #0369a1; }
.formato-fila { display: grid; grid-template-columns: 150px 1fr; gap: 8px; padding: 3px 0; font-size: 13px; }
.formato-fila > span { color: var(--suave); }
.formato-fila code { display: inline-block; background: #f1f5f9; border: 1px solid #e2e8f0; border-radius: 5px; padding: 0 6px; margin: 1px 0; font-size: 12px; }
.formato-detalle { margin-top: 6px; font-size: 13px; }
.formato-detalle summary { cursor: pointer; color: var(--primario); }
.formato-detalle td { padding: 2px 8px 2px 0; }

/* Control y facturación de presentaciones (29/09/2026) */
.e-EN_CONTROL { background: #fef3c7; color: #92400e; }
.e-CONTROLADA { background: #ede9fe; color: #5b21b6; }
table.listado tr.pres-EN_CONTROL td { background: #fffbeb; }
table.listado tr.pres-EN_CONTROL td:first-child { box-shadow: inset 4px 0 0 #f59e0b; }
table.listado tr.pres-CONTROLADA td:first-child { box-shadow: inset 4px 0 0 #7c3aed; }
table.listado tr.pres-FACTURADA td:first-child { box-shadow: inset 4px 0 0 var(--ok); }
.paso-btn { border: 1px solid var(--borde); background: #fff; color: var(--primario); border-radius: 7px; padding: 3px 10px; font-size: 12px; font-weight: 600; white-space: nowrap; }
.paso-btn:hover { background: #eef6f9; }
.paso-TERMINAR_CONTROL { border-color: #f59e0b; color: #92400e; }
.paso-FACTURAR { background: var(--primario); color: #fff; border-color: var(--primario); }
.paso-FACTURAR:hover { background: var(--primario-osc); }
.enlace-usuario { display: inline-flex; align-items: center; gap: 6px; background: none; border: 1px dashed var(--borde); border-radius: 999px; padding: 4px 12px; color: var(--suave); }
.enlace-usuario svg { width: 16px; height: 16px; }
.pr-control { margin: 0 0 10px; }
.pr-control-fila { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; padding: 8px 12px; border-radius: 8px; background: #f4f8fa; }
.pr-control-info { flex: 1; min-width: 260px; color: #334155; }
.pr-control-botones { display: flex; gap: 8px; flex-wrap: wrap; }  /* si no entran, otro renglón (nunca barra a la derecha) */
.pr-control-botones.lq-botones { flex: 1 1 100%; gap: 6px; }  /* Liquidar: renglón propio debajo del texto, todos a la vista */
.pr-control-botones.lq-botones button { padding: 7px 11px; }
.pr-control-botones .peligro { background: #fff; color: var(--error); border: 1px solid #f3b4ae; }
.pr-historial { margin-top: 6px; font-size: 13px; }
.pr-historial summary { cursor: pointer; color: var(--suave); }
.pr-historial td { padding: 3px 10px 3px 0; }
.vs-datos { margin-top: 6px; }
.vs-error { margin-top: 8px; min-height: 1em; }
.fc-avisos { background: #fffaeb; border: 1px solid #fedf89; color: var(--aviso); border-radius: 8px; padding: 8px 10px; margin-bottom: 10px; line-height: 1.6; }
.fc-partes { display: grid; grid-template-columns: 1fr 1fr; gap: 10px 16px; margin-bottom: 12px; }
.fc-partes > div { display: flex; flex-direction: column; gap: 2px; }
.fc-partes span { font-size: 11px; text-transform: uppercase; letter-spacing: .05em; color: var(--suave); }
.fc-partes small { color: var(--suave); }
.fc-titulos, .fc-renglon { display: grid; grid-template-columns: 1fr 150px 34px; gap: 8px; align-items: start; }
.fc-titulos { font-size: 11px; text-transform: uppercase; letter-spacing: .05em; color: var(--suave); margin-bottom: 4px; }
.fc-renglon { margin-bottom: 6px; }
.fc-renglon textarea { width: 100%; resize: vertical; font: inherit; }
.fc-renglon .fc-imp { text-align: right; }
.fc-total { margin-top: 12px; padding-top: 10px; border-top: 1px solid var(--borde); display: flex; flex-direction: column; gap: 4px; align-items: flex-end; }
.fc-total-comp { font-size: 16px; }

/* Cobros y liquidación (liquidacion.js) */
.co-SIN_COBRAR { background: #fef3c7; color: #92400e; }
.co-PARCIAL { background: #e0e7ff; color: #3730a3; }
.co-COBRADA, .e-ACTIVA, .e-LIQUIDADO { background: #dcfce7; color: var(--ok); }
.chip.co-lista { background: #dcfce7; color: #14532d; }
/* Página web (08/10/2026): campo de foto, pantalla de textos e interruptor de página activa */
.campo-foto { display: flex; gap: 12px; align-items: center; flex-wrap: wrap; }
.cf-vista { width: 180px; height: 110px; border: 1px dashed var(--borde); border-radius: 10px; display: flex; align-items: center; justify-content: center; overflow: hidden; background: #f8fafc; }
.cf-vista img { width: 100%; height: 100%; object-fit: cover; }
.cf-botones { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }
.boton-archivo { display: inline-flex; align-items: center; gap: 6px; cursor: pointer; padding: 7px 12px; border-radius: 8px; border: 1px solid var(--borde); font-size: 13px; font-weight: 600; margin: 0; }
.boton-archivo svg, .boton-enlace svg { width: 15px; height: 15px; }
.boton-enlace { display: inline-flex; align-items: center; gap: 6px; padding: 8px 14px; border-radius: 8px; border: 1px solid var(--borde); text-decoration: none; color: var(--texto); font-weight: 600; font-size: 13.5px; background: #fff; }
.wt-tarjeta .pestanas { margin-bottom: 12px; }
.wt-pie { display: flex; justify-content: flex-end; align-items: center; gap: 12px; margin-top: 14px; }
.wa-tarjeta { display: flex; justify-content: space-between; align-items: center; gap: 16px; flex-wrap: wrap; padding: 18px 20px; }
.wa-titulo { font-size: 16px; font-weight: 700; margin-bottom: 2px; }
.wa-inter { font-weight: 700; }

/* Contaduría › Minutas contables: lista a la izquierda, asiento a la derecha */
.mn-cuerpo { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 12px; }
.mn-lista { table-layout: fixed; width: 100%; }
table.listado.mn-lista td, table.listado.mn-lista th { white-space: nowrap; font-size: 13px; overflow: hidden; text-overflow: ellipsis; padding-left: 6px; padding-right: 6px; }
.mn-lista tbody tr { cursor: pointer; }
.mn-lista tbody tr.mn-sel td { background: #e6f2ec; }
.mn-lista tbody tr.mn-sel td:first-child { box-shadow: inset 3px 0 0 #17753a; }
.mn-asiento { overflow: auto; padding: 14px 16px; }
.mn-botones { display: flex; gap: 6px; flex: none; }
.mn-botones button { white-space: nowrap; }
.chip.mn-t-fac, .mn-letra.mn-t-fac { background: #e0f2fe; color: #075985; }
.chip.mn-t-cob, .mn-letra.mn-t-cob { background: #dcfce7; color: #14532d; }
.chip.mn-t-cir, .mn-letra.mn-t-cir { background: #e5e7eb; color: #374151; }
.mn-letra { display: inline-flex; align-items: center; justify-content: center; width: 20px; height: 18px; border-radius: 5px; font-size: 11px; font-weight: 700; }
.mn-lista td.mono { font-size: 12px; }
.mn-cab { display: flex; justify-content: space-between; align-items: center; gap: 8px; font-size: 15px; }
.mn-sub { color: var(--suave); font-size: 12.5px; margin: 4px 0 10px; line-height: 1.5; }
.mn-importes { display: grid; grid-template-columns: repeat(auto-fit, minmax(112px, 1fr)); gap: 6px; margin-bottom: 10px; }
.mn-importes > div { background: #f3f8f5; border: 1px solid #d5e8dc; border-radius: 8px; padding: 5px 7px; display: flex; flex-direction: column; gap: 1px; min-width: 0; }
.mn-importes span { font-size: 11px; color: var(--suave); }
.mn-importes b { font-size: 13px; white-space: nowrap; }
.mn-importes .dp-c-ok { background: #ecfdf3; border-color: #abefc6; }
.mn-importes .mn-deb { background: #fef3f2; border-color: #fecdca; }
.mn-importes .mn-deb b { color: #b42318; }
.mn-importes .mn-pend { background: #fef3c7; border-color: #fde68a; }
.mn-tabla { width: 100%; border-collapse: collapse; font-size: 13px; table-layout: fixed; }
.mn-tabla td:nth-child(2) { white-space: normal; overflow-wrap: anywhere; }
.mn-tabla th { text-align: left; font-size: 11px; text-transform: uppercase; letter-spacing: .04em; color: var(--suave); padding: 6px; border-bottom: 1px solid var(--borde); }
.mn-tabla td { padding: 6px; border-bottom: 1px solid #eef1f5; vertical-align: top; }
.mn-tabla td.num, .mn-tabla th.num { text-align: right; white-space: nowrap; }
.mn-tabla .mn-tot td { font-weight: 700; border-top: 2px solid var(--borde); border-bottom: 0; }
.mn-datos { display: flex; flex-wrap: wrap; gap: 6px 16px; margin-top: 12px; font-size: 12.5px; color: var(--suave); }
.mn-datos b { color: var(--texto); }
.mn-obs { margin-top: 8px; font-size: 12.5px; padding: 6px 10px; background: #f8fafc; border-radius: 8px; }
.mn-asiento .aviso-linea { margin-top: 10px; }
/* Registrar cobro: fecha · cobrado · débito a justificar · queda pendiente, en un renglón (Gustavo, 08/10/2026) */
.co-montos { display: grid; grid-template-columns: 150px repeat(3, minmax(0, 1fr)); gap: 12px; margin-bottom: 10px; align-items: end; }
.co-montos label { display: flex; flex-direction: column; gap: 3px; font-size: 13px; }
.co-montos input { width: 100%; }
.co-pend { display: flex; align-items: center; justify-content: flex-end; height: 34px; padding: 0 10px; border-radius: 8px;
  background: #f1f5f9; font-weight: 700; font-size: 14px; }
.co-pend.co-pend-hay { background: #fef3c7; color: #92400e; }
/* Débitos por pago (Contaduría) y su ventana de detalle */
.chip.dp-cerrado { background: #dcfce7; color: #14532d; }
.chip.dp-pendiente { background: #fef3c7; color: #92400e; }
.chip.dp-circulo { background: #e5e7eb; color: #374151; }
.chip.dp-sin { background: #f1f5f9; color: var(--suave); }
.dp-cab { display: flex; justify-content: space-between; align-items: flex-start; gap: 10px; margin-bottom: 10px; font-size: 13.5px; line-height: 1.5; }
.dp-cuadros .dp-c-ok { background: #ecfdf3; border-color: #abefc6; }
.dp-cuadros .dp-c-circ { background: #f3f4f6; border-color: #d1d5db; }
.dp-agregar { display: grid; grid-template-columns: 96px minmax(0, 1.3fr) 76px 72px 110px minmax(0, 1fr) 110px auto; gap: 6px; align-items: center; margin: 8px 0 6px; }
.dp-agregar input, .dp-agregar select { width: 100%; }
.dp-minutas { font-size: 12.5px; margin: 4px 0 6px; color: var(--suave); }
.dp-minutas button.enlace { background: none; border: 0; padding: 0; color: #075985; text-decoration: underline; cursor: pointer; font-size: 12.5px; }
.dp-botones { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 8px; }
.dp-lista { max-height: 300px; overflow: auto; border: 1px solid var(--borde); border-radius: 8px; }
.dp-tabla { table-layout: fixed; width: 100%; }
.dp-tabla td, .dp-tabla th { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.dp-pagos tbody tr { cursor: pointer; }
.co-cred { display: flex; gap: 8px; align-items: flex-start; margin: -2px 0 10px; padding: 8px 10px; border-radius: 8px;
  background: #ecfdf3; border: 1px solid #abefc6; color: #05603a; font-size: 13px; }
.co-cred svg { width: 16px; height: 16px; flex: none; margin-top: 2px; }
.co-control { margin-top: 8px; padding: 8px 10px; border-radius: 8px; background: #f8fafc; border: 1px solid var(--borde); font-size: 12.5px; line-height: 1.6; }
.co-campos { display: flex; gap: 14px; flex-wrap: wrap; margin-bottom: 8px; }
.co-campos label { display: flex; flex-direction: column; gap: 3px; font-size: 13px; }
.co-dif { background: #f8fafc; border: 1px solid var(--borde); border-radius: 8px; padding: 8px 10px; display: flex; flex-direction: column; gap: 6px; font-size: 13px; }
.co-dif .check-linea { display: flex; align-items: flex-start; gap: 6px; line-height: 1.4; }
.co-dif .check-linea input[type=radio] { margin-top: 3px; }
.co-conceptos { border: 1px solid var(--borde); border-radius: 8px; padding: 8px 10px; margin-bottom: 8px; }
.co-conc-tit { font-size: 13px; font-weight: 600; margin-bottom: 4px; }
.co-conc-tit .apagado { font-weight: 400; }
.co-conceptos table { margin-bottom: 6px; table-layout: fixed; }
.co-conceptos td input { padding: 3px 6px; }
.co-neto { margin: 0 0 8px; }
.co-liquida { margin-top: 8px; padding: 8px 10px; border-radius: 8px; background: #eef6f9; color: #0b4f63; font-size: 13px; }
.lq-para { margin: 6px 0 4px; } .lq-para summary { cursor: pointer; padding: 6px 0; }
.lq-medico { padding: 12px 16px; } .lq-medico h2 { margin: 0; font-size: 17px; }
.lq-medico-cab { display: flex; align-items: center; gap: 14px; margin-bottom: 4px; }
.lq-medico-cab > div { flex: 1; }
.lq-h3 { font-size: 14px; margin: 16px 0 6px; } .lq-h3 .apagado { font-weight: 400; font-size: 12px; }
.lq-medico .pr-sub { width: 100%; }
.lq-anulado td { color: #9aa5b1; text-decoration: line-through; } .lq-anulado td:last-child { text-decoration: none; }
.lq-neto td { font-size: 15px; color: #0b4f63; }
.lq-agregar { margin-top: 10px; background: #f8fafc; border-radius: 8px; padding: 8px 10px; }
.lq-reparto { margin: 12px 0 0; }
.lq-e-pre { background: #fef3c7; color: #92400e; }
.lq-e-final { background: #dcfce7; color: var(--ok); }
.lq-final { background: #17753a; border-color: #17753a; }
.lq-trabajando { width: min(560px, 100%); padding: 18px 20px; }
.rf-form { display: flex; flex-direction: column; gap: 10px; }
.rp-select { min-width: 440px; padding: 6px 10px; font-size: 14px; background: #fff; color: var(--texto); border: 1px solid var(--borde); border-radius: 8px; }
.rp-filtros { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 10px 14px; padding: 12px 16px; margin-bottom: 12px; }
.rp-filtros label { display: flex; flex-direction: column; gap: 3px; font-size: 13px; }
.rp-filtros .ayuda { flex-basis: 100%; margin: 0; }
/* Débitos y créditos › Importar la planilla de débito de Sancor (PDF) */
.sc-h { margin: 12px 0 6px; font-size: 13px; color: #0f4f27; text-transform: uppercase; letter-spacing: .03em; }
.sc-tabla td { padding: 3px 6px; } .sc-curso { border: 1px solid #d6e5db; border-radius: 8px; padding: 6px 10px; margin-bottom: 6px; background: #f8fbf9; }
.sc-curso.sc-falta { border-color: #f3c98b; background: #fff8ee; }
.sc-reparto { display: flex; flex-wrap: wrap; gap: 8px 16px; align-items: flex-end; margin-top: 6px; }
.sc-reparto label { display: flex; flex-direction: column; gap: 2px; font-size: 12px; }
.t-ok { color: #17753a; font-weight: 600; }
.aviso-linea { display: flex; gap: 6px; align-items: center; background: #fff4e5; border: 1px solid #f3c98b; color: #6b3d00; border-radius: 7px; padding: 5px 10px; margin-bottom: 6px; font-size: 13px; }
.aviso-linea svg { width: 16px; height: 16px; flex: none; }
/* Tablas › Formatos de cheque y Liquidación › Cheques a médicos (cheques.js) */
.fc-edit { display: grid; grid-template-columns: 230px minmax(0, 1fr); gap: 12px; align-items: start; }
.fc-lista { padding: 8px; } .fc-item { display: block; width: 100%; text-align: left; padding: 7px 10px; border: 1px solid transparent; background: none; border-radius: 7px; margin-bottom: 2px; }
.fc-item.sel { background: #e8f2ec; border-color: #b9dcc6; font-weight: 600; }
.fila-campos { display: flex; flex-wrap: wrap; gap: 10px 14px; align-items: flex-end; } .fila-campos label { display: flex; flex-direction: column; gap: 3px; font-size: 13px; }
.fc-lienzo { position: relative; width: 100%; max-height: 330px; margin: 12px 0; background-color: #fbfdfb; border: 1.5px dashed #9fb3a6; border-radius: 6px; overflow: hidden;
  background-image: linear-gradient(#e8eeea 1px, transparent 1px), linear-gradient(90deg, #e8eeea 1px, transparent 1px); background-size: 4.762% 10mm; }
.fc-campo { position: absolute; padding: 0 3px; border: 1px solid #2f7d4f; background: #e3f3e9e6; border-radius: 3px; cursor: move; user-select: none; line-height: 1.25; white-space: normal; }
.fc-campo.sel { background: #ffe8b3; border-color: #c27c00; z-index: 2; } .fc-campo.oculto-campo { opacity: .35; border-style: dashed; }
.fc-campos { table-layout: fixed; } .fc-campos td { padding-top: 1px; padding-bottom: 1px; } .fc-campos th { white-space: nowrap; } .fc-mm { width: 64px; text-align: right; padding: 1px 4px; } .fc-fila-sel td { background: #fff3d6; }
.ch-filtros { padding: 12px 16px; margin-bottom: 12px; } .ch-tabla input { padding: 1px 5px; } .ch-orden { width: min(380px, 100%); } .ch-imp { width: 130px; text-align: right; } .ch-nro { width: 90px; text-align: right; }
.ch-partido td { background: #f6fbf8; }
.ch-pie { display: flex; align-items: center; gap: 14px; padding: 8px 12px; border-top: 1px solid var(--borde, #e3e8e5); } .ch-pie #ch_total { margin-left: auto; }
.ch-emitidos { margin-bottom: 12px; padding: 0 12px; } .ch-emitidos[open] #ch_emitidos { max-height: 30vh; overflow: auto; padding-bottom: 8px; } .ch-lote { margin: 8px 0 12px; } .ch-lote-cab { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; margin-bottom: 4px; }
/* Liquidación › Copias antes de la liquidación final: ventana de restaurar */
.cl-perdida { max-height: 38vh; overflow: auto; border: 1px solid #e3e8e5; border-radius: 8px; padding: 6px 10px; background: #fafbfa; }
.cl-usuario ul { margin: 2px 0 6px 18px; padding: 0; font-size: 13px; }
.cl-avisos { margin-top: 8px; display: grid; gap: 4px; }
.cl-avisos div { display: flex; gap: 6px; align-items: flex-start; background: #fff4e5; border: 1px solid #f3c98b; border-radius: 6px; padding: 5px 8px; font-size: 13px; color: #6b3d00; }
.cl-avisos svg { width: 16px; height: 16px; flex: none; margin-top: 1px; }
/* botón "Limpiar filtros" (se agrega solo en toda barra de filtros: ponerBotonesLimpiar en app.js) */
.btn-limpiar-filtros { align-self: center; width: 34px; height: 34px; padding: 0; display: inline-flex; align-items: center; justify-content: center;
  border: 1px solid var(--borde, #d6dde3); border-radius: 8px; background: #fff; color: #8a4b00; flex: none; }
.btn-limpiar-filtros:hover { background: #fff3e0; border-color: #e0a85a; }
.btn-limpiar-filtros svg { width: 18px; height: 18px; }
.rc-chips { flex-basis: 100%; display: flex; flex-wrap: wrap; gap: 6px; }
.rc-quitar { border: 0; background: transparent; color: inherit; cursor: pointer; font-size: 14px; padding: 0 2px; }
.rp-total td { font-size: 14px; background: #eaf6ee; }
.ir-cols { display: grid; grid-template-columns: 1fr 1fr; gap: 8px 14px; }
.ir-cols label { display: flex; flex-direction: column; gap: 3px; font-size: 13px; }
.ir-revision { margin-top: 12px; border-top: 1px solid var(--borde); padding-top: 10px; max-height: 45vh; overflow: auto; }
.ir-revision details { margin: 6px 0; } .ir-revision summary { cursor: pointer; font-weight: 600; }
.fila-sel td { background: #eef6f9; }
.rl-tarjetas { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 12px; }
.rl-tarjeta { display: flex; gap: 12px; align-items: flex-start; text-align: left; padding: 14px 16px; cursor: pointer; border: 1px solid var(--borde); font: inherit; color: inherit; }
.rl-tarjeta:hover { border-color: var(--primario); background: #f4f9fb; }
.rl-tarjeta p { margin: 4px 0 0; color: var(--suave); font-size: 13px; line-height: 1.4; }
.cc-grupo-fila td { background: #eef6f9; color: #0b4f63; font-weight: 700; font-size: 13px; }
.cc-grupo-fila span { font-weight: 400; color: var(--suave); }
.cc-select { width: 100%; min-width: 300px; padding: 0 6px; height: 22px; line-height: 20px; font-size: 13px; background: #fff; color: var(--texto); border: 1px solid var(--borde); border-radius: 6px; }
.cc-cambiado td { background: #fffbeb; }
.rl-tipos { display: inline-flex; }
.rf-form > label { display: flex; flex-direction: column; gap: 3px; font-size: 13px; }
.rf-linea { display: flex; align-items: center; gap: 8px 12px; flex-wrap: wrap; font-size: 13px; }
.rf-linea label { display: inline-flex; align-items: center; gap: 5px; }

@media (max-width: 900px) {
  .cc-cuerpo { grid-template-columns: 1fr; }
}
@media (max-width: 760px) {
  body { flex-direction: column; }
  #menu_lateral { width: 100%; height: auto; max-height: 60vh; position: static; }
  main { padding: 16px; }
}
.listado td.co-os { white-space: normal; min-width: 220px; }
.rl-titulo td { background: #17753a; color: #fff; font-weight: 700; font-size: 13px; letter-spacing: .03em; }

/* Retenciones fijas / cuotas y cargos: acordeón por concepto, compacto, acciones a la derecha (30/09/2026) */
#rf_arbol { gap: 4px; padding-right: 2px; }
#rf_arbol > * { flex: none; }  /* dentro del recuadro que se desplaza: los grupos no se achican */
#rf_arbol .arbol-grupo { border-radius: 8px; }
#rf_arbol .arbol-cab { padding: 5px 12px; gap: 10px; font-size: 13.5px; }
#rf_arbol .arbol-ic { width: 24px; height: 24px; border-radius: 6px; }
#rf_arbol .arbol-ic svg { width: 14px; height: 14px; }
.rf-tabla { width: 100%; }
.rf-tabla th, .rf-tabla td { white-space: nowrap; }
.rf-tabla td.nombre { width: 45%; max-width: 0; overflow: hidden; text-overflow: ellipsis; }
.rf-tabla th.rf-acc, .rf-tabla td.rf-acc { text-align: right; width: 1%; padding-right: 10px; }
.rf-acc .icono-btn { padding: 0 3px; }
.rf-acc .icono-btn svg { width: 16px; height: 16px; }
.rf-acc .icono-btn:hover { background: #eef6f9; }
.rf-acc .icono-btn.peligro:hover { background: #fee4e2; }
.rf-hueco { display: inline-block; width: 24px; }
.rf-reanudar { color: #15803d; }
.rf-inactiva td { color: var(--suave); }
.rf-susp { background: #fef3c7; color: #92400e; }
.rf-total { font-weight: 700; color: var(--texto); white-space: nowrap; }
.rf-todos { display: inline-flex; align-items: center; gap: 4px; white-space: nowrap; font-size: 12.5px; padding: 1px 8px;
  border: 1px solid #c7d7f0; border-radius: 12px; background: #eef4fd; color: #1d4f91; cursor: pointer; }
.rf-todos:hover { background: #dbe8fb; }
.rf-todos svg { width: 13px; height: 13px; }
.rf-propio { font-size: 10.5px; padding: 0 5px; border-radius: 8px; background: #fff3cd; color: #8a6100; }
.chip-sistema { font-size: 11px; padding: 1px 6px; }

/* REGLA DE ORO (Gustavo, 30/09/2026): TODAS las grillas respetan el interlineado de Ajustes. Lo que va adentro de
   una celda (botones de lápiz / tacho, botones de paso, etiquetas, casillas, campos) no puede agrandar la fila. */
td .icono-btn { padding: 0 3px; vertical-align: middle; line-height: 0; }
td .icono-btn svg { width: 16px; height: 16px; }
td .paso-btn { padding: 0 9px; line-height: 1.35; font-size: 12px; }
td .etiqueta, td .chip { padding-top: 0; padding-bottom: 0; line-height: 1.4; vertical-align: middle; }
/* etiquetas (especialidades...) siempre en una línea: si no entran se cortan con "…" */
td .chips { flex-wrap: nowrap; white-space: nowrap; max-width: 320px; overflow: hidden; vertical-align: middle; }
td .chips .chip { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; min-width: 0; flex: 0 1 auto; }
td input[type="checkbox"], td input[type="radio"] { margin-top: 0; margin-bottom: 0; vertical-align: middle; }
td > input:not([type="checkbox"]):not([type="radio"]), td > select { padding-top: 2px; padding-bottom: 2px; }
td.pr-acciones, td.dd-acc, td.rf-acc { padding-top: var(--grilla-interlineado); padding-bottom: var(--grilla-interlineado); }

/* Grillas que no entraban a lo ancho (sinBarraHorizontal en app.js): columnas de texto recortadas con "…" */
table.recortada > thead > tr > th, table.recortada > tbody > tr > td { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
table.recortada > thead > tr > th { white-space: normal; vertical-align: bottom; overflow-wrap: normal; }  /* el título puede ir en 2 renglones */
table.recortada > tbody > tr > td[colspan] { white-space: normal; overflow: visible; }
table.apretada > thead > tr > th, table.apretada > tbody > tr > td { padding-left: 4px; padding-right: 4px; font-size: 12.5px; }
table.apretada > thead > tr > th { font-size: 10.5px; letter-spacing: .02em; }

/* Presentaciones: acciones al principio, obra social completa (una línea), la tabla se desplaza a lo ancho */
.pr-tabla td, .pr-tabla th { white-space: nowrap; }
/* ABM con barra a la derecha (ENTIDADES conBarra: Aranceles): todo se ve completo, en una línea */
.abm-completa td, .abm-completa th { white-space: nowrap; }
.pr-tabla td.pr-acc { white-space: nowrap; padding-right: 6px; }
.pr-tabla td.pr-acc .paso-btn { margin-left: 4px; }
.pr-tabla td.pr-os { min-width: 280px; }
/* estado y paso siguiente como íconos (title al pasar el mouse) */
.pr-tabla td.pr-est { text-align: center; }
.est-ic { display: inline-flex; align-items: center; justify-content: center; width: 20px; height: 20px; border-radius: 50%; vertical-align: middle; cursor: help; }
.est-ic svg { width: 13px; height: 13px; }
/* Gustavo, 01/10/2026: de un vistazo, ROJO = falta facturar (abierta, en control, controlada) y VERDE = facturada
   (también cobrada y liquidada). El dibujo del ícono y el título al pasar el mouse dicen en qué paso está. */
.est-ABIERTA, .est-EN_CONTROL, .est-CONTROLADA { background: #dc2626; color: #fff; }
.est-FACTURADA, .est-COBRADA, .est-LIQUIDADA { background: #16a34a; color: #fff; }
td .icono-btn.paso-ic { width: 20px; height: 20px; padding: 0; margin-left: 4px; border-radius: 50%; justify-content: center; align-items: center; color: #fff; }
td .icono-btn.paso-ic svg { width: 13px; height: 13px; }
.paso-ic.paso-EMPEZAR_CONTROL, .paso-ic.paso-TERMINAR_CONTROL, .paso-ic.paso-FACTURAR { background: #dc2626; }
.paso-ic.paso-VER_FACTURA { background: #16a34a; }
.paso-ic:hover { filter: brightness(1.12); }
.pr-tabla td.pr-os b { font-weight: 700; }

/* Presentaciones: archivos importados plegados arriba de la lista (la lista ocupa lo que queda) */
.pr-imps { margin-bottom: 12px; }
.pr-imps > summary { cursor: pointer; list-style: revert; padding-bottom: 10px; }
.pr-imps-lista { max-height: 30vh; overflow: auto; }

/* Retenciones del mes: el detalle ocupa lo que queda de la pantalla (sin scroll de la página) */
.rm-detalle { margin-top: 12px; }
.rm-detalle > .pr-h2 { flex: none; }
.rm-agregar { flex: none; margin: 0; padding: 8px 16px; border-top: 1px solid var(--borde); }

/* Contaduría › Cobros de obras sociales: una línea por factura, sin barra horizontal, una sola letra (30/09/2026) */
/* Grillas en una sola línea por fila (Liquidar › Cobros que se liquidan): lo que no entra lo corta sinBarraHorizontal con "…" */
table.una-linea > tbody > tr > td, table.una-linea > thead > tr > th { white-space: nowrap; }
.sist-ant { display: inline-flex; vertical-align: -2px; margin-right: 4px; color: #16a34a; }
.sist-ant svg { width: 14px; height: 14px; stroke-width: 2.6; }
.co-tabla { table-layout: fixed; width: 100%; }
.co-tabla > tbody > tr > td, .co-tabla > thead > tr > th { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; font-size: 13px; color: var(--texto); }
.co-tabla > tbody > tr > td b { font-weight: 700; }
.co-tabla .co-c-fac { width: 120px; }
.co-tabla .co-c-fecha { width: 80px; }
.co-tabla .co-c-per { width: 64px; }
.co-tabla .co-c-imp { width: 106px; }
.co-tabla .co-c-deb { width: 90px; }
.co-tabla .co-c-est { width: 112px; }
.co-tabla .co-c-btn { width: 68px; }
/* Liquidar › cobros que se liquidan (02/10/2026) */
.lq-cobros .co-c-per { width: 82px; }
.lq-cobros .lq-c-fac { width: 168px; }
.lq-cobros .lq-c-imp { width: 128px; }
.lq-cobros .lq-c-porc { width: 72px; }
.lq-cobros .lq-c-btn { width: 40px; }
.co-tabla > tbody > tr > td, .co-tabla > thead > tr > th { padding-left: 6px; padding-right: 6px; }
.co-tabla .etiqueta { font-size: 12px; }
.co-tabla .paso-btn { padding: 2px 10px; font-size: 12px; }
.co-tabla tr.co-det > td { white-space: normal; overflow: visible; padding: 4px 10px 10px 30px; }
.co-viejo { color: #b45309; font-weight: 700; cursor: help; }
.co-leyenda { font-size: 12px; color: var(--suave); margin: -6px 0 8px; }

/* Cobro de deudas por caja */
.cd-form { display: flex; flex-direction: column; gap: 10px; }
.cd-socio { display: flex; align-items: flex-end; gap: 14px; }
.cd-nombre { font-size: 16px; font-weight: 700; color: var(--texto); padding-bottom: 6px; }
.cd-deudas { border: 1px solid var(--borde); border-radius: 8px; max-height: 42vh; overflow: auto; background: #fff; }
.cd-tabla th { position: sticky; top: 0; background: #f4f7f9; z-index: 1; }
.cd-tabla td, .cd-tabla th { white-space: nowrap; }
.cd-tabla tr.cd-sel td { background: #eaf6ee; }
.cd-imp { width: 120px; padding: 3px 6px; }
.cd-imp:disabled { background: transparent; border-color: transparent; color: var(--suave); }
.cd-pre { background: #fef3c7; color: #92400e; font-size: 11px; padding: 1px 6px; }
.cd-pie { display: flex; flex-wrap: wrap; gap: 10px 16px; align-items: flex-end; }
.cd-totales { margin-left: auto; display: flex; gap: 10px; }
.cd-totales > div { border: 1px solid var(--borde); border-radius: 8px; padding: 6px 12px; font-size: 12px; color: var(--suave); text-align: right; }
.cd-totales b { display: block; font-size: 17px; color: var(--texto); }
.cd-totales .cd-apagar { background: #fff8db; border-color: #f5d76e; }
.cd-totales .cd-apagar b { color: #0f4f27; }
/* Gestionar deuda (02/10/2026): Entrega $, le queda, marcas por renglón y botones en una sola línea */
.cd-totales .cd-apagar label { display: block; }
.cd-entrega { width: 140px; font-size: 16px; font-weight: 700; padding: 3px 6px; margin-top: 2px; }
.cd-totales .cd-queda b { color: var(--error); }
.cd-tabla td.cd-debe { color: var(--error); font-weight: 600; }
.cd-parcial { background: #fef3c7; color: #92400e; font-size: 11px; padding: 1px 6px; }
.cd-cancela { background: #dcfce7; color: #166534; font-size: 11px; padding: 1px 6px; }
.cd-tabla.cd-fija { table-layout: fixed; width: 100%; }
.cd-tabla .cd-conc { overflow: hidden; text-overflow: ellipsis; }
.vs-botones.cd-botones { flex-wrap: nowrap; align-items: center; }
.vs-botones.cd-botones button { min-width: 0; white-space: nowrap; }
.cd-hueco { flex: 1; }
.vs-botones .cd-eliminar { color: var(--error); border-color: #f4b4ae; }
.vs-botones .cd-eliminar:hover { background: #fee4e2; }
.dd-acc .dd-cobrar { color: #15803d; }

/* Deudas de los socios: acciones por socio */
.dd-acc { text-align: right; white-space: nowrap; width: 1%; }
.dd-acc .icono-btn { padding: 0 3px; }
.dd-acc .icono-btn svg { width: 16px; height: 16px; }
.dd-acc .icono-btn:hover { background: #eef6f9; }
.dd-acc .icono-btn:disabled { opacity: .3; cursor: not-allowed; }
.dd-resultado ul { margin: 4px 0 10px; padding-left: 18px; max-height: 180px; overflow: auto; }

/* ============ Ingreso al sistema (sesion.js, Gustavo 30/09/2026): logo en el medio, abajo la institución ============ */
body.sin-sesion #menu_lateral, body.sin-sesion #contenido { visibility: hidden; }
#ingreso { position: fixed; inset: 0; z-index: 6000; display: flex; align-items: center; justify-content: center;
           background: radial-gradient(circle at 50% 35%, #ffffff 0%, #eef6f1 55%, #dcebe2 100%); }
#ingreso .in-caja { width: min(380px, 92vw); display: flex; flex-direction: column; align-items: center; text-align: center; }
#ingreso .in-logo { width: 190px; height: 190px; object-fit: contain; mix-blend-mode: multiply; }  /* el fondo blanco del logo se funde */
#ingreso .in-institucion { margin: 14px 0 22px; font-size: 22px; font-weight: 700; color: #0f4f27; letter-spacing: .02em; }
#ingreso .in-form { width: 100%; background: #fff; border: 1px solid #d5e3da; border-radius: 14px; padding: 20px 22px;
                    box-shadow: 0 10px 30px rgba(15, 79, 39, .10); display: flex; flex-direction: column; gap: 12px; text-align: left; }
#ingreso .in-form label { display: flex; flex-direction: column; gap: 4px; font-size: 13px; font-weight: 600; color: var(--suave); }
#ingreso .in-form select, #ingreso .in-form input { width: 100%; font-size: 15px; padding: 9px 10px; }
#ingreso .in-form button { margin-top: 4px; padding: 10px; font-size: 15px; background: #17753a; border-color: #17753a; }
#ingreso .in-error { min-height: 18px; color: #b42318; font-size: 13px; text-align: center; }

/* Inicio: el logo en el medio y abajo el nombre de la institución */
.inicio { min-height: calc(100vh - 80px); display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 6px; }
.inicio .nota-aviso { margin-bottom: 20px; }
.inicio-logo { width: min(300px, 50vw); max-height: 45vh; object-fit: contain; mix-blend-mode: multiply; }
.inicio-institucion { margin-top: 14px; font-size: 26px; font-weight: 700; color: #0f4f27; letter-spacing: .02em; }
.inicio-usuario { color: var(--suave); font-size: 14px; }

/* Abajo del menú: usuario conectado, cambiar clave, salir */
#menu_lateral .ml-usuario { display: flex; align-items: center; gap: 8px; color: #cbd5e1; }
#menu_lateral .ml-usuario-ic svg { width: 18px; height: 18px; color: #86efac; }
#menu_lateral .ml-usuario-tx { flex: 1; min-width: 0; line-height: 1.2; }
#menu_lateral .ml-usuario-tx b { display: block; font-size: 12.5px; color: #fff; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
#menu_lateral .ml-usuario-tx small { font-size: 11px; color: #8b97aa; }
#menu_lateral .ml-usuario-btn { all: unset; cursor: pointer; padding: 4px; border-radius: 6px; color: #8b97aa; display: flex; }
#menu_lateral .ml-usuario-btn:hover { background: #1c2536; color: #fff; }
#menu_lateral .ml-usuario-btn svg { width: 17px; height: 17px; }

/* Usuarios y permisos */
.us-admin { background: #ede9fe; color: #5b21b6; }
.us-form { display: flex; flex-direction: column; gap: 12px; }
.us-checks { display: flex; gap: 18px; flex-wrap: wrap; }
.us-perm-titulo { display: flex; align-items: center; gap: 8px; font-weight: 700; margin-bottom: 6px; }
.us-perm-titulo .apagado { font-weight: 400; margin-right: auto; }
.us-perm-titulo button { padding: 3px 10px; font-size: 12px; }
.us-grupos { display: grid; grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)); gap: 10px; max-height: 46vh; overflow: auto; padding-right: 4px; }
.us-grupo { border: 1px solid var(--borde); border-radius: 8px; padding: 8px 10px; display: flex; flex-direction: column; gap: 3px; }
.us-grupo .check-linea { font-size: 13px; }
.us-grupo-tit { font-weight: 700; border-left: 4px solid; padding-left: 6px; margin-bottom: 3px; display: flex; gap: 6px; align-items: center; }
.us-apagado { opacity: .4; pointer-events: none; }

/* Registro de actividad */
.aud-alta { background: #dcfce7; color: #166534; }
.aud-cambio { background: #e0f2fe; color: #075985; }
.aud-baja { background: #fee2e2; color: #991b1b; }
.aud-ingreso { background: #f1f5f9; color: #475569; }

/* Tablas › Ganancias / Ingresos Brutos (impuestos.js) */
.im-dos { display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(260px, 1fr); gap: 12px; align-items: start; }
.im-dos > div > .tarjeta + .tarjeta, .im-lado .tarjeta + .tarjeta { margin-top: 12px; }
@media (max-width: 900px) { .im-dos { grid-template-columns: 1fr; } }
.im-vig { display: flex; gap: 6px; flex-wrap: wrap; margin-bottom: 10px; align-items: center; }
.im-campos { display: grid; grid-template-columns: repeat(auto-fill, minmax(170px, 1fr)); gap: 8px 12px; margin-bottom: 8px; }
.im-campos label, .im-obs { display: flex; flex-direction: column; gap: 3px; font-size: 12.5px; color: var(--suave); font-weight: 600; }
.im-obs { margin-top: 8px; }
.im-obs input { font-weight: 400; }
.im-campos .im-obs-fila { grid-column: 1 / -1; }
.im-plegable > summary { cursor: pointer; margin: 0; }
.im-plegable[open] > summary { margin-bottom: 8px; }
.im-tramos input { width: 100%; text-align: right; padding: 2px 6px; }
.im-tramos td { padding-top: 2px; padding-bottom: 2px; }
.im-check { display: flex; gap: 8px; align-items: center; font-size: 13px; margin: 4px 0; }
.im-check input { width: auto; flex: none; margin: 0; }
.im-ayuda p { margin: 0 0 8px; font-size: 13px; line-height: 1.45; }
.im-prueba { margin-top: 8px; padding: 8px 10px; background: #f3f7f5; border-radius: 8px; font-size: 13px; line-height: 1.5; }
.im-padron { display: flex; gap: 8px; align-items: flex-start; margin: 0 0 10px; font-size: 13px; line-height: 1.45; color: #166534; }
.im-padron svg { width: 18px; height: 18px; flex: none; margin-top: 1px; }
.im-padron.im-viejo { color: #9a3412; }
.im-rojo { color: #b42318; }

/* Débitos y créditos a los médicos (ajustes.js) */
.aj-deb { background: #fee2e2; color: #991b1b; }
.aj-cred { background: #dcfce7; color: #166534; }
.aj-campos { display: grid; grid-template-columns: repeat(auto-fill, minmax(170px, 1fr)); gap: 8px 12px; }
.aj-campos label { display: flex; flex-direction: column; gap: 3px; font-size: 12.5px; color: var(--suave); font-weight: 600; }
.aj-campos input, .aj-campos select { font-weight: 400; }
.aj-campos .aj-ancho { grid-column: 1 / -1; }
.ia-tabla { max-height: 42vh; overflow: auto; border: 1px solid var(--borde); border-radius: 8px; }
.ia-tabla thead th { position: sticky; top: 0; z-index: 1; }
.ia-grilla { table-layout: fixed; width: 100%; }
.ia-grilla td, .ia-grilla th { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ia-tabla tr.ia-error td { background: #fdecec; }
.aj-lotes { padding: 6px 12px; margin-bottom: 8px; }
.aj-lotes summary { cursor: pointer; font-weight: 600; color: var(--suave); font-size: 13px; }
.aj-lotes > div { max-height: 26vh; overflow: auto; margin-top: 6px; }
.aj-medicos { max-height: 42vh; overflow: auto; border: 1px solid var(--borde); border-radius: 8px; }
.aj-medicos thead th { position: sticky; top: 0; z-index: 1; }
.aj-medicos input { width: 100%; padding: 2px 6px; }
.aj-medicos td { padding-top: 2px; padding-bottom: 2px; }

/* Tablas › Cuota social y fondo de previsión (liquidacion.js, vistaCuotasFondo) */
.cf-tarjeta { margin-bottom: 8px; }
.cf-cabecera { display: flex; justify-content: space-between; align-items: center; gap: 10px; flex-wrap: wrap; margin-bottom: 4px; }
.cf-cabecera h3 { margin: 0; font-size: 15px; }
.cf-tabla { table-layout: fixed; width: 100%; }
.cf-tabla input { width: 100%; box-sizing: border-box; padding: 1px 6px; height: 24px; }
.cf-tabla input.num { text-align: right; }
.cf-total td { font-weight: 600; border-top: 2px solid #cbd5e1; }

/* Reportes › Retenciones cargadas: opciones en una línea (radio / casilla al lado del texto) */
.rr-opciones { display: flex; gap: 14px; align-items: center; flex-wrap: wrap; }
.rr-opciones label { display: inline-flex !important; flex-direction: row !important; align-items: center; gap: 5px; margin: 0; white-space: nowrap; }
.rr-opciones input { width: auto; margin: 0; }

/* Gestionar deuda: interruptor "Actualizar al importe de hoy" y los importes actualizados */
.cd-actualizar { margin-left: 14px; font-size: 13px; font-weight: 600; }
.cd-tabla td.cd-actualizado { color: #15803d; font-weight: 700; }
/* Recibo en pantalla: cuota social / fondo que no paga (renglón informativo con "—") */
.lq-info td { color: #6b7785; }

/* Gestionar deuda (05/10/2026): pie en UNA línea debajo de la grilla (fecha, forma, Nº, observaciones, importes) */
.cd-pie { flex-wrap: nowrap; gap: 8px; }
.cd-pie > label { display: flex; flex-direction: column; gap: 2px; font-size: 12px; white-space: nowrap; }
.cd-pie input, .cd-pie select { height: 30px; padding: 2px 6px; }
.cd-pie #cd_fecha { width: 132px; }
.cd-pie .cd-ref { width: 120px; }
.cd-pie .cd-obs { flex: 1; min-width: 80px; }
.cd-pie .cd-obs input { width: 100%; }
.cd-pie .cd-totales { gap: 6px; }
.cd-pie .cd-totales > div { padding: 3px 8px; font-size: 11px; white-space: nowrap; }
.cd-pie .cd-totales b { font-size: 14px; }
.cd-pie .cd-entrega { width: 112px; font-size: 14px; height: 26px; margin-top: 1px; }

/* Botón de acción de encabezado como el ERP (button.icono-destacado: fondo celeste, borde y texto azul; 05/10/2026) */
button.btn-destacado { display: inline-flex; align-items: center; gap: 6px; cursor: pointer; background: #eef3fb; border: 1px solid #c3d4ea;
  color: #2a5599; font-size: 13px; font-weight: 600; padding: 7px 14px; border-radius: 6px; line-height: 1.2; }
button.btn-destacado:hover:not(:disabled) { background: #dfe9f8; border-color: #a9c2e0; }
button.btn-destacado:disabled { opacity: .5; cursor: default; }
button.btn-destacado svg { width: 16px; height: 16px; }

/* Reportes › Promedio de liquidación por socio: dashboard */
.pm-dash .grilla-scroll { padding: 12px 14px; }
.pm-socio { display: flex; align-items: center; gap: 12px; margin-bottom: 12px; }
.pm-avatar { background: #17753a; color: #fff; font-weight: 700; font-size: 16px; border-radius: 10px; padding: 9px 12px; }
.pm-socio b { font-size: 17px; display: block; } .pm-socio span { color: #6b7785; font-size: 12px; display: block; }
.pm-periodo { margin-left: auto; text-align: right; } .pm-periodo b { font-size: 14px; }
.pm-kpis { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 8px; margin-bottom: 8px; }
.pm-kpis2 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.pm-kpi { background: #f4f7f5; border: 1px solid #e3ebe6; border-radius: 10px; padding: 8px 10px; min-width: 0; }
.pm-kpi span { display: block; font-size: 11px; color: #6b7785; text-transform: uppercase; letter-spacing: .03em; }
.pm-kpi b { font-size: 17px; display: block; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.pm-kpi small { color: #8a95a3; font-size: 11px; }
.pm-kpi.pm-destacado { background: #0f4f27; border-color: #0f4f27; } .pm-kpi.pm-destacado span, .pm-kpi.pm-destacado small { color: #cde7d6; }
.pm-kpi.pm-destacado b { color: #fff; font-size: 19px; } .pm-kpi.pm-rojo b { color: #b42318; }
.pm-cols { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); gap: 12px; margin-top: 6px; }
.pm-panel { border: 1px solid #e3ebe6; border-radius: 10px; padding: 10px 12px; min-width: 0; }
.pm-panel h3 { margin: 0 0 8px; font-size: 13px; color: #0f4f27; text-transform: uppercase; letter-spacing: .04em; }
.pm-barras { display: flex; align-items: flex-end; gap: 8px; height: 130px; padding: 0 4px; }
.pm-barra { flex: 1; display: flex; flex-direction: column; align-items: center; gap: 4px; height: 100%; min-width: 0; }
.pm-col { flex: 1; width: 100%; max-width: 46px; position: relative; display: flex; align-items: flex-end; gap: 3px; }
.pm-col i, .pm-col em { flex: 1; border-radius: 4px 4px 0 0; display: block; }
.pm-col i, .pm-ley i { background: #17753a; } .pm-col em, .pm-ley em { background: #8fd0a6; }
.pm-barra span { font-size: 10.5px; color: #6b7785; white-space: nowrap; }
.pm-ley { display: flex; gap: 14px; font-size: 11px; color: #6b7785; margin: 6px 0 8px; }
.pm-ley i, .pm-ley em { display: inline-block; width: 10px; height: 10px; border-radius: 2px; margin-right: 4px; vertical-align: -1px; }
.pm-tabla td, .pm-tabla th { font-size: 12.5px; }
.pm-tabla tr.pm-neto td { background: #0f4f27; color: #fff; font-weight: 700; }
.pm-obra { position: relative; display: flex; justify-content: space-between; gap: 8px; font-size: 12px; padding: 3px 6px; margin-bottom: 3px; border-radius: 4px; overflow: hidden; }
.pm-obra span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; position: relative; z-index: 1; }
.pm-obra b { position: relative; z-index: 1; white-space: nowrap; }
.pm-obra i { position: absolute; left: 0; top: 0; bottom: 0; background: #e3f2e8; z-index: 0; }

.vc-tabla td.vc-ultimo { white-space: normal; line-height: 1.2; }

/* ---- Nomenclador y valores › Valores de una obra social (antes Valores de niveles, 09/10/2026) ---- */
.nv-cols { display: grid; grid-template-columns: 280px minmax(0, 1fr); gap: 14px; align-items: start; }
.nv-lista { overflow: hidden; }
.nv-der .grilla-scroll { overflow-x: hidden; }
.nv-der .grilla-scroll.nv-pscroll { overflow-x: auto; }
#nv_ptabla input.nv-pval { width: 110px; }
.nv-der .nv-cab { flex-wrap: wrap; row-gap: 6px; overflow: hidden; }
.nv-galenos td.nv-clave { width: 290px; font-size: 13px; }
.nv-galenos td.nv-clave select { max-width: 280px; }
.nv-lista .nv-obras { max-height: calc(100vh - 290px); }
.nv-obra small { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.nv-solapas { align-self: flex-start; flex-wrap: wrap; }
.nv-solapas span { padding: 5px 11px; font-size: 13px; }
.nv-herr { flex-wrap: wrap; row-gap: 6px; }
.nv-herr .buscador { width: 280px; }
.nv-nota { font-size: 12.5px; color: #475569; padding: 0 4px; }
.nv-sub { font-weight: 700; font-size: 13px; padding: 2px 4px 8px; }
.nv-resumen { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 10px; }
button.nv-res { display: flex; flex-direction: column; align-items: flex-start; gap: 0; text-align: left; cursor: pointer; font: inherit;
  background: #fff; border: 1px solid #e5e7eb; border-radius: 10px; padding: 6px 12px; box-shadow: 0 1px 2px rgba(0,0,0,.04); }
.nv-listas { margin: 0 0 6px; padding: 0 4px; }
.nv-listas .ia-listas-scroll { max-height: 200px; }
button.nv-res:hover { border-color: #0369a1; background: #f0f9ff; }
.nv-res-n { font-size: 19px; font-weight: 700; color: #0f172a; line-height: 1.1; }
.nv-res-t { font-weight: 600; font-size: 13px; }
button.nv-res small { font-size: 11.5px; color: #64748b; }
.nv-pfalta svg { width: 14px; height: 14px; vertical-align: -2px; }
.nv-lista { padding: 10px; display: flex; flex-direction: column; gap: 8px; }
.nv-lista .buscador { width: 100%; }
.nv-obras { max-height: calc(100vh - 260px); overflow-y: auto; display: grid; gap: 2px; }
.nv-obra { display: grid; grid-template-columns: auto 1fr; column-gap: 8px; text-align: left; border: 0; background: none; padding: 6px 8px;
  border-radius: 8px; cursor: pointer; font: inherit; color: inherit; }
.nv-obra b { font-weight: 600; font-size: 13px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.nv-obra small { grid-column: 2; color: #6b7280; font-size: 11.5px; }
.nv-obra .codigo { font-size: 12px; color: #6b7280; }
.nv-obra:hover { background: #f1f5f9; }
.nv-obra.activa { background: #e0f2fe; box-shadow: inset 3px 0 0 #0369a1; }
.nv-obra.baja b { color: #9ca3af; text-decoration: line-through; }
.nv-nada { padding: 10px; font-size: 13px; }
.nv-otra { border-top: 1px solid #e5e7eb; padding-top: 8px; display: grid; gap: 4px; font-size: 12.5px; color: #6b7280; }
.nv-otra input { width: 100%; }
.nv-der { display: flex; flex-direction: column; gap: 10px; min-width: 0; }
.nv-vacio { display: flex; align-items: center; gap: 8px; justify-content: center; padding: 40px 10px; }
.nv-vacio svg { width: 20px; height: 20px; }
.nv-cab { display: flex; align-items: center; gap: 10px; padding: 8px 14px; min-width: 0; }
.nv-cab > div:first-child { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.nv-cab button, .nv-cab .segmentado, #nv_estado { flex: none; white-space: nowrap; }
.nv-nombre { font-size: 17px; }
.nv-herr { display: flex; align-items: center; gap: 10px; padding: 6px 14px; font-size: 13.5px; white-space: nowrap; }
.nv-herr label { display: flex; align-items: center; gap: 6px; margin: 0; }
.nv-herr input[type=date] { width: 150px; }
.nv-pct { width: 64px; text-align: right; }
.nv-sep { width: 1px; height: 24px; background: #e5e7eb; }
.nv-aviso { background: #fef3c7; color: #92400e; border-radius: 8px; padding: 8px 12px; font-size: 13px; display: flex; gap: 8px; align-items: center; }
.nv-aviso svg { width: 18px; height: 18px; flex: none; }
.nv-tabla td.nv-clave { width: 90px; font-size: 15px; }
.nv-tabla input.nv-val { width: 125px; text-align: right; padding: 2px 8px; font-variant-numeric: tabular-nums; }
.nv-tabla input.nv-nueva { width: 70px; padding: 2px 6px; }
.nv-tabla td.nv-actual small { color: #6b7280; margin-left: 4px; }
.nv-tabla td.nv-actual .nv-prox { color: #0369a1; font-size: 12px; }
.nv-tabla tr.nv-cambio td { background: #fefce8; }
.nv-tabla tr.nv-cambio input.nv-val { border-color: #ca8a04; font-weight: 700; }
.nv-tabla tr.nv-falta td.nv-clave b { color: #b42318; }
.nv-chip-falta { background: #fee4e2; color: #b42318; } .nv-chip-nuevo { background: #e0f2fe; color: #0369a1; }
.nv-sube { color: #15803d; font-weight: 700; } .nv-baja { color: #b42318; font-weight: 700; }
.nv-pie { display: flex; align-items: center; gap: 10px; }
.nv-pendiente { color: #a16207; font-weight: 700; }
@media (max-width: 900px) { .nv-cols { grid-template-columns: 1fr; } .nv-obras { max-height: 220px; } }
button.nv-npract { border: 0; background: #e0f2fe; color: #0369a1; font-weight: 700; border-radius: 999px; padding: 0 10px; cursor: pointer; font: inherit; font-weight: 700; }
button.nv-npract:hover { background: #bae6fd; }
.nv-pcab { display: flex; align-items: center; gap: 8px; margin-bottom: 8px; }
.nv-plista { max-height: min(55vh, 460px); overflow-y: auto; border: 1px solid #e5e7eb; border-radius: 8px; }
.nv-ptabla { table-layout: fixed; } .nv-ptabla td { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.nv-ptabla thead th { position: sticky; top: 0; background: #f8fafc; }
.nv-ptabla tr[data-ar] { cursor: pointer; } .nv-ptabla tr[data-ar]:hover td { background: #f0f9ff; }
.nv-pgrupo td { background: #eaf6ee; color: #0f4f27; font-weight: 700; }
.nv-pfalta { color: #b42318; } .nv-pnota { margin-top: 6px; font-size: 12px; }

/* ---- Liquidación › Cuenta del médico (09/10/2026) ---- */
.cm-buscar { min-width: 360px; }
.cm-arriba { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); gap: 10px; margin-bottom: 8px; }
.cm-izq, .cm-der { padding: 10px 14px; }
.cm-socio { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; margin-bottom: 8px; } .cm-socio b { font-size: 16px; margin-right: 4px; }
.chip.cm-rojo { background: #fee4e2; color: #b42318; }
.cm-kpis { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 6px; }
.cm-kpi { border: 1px solid #e5e7eb; border-radius: 8px; padding: 4px 9px; min-width: 0; }
.cm-kpi span { display: block; font-size: 11px; color: #6b7280; } .cm-kpi b { font-size: 15px; white-space: nowrap; }
.cm-kpi small { display: block; font-size: 11px; color: #6b7280; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.cm-kpi.cm-verde { background: #0f4f27; border-color: #0f4f27; } .cm-kpi.cm-verde span, .cm-kpi.cm-verde small { color: #d1fae5; } .cm-kpi.cm-verde b { color: #fff; }
.cm-kpi.cm-alerta b { color: #b42318; }
.cm-gtit { display: flex; align-items: baseline; gap: 8px; font-size: 13px; }
.cm-grafico { width: 100%; height: 150px; display: block; }
.cm-g-total { font-size: 11px; font-weight: 700; fill: #111827; } .cm-g-mes { font-size: 11px; fill: #6b7280; }
.cm-ley { display: flex; flex-wrap: wrap; gap: 4px 12px; font-size: 11.5px; } .cm-ley i { display: inline-block; width: 10px; height: 10px; border-radius: 3px; margin-right: 4px; vertical-align: -1px; }
.cm-solapas { margin-bottom: 6px; flex-wrap: wrap; }
.cm-tabla tr.cm-tot td { font-weight: 700; background: #f8fafc; }
.cm-nota { font-size: 11.5px; color: #6b7280; }
.cm-etapa { display: inline-block; padding: 0 8px; border-radius: 999px; font-size: 12px; font-weight: 600; white-space: nowrap; background: #f1f5f9; color: #475569; }
.cm-e-presentado { background: #fef3c7; color: #92400e; } .cm-e-facturado { background: #e0f2fe; color: #0369a1; }
.cm-e-cobrado { background: #dcfce7; color: #166534; } .cm-e-preliq { background: #ede9fe; color: #5b21b6; }
.etiqueta.cm-deb { background: #fee4e2; color: #b42318; } .etiqueta.cm-cred { background: #dcfce7; color: #166534; }
.cm-ir { padding: 8px 10px; text-align: right; }
@media (max-width: 1100px) { .cm-arriba { grid-template-columns: 1fr; } }

/* ---- Nomenclador y valores › Valor de una práctica (09/10/2026) ---- */
.vp-barra { align-items: flex-end; gap: 10px; flex-wrap: wrap; }
.vp-campo { display: flex; flex-direction: column; gap: 2px; font-size: 12px; color: #6b7280; margin: 0; }
.vp-campo input, .vp-campo select { min-width: 130px; }
.vp-codigo input { width: 160px; font-weight: 700; font-size: 15px; }
.vp-vacio { padding: 36px 10px; text-align: center; }
.vp-cab { display: flex; align-items: center; gap: 16px; padding: 8px 14px; margin-bottom: 6px; }
.vp-prest { flex: 1; min-width: 0; } .vp-prest b { font-size: 15px; } .vp-prest small { display: block; color: #6b7280; }
.vp-desc, .vp-prest small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.vp-kpis { display: flex; gap: 8px; flex: none; }
.vp-kpis > div { border: 1px solid #e5e7eb; border-radius: 8px; padding: 4px 10px; min-width: 120px; max-width: 170px; }
.vp-kpis span { display: block; font-size: 11px; color: #6b7280; } .vp-kpis b { font-size: 15px; }
.vp-kpis small { display: block; font-size: 11px; color: #6b7280; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.vp-kpis .vp-prom { background: #0f4f27; border-color: #0f4f27; } .vp-kpis .vp-prom span { color: #d1fae5; } .vp-kpis .vp-prom b { color: #fff; }
.vp-ley-fila { display: flex; align-items: center; gap: 12px; font-size: 12.5px; margin-bottom: 6px; }
.vp-ley { display: inline-flex; align-items: center; gap: 5px; } .vp-ley i { width: 11px; height: 11px; border-radius: 3px; display: inline-block; }
.vp-orden label span { padding: 3px 10px; }
.vp-como { display: inline-block; padding: 0 8px; border-radius: 999px; font-size: 12px; font-weight: 600; color: var(--c); background: color-mix(in srgb, var(--c) 12%, white); white-space: nowrap; }
.vp-falta { display: inline-flex; align-items: center; gap: 3px; color: #b45309; font-size: 11.5px; font-weight: 600; white-space: nowrap; }
.vp-falta svg { width: 16px; height: 16px; }
button.vp-como, button.vp-falta { border: 0; cursor: pointer; font-family: inherit; line-height: inherit; }
button.vp-falta { background: none; padding: 0; }
button.vp-como:hover { outline: 2px solid var(--c); } button.vp-falta:hover { text-decoration: underline; }
.vp-cargar { margin-left: 10px; padding: 0 10px !important; font-size: 12px; }
.vp-th-barra { width: 100px; }
td.vp-celda-barra .vp-barra { width: 100%; min-width: 60px; height: 9px; background: #f1f5f9; border-radius: 5px; overflow: hidden; }
td.vp-celda-barra .vp-barra i { display: block; height: 100%; border-radius: 5px; }
.vp-tabla tr.vp-novigente td { color: #8a949e; }
.vp-tabla tr.vp-sin td { background: #fafafa; }
.vp-grafico { width: 100%; height: auto; margin: 4px 0 10px; }
.vp-g-linea { stroke: #e5e7eb; } .vp-g-txt { font-size: 11px; fill: #6b7280; }
.vp-g-camino { fill: none; stroke: #2563eb; stroke-width: 2.5; } .vp-g-punto { fill: #fff; stroke: #2563eb; stroke-width: 2; }
.vp-hist { width: 100%; border-collapse: collapse; font-size: 13px; } .vp-hist th { text-align: left; font-size: 11px; color: #6b7280; text-transform: uppercase; border-bottom: 1px solid #e5e7eb; padding: 3px 6px; }
.vp-hist td { padding: 3px 6px; border-bottom: 1px solid #f1f5f9; } .vp-hist .num { text-align: right; }
.vp-sinhist { padding: 20px; text-align: center; }

/* Contaduría › Comprobantes emitidos (comprobantes.js, 11/10/2026) */
.ce-solapas { margin-bottom: 8px; flex-wrap: wrap; } .ce-solapas b { font-weight: 400; color: #6b7280; }
.ce-kpis { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 8px; margin-bottom: 10px; }
.ce-kpis > div { background: #fff; border: 1px solid #e3e8e5; border-radius: 10px; padding: 8px 12px; min-width: 0; }
.ce-kpis span { display: block; font-size: 12px; color: #6b7280; }
.ce-kpis b { display: block; font-size: 20px; color: #111827; white-space: nowrap; }
.ce-kpis small { display: block; font-size: 11px; color: #6b7280; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ce-kpis .ce-k-ok b { color: #15803d; } .ce-kpis .ce-k-pend b { color: #b45309; }
.ce-graficos { display: grid; grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr); gap: 10px; }
.ce-graficos .tarjeta { margin: 0; min-width: 0; }
.ce-h { display: flex; align-items: baseline; justify-content: space-between; gap: 8px; font-size: 13.5px; margin: 0 0 8px; }
.ce-h > span { font-size: 11.5px; font-weight: 400; color: #6b7280; }
.ce-bar { display: grid; grid-template-columns: minmax(0, 190px) minmax(0, 1fr) auto; align-items: center; gap: 8px; padding: 3px 4px; border-radius: 6px; cursor: pointer; font-size: 12.5px; }
.ce-bar:hover { background: #f1f5f9; } .ce-bar.ce-otra { cursor: default; } .ce-bar.ce-otra:hover { background: none; }
.ce-bar-nom { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .ce-bar-nom i { font-style: normal; color: #9aa3ad; font-size: 11px; }
.ce-bar-pista { height: 12px; background: #eef2f6; border-radius: 4px; overflow: hidden; } .ce-bar-pista span { display: block; height: 100%; background: #2563eb; border-radius: 0 4px 4px 0; }
.ce-otra .ce-bar-pista span { background: #9aa3ad; }
.ce-bar-val { white-space: nowrap; font-variant-numeric: tabular-nums; text-align: right; min-width: 118px; } .ce-bar-val i { font-style: normal; color: #6b7280; font-size: 11px; }
.ce-meses { display: flex; align-items: flex-end; gap: 4px; height: 220px; padding-top: 4px; }
.ce-mes { flex: 1; min-width: 0; display: flex; flex-direction: column; height: 100%; }
.ce-mes-barras { flex: 1; display: flex; align-items: flex-end; justify-content: center; gap: 2px; border-bottom: 1px solid #cbd5e1; }
.ce-mes-barras span { width: 40%; max-width: 14px; border-radius: 3px 3px 0 0; } .ce-mf { background: #2563eb; } .ce-mc { background: #16a34a; }
.ce-mes-val { font-size: 10px; color: #374151; text-align: center; white-space: nowrap; overflow: hidden; margin-top: 2px; }
.ce-mes-nom { font-size: 10.5px; color: #6b7280; text-align: center; }
.ce-filtro { margin-bottom: 8px; } .ce-filtro button { margin-left: 10px; }
.etiqueta.ce-fc { background: #e0ecff; color: #1d4ed8; } .etiqueta.ce-nc { background: #fee2e2; color: #b42318; } .etiqueta.ce-nd { background: #fef3c7; color: #92400e; }
.etiqueta.ce-ok { background: #dcfce7; color: #15803d; } .etiqueta.ce-parcial { background: #fef3c7; color: #92400e; }
.etiqueta.ce-pend { background: #ffedd5; color: #c2410c; } .etiqueta.ce-anul { background: #f1f5f9; color: #64748b; }
tr.ce-anulada td.codigo { text-decoration: line-through; } td.ce-neg { color: #b42318; }
@media (max-width: 1100px) { .ce-kpis { grid-template-columns: repeat(3, minmax(0, 1fr)); } .ce-graficos { grid-template-columns: minmax(0, 1fr); } }
.ce-tabla { table-layout: fixed; width: 100%; } .ce-tabla td { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ce-kpis b { font-size: 17px; font-variant-numeric: tabular-nums; }
.ce-bar-val { min-width: 168px; }
.ce-mesh { display: grid; grid-template-columns: 52px minmax(0, 1fr) auto; align-items: center; gap: 8px; padding: 3px 4px; font-size: 12.5px; }
.ce-mesh-nom { color: #374151; white-space: nowrap; }
.ce-mesh-pista { display: flex; flex-direction: column; gap: 2px; background: #eef2f6; border-radius: 4px; padding: 2px 0; overflow: hidden; }
.ce-mesh-pista span { display: block; height: 5px; border-radius: 0 3px 3px 0; min-width: 0; }
.ce-mesh-val { white-space: nowrap; text-align: right; font-variant-numeric: tabular-nums; line-height: 1.15; }
.ce-mesh-val i { display: block; font-style: normal; font-size: 11px; color: #15803d; }
