/* Los valores compartidos se cargan desde IdentidadVisual; aquí solo hay reglas de presentación. */

/* Informes y soportes documentales */
.rejilla-informe-financiero { display: grid; grid-template-columns: minmax(280px, .72fr) minmax(520px, 1.28fr); gap: var(--espacio-5); }
.resumen-ejecutivo-informe .lista-datos { margin-bottom: var(--espacio-4); }
.pie-informe-consultivo { color: var(--color-texto-suave); font-size:var(--texto-auxiliar); margin: var(--espacio-4) 0 0; }
.tabla-soportes td small { display: block; margin-top: 3px; color: var(--color-texto-suave); }
.campo-archivo-soporte input { padding: 8px; }
.tabla-soportes { margin-top: var(--espacio-2); }

/* Exportaciones y control de datos */
.panel-control-informacion { margin-top: var(--espacio-5); }
.aviso-almacenamiento { display: block; margin-bottom: var(--espacio-4); text-decoration: none; }
.aviso-almacenamiento-medio { border-color: #d6a518; background: #fff5cf; }
.aviso-almacenamiento-alto { border-color: #e07a18; background: #ffead4; }
.aviso-almacenamiento-critico { border-color: var(--color-peligro-borde); color: var(--color-peligro); background: var(--color-peligro-suave); }
@media (max-width: 1100px) {
  .rejilla-informe-financiero { grid-template-columns: 1fr; }
}

/* v3.10: tipografía canónica, edición de pagos y paginación adaptativa. */
.pagina .tabla tbody td {
  font-family: var(--fuente-familia);
  font-size: var(--texto-cuerpo);
  font-weight: var(--peso-regular);
  line-height: var(--interlineado-base);
}
.pagina .tabla tbody td small {
  font-size: var(--texto-auxiliar);
  line-height: var(--interlineado-base);
}
.popup-editar-pago { width: min(570px, calc(100% - 32px)); }
.contenido-editar-pago { display: grid; gap: var(--espacio-6); padding: var(--espacio-7); }
.contenido-editar-pago .selector-fecha-simple { display: grid; gap: var(--espacio-2); }
.aviso-correccion-pago { margin: 0; color: var(--color-texto-suave); font-size: var(--texto-auxiliar); line-height: var(--interlineado-base); }
.paginacion-servidor {
  min-height: 72px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--espacio-5);
  margin-top: var(--espacio-6);
  padding: var(--espacio-5) var(--espacio-6);
  border: 1px solid var(--color-borde-panel);
  border-radius: var(--radio-panel);
  background: var(--color-superficie);
  box-shadow: var(--sombra-panel);
}
.paginacion-servidor p { margin: 0; color: var(--color-texto-suave); font-size: var(--texto-cuerpo); }
.paginacion-servidor-acciones { display: flex; align-items: center; justify-content: flex-end; flex-wrap: wrap; gap: var(--separacion-acciones); }
.paginacion-numero {
  width: var(--alto-control);
  height: var(--alto-control);
  display: inline-grid;
  place-items: center;
  border: 1px solid var(--color-borde);
  border-radius: var(--radio-control);
  color: var(--color-marca-azul-oscuro);
  background: var(--color-superficie);
  font-size: var(--texto-cuerpo);
  font-weight: var(--peso-seminegrita);
  text-decoration: none;
}
.paginacion-numero:is(:hover,:focus-visible),.paginacion-numero.activo { color: var(--color-texto-inverso); border-color: var(--color-marca-azul); background: var(--color-marca-azul); }
@media (max-width: 680px) {
  .paginacion-servidor { align-items: stretch; flex-direction: column; }
  .paginacion-servidor-acciones { justify-content: flex-start; }
}
*, *::before, *::after { box-sizing: border-box; }
textarea { resize: none; }
[hidden] { display: none !important; }
.texto-solo-lectores {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}
html { max-width: 100%; overflow-x: hidden; color-scheme: light; font-size: var(--texto-auxiliar); }
body { max-width: 100%; min-width: 320px; margin: 0; overflow-x: hidden; color: var(--color-texto); background: var(--color-fondo); font: var(--texto-cuerpo)/var(--interlineado-base) var(--fuente-familia); }
button, input, select, textarea { font: inherit; }
a { color: var(--color-accion-informativa); }

/*
 * Regla global de legibilidad: ningún texto funcional puede bajar de 12 px,
 * incluso si una vista antigua hereda o intenta declarar un tamaño menor.
 */
body :where(small, label, th, td, p, span, a, button, input, select, textarea, legend, time) {
  font-size: max(var(--texto-auxiliar), 1em);
}

/*
 * Los valores se escriben directamente. Los controles de incremento no son
 * útiles para cifras monetarias, cantidades grandes ni porcentajes.
 */
input[type="number"] {
  appearance: textfield;
  -moz-appearance: textfield;
}
input[type="number"]::-webkit-inner-spin-button,
input[type="number"]::-webkit-outer-spin-button {
  margin: 0;
  -webkit-appearance: none;
}

.barra-lateral {
  position: fixed;
  inset: 0 0 0 auto;
  z-index: 30;
  width: var(--barra-colapsada);
  display: flex;
  flex-direction: column;
  color: var(--color-texto-inverso-suave);
  box-shadow: -10px 0 30px rgba(15, 65, 150, .16);
  transform-origin: right center;
  transition: width .32s cubic-bezier(.22, 1, .36, 1),
    box-shadow .28s ease;
}

.marca {
  position: relative;
  min-height: 88px;
  height: 88px;
  display: block;
  flex: 0 0 88px;
  padding: 0;
  border-bottom: 1px solid rgba(255,255,255,.1);
  color: #fff;
  text-decoration: none;
}
.marca > span:last-child {
  position: absolute;
  top: 50%;
  right: var(--barra-colapsada);
  width: 185px;
  max-width: 0;
  opacity: 0;
  overflow: hidden;
  transform: translate(13px, -50%);
  transition:
    max-width .32s cubic-bezier(.22, 1, .36, 1),
    opacity .18s ease,
    transform .32s cubic-bezier(.22, 1, .36, 1);
}
.marca > span:last-child { display: grid; min-width: 0; }
.marca strong { font-size: var(--texto-cuerpo); line-height: 1.25; }
.marca small { color: #a8c7e4; font-size:var(--texto-auxiliar); line-height: 1.35; white-space: normal; }
.marca .marca-version { margin-top: 3px; color: #fff; font-weight: 700; }
.marca-logo {
  position: absolute;
  top: 50%;
  right: 21px;
  width: 34px;
  height: 38px;
  display: block;
  object-fit: contain;
  transform: translateY(-50%);
}
.marca-simbolo { width: 42px; height: 42px; display: grid; place-items: center; flex: 0 0 auto; border: 1px solid rgba(255,255,255,.3); border-radius: var(--radio-unico); color: #fff; background: rgba(255,255,255,.11); font-weight: 700; }
.marca-simbolo-grande { width: 62px; height: 62px; font-size:var(--texto-titulo); }

.navegacion {
  display: grid;
  flex: 1 1 auto;
  align-content: start;
  gap: 5px;
  padding: 16px 11px;
}

.navegacion {
  scrollbar-width: none;
}

.navegacion::-webkit-scrollbar {
  width: 0;
  height: 0;
}

.navegacion-grupo {
  min-width: 0;
}

.navegacion-fila {
  position: relative;
  min-width: 0;
  height: 47px;
  display: flex;
  align-items: center;
}

.navegacion-principal {
  position: relative;
  width: 100%;
  height: 47px;
  min-height: 47px;
  display: flex;
  align-items: center;
  justify-content: flex-start;
  gap: 0;
  padding: 8px 43px 8px 8px;
  border: 0;
  border-radius: var(--radio-unico);
  color: inherit;
  background: transparent;
  text-decoration: none;
  text-align: left;
  font-family: inherit;
  font-size: var(--texto-cuerpo);
  font-weight: 700;
  white-space: nowrap;
  overflow: hidden;
  cursor: pointer;
  transition: background-color .2s ease;
}

.navegacion-principal > .navegacion-icono {
  position: absolute;
  right: calc((var(--barra-colapsada) - var(--tamano-icono-navegacion)) / 2 - 11px);
  top: 50%;
  transform: translateY(-50%);
}

.navegacion-principal:hover,
.navegacion-principal.activo {
  color: #fff;
  background: rgba(255,255,255,.12);
}

.navegacion-principal > .navegacion-texto {
  max-width: 0;
  opacity: 0;
  overflow: hidden;
  transform: translateX(14px);
  transition: max-width .3s cubic-bezier(.22, 1, .36, 1),
    opacity .2s ease,
    transform .34s cubic-bezier(.22, 1, .36, 1);
}

.navegacion-desplegar {
  position: absolute;
  right: 5px;
  width: 30px;
  height: 34px;
  display: none;
  place-items: center;
  padding: 0;
  border: 0;
  border-radius: var(--radio-unico);
  color: #d9ebfa;
  background: transparent;
  cursor: pointer;
}

.navegacion-desplegar:hover {
  color: #fff;
  background: rgba(255,255,255,.12);
}

.navegacion-desplegar svg {
  width: 17px;
  height: 17px;
  transition: transform .2s ease;
}

.navegacion-grupo.submenu-abierto .navegacion-desplegar svg {
  transform: rotate(180deg);
}

.navegacion-submenu {
  max-height: 0;
  display: none;
  gap: 2px;
  margin: 0 0 0 43px;
  opacity: 0;
  overflow: hidden;
  transition: max-height .25s ease, opacity .18s ease, margin-top .25s ease, margin-bottom .25s ease;
}

.menu-expandido .navegacion-submenu {
  display: grid;
}

.navegacion-submenu a {
  min-height: 34px;
  display: flex;
  align-items: center;
  padding: 7px 10px;
  border-left: 2px solid rgba(255,255,255,.18);
  color: #c9dff1;
  font-size: var(--texto-auxiliar);
  font-weight: 400;
  text-decoration: none;
  white-space: normal;
}

.navegacion-submenu a:hover,
.navegacion-submenu a.activo {
  color: #fff;
  border-left-color: var(--color-marca-azul);
  background: rgba(255,255,255,.08);
}

.navegacion-grupo.submenu-abierto .navegacion-submenu {
  max-height: 280px;
  margin-top: 4px;
  margin-bottom: 6px;
  opacity: 1;
}

.navegacion-icono {
  width: var(--tamano-icono-navegacion);
  height: var(--tamano-icono-navegacion);
  display: grid;
  place-items: center;
  flex: 0 0 auto;
  border: 1px solid rgba(255,255,255,.20);
  border-radius: var(--radio-icono-navegacion);
  background: rgba(255,255,255,.08);
  box-shadow: var(--sombra-icono-navegacion);
  transition: background-color .2s ease, border-color .2s ease, box-shadow .2s ease;
}

.navegacion-icono svg {
  width: var(--tamano-svg-icono-navegacion);
  height: var(--tamano-svg-icono-navegacion);
  display: block;
  margin: auto;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.7;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.navegacion-principal:hover .navegacion-icono,
.navegacion-principal.activo .navegacion-icono,
.control-lateral:hover .navegacion-icono {
  border-color: rgba(255,255,255,.34);
  background: rgba(255,255,255,.16);
  box-shadow: 0 5px 12px rgba(0,0,0,.26);
}

.control-instalar-pwa {
  margin-top: 0;
  margin-bottom: 5px;
}
.control-lateral {
  position: relative;
  height: 47px;
  min-height: 47px;
  display: flex;
  align-items: center;
  justify-content: flex-start;
  gap: 0;
  margin: 0 11px 5px;
  padding: 8px 43px 8px 8px;
  overflow: hidden;
  border: 0;
  border-radius: var(--radio-unico);
  color: #d9ebfa;
  background: transparent;
  font-size: var(--texto-cuerpo);
  font-weight: 700;
  white-space: nowrap;
  cursor: pointer;
  transition: background-color .2s ease;
}

.control-lateral > .navegacion-icono {
  position: absolute;
  right: calc((var(--barra-colapsada) - var(--tamano-icono-navegacion)) / 2 - 11px);
  top: 50%;
  transform: translateY(-50%);
}

.control-lateral:hover { color: #fff; background: rgba(255,255,255,.12); }
.control-lateral > span:last-child {
  max-width: 0;
  opacity: 0;
  overflow: hidden;
  transform: translateX(14px);
  transition: max-width .3s cubic-bezier(.22,1,.36,1), opacity .2s ease, transform .34s cubic-bezier(.22,1,.36,1);
}

.menu-expandido .barra-lateral {
  width: var(--barra);
  box-shadow: -18px 0 42px rgba(15, 65, 150, .22);
}

.navegacion-configuracion {
  position: relative;
  flex: 0 0 47px;
  margin: 0 11px 5px;
}

.navegacion-configuracion .navegacion-submenu {
  position: absolute;
  right: 0;
  bottom: calc(100% + 5px);
  z-index: 2;
  margin-left: 0;
  padding: 0;
  border: 0 solid rgba(255,255,255,.12);
  border-radius: var(--radio-unico);
  background: transparent;
  box-shadow: none;
  pointer-events: none;
}

.navegacion-configuracion.submenu-abierto .navegacion-submenu {
  display: grid;
  margin-top: 0;
  margin-bottom: 0;
  padding: 5px;
  border-width: 1px;
  background: #0b336f;
  box-shadow: 0 -12px 30px rgba(0,0,0,.24);
  pointer-events: auto;
  max-height: min(430px, calc(100vh - 230px));
  overflow-x: hidden;
  overflow-y: auto;
  scrollbar-width: thin;
}

.menu-expandido .marca > span:last-child {
  max-width: 185px;
  opacity: 1;
  transform: translate(0, -50%);
}

.menu-expandido .navegacion-principal {
  justify-content: flex-start;
  padding-right: 53px;
  padding-left: 10px;
}

.menu-expandido .navegacion-principal > .navegacion-texto {
  max-width: 190px;
  opacity: 1;
  transform: none;
}

.menu-expandido .navegacion-desplegar {
  right: auto;
  left: 5px;
  display: grid;
}

.menu-expandido .control-lateral {
  justify-content: flex-start;
  padding-right: 43px;
  padding-left: 10px;
}

.menu-expandido .control-lateral > span:last-child {
  max-width: 190px;
  opacity: 1;
  transform: none;
}

.menu-expandido .navegacion-grupo:nth-child(2) .navegacion-texto {
  transition-delay: .025s;
}

.menu-expandido .navegacion-grupo:nth-child(3) .navegacion-texto {
  transition-delay: .05s;
}

.menu-expandido .navegacion-grupo:nth-child(4) .navegacion-texto {
  transition-delay: .075s;
}

.menu-expandido .navegacion-grupo:nth-child(5) .navegacion-texto {
  transition-delay: .1s;
}

.menu-expandido .navegacion-grupo:nth-child(6) .navegacion-texto {
  transition-delay: .125s;
}

.menu-expandido .navegacion-grupo:nth-child(7) .navegacion-texto {
  transition-delay: .15s;
}

.menu-expandido .navegacion-grupo:nth-child(8) .navegacion-texto {
  transition-delay: .175s;
}

.menu-expandido .navegacion-grupo:nth-child(9) .navegacion-texto {
  transition-delay: .2s;
}

.perfil { position: relative; flex: 0 0 69px; height: 69px; min-height: 69px; margin-top: 0; padding: 0; border-top: 1px solid rgba(255,255,255,.1); }
.perfil-enlace { position: absolute; inset: 0; display: block; color: inherit; text-decoration: none; overflow: hidden; }
.perfil-avatar { position: absolute; top: 50%; right: calc((var(--barra-colapsada) - 36px) / 2); transform: translateY(-50%); width: 36px; height: 36px; display: grid; place-items: center; overflow: hidden; border-radius: 50%; color: #083474; background: #fff; font-weight: 700; text-transform: uppercase; }
.perfil-avatar img { width: 100%; height: 100%; display: block; object-fit: cover; object-position: 50% 50%; }
.perfil-datos {
  position: absolute;
  right: var(--barra-colapsada);
  top: 50%;
  width: calc(var(--barra) - var(--barra-colapsada) - 68px);
  min-width: 0;
  max-width: 0;
  display: grid;
  flex: 1;
  opacity: 0;
  overflow: hidden;
  transform: translate(12px, -50%);
  transition:
    max-width .32s cubic-bezier(.22, 1, .36, 1),
    opacity .2s ease,
    transform .32s cubic-bezier(.22, 1, .36, 1);
}
.perfil-datos strong, .perfil-datos small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.perfil-datos strong { color: #fff; font-size:var(--texto-auxiliar); }
.perfil-datos small { color: #9fc0de; font-size:var(--texto-auxiliar); text-transform: capitalize; }
.formulario-salir {
  position: absolute;
  top: 50%;
  left: 16px;
  transform: translateY(-50%);
  max-width: 0;
  margin: 0;
  color: #fff;
  opacity: 0;
  overflow: hidden;
  transition: max-width .28s ease, opacity .2s ease;
}
.formulario-salir button { padding: 0; border: 0; color: inherit; background: transparent; font: inherit; font-size:var(--texto-auxiliar); cursor: pointer; }

.menu-expandido .perfil-datos {
  max-width: calc(var(--barra) - var(--barra-colapsada) - 68px);
  opacity: 1;
  transform: translate(0, -50%);
}

.menu-expandido .formulario-salir {
  max-width: 40px;
  opacity: 1;
}

.espacio-trabajo {
  width: calc(100% - var(--barra-colapsada));
  min-width: 0;
  min-height: 100vh;
  margin-right: var(--barra-colapsada);
  overflow-x: clip;
  transition: margin-right .32s cubic-bezier(.22, 1, .36, 1);
}

.menu-expandido .espacio-trabajo {
  width: calc(100% - var(--barra));
  margin-right: var(--barra);
}

.pagina { width: 100%; max-width: 100%; min-width: 0; margin: 0; padding: var(--margen-contenido-y) var(--margen-contenido); }
.pagina > *,
.rejilla-panel > * { min-width: 0; }
.aviso-demostracion { padding: 9px 20px; color: var(--color-advertencia); background: var(--color-advertencia-suave); border-bottom: 1px solid var(--color-advertencia-borde); font-size:var(--texto-auxiliar); text-align: center; }

.encabezado-pagina:not(.hd-encabezado-pagina) {
  margin-bottom: 24px;
}

.sobrelinea { margin: 0 0 6px; color: var(--color-marca-azul); font-size:var(--texto-auxiliar); font-weight: 700; letter-spacing: .06em; text-transform: uppercase; }
.sobrelinea strong { margin-left: 8px; color: var(--color-texto-suave); font-weight: 400; letter-spacing: 0; text-transform: none; }

.encabezado-pagina:not(.hd-encabezado-pagina) > .boton {
  flex: 0 0 auto;
}

.acciones-pagina { flex: 0 0 auto; }
.boton-nuevo-movimiento { margin: 0; }
.boton:not(.accion-icono) > svg { width: var(--tamano-svg-icono-accion); height: var(--tamano-svg-icono-accion); flex: 0 0 var(--tamano-svg-icono-accion); margin-inline: 1px 0; }
.boton-primario {
  --color-relieve: var(--color-marca-azul);
  color: var(--color-texto-inverso);
  border-color: var(--relieve-borde);
  background: var(--relieve-fondo);
  box-shadow: var(--sombra-relieve-control);
}
.boton-primario:hover:not(:disabled) { filter: brightness(1.04); }
.boton-primario:active:not(:disabled) { box-shadow: inset 0 1px 4px rgba(4,45,94,.30), 0 1px 0 #073d79; }
.boton-secundario { border-color: var(--color-borde); color: var(--color-marca-azul-oscuro); background: var(--color-superficie); }
.boton-peligro { border-color: var(--alerta-peligro-borde); color: var(--alerta-peligro-texto); background: var(--alerta-peligro-fondo); }
.boton-texto { color: var(--color-texto-suave); background: transparent; }
.boton:disabled, .accion-icono:disabled { opacity: .45; cursor: not-allowed; }

.tono-positivo { --tono-suave: var(--color-exito-suave); --color-relieve: var(--color-exito); }
.tono-negativo { --tono-suave: var(--color-peligro-suave); --color-relieve: var(--color-peligro); }
.tono-advertencia { --tono-suave: var(--color-advertencia-suave); --color-relieve: var(--color-advertencia); }
.tono-informativo { --tono-suave: var(--color-fila-cebra); --color-relieve: var(--color-marca-azul); }
.tono-neutro { --tono-suave: var(--alerta-neutral-fondo); --color-relieve: var(--color-accion-neutral); }

.rejilla-panel { display: grid; grid-template-columns: minmax(0, 1.45fr) minmax(300px, .55fr); gap: 20px; }
.panel:not(.hd-panel) { overflow: hidden; border: 1px solid var(--color-borde-panel); border-radius: var(--radio-panel); background: var(--color-superficie); box-shadow: var(--sombra-panel); }
/* Los paneles heredados conservan la misma estructura definida más abajo. */
.encabezado-relieve-verde > header, header.encabezado-relieve-verde { --color-relieve: var(--color-exito); }
.encabezado-relieve-rojo > header, header.encabezado-relieve-rojo { --color-relieve: var(--color-peligro); }
.encabezado-relieve-azul > header, header.encabezado-relieve-azul { --color-relieve: var(--color-marca-azul-oscuro); }

/* Inicio: lectura financiera, comercial y operativa en una sola actualización. */

.estado-cotizacion-icono svg {
  width: var(--tamano-svg-icono-panel);
  height: var(--tamano-svg-icono-panel);
}

/* Perfil personal: una sola carga de imagen reutilizada por toda la interfaz. */
.campo-archivo-oculto { position: absolute; width: 1px; height: 1px; opacity: 0; pointer-events: none; }

.estado-cotizacion-icono {
  --color-relieve: currentColor;
  width: var(--tamano-icono-panel);
  height: var(--tamano-icono-panel);
  display: grid;
  place-items: center;
  border: 1px solid color-mix(in srgb,currentColor 66%,black);
  border-radius: var(--radio-icono-panel);
  color: currentColor;
  background: linear-gradient(180deg,rgba(255,255,255,.92),rgba(255,255,255,.55));
  box-shadow: inset 0 1px rgba(255,255,255,.86), inset 0 -2px rgba(4,23,49,.10), 0 3px 0 color-mix(in srgb,currentColor 42%,transparent), 0 7px 13px color-mix(in srgb,currentColor 17%,transparent);
  font-weight: 700;
}
.estado-cotizacion-solicitud {
  color: var(--estado-solicitud-texto);
  background: var(--estado-solicitud-fondo);
}
.estado-cotizacion-enviada {
  color: var(--estado-enviada-texto);
  background: var(--estado-enviada-fondo);
}
.estado-cotizacion-aprobada {
  color: var(--estado-aprobada-texto);
  background: var(--estado-aprobada-fondo);
}
.estado-cotizacion-produccion {
  color: var(--estado-produccion-texto);
  background: var(--estado-produccion-fondo);
}
.estado-cotizacion-entregada {
  color: var(--estado-entregada-texto);
  background: var(--estado-entregada-fondo);
}
.estado-cotizacion-registrada {
  color: var(--estado-registrada-texto);
  background: var(--estado-registrada-fondo);
}
.estado-cotizacion-pendiente_factura {
  color: var(--estado-pendiente-factura-texto);
  background: var(--estado-pendiente-factura-fondo);
}
.estado-cotizacion-facturada {
  color: var(--estado-facturada-texto);
  background: var(--estado-facturada-fondo);
}
.tabla-inicio { min-width: 680px; }
.tabla-inicio th,.tabla-inicio td { padding: 12px 14px; }
.tabla-inicio td a { color: var(--color-marca-azul-oscuro); text-decoration: none; }
.tabla-inicio .celda-dinero { text-align: right; white-space: nowrap; }
.estado-panel-solicitud { color:var(--estado-solicitud-texto);background:var(--estado-solicitud-fondo); }
.estado-panel-enviada { color:var(--estado-enviada-texto);background:var(--estado-enviada-fondo); }
.estado-panel-aprobada { color:var(--estado-aprobada-texto);background:var(--estado-aprobada-fondo); }
.estado-panel-produccion { color:var(--estado-produccion-texto);background:var(--estado-produccion-fondo); }
.estado-panel-entregada { color:var(--estado-entregada-texto);background:var(--estado-entregada-fondo); }
.estado-panel-registrada { color:var(--estado-registrada-texto);background:var(--estado-registrada-fondo); }
.estado-panel-pendiente_factura { color:var(--estado-pendiente-factura-texto);background:var(--estado-pendiente-factura-fondo); }
.estado-panel-facturada { color:var(--estado-facturada-texto);background:var(--estado-facturada-fondo); }
.lista-resumen { display: grid; padding: 10px 17px 18px; }
.lista-resumen span { min-height: 50px; display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 10px; border-bottom: 1px solid #edf2f6; font-size:var(--texto-auxiliar); }
.lista-resumen i { width: 9px; height: 9px; border-radius: 50%; background: var(--color-marca-azul); }
.lista-resumen b { color: var(--color-marca-azul-oscuro); font-size: var(--texto-titulo); }
.etiqueta { display: inline-flex; padding: 5px 9px; border-radius: var(--radio-unico); color: var(--color-marca-azul-oscuro); background: var(--color-fila-cebra); font-size:var(--texto-auxiliar); font-weight: 700; }
.alerta { margin: 0 0 18px; padding: 12px 14px; border: 1px solid transparent; border-radius: var(--radio-unico); font-size:var(--texto-auxiliar); }
.alerta-error { color: var(--alerta-peligro-texto); border-color: var(--alerta-peligro-borde); background: var(--alerta-peligro-fondo); }
.alerta-exito { color: var(--alerta-exito-texto); border-color: var(--alerta-exito-borde); background: var(--alerta-exito-fondo); }
.alerta-aviso { color: var(--alerta-advertencia-texto); border-color: var(--alerta-advertencia-borde); background: var(--alerta-advertencia-fondo); }

.acciones-filtros-finanzas { min-height: var(--alto-control); display: flex; align-items: center; justify-content: flex-end; gap: var(--espacio-3); }
.acciones-filtros-finanzas .boton { min-width: 86px; }
.contador-resultados-panel { flex: 0 0 auto; color: var(--color-texto-inverso-suave); font-size: var(--texto-auxiliar); font-weight: var(--peso-seminegrita); }
.tabla-contenedor { width: 100%; min-width: 0; max-width: 100%; overflow-x: auto; overscroll-behavior-x: contain; }
.tabla:not(.hd-tabla) th, .tabla:not(.hd-tabla) td { padding: 14px 17px; border-bottom: 0; text-align: left; vertical-align: middle; }
.tabla:not(.hd-tabla) th { color: #fff; background: var(--color-marca-azul); font-size:var(--texto-auxiliar); letter-spacing: .035em; text-align: center; text-transform: uppercase; }
.tabla:not(.hd-tabla) td { font-size:var(--texto-auxiliar); }
.tabla:not(.hd-tabla) td strong, .tabla:not(.hd-tabla) td small { display: block; }
.tabla:not(.hd-tabla) td strong { color: var(--color-texto-fuerte); font-size: var(--texto-cuerpo); }
.tabla:not(.hd-tabla) td small { margin-top: 2px; color: var(--color-texto-suave); }
.tabla:not(.hd-tabla) .celda-dinero { text-align: right; white-space: nowrap; }
.tabla:not(.hd-tabla) td a { color: var(--color-marca-azul); font-weight: 700; text-decoration: none; }
.tabla:not(.hd-tabla) tbody tr:nth-child(odd of :not([hidden])) { background: var(--color-superficie); }
.tabla:not(.hd-tabla) tbody tr:nth-child(even of :not([hidden])) { background: var(--color-fila-cebra); }
.tabla:not(.hd-tabla) tbody tr:hover { background: var(--color-superficie-terciaria); }
.tabla-accion { width: 1%; min-width: 72px; text-align: center; white-space: nowrap; }
.tabla-accion a { color: var(--color-marca-azul); font-weight: 700; text-decoration: none; }
.acciones-tabla { display: flex; align-items: center; justify-content: flex-end; gap: var(--separacion-acciones); }
.acciones-tabla form { margin: 0; }
.accion-icono,
.tabla td a.accion-icono {
  --color-relieve: var(--color-accion-informativa);
  width: var(--tamano-icono-accion);
  height: var(--tamano-icono-accion);
  min-width: var(--tamano-icono-accion);
  min-height: var(--tamano-icono-accion);
  flex: 0 0 var(--tamano-icono-accion);
  display: inline-grid;
  place-items: center;
  padding: 0;
  border: 1px solid rgba(255,255,255,.24);
  border-radius: var(--radio-icono-navegacion);
  color: var(--color-texto-inverso);
  background: var(--relieve-fondo);
  cursor: pointer;
  box-shadow: var(--sombra-relieve-icono);
  transition: filter .18s ease, transform .18s ease, box-shadow .18s ease;
}
.accion-icono:hover:not(:disabled) { filter: brightness(.92); transform: translateY(-1px); }
.accion-icono:active:not(:disabled) { box-shadow: inset 0 2px 5px rgba(4,23,49,.28), 0 1px 3px rgba(15,65,150,.18); transform: translateY(1px); }
.accion-icono svg { width: var(--tamano-svg-icono-accion); height: var(--tamano-svg-icono-accion); display: block; margin: auto; fill: none; stroke: currentColor; stroke-width: 1.8; }
.accion-ver { --color-relieve: var(--color-accion-informativa); }
.accion-editar { --color-relieve: var(--color-accion-informativa); }
.accion-duplicar { --color-relieve: var(--color-accion-neutral); }
.accion-archivar { --color-relieve: var(--color-accion-advertencia); }
.accion-restaurar { --color-relieve: var(--color-accion-exito); }
.accion-pagar { --color-relieve: var(--color-accion-exito); }
.accion-anular { --color-relieve: var(--color-accion-peligro); }
.panel-calidad { margin-bottom: 24px; }
.grupo-calidad { border-bottom: 1px solid var(--color-borde); }
.grupo-calidad:last-child { border-bottom: 0; }
.grupo-calidad > summary {
  min-height: 54px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 13px 20px;
  color: var(--color-texto-fuerte);
  font-size: var(--texto-cuerpo);
  font-weight: 700;
  cursor: pointer;
}
.grupo-calidad > summary b { color: var(--color-marca-azul); font-size:var(--texto-auxiliar); white-space: nowrap; }
.grupo-calidad[open] > summary { background: var(--color-superficie-secundaria); }
.grupo-duplicado { padding: 14px 20px 18px; border-top: 1px solid var(--color-borde); }
.grupo-duplicado > p { margin: 0 0 10px; color: var(--color-texto-suave); font-size:var(--texto-auxiliar); font-weight: 700; }
.calidad-sin-hallazgos { margin: 0; padding: 18px 20px; color: var(--color-exito); font-size:var(--texto-auxiliar); }
.aviso-diagnostico {
  display: grid;
  gap: 4px;
  margin-bottom: 20px;
  padding: 14px 16px;
  color: var(--alerta-advertencia-texto);
  border: 1px solid var(--alerta-advertencia-borde);
  border-radius: var(--radio-unico);
  background: var(--alerta-advertencia-fondo);
}
.aviso-diagnostico strong,
.aviso-diagnostico span { display: block; }
.tabla-accion-corta { width: 88px; min-width: 88px; }
.barra-formulario-configuracion { display: flex; justify-content: flex-end; gap: var(--separacion-acciones); padding: var(--espacio-7) var(--espacio-9) var(--espacio-9); }
.tabla-ordenable {
  width: 100%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
  padding: 0;
  border: 0;
  color: inherit;
  background: transparent;
  font: inherit;
  letter-spacing: inherit;
  text-align: inherit;
  text-transform: inherit;
  cursor: pointer;
}
.celda-dinero .tabla-ordenable { justify-content: flex-end; }
.tabla-orden-indicador { width: 14px; height: 18px; display: inline-grid; place-items: center; flex: 0 0 14px; color: currentColor; opacity: .9; line-height: 1; }
.tabla-orden-indicador svg { width: 12px; height: 16px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
th[aria-sort="ascending"] .tabla-ordenable .tabla-orden-indicador,
th[aria-sort="descending"] .tabla-ordenable .tabla-orden-indicador { color: #fff; opacity: 1; }

.grupo-etiquetas { display: flex; gap: 5px; flex-wrap: wrap; }

.formulario-modulo { display: grid; gap: 18px; }
.seccion-formulario > header .paso { width: 30px; height: 30px; display: grid; place-items: center; border-radius: 50%; color: var(--color-marca-azul-oscuro); background: var(--color-fila-cebra); font-size:var(--texto-auxiliar); font-weight: 700; }
.campo-amplio { grid-column: 1 / -1; }
.celda-rentabilidad-positivo { color: var(--color-exito); font-weight: 700; }
.celda-rentabilidad-advertencia { color: var(--color-advertencia); font-weight: 700; }
.celda-rentabilidad-negativo { color: var(--color-peligro); font-weight: 700; }
.grupo-opciones { min-height: 66px; display: flex; align-items: center; align-self: end; gap: 18px; margin: 0; padding: 12px 14px; border: 1px solid #cbdde9; border-radius: var(--radio-unico); background: #fff; }
.grupo-opciones legend { padding: 0 5px; color: var(--color-texto); font-size:var(--texto-auxiliar); font-weight: 700; }
.grupo-opciones label { display: flex; align-items: center; gap: 7px; font-size:var(--texto-auxiliar); }
.grupo-opciones input { width: 17px; min-height: 17px; }
.opciones-ruta { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; padding: 20px; background: var(--color-superficie-secundaria); }
.opcion-ruta { position: relative; display: block; }
.opcion-ruta input { position: absolute; opacity: 0; pointer-events: none; }
.opcion-ruta span { min-height: 112px; display: grid; align-content: center; gap: 5px; padding: 18px; border: 1px solid #cbdde9; border-radius: var(--radio-unico); background: #fff; cursor: pointer; }
.opcion-ruta strong { color: var(--color-texto-fuerte); }
.opcion-ruta small { color: var(--color-texto-suave); }
.opcion-ruta input:checked + span { border-color: var(--color-marca-azul); background: var(--color-fila-cebra); box-shadow: var(--anillo-foco); }
.campo-moneda { display: flex; align-items: center; border: 1px solid var(--color-borde); border-radius: var(--radio-unico); background: #fff; overflow: hidden; }
.campo-moneda > span { padding-left: 12px; color: var(--color-texto-suave); }
.campo-moneda input { border: 0; box-shadow: none !important; }
[data-moneda], input[name="valor_compra"], .celda-dinero { text-align: right; font-variant-numeric: tabular-nums; }
.acciones-registro:not(.hd-acciones) { flex-wrap: nowrap; }

.acciones-registro form { margin: 0; display: inline-flex; }
.acciones-registro svg { width: 16px; height: 16px; }
.aviso-contextual { padding: 12px 14px; border-radius: var(--radio-unico); color: var(--color-texto-suave); background: var(--color-superficie-secundaria); font-size:var(--texto-auxiliar); }
.aviso-contextual a { color: var(--color-marca-azul); font-weight: 700; }
.rejilla-detalle { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; margin-bottom: 18px; }
.lista-datos { display: grid; margin: 0; padding: 5px 18px 18px; }
.lista-datos > div { display: grid; grid-template-columns: minmax(120px, .4fr) 1fr; gap: 16px; padding: 13px 0; border-bottom: 1px solid #edf2f6; }
.lista-datos dt { color: var(--color-texto-suave); font-size:var(--texto-auxiliar); }
.lista-datos dd { margin: 0; color: var(--color-texto-fuerte); font-size:var(--texto-auxiliar); text-align: right; }
.panel-acciones { margin-top: 18px; }
.acciones-estado { display: flex; flex-wrap: wrap; gap: 9px; padding: 16px 18px; }
.accion-discreta { margin-top: 16px; text-align: right; }
.fila-anulada { opacity: .62; }
.fila-anulada .celda-dinero { text-decoration: line-through; }
.anular-movimiento { position: relative; display: inline-block; text-align: left; }
.anular-movimiento > summary { cursor: pointer; list-style: none; }
.anular-movimiento summary::-webkit-details-marker { display: none; }
.anular-movimiento form { position: absolute; z-index: 8; right: 0; top: calc(100% + 8px); width: 280px; display: grid; gap: 10px; padding: 13px; border: 1px solid var(--color-borde); border-radius: var(--radio-unico); background: var(--color-superficie); box-shadow: var(--sombra-panel); }
.anular-movimiento label { display: grid; gap: 5px; color: var(--color-texto); font-size:var(--texto-auxiliar); }
.anular-movimiento input { width: 100%; min-height: 39px; padding: 8px 10px; border: 1px solid var(--color-borde); border-radius: var(--radio-unico); color: var(--color-texto); background: var(--color-superficie); }
.historial-panel { margin-top: 18px; }
/* Gestor financiero: las vistas equivalentes comparten una sola anatomía visual. */
.modulo-finanzas .encabezado-finanzas {
  min-height: 80px;
}

.modulo-finanzas .panel > header { min-height: var(--alto-encabezado-panel); }
.modulo-finanzas .panel > .tabla-contenedor,
.modulo-finanzas .panel > .estado-vacio,
.modulo-finanzas .panel > form { background: var(--color-superficie); }
.modulo-finanzas .rejilla-detalle > .panel { min-width: 0; height: 100%; }

.selector-vistas-finanzas {
  display: flex;
  align-items: center;
  gap: var(--espacio-2);
  padding: 0;
  overflow-x: auto;
  background: transparent;
  scrollbar-width: thin;
}
.barra-vistas-y-filtros-finanzas {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--espacio-7);
  padding: var(--espacio-6) var(--espacio-7);
  border-bottom: 1px solid var(--color-borde-panel);
  background: var(--color-superficie-secundaria);
}

.barra-vistas-y-filtros-finanzas .barra-filtros-finanzas {
  display: grid;
  align-items: center;
  gap: var(--espacio-4);
  padding: 0;
  border: 0;
  background: transparent;
}

.selector-vista-financiera {
  min-height: var(--alto-control);
  display: inline-flex;
  align-items: center;
  gap: var(--espacio-3);
  padding: 9px 13px;
  border: 1px solid var(--color-borde-panel);
  border-radius: var(--radio-control);
  color: var(--color-marca-azul-oscuro);
  background: var(--color-superficie);
  font-size: var(--texto-auxiliar);
  font-weight: var(--peso-seminegrita);
  text-decoration: none;
  white-space: nowrap;
  transition: color .18s ease, border-color .18s ease, background-color .18s ease;
}
.selector-vista-financiera:hover {
  color: var(--color-marca-azul-oscuro);
  border-color: color-mix(in srgb, var(--color-marca-azul) 40%, var(--color-borde-panel));
  background: var(--color-superficie-terciaria);
}
.selector-vista-financiera-activa {
  --color-relieve: var(--color-marca-azul-oscuro);
  color: #fff;
  border-color: rgba(255,255,255,.24);
  background: linear-gradient(180deg,#1b55ac 0%,var(--color-marca-azul-oscuro) 72%,#0a347f 100%);
  box-shadow: inset 0 1px rgba(255,255,255,.20), inset 0 -2px rgba(4,23,49,.18), 0 4px 10px rgba(4,23,49,.20);
}
.selector-vista-icono {
  width: 22px;
  height: 22px;
  display: grid;
  place-items: center;
  flex: 0 0 22px;
  color: var(--color-marca-azul);
}
.selector-vista-financiera-activa .selector-vista-icono { color: #fff; }
.selector-vista-icono svg { width: 18px; height: 18px; }

.tipo-estado-financiero { display: flex; align-items: center; gap: var(--espacio-3); white-space: nowrap; }
.tipo-financiero { display: inline; white-space: nowrap; }
.tipo-estado-financiero .estado { width: max-content; margin: 0; white-space: nowrap; }
.tabla-finanzas-general td { color: var(--color-texto); font-size: var(--texto-cuerpo); font-weight: var(--peso-regular); }
.tabla-finanzas-general .nombre-financiero,
.tabla-finanzas-general .tipo-financiero { color: var(--color-texto-fuerte); font-size: var(--texto-cuerpo); font-weight: var(--peso-regular); }
.tabla-finanzas-general .tipo-estado-financiero .estado { min-height: 28px; font-size: var(--texto-cuerpo); font-weight: var(--peso-regular); }
.tabla-finanzas-general .fila-anulada { opacity: .72; }

.panel-finanzas-listado .tabla th,
.panel-listado-estandar .tabla th { color: #fff; background: var(--color-marca-azul); }
.panel-listado-estandar > .tabla-contenedor,
.panel-listado-estandar > .estado-vacio { background: var(--color-superficie); }
.panel-finanzas-listado > header { border-bottom: 0; }
.panel-finanzas-listado .barra-filtros-finanzas input,
.panel-finanzas-listado .barra-filtros-finanzas select { border-color: var(--color-borde); background: var(--color-superficie); }
.sin-acciones { color: var(--color-texto-suave); }
.rejilla-popup-cuenta { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--espacio-7); padding: var(--espacio-9); background: var(--color-superficie-secundaria); }

.rejilla-popup-cuenta input[readonly] { color: var(--color-marca-azul-oscuro); background: var(--color-superficie-terciaria); font-weight: var(--peso-negrita); cursor: default; }
.nota-popup-cuenta { margin: 0; padding: 0 var(--espacio-9) var(--espacio-7); color: var(--color-texto-suave); font-size: var(--texto-auxiliar); background: var(--color-superficie); }
.acciones-popup-cuenta { display: flex; justify-content: flex-end; gap: var(--espacio-3); }
.campo-saldo-calculado input { color: var(--color-texto-fuerte); background: var(--color-superficie); }
.grupos-cuentas-por-nombre { display: grid; gap: var(--espacio-5); padding: var(--espacio-5); background: var(--color-superficie-secundaria); }
.grupo-cuentas-cliente { overflow: hidden; border: 1px solid var(--color-borde-panel); border-radius: var(--radio-panel); background: var(--color-superficie); box-shadow: var(--sombra-panel); }
.grupo-cuentas-cliente > header { color: var(--color-texto-inverso); }
.grupo-cuentas-cliente > header p { margin: var(--espacio-1) 0 0; }
.grupo-cuentas-cliente > header p strong { color: #fff; }

.tabla-cuentas-cliente td { font-size: var(--texto-cuerpo); }
.tipo-financiero-ingreso { color: var(--color-exito); }
.tipo-financiero-egreso { color: var(--color-peligro); }
.tipo-financiero-mixto { color: var(--color-texto-suave); }
.popup-anulacion { width: min(470px,calc(100% - 32px)); padding: 0; overflow: hidden; border: 1px solid var(--color-borde); border-radius: var(--radio-panel); color: var(--color-texto); background: var(--color-superficie); box-shadow: var(--sombra-elevada); }
.popup-anulacion-contenido { display: grid; gap: var(--espacio-5); padding: var(--espacio-7); background: var(--color-superficie-secundaria); }
.popup-anulacion-contenido p { margin: 0; color: var(--color-texto-suave); }
.popup-anulacion-contenido label { display: grid; gap: var(--espacio-2); font-weight: var(--peso-seminegrita); }
.popup-anulacion-contenido input { width: 100%; min-height: var(--alto-control); padding: 9px 11px; border: 1px solid var(--color-borde); border-radius: var(--radio-control); color: var(--color-texto-fuerte); background: var(--color-superficie); }
.selector-naturaleza-movimiento { display: flex; align-items: center; gap: var(--espacio-3); margin: 0; padding: 0; border: 0; }
.selector-naturaleza-movimiento legend { width: 100%; margin-bottom: var(--espacio-2); color: var(--color-texto); font-size: var(--texto-auxiliar); font-weight: var(--peso-seminegrita); }
.selector-naturaleza-movimiento label { flex: 1 1 0; }
.selector-naturaleza-movimiento input { position: absolute; opacity: 0; pointer-events: none; }
.selector-naturaleza-movimiento .opcion-movimiento { min-height: 68px; display: grid; grid-template-columns: 34px 1fr; grid-template-rows: auto auto; align-items: center; column-gap: var(--espacio-4); padding: var(--espacio-3) var(--espacio-5); border: 1px solid var(--color-borde); border-radius: var(--radio-control); color: var(--color-texto-suave); background: linear-gradient(180deg,var(--color-superficie),var(--color-superficie-secundaria)); box-shadow: inset 0 1px rgba(255,255,255,.82), inset 0 -2px rgba(15,65,150,.07), 0 3px 0 var(--color-borde-panel), 0 7px 13px rgba(15,65,150,.10); cursor: pointer; transform: translateY(-1px); transition: filter .18s ease, transform .18s ease, box-shadow .18s ease; }
.selector-naturaleza-movimiento .opcion-movimiento svg { width: 25px; height: 25px; grid-row: 1 / 3; justify-self: center; }
.selector-naturaleza-movimiento .opcion-movimiento b { align-self: end; color: inherit; font-size: var(--texto-cuerpo); }
.selector-naturaleza-movimiento .opcion-movimiento small { align-self: start; color: inherit; font-size: var(--texto-auxiliar); font-weight: var(--peso-regular); opacity: .82; }
.selector-naturaleza-movimiento input:focus-visible + span { outline: 3px solid var(--color-foco); outline-offset: 2px; }
.selector-naturaleza-movimiento input:checked + .opcion-movimiento { color: #fff; border-color: var(--relieve-borde); background: var(--relieve-fondo); box-shadow: var(--sombra-relieve-control); }
.selector-naturaleza-movimiento input:checked + .opcion-movimiento-ingreso { --color-relieve: var(--color-exito); }
.selector-naturaleza-movimiento input:checked + .opcion-movimiento-egreso { --color-relieve: var(--color-peligro); }
.selector-naturaleza-movimiento label:hover .opcion-movimiento { filter: brightness(1.035); transform: translateY(-2px); }
.selector-naturaleza-movimiento label:active .opcion-movimiento { box-shadow: inset 0 2px 5px rgba(4,23,49,.24), 0 1px 0 var(--relieve-base); transform: translateY(2px); }

.campo-fecha-hora { min-width: 0; display: grid; gap: var(--espacio-2); color: var(--color-texto); font-size: var(--texto-auxiliar); font-weight: var(--peso-seminegrita); }
.control-fecha-hora {
  display: grid;
  grid-template-columns: minmax(170px,1.45fr) minmax(76px,.6fr) minmax(86px,.65fr) minmax(88px,.7fr) auto;
  align-items: end;
  gap: var(--espacio-3);
  min-height: 82px;
  padding: var(--espacio-4);
  border: 1px solid var(--color-borde);
  border-radius: var(--radio-control);
  color: var(--color-texto);
  background: linear-gradient(180deg,var(--color-superficie),var(--color-superficie-secundaria));
  box-shadow: inset 0 1px rgba(255,255,255,.82), inset 0 -2px rgba(15,65,150,.07), 0 3px 0 var(--color-borde-panel), 0 7px 13px rgba(15,65,150,.10);
}
.control-fecha-hora:focus-within { border-color: var(--color-marca-azul); box-shadow: var(--anillo-foco), inset 0 1px rgba(255,255,255,.82), 0 3px 0 var(--color-borde-panel); }
.fecha-hora-parte { min-width: 0; display: grid; gap: var(--espacio-1); }
.fecha-hora-parte > span { color: var(--color-texto-suave); font-size: var(--texto-auxiliar); font-weight: var(--peso-seminegrita); text-transform: uppercase; letter-spacing: .04em; }
.rejilla-popup-cuenta .control-fecha-hora .fecha-hora-parte input,
.rejilla-popup-cuenta .control-fecha-hora .fecha-hora-parte select,
.formulario-modulo .control-fecha-hora .fecha-hora-parte input,
.formulario-modulo .control-fecha-hora .fecha-hora-parte select { min-height: var(--alto-control); padding: 8px 10px; border: 1px solid var(--color-borde); border-radius: var(--radio-control); color: var(--color-texto-fuerte); background: var(--color-superficie); box-shadow: none; font-weight: var(--peso-seminegrita); }
.fecha-hora-ahora { --color-relieve: var(--color-marca-azul); min-width: 88px; min-height: var(--alto-control); display: inline-flex; align-items: center; justify-content: center; gap: var(--espacio-2); padding: 8px 12px; border: 1px solid var(--relieve-borde); border-radius: var(--radio-control); color: #fff; background: var(--relieve-fondo); box-shadow: var(--sombra-relieve-control); font-weight: var(--peso-seminegrita); cursor: pointer; }
.fecha-hora-ahora svg { width: 17px; height: 17px; }
.fecha-hora-ahora:hover { filter: brightness(1.04); transform: translateY(-1px); }
.fecha-hora-ahora:active { box-shadow: inset 0 2px 5px rgba(4,23,49,.25), 0 1px 0 var(--relieve-base); transform: translateY(2px); }
.fecha-hora-resumen { min-width: 0; overflow: hidden; color: var(--color-texto-suave); font-size: var(--texto-auxiliar); font-weight: var(--peso-regular); text-overflow: ellipsis; white-space: nowrap; }
@media (max-width: 720px) {
  .control-fecha-hora { grid-template-columns: repeat(3,minmax(0,1fr)); }
  .fecha-hora-fecha { grid-column: 1 / -1; }
  .fecha-hora-ahora { grid-column: 1 / -1; }
}
/* Base compartida para formularios autoexpandibles y acciones financieras. */
.barra-vistas-y-filtros-finanzas .barra-filtros-finanzas {
  flex-basis: 310px;
}

.rejilla-popup-cuenta fieldset,
.rejilla-popup-cuenta label > span,
.rejilla-popup-cuenta legend {
  font-family: var(--fuente-familia);
  font-size: var(--texto-auxiliar);
  font-weight: var(--peso-seminegrita);
  line-height: 1.35;
}

.rejilla-popup-cuenta textarea[data-autoexpand] {
  min-height: var(--alto-control);
  max-height: 150px;
  overflow-y: hidden;
}

.popup-abono-item .resumen-abono-tercero > small { font-size: var(--texto-auxiliar); }

/* v2.7 · Alineación visual, cortes de tablas y costos internos. */

/* Las tablas terminadas separan filas; no dibujan guías verticales provisionales. */

.tabla-items-cotizacion-detallada .identificador-item > * {
  vertical-align: middle;
}

.tabla-items-cotizacion-detallada .celda-valor-fijo input[readonly] {
  min-height: auto;
  padding-inline: 2px;
  border-color: transparent;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}
.tabla-items-cotizacion-detallada .celda-valor-fijo[data-etiqueta="Unidad"] input {
  text-align: center;
}
.tabla-items-cotizacion-detallada .celda-valor-fijo.celda-dinero input {
  text-align: right;
}

@media (max-width: 760px) {
  .contenido-otros-gastos {
  grid-template-columns: 1fr;
}
}
.panel-estados-protegidos { margin-top: var(--espacio-9); }
.lista-estados-protegidos { display: grid; grid-template-columns: repeat(4,minmax(170px,1fr)); gap: var(--espacio-5); padding: var(--espacio-8); }
.lista-estados-protegidos span { display: grid; gap: var(--espacio-1); padding: var(--espacio-6); border: 1px solid var(--color-borde); border-radius: var(--radio-control); background: var(--color-superficie-secundaria); }
.lista-estados-protegidos b { color: var(--color-texto-fuerte); }
.lista-estados-protegidos small { color: var(--color-texto-suave); }
.panel-estados-protegidos .aviso-contextual { margin: 0; }

.panel-version { margin:18px 0; }
.linea-tiempo { display: grid; padding: 10px 18px 18px; }
.linea-tiempo > div { min-height: 58px; display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 12px; border-bottom: 1px solid #edf2f6; }
.linea-tiempo i { width: 10px; height: 10px; border: 2px solid #fff; border-radius: 50%; background: var(--color-marca-azul); box-shadow: 0 0 0 3px var(--color-fila-cebra); }
.linea-tiempo span { display: grid; }
.linea-tiempo strong { color: var(--color-texto-fuerte); font-size:var(--texto-auxiliar); }
.linea-tiempo small, .linea-tiempo time { color: var(--color-texto-suave); font-size:var(--texto-auxiliar); }

select option,
select optgroup { color: #141414; background: #fff; }

/* Planeación financiera v97: visor operativo de TickTick. */
.modulo-planeacion .pagina { width: 100%; max-width: none; }

.aviso-piloto-planeacion { line-height: 1.6; }
.alerta-en-panel { margin: 16px 20px 0; }
.lista-cuentas-planeacion,.lista-proximos-planeacion { display: grid; gap: 0; padding: 0; }
.cuenta-planeacion { color: var(--color-texto); background: linear-gradient(100deg,var(--color-superficie),var(--color-superficie-terciaria)); }
.cuenta-planeacion:not(.cuenta-planeacion-edicion) { display: grid; grid-template-columns: minmax(0,1fr) minmax(92px,auto) 82px; align-items: center; gap: 10px; min-height: 84px; padding: 12px 14px; }
.cuenta-planeacion-resumen { display: grid; gap: 4px; min-width: 0; }
.cuenta-planeacion-resumen strong { overflow: hidden; color: var(--color-texto-fuerte); font-size: var(--texto-cuerpo); text-overflow: ellipsis; white-space: nowrap; }
.cuenta-planeacion-resumen small { overflow: hidden; color: var(--color-texto-suave); font-size: var(--texto-auxiliar); text-overflow: ellipsis; white-space: nowrap; }
.saldo-cuenta-planeacion { justify-self: end; color: var(--color-marca-azul-oscuro); font-size: var(--texto-cuerpo); white-space: nowrap; }
.cuenta-cobertura { display: inline-flex !important; grid-template-columns: none !important; align-items: center; gap: 7px; color: var(--color-texto); font-size: var(--texto-auxiliar); font-weight: var(--peso-seminegrita); cursor: pointer; }
.cuenta-cobertura input { width: 18px !important; height: 18px; min-height: 18px !important; margin: 0; accent-color: var(--color-exito); cursor: pointer; }
.acciones-cuenta-planeacion,.acciones-cuenta-edicion { display: grid; grid-template-columns: repeat(2,var(--tamano-icono-accion)); align-items: center; gap: var(--separacion-acciones); }
.acciones-cuenta-planeacion form { margin: 0; }
.accion-guardar { --color-relieve: var(--color-accion-exito); }
.accion-cancelar { --color-relieve: var(--color-accion-neutral); }
.cuenta-planeacion-edicion { display: grid; gap: 12px; padding: 14px; }
.cuenta-planeacion-edicion label:not(.cuenta-cobertura) { display: grid; gap: 5px; color: var(--color-texto); font-size: var(--texto-auxiliar); font-weight: var(--peso-seminegrita); }
.cuenta-planeacion-edicion input:not([type="checkbox"]) { width: 100%; min-height: 40px; padding: 8px 10px; border: 1px solid var(--color-borde); border-radius: var(--radio-control); color: var(--color-texto); background: var(--color-superficie); outline: 0; }
.cuenta-planeacion-edicion input:focus { border-color: var(--color-marca-azul); box-shadow: var(--anillo-foco); }
.movimiento-proximo { display: grid; grid-template-columns: 56px minmax(220px,1fr) minmax(100px,.28fr) minmax(170px,.42fr) 42px; align-items: center; gap: 14px; width: 100%; min-height: 84px; padding: 12px 16px; border: 0; }
.movimiento-proximo-ingreso { color: var(--estado-entregada-texto); background: linear-gradient(100deg,color-mix(in srgb,var(--estado-entregada-fondo) 72%,white),var(--estado-entregada-fondo)); }
.movimiento-proximo-egreso { color: var(--estado-solicitud-texto); background: linear-gradient(100deg,color-mix(in srgb,var(--estado-solicitud-fondo) 72%,white),var(--estado-solicitud-fondo)); }
.movimiento-proximo-informativo { color: var(--estado-aprobada-texto); background: linear-gradient(100deg,color-mix(in srgb,var(--estado-aprobada-fondo) 72%,white),var(--estado-aprobada-fondo)); }
.movimiento-proximo time { display: grid; place-items: center; align-content: center; width: 52px; height: 52px; border: 1px solid currentColor; border-radius: var(--radio-unico); color: inherit; background: color-mix(in srgb,currentColor 7%,transparent); line-height: 1; }
.movimiento-proximo time b { font-size:var(--texto-titulo); }
.movimiento-proximo time span { margin-top: 4px; color: inherit; font-size: var(--texto-auxiliar); font-weight: 700; }
.movimiento-proximo > div { display: grid; gap: 3px; }
.movimiento-proximo > div > strong { color: inherit; }
.movimiento-proximo > div > small,.valor-proximo small { color: var(--color-texto-suave); }
.nombre-proximo strong { display: flex; align-items: center; gap: 6px; }

.indicador-cobertura-hd {
  font-size: var(--texto-cuerpo);
  letter-spacing: -2px;
}

.dias-proximo { justify-self: start; padding: 6px 9px; border: 1px solid currentColor; border-radius: var(--radio-pildora); color: inherit; background: color-mix(in srgb,currentColor 7%,transparent); font-size: var(--texto-auxiliar); font-weight: 700; }
.valor-proximo { justify-items: end; text-align: right; }
.valor-proximo b { color: inherit !important; }
.valor-proximo .saldo-restante-positivo { color: var(--color-exito); font-weight: var(--peso-seminegrita); }
.valor-proximo .saldo-restante-negativo { color: var(--color-peligro); font-weight: var(--peso-negrita); }
.acciones-proximo { display: grid !important; grid-template-columns: var(--tamano-icono-accion); align-items: center; justify-content: end; gap: 6px !important; }
.acciones-proximo form { margin: 0; }
.boton-actualizar-ticktick { display: inline-grid; place-items: center; width: var(--tamano-icono-accion); height: var(--tamano-icono-accion); padding: 0; border: 1px solid rgba(255,255,255,.55); border-radius: var(--radio-unico); color: var(--color-marca-azul-oscuro); background: #fff; cursor: pointer; box-shadow: 0 2px 7px rgba(0,36,84,.14); }
.boton-actualizar-ticktick:hover { color: #fff; border-color: rgba(255,255,255,.88); background: var(--color-marca-azul-oscuro); }
.boton-actualizar-ticktick svg { width: var(--tamano-svg-icono-accion); height: var(--tamano-svg-icono-accion); }

@media (max-width: 860px) {
  .indicadores-planeacion { grid-template-columns: 1fr 1fr; }
  .movimiento-proximo { grid-template-columns: 50px 1fr; }
  .dias-proximo,.valor-proximo,.acciones-proximo { justify-self: start; grid-column: 2; text-align: left; }
  .valor-proximo { justify-items: start; }
  .acciones-proximo { justify-content: start; }
}
.preparacion-bancos-ticktick { display: flex; align-items: center; justify-content: space-between; gap: 18px; }
.preparacion-bancos-ticktick form { flex: 0 0 auto; margin: 0; }
.panel-preparar-planeacion { max-width: 840px; }
.preparar-planeacion-contenido { display: grid; grid-template-columns: auto 1fr; gap: 18px; padding: 24px; color: var(--color-texto); }
.preparar-planeacion-contenido strong { color: var(--color-texto-fuerte); }
.preparar-planeacion-contenido ul { margin: 12px 0; padding-left: 20px; }
.preparar-planeacion-contenido p { margin: 0; color: var(--color-texto-suave); }

/* Planeación por tres meses, vencidos y liquidaciones. */

.columna-planeacion-meses { min-width: 0; display: grid; gap: 20px; }
.columna-planeacion-meses > .panel-vencidos-planeacion { grid-column: auto; grid-row: auto; }
.panel-vencidos-planeacion,.panel-liquidaciones-planeacion { overflow: hidden; }
.panel-vencidos-planeacion > header,.panel-liquidaciones-planeacion > header { align-items: center; }
.contador-panel { min-width: 38px; min-height: 38px; display: inline-grid; place-items: center; padding: 6px 10px; border: 1px solid rgba(255,255,255,.55); border-radius: var(--radio-pildora); color: #fff; background: rgba(255,255,255,.16); font-weight: var(--peso-negrita); }
.lista-vencidos-planeacion .dias-proximo { color: var(--color-peligro); }
.meses-planeacion { width:100%; min-width:0; display:grid; grid-template-columns:minmax(0,1fr); gap:18px; }
.mes-planeacion { width:100%; min-width:0; overflow:hidden; }
.mes-planeacion > .lista-proximos-planeacion { width:100%; min-width:0; }
.mes-planeacion .movimiento-proximo { width:100%; min-width:0; }
.encabezado-mes-planeacion { min-height:var(--alto-encabezado-panel); }
.panel-liquidaciones-planeacion { margin-bottom: 20px; }
.lista-liquidaciones-planeacion { display: grid; gap: 0; }
.liquidacion-planeacion { min-height: 86px; display: grid; grid-template-columns: minmax(260px,1fr) minmax(130px,.25fr) minmax(150px,.3fr) auto; align-items: center; gap: 16px; padding: 13px 18px; background: linear-gradient(100deg,var(--color-superficie),var(--estado-aprobada-fondo)); }
.liquidacion-planeacion > div:first-child { min-width: 0; display: grid; gap: 4px; }
.liquidacion-planeacion > div:first-child strong { overflow: hidden; color: var(--color-texto-fuerte); text-overflow: ellipsis; white-space: nowrap; }
.liquidacion-planeacion > div:first-child small { color: var(--color-texto-suave); }
.liquidacion-planeacion > b { justify-self: end; white-space: nowrap; }
.liquidacion-revisar { background: linear-gradient(100deg,var(--color-superficie),var(--estado-solicitud-fondo)); }
.estado-liquidacion { justify-self: center; padding: 6px 9px; border-radius: var(--radio-pildora); color: var(--alerta-advertencia-texto); background: var(--alerta-advertencia-fondo); font-size: var(--texto-auxiliar); font-weight: var(--peso-negrita); }
.acciones-liquidacion { display: flex; align-items: center; justify-content: end; gap: var(--separacion-acciones); }
.acciones-liquidacion form { margin: 0; }

@media (max-width: 860px) {
  .liquidacion-planeacion { grid-template-columns: 1fr; }
  .liquidacion-planeacion > b,.estado-liquidacion { justify-self: start; }
  .acciones-liquidacion { justify-content: start; }
}

/* v98.2 · Planeación apilada, bancos en tabla y controles compactos. */

.panel-cuentas-planeacion-ancho { width:100%; margin-bottom:20px; }
.panel-cuentas-planeacion-ancho > header { align-items:center; }
.resumen-cuentas-encabezado { display:grid; grid-template-columns:auto auto; align-items:center; gap:1px 12px; color:#fff; text-align:right; }
.resumen-cuentas-encabezado span { color:var(--color-texto-inverso-suave); font-size:var(--texto-auxiliar); }
.resumen-cuentas-encabezado strong { font-size:var(--texto-titulo); }
.acciones-cuentas-encabezado { display:flex; align-items:center; justify-content:flex-end; gap:var(--separacion-acciones); }
.acciones-cuentas-encabezado form { margin:0; }
.boton-agregar-banco { white-space:nowrap; }
.encabezado-columnas-cuentas,.encabezado-columnas-movimientos,.encabezado-columnas-liquidaciones { display:grid; align-items:center; min-height:42px; padding:8px 16px; border-bottom:1px solid var(--color-borde); color:#fff; background:var(--color-marca-azul); font-size:var(--texto-auxiliar); font-weight:var(--peso-negrita); letter-spacing:.035em; text-transform:uppercase; }
.encabezado-columnas-cuentas { grid-template-columns:minmax(300px,1.4fr) minmax(150px,.7fr) minmax(150px,.45fr) 90px; gap:14px; }
.encabezado-columnas-cuentas span:nth-child(3),.encabezado-columnas-cuentas span:nth-child(4) { text-align:right; }
.panel-cuentas-planeacion-ancho .lista-cuentas-planeacion { grid-template-columns:minmax(0,1fr); }
.panel-cuentas-planeacion-ancho .cuenta-planeacion:not(.cuenta-planeacion-edicion) { min-height:64px; grid-template-columns:minmax(300px,1.4fr) minmax(150px,.7fr) minmax(150px,.45fr) 90px; gap:14px; padding:8px 16px; }
.panel-cuentas-planeacion-ancho .cuenta-planeacion-resumen { display:flex; align-items:center; gap:11px; }
.panel-cuentas-planeacion-ancho .cuenta-planeacion-resumen > div { min-width:0; display:grid; gap:1px; }
.icono-cuenta-planeacion { --color-relieve:var(--color-marca-azul); width:38px; height:38px; display:grid; place-items:center; flex:0 0 38px; border:1px solid var(--relieve-borde); border-radius:var(--radio-icono-panel); color:#fff; background:var(--relieve-fondo); box-shadow:var(--sombra-relieve-icono); }
.icono-cuenta-planeacion svg { width:19px; height:19px; }
.estado-cobertura-cuenta { justify-self:start; display:inline-flex; align-items:center; min-height:27px; padding:5px 9px; border:1px solid transparent; border-radius:var(--radio-pildora); font-size:var(--texto-auxiliar); font-weight:var(--peso-negrita); }
.estado-cobertura-incluida { color:var(--alerta-exito-texto); border-color:var(--alerta-exito-borde); background:var(--alerta-exito-fondo); }
.estado-cobertura-excluida { color:var(--alerta-neutral-texto); border-color:var(--alerta-neutral-borde); background:var(--alerta-neutral-fondo); }
.panel-cuentas-planeacion-ancho .saldo-cuenta-planeacion { font-size:var(--texto-titulo); }
.panel-cuentas-planeacion-ancho .acciones-cuenta-planeacion { justify-self:end; }
.panel-cuentas-planeacion-ancho .cuenta-planeacion-edicion { min-height:82px; grid-template-columns:minmax(300px,1.4fr) minmax(150px,.7fr) minmax(150px,.45fr) 90px; align-items:end; gap:14px; padding:10px 16px; }
.panel-cuentas-planeacion-ancho .cuenta-planeacion-nueva { border-bottom:1px solid var(--color-borde); background:var(--color-superficie-secundaria); }
.panel-cuentas-planeacion-ancho .cuenta-planeacion-edicion .cuenta-cobertura { align-self:center; }
.panel-cuentas-planeacion-ancho .campo-saldo-edicion input { text-align:right; }
.panel-cuentas-planeacion-ancho .acciones-cuenta-edicion { justify-self:end; padding-bottom:2px; }
.columna-planeacion-ancho { width:100%; margin-bottom:20px; }
.meses-planeacion { gap:18px; }
.encabezado-columnas-movimientos { grid-template-columns:56px minmax(240px,1.15fr) minmax(150px,.55fr) minmax(115px,.35fr) minmax(150px,.45fr) minmax(155px,.45fr) 96px; gap:12px; }
.encabezado-columnas-movimientos span:nth-child(4) { text-align:center; }
.encabezado-columnas-movimientos span:nth-child(n+5) { text-align:right; }
.mes-planeacion .movimiento-proximo,.lista-vencidos-planeacion .movimiento-proximo { min-height:66px; grid-template-columns:56px minmax(240px,1.15fr) minmax(150px,.55fr) minmax(115px,.35fr) minmax(150px,.45fr) minmax(155px,.45fr) 96px; gap:12px; padding:8px 16px; }
.mes-planeacion .movimiento-proximo time,.lista-vencidos-planeacion .movimiento-proximo time { width:44px; height:44px; border-radius: var(--radio-unico); }
.mes-planeacion .movimiento-proximo time b,.lista-vencidos-planeacion .movimiento-proximo time b { font-size:var(--texto-titulo); }
.lista-proximo { min-width:0; overflow:hidden; color:var(--color-texto-fuerte); font-size:var(--texto-auxiliar); font-weight:var(--peso-seminegrita); text-overflow:ellipsis; white-space:nowrap; }
.hd-formulario.formulario-abono-cotizacion {
  display: grid;
  gap: 0;
  width: 100%;
  min-width: 0;
  padding: 0;
}
.controles-abono-cotizacion {
  display: grid;
  gap: var(--espacio-7);
  padding: var(--espacio-9) var(--espacio-10);
}
.formulario-abono-cotizacion .hd-formulario__rejilla {
  width: 100%;
  max-width: 650px;
  padding: 0;
}
.detalle-distribucion-abono { width:100%; min-width:0; border-top:1px solid var(--color-borde); }
.detalle-distribucion-abono > summary { padding:13px 24px; color:var(--color-marca-azul-oscuro); font-weight:var(--peso-seminegrita); cursor:pointer; }
.detalle-distribucion-abono > summary:hover { background:var(--color-superficie-secundaria); }
.panel-abono-cotizacion > .tabla-contenedor,.detalle-distribucion-abono > .tabla-contenedor {
  width: 100%;
  margin: 0;
  padding: 0;
}
.tabla-abono-cotizacion,.tabla-historial-abonos-cotizacion {
  width: 100%;
  min-width: 920px;
}
.tabla-abono-cotizacion th:first-child,.tabla-abono-cotizacion td:first-child {
  width: 42%;
  text-align: left;
}
.acciones-confirmar-abono { justify-content:flex-end; padding:16px 24px 20px; border-top:1px solid var(--color-borde); }
.tabla-abono-cotizacion td:first-child {
  min-width: 220px;
}
.resumen-distribucion-abono { margin:0; color:var(--color-texto-fuerte); font-weight:var(--peso-seminegrita); }
.resumen-cotizacion-financiera {
  display: block;
  margin-top: 3px;
  color: var(--color-texto-suave);
  font-size: var(--texto-auxiliar);
  white-space: normal;
}
.movimiento-proximo .nombre-proximo strong { color:var(--color-texto-fuerte); }
.saldo-proyectado-proximo { justify-self:end; font-size:var(--texto-cuerpo); white-space:nowrap; }
.acciones-proximo { min-width:0; grid-template-columns:minmax(0,auto); }
.estado-proyectado { justify-self:end; display:inline-flex; align-items:center; justify-content:center; min-width:82px; min-height:28px; padding:5px 9px; border:1px solid color-mix(in srgb,currentColor 55%,transparent); border-radius:var(--radio-pildora); color:var(--color-texto-suave); background:color-mix(in srgb,var(--color-superficie) 78%,transparent); font-size: var(--texto-auxiliar); font-weight:var(--peso-negrita); text-transform:uppercase; white-space:nowrap; }
.encabezado-columnas-liquidaciones { grid-template-columns:minmax(260px,1fr) minmax(130px,.25fr) minmax(150px,.3fr) auto; gap:16px; }
.encabezado-columnas-liquidaciones span:nth-child(2),.encabezado-columnas-liquidaciones span:nth-child(4) { text-align:right; }
.liquidacion-planeacion { min-height:70px; padding:10px 16px; }
@media (max-width: 1050px) {
  .encabezado-columnas-cuentas,.panel-cuentas-planeacion-ancho .cuenta-planeacion:not(.cuenta-planeacion-edicion),.panel-cuentas-planeacion-ancho .cuenta-planeacion-edicion { grid-template-columns:minmax(240px,1fr) minmax(130px,.5fr) 140px 82px; }
  .encabezado-columnas-movimientos,.mes-planeacion .movimiento-proximo,.lista-vencidos-planeacion .movimiento-proximo { grid-template-columns:50px minmax(190px,1fr) minmax(125px,.5fr) 100px minmax(125px,.4fr) 135px 82px; gap:8px; }
}
@media (max-width: 860px) {
  .resumen-cuentas-encabezado { justify-self:start; text-align:left; }
  .encabezado-columnas-cuentas,.encabezado-columnas-movimientos,.encabezado-columnas-liquidaciones { display:none; }
  .panel-cuentas-planeacion-ancho .cuenta-planeacion:not(.cuenta-planeacion-edicion),.panel-cuentas-planeacion-ancho .cuenta-planeacion-edicion { grid-template-columns:1fr auto; }
  .panel-cuentas-planeacion-ancho .cuenta-planeacion-resumen,.panel-cuentas-planeacion-ancho .campo-cuenta-edicion { grid-column:1 / -1; }
  .panel-cuentas-planeacion-ancho .saldo-cuenta-planeacion { grid-column:1; grid-row:2; justify-self:start; }
  .panel-cuentas-planeacion-ancho .estado-cobertura-cuenta { grid-column:1; grid-row:3; }
  .panel-cuentas-planeacion-ancho .acciones-cuenta-planeacion { grid-column:2; grid-row:2 / span 2; }
  .panel-cuentas-planeacion-ancho .cuenta-cobertura { grid-column:1; }
  .panel-cuentas-planeacion-ancho .campo-saldo-edicion { grid-column:1; }
  .panel-cuentas-planeacion-ancho .acciones-cuenta-edicion { grid-column:2; grid-row:2 / span 2; }
  .mes-planeacion .movimiento-proximo,.lista-vencidos-planeacion .movimiento-proximo { grid-template-columns:50px 1fr; }
  .lista-proximo,.saldo-proyectado-proximo { justify-self:start; grid-column:2; }
  .estado-proyectado { justify-self:start; }
}
/* Integración TickTick v93. */
.panel-ticktick-conexion,.panel-ticktick-listas,.panel-ticktick-tareas,.panel-ticktick-control { margin-bottom: 20px; }
.contenido-ticktick-conexion { display: grid; grid-template-columns: minmax(0,1fr) minmax(260px,.34fr); gap: 20px; padding: 20px; }
.formulario-ticktick-credenciales { padding: 0; }
.formulario-ticktick-credenciales label { display: grid; align-content: start; gap: 6px; }
.formulario-ticktick-credenciales label > span { color: var(--color-texto); font-size: var(--texto-auxiliar); font-weight: var(--peso-seminegrita); }
.guia-ticktick { padding: 18px; border: 1px solid var(--color-borde); border-radius: var(--radio-panel); color: var(--color-texto); background: var(--color-fondo); }
.guia-ticktick ol { margin: 10px 0 0; padding-left: 20px; color: var(--color-texto-suave); }
.acciones-ticktick { display: flex; align-items: center; flex-wrap: wrap; gap: var(--separacion-acciones); }
.tabla-listas-ticktick { min-width: 760px; }
.tabla-listas-ticktick th:first-child { width: 40%; }
.regla-ticktick { display: block; max-width: 280px; overflow-wrap: anywhere; }

.control-escritura-ticktick,.pie-ticktick { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 16px; padding: 20px; }
.pie-ticktick { border-top: 1px solid var(--color-borde); }
.leyenda-semaforo { display: flex; align-items: center; flex-wrap: wrap; gap: 18px; color: var(--color-texto); }
.leyenda-semaforo span { display: inline-flex; align-items: center; gap: 7px; }
.semaforo { display: inline-block; width: 13px; height: 13px; border-radius: 50%; box-shadow: 0 0 0 2px var(--color-borde); }
.semaforo-verde { background: var(--color-exito); }.semaforo-rojo { background: var(--color-peligro); }.semaforo-amarillo { background: var(--color-advertencia); }
@media (max-width: 860px) {
  .contenido-ticktick-conexion { grid-template-columns: 1fr; }
  .control-escritura-ticktick,.pie-ticktick { align-items: stretch; flex-direction: column; }
}

.boton-menu-movil,
.fondo-menu {
  display: none;
}

@media (max-width: 1180px) {

  .barra-vistas-y-filtros-finanzas { align-items: stretch; flex-direction: column; }
  .barra-vistas-y-filtros-finanzas .barra-filtros-finanzas { flex-basis: auto; }

  .campo-busqueda { grid-column: span 2; }

}
@media (max-width: 860px) {

.barra-lateral {
  width: min(310px, 88vw);
  transform: translateX(105%);
  transition: transform .22s ease;
}

.menu-abierto .barra-lateral {
  transform: none;
}

.menu-abierto .navegacion-desplegar {
  display: grid;
}

.menu-abierto .navegacion-submenu {
  display: grid;
}

.fondo-menu {
  position: fixed;
  inset: 0;
  z-index: 20;
  background: rgba(4,23,49,.48);
}

.menu-abierto .fondo-menu {
  display: block;
}

.boton-menu-movil {
  position: fixed;
  top: 12px;
  right: 12px;
  z-index: 18;
  display: block;
  min-height: 40px;
  padding: 8px 13px;
  border: 0;
  border-radius: var(--radio-unico);
  color: #fff;
  background: var(--color-marca-azul-oscuro);
  font-weight: 700;
}

.espacio-trabajo,
.menu-expandido .espacio-trabajo {
  width: 100%;
  margin-right: 0;
}

.menu-expandido .barra-lateral {
  width: min(310px,88vw);
}

.barra-lateral .marca > span:last-child,
.barra-lateral .navegacion a > span:last-child,
.barra-lateral .navegacion-configuracion a > span:last-child,
.barra-lateral .control-lateral > span:last-child,
.barra-lateral .perfil-datos {
  display: grid;
}

.barra-lateral .formulario-salir {
  display: block;
}

.barra-lateral .perfil-enlace {
  display: flex;
}

.barra-lateral .marca,
.barra-lateral .navegacion a,
.barra-lateral .navegacion-configuracion a,
.barra-lateral .perfil {
  justify-content: flex-start;
}

.barra-lateral .control-lateral {
  justify-content: flex-start;
  padding-right: 43px;
  padding-left: 10px;
}

.barra-lateral .marca {
  gap: 12px;
}

.barra-lateral .navegacion a,
.barra-lateral .navegacion-configuracion a {
  gap: 11px;
}

.barra-lateral .marca > span:last-child,
.barra-lateral .navegacion a > span:last-child,
.barra-lateral .navegacion-configuracion a > span:last-child,
.barra-lateral .control-lateral > span:last-child {
  max-width: 175px;
  opacity: 1;
  transform: none;
}
.barra-lateral .perfil-datos,
.barra-lateral .formulario-salir {
  max-width: 175px;
  opacity: 1;
}

  .pagina { padding: 70px 18px 24px; }

  .rejilla-panel { grid-template-columns: 1fr; }
  .rejilla-detalle { grid-template-columns: 1fr; }

  .campo-busqueda { grid-column: 1 / -1; }

}
@media (max-width: 520px) {

.rejilla-popup-cuenta {
  grid-template-columns: 1fr;
}

.acciones-pagina,
.acciones-pagina .boton,
.encabezado-pagina:not(.hd-encabezado-pagina) > .boton {
  width: 100%;
}

.opciones-ruta { grid-template-columns: 1fr; }

  .campo-busqueda, .campo-amplio { grid-column: auto; }
  .grupo-cuentas-cliente > header { align-items:flex-start; flex-direction:column; }
  .tabla:not(.hd-tabla) thead { display: none; }
  .tabla:not(.hd-tabla), .tabla:not(.hd-tabla) tbody, .tabla:not(.hd-tabla) tr, .tabla:not(.hd-tabla) td { display: block; width: 100%; }
  .tabla:not(.hd-tabla) tr { padding: 12px 16px; border-bottom: 0; }
  .tabla:not(.hd-tabla) td { display: grid; grid-template-columns: 92px 1fr; gap: 12px; padding: 7px 0; border: 0; }
  .tabla:not(.hd-tabla) td::before { content: attr(data-etiqueta); color: var(--color-texto-suave); font-size:var(--texto-auxiliar); text-transform: uppercase; }
  .tabla-accion { text-align: left !important; }
  .tabla-accion::before { content: ""; }
  .acciones-tabla { justify-content: flex-start; }
  .lista-datos > div { grid-template-columns: 1fr; gap: 4px; }
  .lista-datos dd { text-align: left; }

}

/* v45 · Tokens visuales y componentes compartidos de la interfaz. */
.sr-solo {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}
.estado-informativo { color: var(--color-marca-azul-oscuro); background: var(--color-superficie-terciaria); }
.texto-negativo { color: var(--color-peligro) !important; }

.notificaciones-flotantes { position: fixed; right: calc(var(--barra-colapsada) + 24px); bottom: 22px; z-index: 80; display: grid; gap: 8px; pointer-events: none; transition: right .32s cubic-bezier(.22, 1, .36, 1); }

.menu-expandido .notificaciones-flotantes {
  right: calc(var(--barra) + 24px);
}

.notificacion-tenue {
  max-width: 320px;
  padding: 10px 13px;
  color: #0f4196;
  border: 1px solid #b9dced;
  border-radius: var(--radio-unico);
  background: rgba(238,249,253,.96);
  box-shadow: 0 8px 22px rgba(15,65,150,.13);
  opacity: 0;
  transform: translateY(8px);
  transition: opacity .22s ease, transform .22s ease;
  font-size:var(--texto-cuerpo);
  font-weight: 700;
}
.notificacion-tenue.visible { opacity: 1; transform: translateY(0); }
.notificacion-tenue.saliendo { opacity: 0; transform: translateY(5px); }
.notificacion-tenue.error { color: var(--color-peligro); border-color: var(--color-peligro-borde); background: var(--color-peligro-suave); }

@media (max-width: 860px) {
  .panel > header { height: auto; min-height: var(--alto-encabezado-panel); }

  .notificaciones-flotantes { right: 14px; bottom: 14px; left: 14px; }
  .notificacion-tenue { max-width: none; }

  .lista-estados-protegidos { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .popup-cuenta > form > footer { align-items: stretch; flex-direction: column; }
  .acciones-popup-cuenta { width: 100%; }
  .acciones-popup-cuenta .boton { flex: 1 1 0; }
}
@media (max-width: 520px) {
  .lista-estados-protegidos { grid-template-columns: 1fr; }
}

/* v60 · Antigüedad, contactos y confirmaciones temáticas del Gestor financiero. */
.grupo-cuentas-linea-principal {
  display: flex;
  align-items: baseline;
  flex-wrap: wrap;
  gap: 5px 11px;
}
.grupo-cuentas-contacto {
  color: rgba(255,255,255,.86);
  font-size: var(--texto-auxiliar);
  font-weight: var(--peso-regular);
}
.grupo-cuentas-registros {
  color: #fff;
  font-size: var(--texto-auxiliar);
  font-weight: var(--peso-negrita);
}
.grupo-cuentas-registros::before { content: "·"; margin-right: 11px; opacity: .72; }
.nombre-contacto-financiero { display: grid; gap: 2px; }
.nombre-contacto-financiero > span:not(.nombre-financiero) { color: var(--color-texto-suave); font-size: var(--texto-auxiliar); }
.antiguedad-solicitud {
  min-width: 68px;
  min-height: 28px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 4px 8px;
  border: 1px solid transparent;
  border-radius: var(--radio-pildora);
  font-size: var(--texto-auxiliar);
  font-weight: var(--peso-negrita);
  white-space: nowrap;
}
.antiguedad-reciente { color: var(--color-exito); border-color: var(--color-exito-borde); background: var(--color-exito-suave); }
.antiguedad-alerta { color: var(--color-advertencia); border-color: var(--color-advertencia-borde); background: var(--color-advertencia-suave); }
.antiguedad-critica { color: var(--color-peligro); border-color: var(--color-peligro-borde); background: var(--color-peligro-suave); }

.popup-confirmacion {
  width: min(470px,calc(100% - 32px));
  padding: 0;
  overflow: hidden;
  border: 1px solid var(--color-borde);
  border-radius: var(--radio-panel);
  color: var(--color-texto);
  background: var(--color-superficie);
  box-shadow: var(--sombra-elevada);
}
.popup-confirmacion-contenido { display: grid; gap: var(--espacio-3); padding: var(--espacio-8) var(--espacio-7); background: var(--color-superficie-secundaria); }
.popup-confirmacion-contenido strong { color: var(--color-texto-fuerte); }
.popup-confirmacion-contenido p { margin: 0; color: var(--color-texto-suave); }

@media (max-width: 760px) {
  .grupo-cuentas-cliente > header { align-items: flex-start; }
  .grupo-cuentas-linea-principal { align-items: flex-start; flex-direction: column; gap: 3px; }
  .grupo-cuentas-registros::before { content: none; }
  .popup-confirmacion > section > footer { align-items: stretch; flex-direction: column-reverse; }
  .popup-confirmacion > section > footer .boton { width: 100%; }
}
/* v61 · Saldos con signo, captura de abono y mensajes semáforo. */
.barra-lateral {
  background: linear-gradient(180deg,
    var(--color-marca-azul) 0%,
    var(--color-marca-azul-oscuro) 58%,
    color-mix(in srgb,var(--color-marca-azul-oscuro) 82%,var(--color-marca-negro)) 100%);
}

.grupo-cuentas-linea-principal { flex-wrap: wrap; gap: 5px 10px; }
.grupo-cuentas-contacto,
.grupo-cuentas-registros,
.grupo-cuentas-saldo {
  color: rgba(255,255,255,.88);
  font-size: var(--texto-cuerpo);
  line-height: 1.35;
}
.grupo-cuentas-saldo { white-space: nowrap; }
.grupo-cuentas-saldo strong { color: #fff; font-size: inherit; font-weight: var(--peso-negrita); }
.grupo-cuentas-registros::before,
.grupo-cuentas-saldo::before { content: "·"; margin-right: 10px; opacity: .72; }

.nombre-contacto-financiero > span:not(.nombre-financiero) { font-size: var(--texto-cuerpo); }
.tabla-finanzas-general td,
.tabla-cuentas-cliente td { font-size: var(--texto-cuerpo); }

.tabla tbody tr.fila-financiera-egreso {
  background-image: linear-gradient(90deg,
    color-mix(in srgb,var(--color-peligro-suave) 88%,transparent) 0%,
    color-mix(in srgb,var(--color-peligro-suave) 42%,transparent) 32%,
    transparent 72%) !important;
}

.popup-nuevo-movimiento { width: min(980px,calc(100% - 32px)); overflow: hidden; }
.popup-nuevo-movimiento > form {
  max-height: calc(100dvh - 34px);
  overflow-x: hidden;
  overflow-y: auto;
  scrollbar-width: thin;
}
.popup-nuevo-movimiento > form::-webkit-scrollbar { width: 8px; }
.popup-nuevo-movimiento .rejilla-popup-cuenta {
  grid-template-columns: repeat(6,minmax(0,1fr));
  gap: var(--espacio-5);
  padding: var(--espacio-7) var(--espacio-9);
}
.popup-nuevo-movimiento .campo-amplio { grid-column: 1 / -1; }
.popup-nuevo-movimiento .campo-mitad { grid-column: span 3; }
.popup-nuevo-movimiento .campo-tercio { grid-column: span 2; }
.popup-nuevo-movimiento .control-fecha-hora { min-height: 92px; padding: var(--espacio-3); }
.fecha-hora-fecha .fecha-hora-resumen {
  min-height: 18px;
  display: block;
  overflow: visible;
  color: var(--color-texto-suave);
  font-size: var(--texto-auxiliar);
  line-height: 1.35;
  text-overflow: clip;
  white-space: normal;
}

.notificaciones-sistema { z-index: 100; }
.notificacion-tenue { position: relative; padding-left: 34px; }
.notificacion-tenue::before {
  position: absolute;
  top: 50%;
  left: 13px;
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: currentColor;
  content: "";
  transform: translateY(-50%);
}
.notificacion-tenue.notificacion-exito { color: var(--alerta-exito-texto); border-color: var(--alerta-exito-borde); background: var(--alerta-exito-fondo); }
.notificacion-tenue.notificacion-aviso { color: var(--alerta-advertencia-texto); border-color: var(--alerta-advertencia-borde); background: var(--alerta-advertencia-fondo); }
.notificacion-tenue.notificacion-error,
.notificacion-tenue.notificacion-eliminacion,
.notificacion-tenue.error { color: var(--alerta-peligro-texto); border-color: var(--alerta-peligro-borde); background: var(--alerta-peligro-fondo); }

@media (max-width: 760px) {
  .grupo-cuentas-linea-principal { align-items: flex-start; flex-direction: column; }
  .grupo-cuentas-registros::before,
  .grupo-cuentas-saldo::before { content: none; }
  .popup-nuevo-movimiento .rejilla-popup-cuenta { grid-template-columns: 1fr; }
  .popup-nuevo-movimiento .campo-amplio,
  .popup-nuevo-movimiento .campo-mitad,
  .popup-nuevo-movimiento .campo-tercio { grid-column: 1; }
}

/* v62 · Abono por tercero y fecha completa. */
.acciones-encabezado-cliente { display: flex; align-items: center; justify-content: flex-end; flex-wrap: wrap; gap: var(--separacion-acciones); }

.popup-cuenta:not(.popup-nuevo-movimiento):not(.popup-abono-tercero) .rejilla-popup-cuenta { grid-template-columns: repeat(6,minmax(0,1fr)); gap: var(--espacio-5); padding: var(--espacio-7) var(--espacio-9); }
.rejilla-popup-cuenta .campo-mitad-popup { grid-column: span 3; }
.rejilla-popup-cuenta .campo-tercio-popup { grid-column: span 2; }
.rejilla-popup-cuenta .campo-amplio { grid-column: 1 / -1; }
.rejilla-popup-cuenta input[name="valor_total"],
.rejilla-popup-cuenta input[name="abonado"],
.rejilla-popup-cuenta input[name="abono"],
.rejilla-popup-cuenta input[name="saldo_calculado"] { color: var(--color-texto-fuerte); text-align: right; font-weight: var(--peso-seminegrita); }
.rejilla-popup-cuenta input[name="concepto"],
.rejilla-popup-cuenta .campo-saldo-calculado input[readonly] { color: var(--color-texto-fuerte); background: var(--color-superficie); }
.rejilla-popup-cuenta input[data-autocompletar-contacto][readonly] { color: var(--color-texto-suave); background: var(--color-superficie); font-weight: var(--peso-regular); }

.control-fecha-hora {
  min-height: 0;
  padding: 0;
  border: 0;
  background: transparent;
  box-shadow: none;
}
.control-fecha-hora:focus-within { border-color: transparent; box-shadow: none; }
.fecha-hora-fecha-control { position: relative; min-height: var(--alto-control); display: flex; align-items: center; overflow: hidden; border: 1px solid var(--color-borde); border-radius: var(--radio-control); color: var(--color-texto-fuerte); background: var(--color-superficie); }
.fecha-hora-fecha-control:focus-within { border-color: var(--color-marca-azul); box-shadow: var(--anillo-foco); }
.rejilla-popup-cuenta .fecha-hora-fecha-control input[data-fecha-parte],
.formulario-modulo .fecha-hora-fecha-control input[data-fecha-parte] { position: absolute; inset: 0; z-index: 2; width: 100%; height: 100%; min-height: 0; padding: 0; border: 0; opacity: 0; cursor: pointer; }
.fecha-hora-fecha .fecha-hora-resumen { min-height: 0; display: block; padding: 10px 38px 10px 11px; overflow: hidden; color: var(--color-texto-fuerte); font-size: var(--texto-cuerpo); font-weight: var(--peso-seminegrita); line-height: 1.3; text-overflow: ellipsis; white-space: nowrap; pointer-events: none; }
.fecha-hora-fecha-control::after { position: absolute; right: 12px; top: 50%; color: var(--color-marca-azul); content: "▣"; transform: translateY(-50%); pointer-events: none; }
.popup-nuevo-movimiento .control-fecha-hora { min-height: 0; padding: 0; }

.popup-abono-tercero { width: min(620px,calc(100% - 32px)); overflow: hidden; }
.contenido-abono-tercero { display: grid; gap: var(--espacio-6); padding: var(--espacio-8) var(--espacio-9); background: var(--color-superficie-secundaria); }
.resumen-abono-tercero { display: grid; gap: var(--espacio-1); padding: var(--espacio-5); border: 1px solid var(--color-borde-panel); border-radius: var(--radio-control); background: var(--color-superficie); }
.resumen-abono-tercero span { color: var(--color-texto-fuerte); font-size: var(--texto-cuerpo); font-weight: var(--peso-negrita); }
.resumen-abono-tercero strong { color: var(--color-marca-azul-oscuro); font-size: var(--texto-titulo); }
.resumen-abono-tercero small { color: var(--color-texto-suave); }
.rejilla-abono-tercero { display: grid; grid-template-columns: 1fr 1fr; gap: var(--espacio-5); }
.rejilla-abono-tercero label { display: grid; gap: var(--espacio-2); color: var(--color-texto); font-weight: var(--peso-seminegrita); }
.rejilla-abono-tercero input { width: 100%; min-height: var(--alto-control); padding: 9px 11px; border: 1px solid var(--color-borde); border-radius: var(--radio-control); color: var(--color-texto-fuerte); background: var(--color-superficie); }
.rejilla-abono-tercero input[name="valor"] { text-align: right; }
.popup-abono-tercero > form > footer { justify-content: flex-end; }

@media (max-width: 980px) {
  .grupo-cuentas-cliente > header { align-items: flex-start; flex-direction: column; }
  .acciones-encabezado-cliente { width: 100%; justify-content: flex-start; }
}
@media (max-width: 760px) {
  .popup-cuenta:not(.popup-nuevo-movimiento):not(.popup-abono-tercero) .rejilla-popup-cuenta { grid-template-columns: 1fr; }
  .rejilla-popup-cuenta .campo-mitad-popup,
  .rejilla-popup-cuenta .campo-tercio-popup,
  .rejilla-popup-cuenta .campo-amplio { grid-column: 1; }
  .control-fecha-hora { grid-template-columns: repeat(3,minmax(0,1fr)); }
  .rejilla-abono-tercero { grid-template-columns: 1fr; }

.acciones-encabezado-cliente .boton-encabezado-panel {
  flex: 1 1 100%;
  justify-content: center;
}

}

/* v63 · Calendario confiable, encabezado compacto y exportación 4K. */
.control-fecha-hora {
  width: min(100%,760px);
  grid-template-columns: minmax(245px,300px) 72px 80px 88px 88px;
}
.fecha-hora-fecha-control::after { content: none; }
.fecha-hora-abrir-calendario {
  width: 100%;
  min-height: var(--alto-control);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--espacio-3);
  padding: 8px 11px;
  border: 0;
  color: var(--color-texto-fuerte);
  background: transparent;
  font: inherit;
  text-align: left;
  cursor: pointer;
}
.fecha-hora-abrir-calendario:focus-visible { outline: 3px solid var(--color-foco); outline-offset: -3px; }
.fecha-hora-icono-calendario { flex: 0 0 auto; color: var(--color-marca-azul); font-size:var(--texto-cuerpo); }
.fecha-hora-fecha .fecha-hora-resumen,
.selector-fecha-simple .fecha-hora-resumen { padding: 0; pointer-events: auto; }
.rejilla-popup-cuenta .fecha-hora-fecha-control input[data-fecha-parte],
.formulario-modulo .fecha-hora-fecha-control input[data-fecha-parte] {
  position: fixed;
  inset: auto auto 0 -10000px;
  width: 1px;
  height: 1px;
  min-height: 0;
  padding: 0;
  border: 0;
  opacity: 0;
  pointer-events: none;
}
.selector-fecha-simple { min-width: 0; display: grid; gap: var(--espacio-2); color: var(--color-texto); font-weight: var(--peso-seminegrita); }
.selector-fecha-simple > span:first-child { color: var(--color-texto); }

.abono-tercero-saldos { display: grid; grid-template-columns: 1fr 1fr; gap: var(--espacio-3); margin: var(--espacio-2) 0; }
.abono-tercero-saldos > span { min-width: 0; display: grid; gap: 2px; padding: var(--espacio-3); border: 1px solid var(--color-borde-panel); border-radius: var(--radio-control); background: var(--color-superficie-secundaria); }
.abono-tercero-saldos small { font-size: var(--texto-auxiliar); text-transform: uppercase; letter-spacing: .035em; }
.abono-tercero-saldos strong { overflow: hidden; font-size: var(--texto-titulo); text-overflow: ellipsis; white-space: nowrap; }

@media (max-width: 760px) {
  .control-fecha-hora { width: 100%; grid-template-columns: repeat(3,minmax(0,1fr)); }
  .fecha-hora-fecha { max-width: none; }
  .abono-tercero-saldos { grid-template-columns: 1fr; }
}

/* v64 · Calendario nativo y formularios compactos. */
.popup-nuevo-movimiento { width: min(860px,calc(100% - 32px)); }
.popup-nuevo-movimiento .rejilla-popup-cuenta { padding-right: var(--espacio-7); padding-left: var(--espacio-7); }
.popup-nuevo-movimiento .control-fecha-hora {
  width: min(100%,700px);
  grid-template-columns: minmax(220px,1fr) 68px 76px 84px 84px;
}
.fecha-hora-fecha-control { text-transform: none; letter-spacing: normal; }
.fecha-hora-abrir-calendario { pointer-events: none; }
.rejilla-popup-cuenta .fecha-hora-fecha-control input[data-fecha-parte],
.formulario-modulo .fecha-hora-fecha-control input[data-fecha-parte] {
  position: absolute;
  inset: 0;
  z-index: 3;
  width: 100%;
  height: 100%;
  min-height: 0;
  padding: 0;
  border: 0;
  opacity: .01;
  pointer-events: auto;
  cursor: pointer;
}
@media (max-width: 760px) {
  .popup-nuevo-movimiento .control-fecha-hora { grid-template-columns: repeat(3,minmax(0,1fr)); }
}

/* v65 · Modales compactos y calendario accionable en toda la fecha. */
.popup-nuevo-movimiento { width: min(760px,calc(100% - 32px)); }
.popup-nuevo-movimiento .rejilla-popup-cuenta,
.popup-cuenta:not(.popup-nuevo-movimiento):not(.popup-abono-tercero) .rejilla-popup-cuenta {
  gap: var(--espacio-4);
  padding: var(--espacio-5) var(--espacio-6);
}
.popup-nuevo-movimiento .control-fecha-hora,
.popup-cuenta:not(.popup-nuevo-movimiento):not(.popup-abono-tercero) .control-fecha-hora {
  width: 100%;
  grid-template-columns: minmax(205px,1fr) 64px 72px 80px 82px;
}
.fecha-hora-abrir-calendario { position: relative; z-index: 2; pointer-events: auto; }
.rejilla-popup-cuenta .fecha-hora-fecha-control input[data-fecha-parte],
.formulario-modulo .fecha-hora-fecha-control input[data-fecha-parte] {
  position: fixed;
  inset: auto auto 0 -10000px;
  z-index: -1;
  width: 1px;
  height: 1px;
  opacity: 0;
  pointer-events: none;
}
@media (max-width: 760px) {
  .popup-nuevo-movimiento .control-fecha-hora,
  .popup-cuenta:not(.popup-nuevo-movimiento):not(.popup-abono-tercero) .control-fecha-hora {
    grid-template-columns: repeat(3,minmax(0,1fr));
  }
}

/* v3.9: grupos plegables en la vista financiera por nombre. */
.grupo-cuentas-activador {
  min-width: 0;
  flex: 1 1 420px;
  display: flex;
  align-items: center;
  gap: var(--espacio-3);
  padding: 0;
  border: 0;
  border-radius: var(--radio-control);
  color: inherit;
  background: transparent;
  font: inherit;
  text-align: left;
  cursor: pointer;
  user-select: none;
}
.grupo-cuentas-activador:focus-visible {
  outline: 2px solid rgba(255,255,255,.94);
  outline-offset: 4px;
}
.grupo-cuentas-activador .grupo-cuentas-linea-principal { min-width: 0; }
.grupo-cuentas-indicador {
  width: 24px;
  height: 24px;
  flex: 0 0 24px;
  display: grid;
  place-items: center;
  color: var(--color-texto-inverso);
  transition: transform .18s ease;
}
.grupo-cuentas-indicador svg { width: 20px; height: 20px; }
.grupo-cuentas-cliente[data-expandido="false"] .grupo-cuentas-indicador { transform: rotate(-90deg); }
.grupo-cuentas-cliente[data-expandido="false"] > [data-contenido-grupo-financiero] { display: none; }
@media (max-width: 860px) {
  .grupo-cuentas-activador { width: 100%; flex-basis: auto; }
}
/* v66 · Flatpickr local en español y pie del JPG retirado. */
.campo-fecha-flatpickr,
.selector-fecha-simple {
  min-width: 0;
  display: grid;
  gap: var(--espacio-2);
  color: var(--color-texto);
  font-weight: var(--peso-seminegrita);
}

.control-flatpickr {
  position: relative;
  min-width: 0;
  display: block;
}

.entrada-fecha-flatpickr {
  width: 100%;
  min-height: var(--alto-control);
  padding: 9px 42px 9px 11px !important;
  border: 1px solid var(--color-borde) !important;
  border-radius: var(--radio-control) !important;
  color: var(--color-texto-fuerte) !important;
  background: var(--color-superficie) !important;
  font-family: var(--fuente-familia) !important;
  font-size: var(--texto-cuerpo) !important;
  font-weight: var(--peso-seminegrita) !important;
  text-transform: none !important;
  cursor: pointer;
  outline: 0;
}

.entrada-fecha-flatpickr:focus {
  border-color: var(--color-marca-azul) !important;
  box-shadow: var(--anillo-foco) !important;
}

.icono-control-flatpickr {
  position: absolute;
  z-index: 2;
  top: 50%;
  right: 12px;
  width: 20px;
  height: 20px;
  display: grid;
  place-items: center;
  color: var(--color-marca-azul);
  transform: translateY(-50%);
  pointer-events: none;
}

.icono-control-flatpickr svg {
  width: 19px;
  height: 19px;
}

/* El calendario vive dentro del <dialog> para permanecer en la capa superior. */
.popup-cuenta.popup-con-flatpickr {
  overflow: visible !important;
}

.popup-cuenta.popup-con-flatpickr > form {
  max-height: calc(100vh - 40px);
  overflow: auto;
  border-radius: inherit;
}

.popup-cuenta.popup-con-flatpickr > .flatpickr-calendar {
  z-index: 50;
}

.flatpickr-months {
  position: relative !important;
  min-height: 50px !important;
  align-items: center !important;
  padding: 10px 0 !important;
  background: linear-gradient(120deg,var(--color-marca-azul-oscuro),var(--color-marca-azul)) !important;
}

.flatpickr-months .flatpickr-month {
  height: 32px !important;
  display: flex !important;
  flex: 1 1 auto !important;
  align-items: center !important;
  justify-content: center !important;
  overflow: visible !important;
  color: #fff !important;
  background: transparent !important;
}

.flatpickr-current-month {
  position: static !important;
  left: auto !important;
  width: auto !important;
  height: auto !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: var(--espacio-2) !important;
  padding: 0 44px !important;
  color: #fff !important;
  font-size: var(--texto-titulo) !important;
  font-weight: var(--peso-negrita) !important;
}

.flatpickr-current-month .flatpickr-monthDropdown-months,
.flatpickr-current-month input.cur-year {
  color: #fff !important;
  background: transparent !important;
  font-family: var(--fuente-familia) !important;
  font-size: var(--texto-cuerpo) !important;
  font-weight: var(--peso-negrita) !important;
}

.flatpickr-current-month .flatpickr-monthDropdown-months {
  padding: 2px 4px !important;
  border: 0 !important;
  border-radius: var(--radio-sm) !important;
  outline: 0 !important;
  text-align: center !important;
  cursor: pointer !important;
}

.flatpickr-current-month .flatpickr-monthDropdown-months:hover {
  background: rgba(255,255,255,.18) !important;
}

.flatpickr-current-month .flatpickr-monthDropdown-months option {
  color: #141414 !important;
  background: #fff !important;
}

.flatpickr-months .flatpickr-prev-month,
.flatpickr-months .flatpickr-next-month {
  position: absolute !important;
  top: 50% !important;
  width: 30px !important;
  height: 30px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  padding: 0 !important;
  border-radius: 50% !important;
  background: rgba(255,255,255,.18) !important;
  transform: translateY(-50%) !important;
}

.flatpickr-months .flatpickr-prev-month {
  left: 12px !important;
}

.flatpickr-months .flatpickr-next-month {
  right: 12px !important;
}

.flatpickr-months .flatpickr-prev-month:hover,
.flatpickr-months .flatpickr-next-month:hover {
  background: rgba(255,255,255,.34) !important;
}

.flatpickr-months .flatpickr-prev-month svg,
.flatpickr-months .flatpickr-next-month svg {
  width: 15px !important;
  height: 15px !important;
  fill: #fff !important;
}

.flatpickr-weekdaycontainer {
  background: transparent !important;
}

span.flatpickr-weekday {
  color: var(--color-marca-azul-oscuro) !important;
  background: transparent !important;
  font-size: var(--texto-auxiliar) !important;
  font-weight: var(--peso-negrita) !important;
}

.flatpickr-day:hover {
  border-color: var(--color-foco) !important;
  color: var(--color-marca-azul-oscuro) !important;
  background: var(--color-superficie-terciaria) !important;
}

.flatpickr-day.today {
  border-color: var(--color-marca-azul) !important;
  color: var(--color-marca-azul) !important;
  font-weight: var(--peso-negrita) !important;
}

.flatpickr-day.selected,
.flatpickr-day.selected:hover {
  border-color: transparent !important;
  color: #fff !important;
  background: linear-gradient(120deg,var(--color-marca-azul),var(--color-marca-azul-oscuro)) !important;
  font-weight: var(--peso-negrita) !important;
}

.flatpickr-day.flatpickr-disabled,
.flatpickr-day.prevMonthDay,
.flatpickr-day.nextMonthDay {
  color: var(--color-texto-suave) !important;
  opacity: .55;
}

.flatpickr-calendar.hasTime .flatpickr-time {
  height: auto !important;
  max-height: none !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 4px !important;
  border-top: 1px solid var(--color-borde) !important;
  border-radius: 0 0 var(--radio-panel) var(--radio-panel) !important;
  background: var(--color-superficie-secundaria) !important;
}

.flatpickr-time .numInputWrapper {
  width: 43px !important;
  flex: 0 0 auto !important;
  overflow: hidden !important;
  border-radius: var(--radio-sm) !important;
}

.flatpickr-time input {
  color: var(--color-marca-azul-oscuro) !important;
  background: transparent !important;
  font-family: var(--fuente-familia) !important;
  font-size: var(--texto-cuerpo) !important;
  font-weight: var(--peso-negrita) !important;
}

.flatpickr-time .flatpickr-time-separator {
  flex: 0 0 auto !important;
  color: var(--color-texto-fuerte) !important;
  font-weight: var(--peso-negrita) !important;
}

.flatpickr-time .flatpickr-am-pm {
  width: auto !important;
  flex: 0 0 auto !important;
  padding: 0 6px !important;
  border-radius: var(--radio-sm) !important;
  color: var(--color-marca-azul-oscuro) !important;
  background: transparent !important;
  font-family: var(--fuente-familia) !important;
  font-size: var(--texto-cuerpo) !important;
  font-weight: var(--peso-negrita) !important;
}

.flatpickr-time input:hover,
.flatpickr-time input:focus,
.flatpickr-time .flatpickr-am-pm:hover {
  background: var(--color-superficie-terciaria) !important;
}

.fp-ahora-btn,
.fp-listo-btn {
  min-height: 33px;
  flex: 0 0 auto;
  margin-left: 3px;
  padding: 6px 10px;
  border: 0;
  border-radius: var(--radio-sm);
  color: #fff;
  font-family: var(--fuente-familia);
  font-size: var(--texto-auxiliar);
  font-weight: var(--peso-negrita);
  cursor: pointer;
}

.fp-ahora-btn {
  background: linear-gradient(120deg,var(--color-marca-azul),var(--color-marca-azul-oscuro));
}

.fp-listo-btn {
  background: var(--color-exito);
}

/* v67 · Modales compactos, Flatpickr unificado y colores financieros semánticos. */
.popup-nuevo-movimiento { width: min(690px,calc(100% - 32px)); }
.popup-nuevo-movimiento .rejilla-popup-cuenta,
.popup-cuenta:not(.popup-nuevo-movimiento):not(.popup-abono-tercero) .rejilla-popup-cuenta {
  gap: var(--espacio-5);
  padding: var(--espacio-7) var(--espacio-8);
}

/* Ingreso y egreso siempre usan los colores semánticos oficiales. */
.selector-naturaleza-movimiento input:checked + .opcion-movimiento-ingreso {
  --color-relieve: var(--color-exito);
  border-color: color-mix(in srgb,var(--color-exito) 72%,black);
  background: linear-gradient(180deg,color-mix(in srgb,var(--color-exito) 72%,white),var(--color-exito) 56%,color-mix(in srgb,var(--color-exito) 76%,black));
}
.selector-naturaleza-movimiento input:checked + .opcion-movimiento-egreso {
  --color-relieve: var(--color-peligro);
  border-color: color-mix(in srgb,var(--color-peligro) 72%,black);
  background: linear-gradient(180deg,color-mix(in srgb,var(--color-peligro) 72%,white),var(--color-peligro) 56%,color-mix(in srgb,var(--color-peligro) 76%,black));
}
.popup-nuevo-movimiento[data-naturaleza-movimiento="ingreso"] button[type="submit"] { --color-relieve: var(--color-exito); }
.popup-nuevo-movimiento[data-naturaleza-movimiento="egreso"] button[type="submit"] { --color-relieve: var(--color-peligro); }
/* Días y números comparten exactamente la misma cuadrícula de siete columnas. */
.flatpickr-calendar {
padding: 0 !important;
  overflow: hidden !important;
  border: 1px solid var(--color-borde-panel) !important;
  border-radius: var(--radio-panel) !important;
  color: var(--color-texto-fuerte) !important;
  background: var(--color-superficie) !important;
  box-shadow: var(--sombra-calendario) !important;
  font-family: var(--fuente-familia) !important;
width: var(--ancho-calendario) !important;
  max-width: calc(100vw - 24px) !important;
}

.flatpickr-rContainer {
  width: 100% !important;
  min-width: 100% !important;
  max-width: 100% !important;
}

.flatpickr-weekdays {
background: var(--color-superficie-terciaria) !important;
width: 100% !important;
  height: 36px !important;
  padding: 6px 10px !important;
}

.flatpickr-weekdays .flatpickr-weekdaycontainer {
  width: 100% !important;
  display: grid !important;
  grid-template-columns: repeat(7,minmax(0,1fr));
  align-items: center;
}

span.flatpickr-weekday {
  width: 100% !important;
  min-width: 0 !important;
  display: grid !important;
  place-items: center;
  line-height: 24px !important;
}

.flatpickr-days {
background: var(--color-superficie) !important;
width: 100% !important;
  min-width: 100% !important;
  max-width: 100% !important;
padding: 8px 10px !important;
}

.flatpickr-days .dayContainer {
justify-content: center !important;
  padding: 0 !important;
width: 100% !important;
  min-width: 100% !important;
  max-width: 100% !important;
display: grid !important;
  grid-template-columns: repeat(7,minmax(0,1fr));
  align-items: center;
  justify-items: center;
}

.flatpickr-day {
height: 38px !important;
  border: 1.5px solid transparent !important;
  border-radius: var(--radio-sm) !important;
  color: var(--color-texto-fuerte) !important;
  font-size: var(--texto-auxiliar) !important;
  font-weight: var(--peso-seminegrita) !important;
width: 38px !important;
  max-width: 38px !important;
  margin: 1px 0 !important;
  display: grid !important;
  place-items: center;
  line-height: normal !important;
}

.fp-acciones-hd {
  min-height: 51px;
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: var(--espacio-3);
  padding: var(--espacio-3) var(--espacio-4);
  border-top: 1px solid var(--color-borde);
  background: var(--color-superficie-secundaria);
}

.fp-acciones-hd .fp-ahora-btn,
.fp-acciones-hd .fp-listo-btn {
  min-width: 72px;
  margin: 0;
}

/* v68 · Reglas finales sobre las capas visuales anteriores. */
.popup-nuevo-movimiento .campo-fecha-flatpickr,
.popup-cuenta:not(.popup-nuevo-movimiento):not(.popup-abono-tercero) .campo-fecha-flatpickr {
  max-width: none;
  grid-column: span 4;
}

.flatpickr-calendar.hasTime .flatpickr-time {
  padding: 8px !important;
  flex-wrap: nowrap !important;
}

.flatpickr-calendar.hasTime .fp-acciones-hd.fp-acciones-hd-en-reloj {
  min-height: 0;
  flex: 0 0 auto;
  gap: 4px;
  margin-left: 4px;
  padding: 0;
  border: 0;
  background: transparent;
}

.flatpickr-calendar.hasTime .fp-acciones-hd-en-reloj .fp-ahora-btn,
.flatpickr-calendar.hasTime .fp-acciones-hd-en-reloj .fp-listo-btn {
  min-width: 0;
  min-height: 32px;
  margin: 0;
  padding: 5px 8px;
  font-size: var(--texto-auxiliar);
}

.selector-vista-financiera:hover .selector-vista-icono,
.selector-vista-financiera-activa:hover .selector-vista-icono { color: inherit; }

@media (max-width: 760px) {

.popup-nuevo-movimiento .campo-fecha-flatpickr,
.popup-cuenta:not(.popup-nuevo-movimiento):not(.popup-abono-tercero) .campo-fecha-flatpickr {
  grid-column: 1;
}

.flatpickr-calendar.hasTime .fp-acciones-hd-en-reloj .fp-ahora-btn,
.flatpickr-calendar.hasTime .fp-acciones-hd-en-reloj .fp-listo-btn {
  padding-inline: 6px;
}

}

/* El reloj y los días conservan legibilidad en pantallas muy estrechas. */
@media (max-width: 360px) {
  .flatpickr-day { width: min(38px, 100%) !important; }
  .flatpickr-calendar.hasTime .flatpickr-time { flex-wrap: wrap !important; }
}

/* v69 · Acciones, etiquetas y fechas unificadas en todo el Gestor financiero. */

/* v70 · Tabla financiera a ancho completo. */

.modulo-finanzas .tabla .acciones-registro {
  justify-content: center;
  flex-wrap: nowrap;
  gap: var(--separacion-acciones);
}
.accion-abonar { --color-relieve: var(--color-marca-azul); }
.accion-liquidar { --color-relieve: var(--color-accion-exito); }

.modulo-finanzas .boton,
.modulo-finanzas .fp-ahora-btn,
.modulo-finanzas .fp-listo-btn {
  white-space: nowrap;
}

.modulo-finanzas .entrada-fecha-flatpickr,
.modulo-finanzas input.flatpickr-input + .entrada-fecha-flatpickr {
  min-width: 0;
  text-overflow: ellipsis;
}

.modulo-finanzas .entrada-fecha-tabla.entrada-fecha-flatpickr {
  min-width: 205px;
}

.modulo-finanzas .selector-fecha-simple,
.modulo-finanzas .campo-fecha-flatpickr {
  min-width: 0;
}

@media (max-width: 860px) {

  .modulo-finanzas .tabla .acciones-registro { justify-content: flex-end; flex-wrap: wrap; }
}

/* v89 · Gestor financiero esencial y mejor lectura de Liquidados. */
.selector-vistas-finanzas > .boton-nuevo-movimiento {
  min-height: var(--alto-control);
  flex: 0 0 auto;
  margin-right: var(--espacio-2);
  padding: 9px 15px;
  border-radius: var(--radio-control);
  box-shadow: 0 3px 0 color-mix(in srgb,var(--color-marca-azul-oscuro) 76%,black), 0 7px 13px rgba(15,65,150,.16);
}

@media (max-width: 860px) {
  .selector-vistas-finanzas > .boton-nuevo-movimiento { position: sticky; left: 0; z-index: 2; }
}

/* v100 · Cotizador comercial a ancho completo. */

.formulario-modulo.cotizador-inteligente {
  width: 100%;
  max-width: none;
  margin: 0;
  gap: var(--espacio-9);
}

.encabezado-cotizador {
  width: 100%;
}

.panel-cliente-cotizacion,.panel-detalle-por-item {
  min-width: 0;
  overflow: visible;
}

.panel-detalle-por-item > header { align-items:center; }

.tabla-detalle-cotizacion .tabla-items td {
  vertical-align: middle;
}
.tabla-detalle-cotizacion .identificador-item {
  color: var(--color-marca-azul-oscuro);
  font-weight: var(--peso-negrita);
  text-align: center;
}
.tabla-detalle-cotizacion [data-linea] {
  display: block;
}
.tabla-detalle-cotizacion [data-ganancia-linea] {
  display: block;
  margin-top: 3px;
  color: var(--color-texto-suave);
  font-size: var(--texto-auxiliar);
  white-space: nowrap;
}
.acciones-item-cotizacion {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: var(--separacion-acciones);
}
.tabla-detalle-cotizacion tfoot th {
  padding: 13px var(--espacio-5);
  border-top: 2px solid var(--color-marca-azul);
  color: var(--color-texto-inverso);
  background: var(--color-marca-azul);
}
.tabla-detalle-cotizacion tfoot th:first-child {
  text-align: center;
  text-transform: uppercase;
}
.tabla-detalle-cotizacion tfoot .celda-dinero {
  text-align: right;
}

@media (max-width:1200px) {
  .acciones-detalle-item {
  min-width: 0;
}
  
}
@media (max-width:760px) {
  .acciones-cuentas-encabezado { width:100%; justify-content:space-between; }
  .panel-detalle-por-item > header,.acciones-detalle-item {
  align-items: stretch;
  flex-direction: column;
}

}

/* v100.3 · Liquidados, resumen mensual y portada comercial. */

.modulo-finanzas .tabla-finanzas-liquidados td:nth-child(4) { line-height: 1.45; }

.resumen-mes-encabezado {
  min-width: 0;
  display: grid;
  grid-template-columns: repeat(var(--columnas-resumen-mes,4),minmax(130px,1fr));
  align-items: stretch;
}
.resumen-mes-encabezado > div {
  min-width: 0;
  display: grid;
  align-content: center;
  gap: 3px;
  padding: 10px 18px;
  border-left: 1px solid rgba(255,255,255,.24);
  text-align: right;
}
.resumen-mes-encabezado span {
  color: var(--color-texto-inverso-suave);
  font-size: var(--texto-auxiliar);
  font-weight: var(--peso-seminegrita);
}
.resumen-mes-encabezado strong { color: #fff; font-size: var(--texto-destacado); white-space: nowrap; }

.encabezado-cotizaciones-lista {
  align-items: end;
}

.filtros-cotizaciones-principal {
  display: grid;
  grid-template-columns: minmax(320px,1fr) minmax(210px,240px) auto auto auto;
  align-items: center;
  gap: var(--espacio-5);
  padding: var(--espacio-7);
}
.campo-busqueda-cotizaciones {
  position: relative;
  min-width: 0;
}
.campo-busqueda-cotizaciones > svg {
  position: absolute;
  top: 50%;
  left: 14px;
  width: 18px;
  height: 18px;
  color: var(--color-marca-azul);
  transform: translateY(-50%);
  pointer-events: none;
}
.campo-busqueda-cotizaciones input, .selector-estado-cotizaciones select {
  width: 100%;
  min-height: var(--alto-control);
  border: 1px solid var(--color-borde);
  border-radius: var(--radio-control);
  color: var(--color-texto);
  background: var(--color-superficie);
  font: inherit;
  outline: 0;
}
.campo-busqueda-cotizaciones input {
  padding: var(--espacio-4) var(--espacio-6) var(--espacio-4) 42px;
}
.selector-estado-cotizaciones select {
  padding: 9px 38px 9px var(--espacio-5);
}
.campo-busqueda-cotizaciones input:focus, .selector-estado-cotizaciones select:focus {
  border-color: var(--color-marca-azul);
  box-shadow: var(--anillo-foco);
}
.boton-limpiar-cotizaciones {
  color: var(--color-marca-azul-oscuro);
  font-size: var(--texto-auxiliar);
  font-weight: var(--peso-negrita);
  text-decoration: none;
}
.contador-cotizaciones {
  grid-column: 5;
  justify-self: end;
  color: var(--color-texto-suave);
  font-size: var(--texto-auxiliar);
  white-space: nowrap;
}

.pestanas-estados-cotizaciones a:hover {
  border-color: var(--color-marca-azul);
}

.pestanas-estados-cotizaciones b {
  min-width: 28px;
  min-height: 28px;
  display: grid;
  place-items: center;
  padding: 3px 7px;
  border-radius: var(--radio-pildora);
  color: currentColor;
  background: color-mix(in srgb,var(--color-superficie-terciaria) 70%,var(--color-superficie));
}

.panel-listado-cotizaciones {
  overflow: hidden;
}
.tabla-cotizaciones-lista td > small {
  display: block;
  margin-top: 3px;
  color: var(--color-texto-suave);
}
.tabla-cotizaciones-lista .estado {
  max-width: 100%;
  white-space: nowrap;
}

@media (max-width: 1180px) {
  .resumen-mes-encabezado { border-top: 1px solid rgba(255,255,255,.22); }
  .resumen-mes-encabezado > div:first-child { border-left: 0; }
  .filtros-cotizaciones-principal {
  grid-template-columns: minmax(280px,1fr) minmax(190px,230px) auto auto;
}
  .contador-cotizaciones {
  grid-column: 1/-1;
  justify-self: start;
}
}

@media (max-width: 860px) {

  .filtros-cotizaciones-principal {
  grid-template-columns: 1fr;
}
  .boton-limpiar-cotizaciones,.contador-cotizaciones {
  justify-self: start;
}
  .resumen-mes-encabezado { grid-template-columns: 1fr 1fr; }
  .resumen-mes-encabezado > div:nth-child(3) { border-top: 1px solid rgba(255,255,255,.22); border-left: 0; }
  .resumen-mes-encabezado > div:nth-child(4) { border-top: 1px solid rgba(255,255,255,.22); }
}

/* v100.5 · Módulos estandarizados y constructor de precios por componentes. */


/* v3.0: Planeación es el patrón. Variar solo la cantidad de indicadores,
   conservando el ancho por columna, la tipografía y la alineación compartidos. */
.resumen-mes-encabezado { width:min(calc(var(--columnas-resumen-mes,4) * 190px),72%); flex:0 1 calc(var(--columnas-resumen-mes,4) * 190px); grid-template-columns:repeat(var(--columnas-resumen-mes,4),minmax(0,1fr)); border-top:0; }
.resumen-mes-encabezado > div { padding:10px 14px; }

@media (max-width:860px) {

  .encabezado-mes-planeacion { min-width:0; flex-direction:column; }
  .titulo-mes-planeacion { width:100%; min-width:0; }
  .mes-planeacion { overflow-x:auto; }
  .resumen-mes-encabezado { width:100%; flex:0 0 auto; grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:480px) {
  /* Mantener la misma escala tipográfica sin apretar los importes en móviles. */
  .resumen-mes-encabezado { grid-template-columns:minmax(0,1fr); }
}

/* v101.5 · Una sola familia de encabezados y acciones principales. */

.panel-cliente-cotizacion {
  width: 100%;
}
.titulo-resultados-producto { display:block; padding:9px 12px 5px; color:var(--color-marca-azul-oscuro); background:var(--color-superficie-secundaria); font-size: var(--texto-auxiliar); font-weight:var(--peso-negrita); letter-spacing:.035em; text-transform:uppercase; }
.asa-reordenar-item { padding:0; border:0; color:var(--color-marca-azul); background:transparent; cursor:grab; font-size:var(--texto-titulo); font-weight:var(--peso-negrita); line-height:1; }
.identificador-item { display:grid; grid-template-columns:auto auto; place-content:center; align-items:center; gap:4px; }
.item-cotizacion-arrastrando {
  opacity: .55;
}
.item-cotizacion-arrastrando > td {
  box-shadow: inset 0 2px #8bc9e8, inset 0 -2px #8bc9e8;
}

.resumen-mes-encabezado > div { background:transparent; }

.grupo-cuentas-saldo { display:inline-flex; align-items:center; gap:6px; padding:5px 9px; border:1px solid currentColor; border-radius:999px; background:#fff; font-weight:var(--peso-seminegrita); }
.grupo-cuentas-linea-principal { row-gap:7px; }

.panel-cliente-cotizacion > header, .panel-detalle-por-item > header {
  border-radius: calc(var(--radio-panel) - 1px) calc(var(--radio-panel) - 1px) 0 0;
}

/* v2.1 · Resúmenes financieros conservados durante la migración v4.1. */
.titulo-panel-planeacion {
  min-width: 210px;
  display: grid;
  align-content: center;
  flex: 1 1 auto;
  padding: 13px 18px 13px 0;
}
.acciones-cuentas-encabezado { align-self: stretch; }
.resumen-encabezado-financiero span {
  font-weight: var(--peso-seminegrita);
}
.resumen-cuentas-encabezado {
  position: relative;
  min-height: var(--alto-encabezado-panel);
  grid-template-columns: 1fr;
  align-content: center;
  gap: 3px;
  padding: 10px 18px;
  border-left: 0;
}
.resumen-cuentas-encabezado strong {
  font-size: var(--texto-destacado);
  white-space: nowrap;
}
.resumen-cuentas-encabezado::before,
.resumen-mes-encabezado > div::before {
  content: "";
  position: absolute;
  top: 14px;
  bottom: 14px;
  left: 0;
  width: 1px;
  background: rgba(255,255,255,.28);
}
.resumen-mes-encabezado > div {
  position: relative;
  border-left: 0;
}
.resumen-mes-encabezado .resumen-ingreso strong,
.resumen-mes-encabezado .resumen-positivo strong {
  color: var(--color-texto-positivo);
}
.resumen-mes-encabezado .resumen-egreso strong,
.resumen-mes-encabezado .resumen-negativo strong {
  color: var(--color-texto-negativo);
}
/* El primer indicador de Planeación es saldo inicial; en el Gestor es ingreso.
   El color semántico no debe depender de que un ingreso ocupe la primera celda. */
.resumen-mes-encabezado > div:first-child:not(.resumen-ingreso):not(.resumen-egreso) strong { color: #fff; }

@media (max-width:860px) {
  .titulo-panel-planeacion { width: 100%; min-width: 0; padding-inline: 0; }
}
/* v2.2 · Jerarquía visual única y acciones dentro de cada encabezado. */

.encabezado-pagina:not(.hd-encabezado-pagina) > div:first-child {
  max-width: 900px;
}

.encabezado-pagina:not(.hd-encabezado-pagina) .acciones-pagina .boton {
  white-space: nowrap;
}

.modulo-finanzas .panel-finanzas-listado { margin-top: var(--espacio-9); }

.modulo-finanzas .encabezado-finanzas .acciones-pagina {
  gap: var(--separacion-acciones);
}

/* v2.3 · Informe mensual compacto, automático y coherente con los demás módulos. */
.encabezado-informe-mensual { gap: var(--espacio-5); }
.encabezado-informe-mensual > div:first-child { min-width: 310px; }
.encabezado-informe-mensual .acciones-exportacion-informe {
  display: flex;
  align-items: end;
  justify-content: flex-end;
  gap: var(--espacio-3);
  flex-wrap: wrap;
}
.selector-periodo-informe {
  min-width: 205px;
  display: grid;
  gap: 5px;
}
.selector-periodo-informe label {
  color: var(--color-texto-suave);
  font-size: var(--texto-auxiliar);
  font-weight: var(--peso-seminegrita);
}
.selector-periodo-informe select {
  width: 100%;
  min-height: var(--alto-control);
  border: 1px solid var(--color-borde);
  border-radius: var(--radio-control);
  color: var(--color-texto);
  background: var(--color-superficie);
}
@media (max-width: 560px) {
  .encabezado-informe-mensual .acciones-exportacion-informe { justify-content: stretch; }
  .selector-periodo-informe { width: 100%; }
}
/* v2.4 · Flujo comercial visible y cotizador detallado en una sola pantalla. */
.pestanas-estados-cotizaciones a {
  min-width: 0;
  justify-content: space-between;
  border: 1px solid var(--color-borde);
  border-radius: var(--radio-control);
  background: var(--color-superficie);
  text-decoration: none;
  font-weight: var(--peso-seminegrita);
  min-height: 66px;
  display: grid;
  grid-template-columns: 38px minmax(0, 1fr) auto;
  align-items: center;
  gap: 9px;
  padding: var(--espacio-3) var(--espacio-4);
  border-color: color-mix(in srgb, currentColor 18%, var(--color-borde));
  color: var(--color-texto);
}

.pestanas-estados-cotizaciones a > span:nth-child(2) {
  min-width: 0;
  display: grid;
}

.pestanas-estados-cotizaciones a strong {
  overflow: hidden;
  font-size: var(--texto-cuerpo);
  text-overflow: ellipsis;
  white-space: nowrap;
}

.pestanas-estados-cotizaciones a small {
  overflow: hidden;
  color: currentColor;
  font-size: var(--texto-auxiliar);
  opacity: .76;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.pestanas-estados-cotizaciones a .estado-cotizacion-icono {
  width: 38px;
  height: 38px;
}

.pestanas-estados-cotizaciones a .estado-cotizacion-icono svg {
  width: 19px;
  height: 19px;
}

.pestanas-estados-cotizaciones a.estado-cotizacion-solicitud {
  color: var(--estado-solicitud-texto);
  background: var(--estado-solicitud-fondo);
}

.pestanas-estados-cotizaciones a.estado-cotizacion-enviada {
  color: var(--estado-enviada-texto);
  background: var(--estado-enviada-fondo);
}

.pestanas-estados-cotizaciones a.estado-cotizacion-aprobada {
  color: var(--estado-aprobada-texto);
  background: var(--estado-aprobada-fondo);
}

.pestanas-estados-cotizaciones a.estado-cotizacion-produccion {
  color: var(--estado-produccion-texto);
  background: var(--estado-produccion-fondo);
}

.pestanas-estados-cotizaciones a.estado-cotizacion-entregada {
  color: var(--estado-entregada-texto);
  background: var(--estado-entregada-fondo);
}

.pestanas-estados-cotizaciones a.estado-cotizacion-registrada {
  color: var(--estado-registrada-texto);
  background: var(--estado-registrada-fondo);
}

.pestanas-estados-cotizaciones a.estado-cotizacion-pendiente_factura {
  color: var(--estado-pendiente-factura-texto);
  background: var(--estado-pendiente-factura-fondo);
}

.pestanas-estados-cotizaciones a.estado-cotizacion-facturada {
  color: var(--estado-facturada-texto);
  background: var(--estado-facturada-fondo);
}

.pestanas-estados-cotizaciones a.activa {
  border-color: currentColor;
  box-shadow: inset 0 -3px currentColor;
}

.pestanas-estados-cotizaciones .pestana-estado-todas {
  color: var(--color-marca-azul-oscuro);
  background: var(--color-superficie-secundaria);
}

.control-estado-cotizacion:focus-within {
  box-shadow: var(--anillo-foco);
}
.control-estado-cotizacion-bloqueado strong {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.estado-cotizacion-no_aprobada,.estado-cotizacion-cancelada {
  color: var(--alerta-peligro-texto);
  background: var(--alerta-peligro-fondo);
}
.estado-cotizacion-archivada {
  color: var(--color-texto-suave);
  background: var(--color-superficie-secundaria);
}

.estado-cotizacion-cabecera {
  width: max-content;
  min-height: 38px;
  display: inline-grid;
  grid-template-columns: 30px auto;
  align-items: center;
  gap: var(--espacio-3);
  margin-top: var(--espacio-4);
  padding: var(--espacio-1) var(--espacio-4) var(--espacio-1) 5px;
  border: 1px solid color-mix(in srgb, currentColor 24%, var(--color-borde));
  border-radius: var(--radio-pildora);
}
.estado-cotizacion-cabecera .estado-cotizacion-icono {
  width: 28px;
  height: 28px;
  border-radius: var(--radio-unico);
  box-shadow: none;
}
.estado-cotizacion-cabecera .estado-cotizacion-icono svg {
  width: 15px;
  height: 15px;
}
.aviso-cotizacion-solo-lectura {
  margin-bottom: var(--espacio-5);
}
.cotizador-solo-lectura .acciones-detalle-item {
  display: none;
}
.cotizador-solo-lectura input:disabled,.cotizador-solo-lectura select:disabled,.cotizador-solo-lectura textarea:disabled {
  opacity: 1;
  color: var(--color-texto-fuerte);
  -webkit-text-fill-color: var(--color-texto-fuerte);
  cursor: default;
}
.cotizador-solo-lectura .tabla-items-cotizacion-detallada th.tabla-accion, .cotizador-solo-lectura .tabla-items-cotizacion-detallada td.tabla-accion {
  display: none;
}

.tabla-detalle-cotizacion {
  width: 100%;
  overflow-x: auto;
}

.tabla-items-cotizacion-detallada td {
  padding: var(--espacio-4) var(--espacio-3);
}
.tabla-items-cotizacion-detallada [data-ganancia-unitaria], .tabla-items-cotizacion-detallada [data-ganancia-linea], .tabla-items-cotizacion-detallada [data-linea] {
  display: block;
  margin: 0;
  font-size: var(--texto-cuerpo);
  white-space: nowrap;
}
.tabla-items-cotizacion-detallada [data-linea] {
  color: var(--color-marca-azul-oscuro);
  font-weight: var(--peso-negrita);
}

/* v2.5 · Búsqueda inmediata y flujo de facturación conectado. */

.tabla-cotizaciones-lista td:nth-child(1),.tabla-cotizaciones-lista td:nth-child(2),.tabla-cotizaciones-lista td:nth-child(3) {
  overflow-wrap: anywhere;
}

.control-estado-cotizacion .estado-cotizacion-icono {
  width: var(--tamano-icono-estado-cotizacion);
  height: var(--tamano-icono-estado-cotizacion);
  border-radius: var(--radio-control);
  box-shadow: none;
}
.control-estado-cotizacion .estado-cotizacion-icono svg {
  width: var(--tamano-svg-estado-cotizacion);
  height: var(--tamano-svg-estado-cotizacion);
}

.control-estado-cotizacion strong {
  overflow: hidden;
  font-size: var(--texto-estado-cotizacion);
  line-height: var(--interlineado-compacto);
  font-weight: var(--peso-seminegrita);
  text-overflow: ellipsis;
  white-space: nowrap;
}

.accion-editar-facturacion {
  width: var(--tamano-accion-facturacion);
  height: var(--tamano-accion-facturacion);
  display: grid;
  place-items: center;
  padding: 0;
  border: 1px solid var(--color-borde);
  border-radius: var(--radio-unico);
  color: var(--color-marca-azul-oscuro);
  background: var(--color-superficie);
  cursor: pointer;
}
.accion-editar-facturacion:hover {
  border-color: var(--color-marca-azul);
  box-shadow: var(--sombra-control);
}
.accion-editar-facturacion svg {
  width: var(--tamano-svg-estado-cotizacion);
  height: var(--tamano-svg-estado-cotizacion);
}
.popup-facturacion-cotizacion > section > header {
  color: var(--color-texto-inverso);
  background: var(--relieve-fondo);
}
.popup-facturacion-cotizacion > section > header .sobrelinea {
  color: var(--color-texto-inverso-suave);
}
.popup-facturacion-cotizacion > section > footer {
  flex-wrap: wrap;
}

/* v2.6 · Distribución compacta, ventanas unificadas e historial por cliente. */

.tabla-cotizaciones-lista thead th, .tabla-cotizaciones-lista thead th.celda-dinero, .tabla-cotizaciones-lista thead th.tabla-accion {
  text-align: center !important;
}
.tabla-cotizaciones-lista thead .tabla-ordenable, .tabla-cotizaciones-lista thead .celda-dinero .tabla-ordenable {
  justify-content: center;
}

.popup-cuenta.popup-facturacion-cotizacion {
  width: min(690px,calc(100% - 32px));
}
.popup-facturacion-cotizacion > form > header {
  --color-relieve: var(--color-marca-azul-oscuro);
}
.contenido-facturacion-cotizacion {
  display: grid;
  gap: var(--espacio-3);
  padding: var(--espacio-9);
  background: var(--color-superficie-secundaria);
}
.contenido-facturacion-cotizacion strong {
  color: var(--color-texto-fuerte);
  font-size: var(--texto-cuerpo);
}
.contenido-facturacion-cotizacion p {
  margin: 0;
  color: var(--color-texto-suave);
  line-height: var(--interlineado-base);
}
.popup-facturacion-cotizacion > form > footer {
  justify-content: flex-end;
  flex-wrap: nowrap;
}
.popup-facturacion-cotizacion > form > footer .boton {
  white-space: nowrap;
}

.rejilla-cliente-historial-cotizacion > .panel {
  min-width: 0;
  margin: 0;
}

.estado-historial-cliente { min-height: 106px; display: grid; place-content: center; gap: 3px; color: var(--color-texto-suave); text-align: center; }
.estado-historial-cliente strong { color: var(--color-texto-fuerte); }

.item-historial-cliente:hover {
  border-color: var(--color-marca-azul);
  box-shadow: var(--sombra-control);
}
.item-historial-cliente > span {
  min-width: 0;
  display: grid;
  gap: 2px;
}
.item-historial-cliente strong,.item-historial-cliente small {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.item-historial-cliente strong {
  color: var(--color-texto-fuerte);
  font-size: var(--texto-auxiliar);
}
.item-historial-cliente small {
  color: var(--color-texto-suave);
  font-size: var(--texto-auxiliar);
}
.item-historial-cliente b {
  color: var(--color-marca-azul-oscuro);
  font-size: var(--texto-auxiliar);
  white-space: nowrap;
}

@media (max-width: 980px) {
  .rejilla-cliente-historial-cotizacion {
  grid-template-columns: 1fr;
}
}
@media (max-width: 860px) {
  .popup-facturacion-cotizacion > form > footer {
  flex-direction: column;
}
  .popup-facturacion-cotizacion > form > footer .boton {
  width: 100%;
}
}
/* v2.8 · Gastos detallados, valores fijos y tabla de cotización redistribuida. */

.pestanas-estados-cotizaciones > a {
  width: 100%;
  height: 100%;
  min-height: 66px;
  margin: 0;
  align-self: stretch;
  box-sizing: border-box;
  transform: none;
  display: grid;
  grid-template-columns: 40px minmax(0,1fr) auto;
  align-items: center;
  gap: var(--espacio-4);
  padding: 9px 11px;
}

.pestanas-estados-cotizaciones > a > span:nth-child(2) {
  align-self: center;
  display: grid;
  gap: 2px;
}

.pestanas-estados-cotizaciones .estado-cotizacion-icono {
  align-self: center;
}

.tabla th + th,.tabla td + td { border-left: 0; }

.rejilla-cliente-historial-cotizacion {
  min-width: 0;
  display: grid;
  grid-template-columns: minmax(320px,.8fr) minmax(0,1.2fr);
  align-items: stretch;
  gap: var(--espacio-8);
}

.panel-historial-cliente-cotizacion {
  overflow: hidden;
}
.panel-historial-cliente-cotizacion > header,.panel-otros-gastos-cotizacion > header {
  min-height: 78px;
  align-items: center;
}
.lista-historial-cliente-cotizacion {
  min-height: var(--alto-historial-cliente-minimo);
  max-height: var(--alto-historial-cliente-maximo);
  display: grid;
  align-content: start;
  gap: var(--espacio-2);
  padding: var(--espacio-4) var(--espacio-6);
  overflow-y: auto;
  background: var(--color-superficie);
}
.item-historial-cliente {
  min-width: 0;
  display: grid;
  grid-template-columns: minmax(0,1fr) auto;
  align-items: center;
  gap: var(--espacio-5);
  padding: 9px 11px;
  border: 1px solid var(--color-borde);
  border-radius: var(--radio-control);
  color: var(--color-texto);
  background: var(--color-superficie-secundaria);
  text-align: left;
  cursor: pointer;
  min-height: 52px;
  border-color: var(--color-borde-panel);
}

.panel-otros-gastos-cotizacion > header {
  gap: var(--espacio-7);
}
.boton-agregar-gasto {
  flex: 0 0 auto;
  white-space: nowrap;
}
.contenido-otros-gastos {
  display: grid;
  grid-template-columns: 1fr;
  align-items: end;
  gap: var(--espacio-4);
  padding: var(--espacio-5) var(--espacio-6) var(--espacio-6);
}
.lista-otros-gastos {
  display: grid;
  gap: var(--espacio-3);
}
.fila-otro-gasto {
  display: grid;
  grid-template-columns: minmax(0,1fr) minmax(var(--ancho-valor-cotizacion), var(--ancho-campo-gasto)) var(--tamano-icono-accion);
  align-items: center;
  gap: var(--espacio-3);
}

.fila-otro-gasto [data-gasto-valor] {
  color: var(--color-peligro);
  text-align: right;
  font-weight: var(--peso-negrita);
}
.contenido-otros-gastos > footer {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: var(--espacio-6);
  padding-top: 9px;
  border-top: 1px solid var(--color-borde);
}
.contenido-otros-gastos > footer span {
  color: var(--color-texto-suave);
  font-size: var(--texto-auxiliar);
  font-weight: var(--peso-seminegrita);
}
.contenido-otros-gastos > footer strong.hd-valor--negativo {
  color: var(--color-peligro);
}
.contenido-otros-gastos > footer strong {
  min-width: 130px;
  color: var(--color-texto-fuerte);
  text-align: right;
  font-size: var(--texto-destacado);
}

.tabla-items-cotizacion-detallada .identificador-item {
  display: table-cell;
  padding-inline: var(--espacio-2);
  text-align: center;
  vertical-align: middle;
  white-space: nowrap;
}
.tabla-items-cotizacion-detallada .asa-reordenar-item {
  display: inline-grid;
  place-items: center;
  margin: 0 var(--espacio-1) 0 0;
  vertical-align: middle;
}
.tabla-items-cotizacion-detallada .celda-valor-fijo {
  color: var(--color-texto-fuerte);
  font-weight: var(--peso-negrita);
  vertical-align: middle;
}
.tabla-items-cotizacion-detallada .celda-valor-fijo > strong {
  display: block;
  padding: 0;
  border: 0;
  background: transparent;
  box-shadow: none;
}
.tabla-items-cotizacion-detallada .celda-valor-fijo[data-etiqueta="Unidad"] > strong {
  text-align: center;
}
.tabla-items-cotizacion-detallada .celda-valor-fijo.celda-dinero > strong {
  text-align: right;
}

@media (max-width: 760px) {
  .fila-otro-gasto {
  grid-template-columns: minmax(0,1fr) minmax(var(--ancho-valor-cotizacion), var(--ancho-campo-gasto)) var(--tamano-icono-accion);
}
  .panel-otros-gastos-cotizacion > header {
  align-items: stretch;
  flex-direction: column;
}
  .boton-agregar-gasto {
  width: 100%;
  justify-content: center;
}
}/* v2.9 · Catálogo desde la descripción, filtros libres y borradores protegidos. */

.filtros-cotizaciones-sin-caja > a {
  min-width: 0;
}

.panel-detalle-por-item > header .acciones-detalle-item {
  flex: 0 1 auto;
  min-width: 0;
  max-width: 100%;
}
.panel-detalle-por-item > header [data-agregar-item] { min-width: 142px; justify-content: center; }
.tabla-items-cotizacion-detallada [data-descripcion] {
  cursor: text;
}

.tabla-items-cotizacion-detallada .tabla-accion {
  box-sizing: border-box;
  overflow: hidden;
}

.popup-cuenta.popup-borrador-cotizacion {
  width: min(720px,calc(100% - 32px));
}
.contenido-borrador-cotizacion {
  padding: var(--espacio-8);
  background: var(--color-superficie-secundaria);
}
.contenido-borrador-cotizacion p {
  margin: 0;
  color: var(--color-texto-suave);
  line-height: var(--interlineado-base);
}
.popup-borrador-cotizacion > form > footer {
  justify-content: flex-end;
  flex-wrap: nowrap;
}
.popup-borrador-cotizacion > form > footer .boton {
  white-space: nowrap;
}

@media (max-width: 680px) {

  .popup-borrador-cotizacion > form > footer {
  flex-direction: column;
}
  .popup-borrador-cotizacion > form > footer .boton {
  width: 100%;
}
}

/* v2.10 · Botones compartidos, filtros 5 × 2 y columnas sin superposición. */
.selector-vista-financiera.boton-accion-panel {
  justify-content: flex-start;
  gap: var(--espacio-3);
  color: var(--color-marca-azul-oscuro);
  border-color: var(--color-borde-panel);
  background: var(--color-superficie);
  box-shadow: var(--sombra-control);
}
.selector-vista-financiera.boton-accion-panel:hover {
  color: var(--color-marca-azul-oscuro);
  border-color: color-mix(in srgb,var(--color-marca-azul) 40%,var(--color-borde-panel));
  background: var(--color-superficie-terciaria);
  transform: none;
}
.selector-vista-financiera.boton-accion-panel.selector-vista-financiera-activa {
  color: var(--color-texto-inverso);
  border-color: var(--relieve-borde);
  background: var(--relieve-fondo);
  box-shadow: var(--sombra-relieve-control);
}

.tabla-items-cotizacion-detallada input, .tabla-items-cotizacion-detallada select {
  width: 100%;
  min-width: 0;
  max-width: 100%;
  box-sizing: border-box;
}

/* Un único encabezado de página. Las clases históricas ya no cambian su anatomía. */
.encabezado-pagina:not(.hd-encabezado-pagina), .encabezado-pagina:not(.hd-encabezado-pagina).encabezado-finanzas, .encabezado-pagina:not(.hd-encabezado-pagina).encabezado-cotizador, .encabezado-pagina:not(.hd-encabezado-pagina).encabezado-cotizaciones-lista, .encabezado-pagina:not(.hd-encabezado-pagina).encabezado-traslado-contacto {
  width: 100%;
  min-height: 86px;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: var(--espacio-9);
  margin: 0 0 var(--espacio-9);
  padding: 0;
}
.encabezado-pagina:not(.hd-encabezado-pagina).encabezado-informe-mensual {
  width: 100%;
  min-height: 86px;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: var(--espacio-9);
  margin: 0 0 var(--espacio-9);
  padding: 0;
}

.encabezado-pagina:not(.hd-encabezado-pagina) > :first-child {
  min-width: 0;
  max-width: 920px;
}

.encabezado-pagina:not(.hd-encabezado-pagina) .sobrelinea {
  margin: 0 0 var(--espacio-2);
  font-size: var(--texto-auxiliar);
  line-height: var(--interlineado-compacto);
}

.encabezado-pagina:not(.hd-encabezado-pagina) h1 {
  margin: 0;
  color: var(--color-marca-azul-oscuro);
  font-size: var(--texto-destacado);
  line-height: 1.18;
  letter-spacing: -.025em;
}

.encabezado-pagina:not(.hd-encabezado-pagina) p:last-child {
  margin: var(--espacio-2) 0 0;
  color: var(--color-texto-suave);
  font-size: var(--texto-cuerpo);
}

.encabezado-pagina:not(.hd-encabezado-pagina) .acciones-pagina {
  min-width: 0;
  max-width: 100%;
  align-self: center;
  justify-content: flex-end;
  gap: var(--espacio-3);
}

.encabezado-pagina:not(.hd-encabezado-pagina) .boton {
  min-height: var(--alto-control);
  white-space: nowrap;
}

/* Un único encabezado interno para paneles y grupos. */
.panel:not(.hd-panel) > header,
.encabezado-panel:not(.hd-panel__encabezado),
.grupo-cuentas-cliente:not(.hd-panel) > header,
.encabezado-mes-planeacion:not(.hd-panel__encabezado) {
  --color-relieve: var(--color-marca-azul-oscuro);
  position: relative;
  z-index: 1;
  width: 100%;
  height: auto;
  min-height: var(--alto-encabezado-panel);
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: var(--espacio-6);
  padding: 13px var(--espacio-8);
  color: var(--color-texto-inverso);
  border-bottom: 1px solid var(--relieve-borde);
  background: var(--relieve-fondo);
  box-shadow: var(--sombra-relieve-encabezado);
}

.panel:not(.hd-panel) > header > :first-child,
.encabezado-panel:not(.hd-panel__encabezado) > :first-child {
  min-width: 0;
}

.panel:not(.hd-panel) > header h2,
.panel:not(.hd-panel) > header h3,
.encabezado-panel:not(.hd-panel__encabezado) h2,
.encabezado-panel:not(.hd-panel__encabezado) h3,
.encabezado-mes-planeacion:not(.hd-panel__encabezado) h2 {
  margin: 0;
  color: var(--color-texto-inverso);
  font-size: var(--texto-titulo);
  line-height: var(--interlineado-compacto);
  font-weight: var(--peso-negrita);
}

.panel:not(.hd-panel) > header p,
.encabezado-panel:not(.hd-panel__encabezado) p,
.encabezado-mes-planeacion:not(.hd-panel__encabezado) p {
  margin: var(--espacio-1) 0 0;
  color: var(--color-texto-inverso-suave);
  font-size: var(--texto-auxiliar);
  font-weight: var(--peso-regular);
}

.panel header a,
.encabezado-panel a {
  color: var(--color-texto-inverso);
  font-size: var(--texto-auxiliar);
  font-weight: var(--peso-seminegrita);
  text-decoration: none;
}

.panel header a:hover,
.encabezado-panel a:hover {
  color: var(--color-texto-inverso);
  text-decoration: underline;
}

/* Todos los botones de encabezado interno comparten altura, radio y acabado. */
.panel:not(.hd-panel) > header .boton,
.encabezado-panel:not(.hd-panel__encabezado) .boton,
.panel:not(.hd-panel) > header > a:not(.accion-icono),
.encabezado-panel:not(.hd-panel__encabezado) > a:not(.accion-icono) {
  min-height: var(--alto-control);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--espacio-3);
  padding: 9px 15px;
  border: 1px solid rgba(255,255,255,.88);
  border-radius: var(--radio-control);
  color: var(--color-marca-azul-oscuro);
  background: #fff;
  box-shadow: var(--sombra-control);
  font-size: var(--texto-cuerpo);
  font-weight: var(--peso-seminegrita);
  text-decoration: none;
  white-space: nowrap;
  transform: none;
}

.panel:not(.hd-panel) > header .boton:hover,
.encabezado-panel:not(.hd-panel__encabezado) .boton:hover,
.panel:not(.hd-panel) > header > a:not(.accion-icono):hover,
.encabezado-panel:not(.hd-panel__encabezado) > a:not(.accion-icono):hover {
  color: var(--color-marca-azul-oscuro);
  background: var(--color-superficie-terciaria);
  text-decoration: none;
  transform: none;
}

.panel:not(.hd-panel) > header .boton:active,
.encabezado-panel:not(.hd-panel__encabezado) .boton:active {
  transform: none;
}

/* Importes semánticos de tableros heredados, pendientes de migración. */

.valor-tablero-positivo,
.saldo-restante-positivo { color: var(--color-importe-positivo) !important; }

.valor-tablero-negativo,
.saldo-restante-negativo { color: var(--color-importe-negativo) !important; }

/* Tablas: alturas, alineaciones, cortes y acciones normalizados. */
.tabla:not(.hd-tabla) {
  width: 100%;
  border-collapse: collapse;
}
.tabla:not(.hd-tabla) th,
.tabla:not(.hd-tabla) td {
  padding: 12px 14px;
  border-bottom: 0;
  border-left: 0 !important;
  vertical-align: middle;
}
.tabla:not(.hd-tabla) thead th {
  height: 46px;
  color: #fff;
  background: var(--color-marca-azul);
  font-size: var(--texto-auxiliar);
  line-height: var(--interlineado-compacto);
  text-align: center;
  text-transform: uppercase;
}
.tabla:not(.hd-tabla) tbody td { height: 58px; font-size: var(--texto-cuerpo); }
.tabla-ordenable { justify-content: center; }
.tabla:not(.hd-tabla) .celda-dinero { text-align: right; }
.tabla-accion,
.tabla:not(.hd-tabla) th.tabla-accion,
.tabla:not(.hd-tabla) td.tabla-accion {
  width: 1%;
  min-width: 72px;
  text-align: center;
  white-space: nowrap;
}
.tabla:not(.hd-tabla) .acciones-registro, .tabla-accion .acciones-registro, .tabla-cotizaciones-lista .acciones-registro, .acciones-item-cotizacion, .acciones-tabla {
  width: max-content;
  min-width: 0;
  max-width: 100%;
  margin-inline: auto;
  justify-content: center;
  gap: var(--separacion-acciones);
  flex-wrap: nowrap;
}
.tabla:not(.hd-tabla) .acciones-registro form,
.acciones-tabla form { margin: 0; }

/* Búsquedas: mismo campo, foco y filtrado inmediato en todas las listas. */

.campo-busqueda, .campo-busqueda-cotizaciones, .campo-busqueda-cotizaciones-estados {
  position: relative;
  min-width: 0;
  display: grid;
  gap: var(--espacio-2);
}
.campo-busqueda input, .campo-busqueda-cotizaciones input, .filtros-cotizaciones-sin-caja .campo-busqueda-cotizaciones-estados input {
  width: 100%;
  min-width: 0;
  min-height: var(--alto-control);
  padding: 9px var(--espacio-5);
  border: 1px solid var(--color-borde);
  border-radius: var(--radio-control);
  color: var(--color-texto);
  background: var(--color-superficie);
  font: inherit;
  outline: 0;
}
.campo-busqueda input:focus, .campo-busqueda-cotizaciones input:focus, .filtros-cotizaciones-sin-caja .campo-busqueda-cotizaciones-estados input:focus {
  border-color: var(--color-marca-azul);
  box-shadow: var(--anillo-foco);
}
@media (max-width: 1180px) and (min-width: 681px) {

  .indicadores-informe-mensual { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 860px) {

.encabezado-pagina:not(.hd-encabezado-pagina), .encabezado-pagina:not(.hd-encabezado-pagina).encabezado-finanzas, .encabezado-pagina:not(.hd-encabezado-pagina).encabezado-cotizador, .encabezado-pagina:not(.hd-encabezado-pagina).encabezado-cotizaciones-lista, .encabezado-pagina:not(.hd-encabezado-pagina).encabezado-traslado-contacto {
  min-height: 0;
  align-items: stretch;
  flex-direction: column;
}
.encabezado-pagina:not(.hd-encabezado-pagina).encabezado-informe-mensual {
  min-height: 0;
  flex-direction: column;
}

.encabezado-pagina:not(.hd-encabezado-pagina) .acciones-pagina {
  width: 100%;
  align-self: stretch;
}

.encabezado-pagina:not(.hd-encabezado-pagina) .acciones-pagina .boton {
  flex: 1 1 auto;
}

  .encabezado-mes-planeacion { align-items: stretch !important; flex-direction: column; }
}
@media (max-width: 680px) {

  .indicadores-informe-mensual { grid-template-columns: 1fr; }

}/* v2.15 · Consecutivos visibles limpios y ancho de acciones por cantidad. */

.tabla-cotizaciones-lista th.tabla-accion, .tabla-cotizaciones-lista td.tabla-accion {
  width: auto;
  min-width: 0;
  padding-inline: 17px;
}
.tabla-cotizaciones-lista .acciones-registro {
  flex-wrap: nowrap;
  justify-content: center;
  width: 100%;
  gap: var(--espacio-3);
}
.formulario-accion-cabecera { display: inline-flex; margin: 0; }
/* v2.11 · Acciones de encabezado y valores financieros compartidos. */
.boton-encabezado-panel {
  color: var(--color-marca-azul-oscuro);
  border-color: rgba(255,255,255,.88);
  background: #fff;
  box-shadow: var(--sombra-control);
}

.boton-encabezado-panel:hover {
  color: var(--color-marca-azul-oscuro);
  border-color: #fff;
  background: var(--color-superficie-terciaria);
  transform: none;
}

.grupo-cuentas-saldo,
.grupo-cuentas-saldo strong {
  color: inherit;
  font-size: var(--texto-cuerpo);
  font-weight: var(--peso-negrita);
}
.grupo-cuentas-saldo {
  min-height: 0;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  line-height: 1.35;
}
.grupo-cuentas-saldo::before { content: none; }
.grupo-cuentas-por-cobrar,
.grupo-cuentas-por-cobrar strong { color: var(--color-texto-positivo); }
.grupo-cuentas-por-pagar,
.grupo-cuentas-por-pagar strong { color: var(--color-texto-negativo); }

.panel-detalle-por-item > header [data-agregar-item],
.panel-detalle-por-item > header [data-agregar-item-personalizado] {
  min-width: 142px;
  justify-content: center;
}
.tabla-items-cotizacion-detallada .costo-personalizado-item {
  padding: var(--espacio-3) var(--espacio-2);
  text-align: right;
}
.tabla-items-cotizacion-detallada .costo-personalizado-item[hidden] {
  display: none;
}

/* v2.12 · Precio de venta unitario, JPG con medidas y filtros 5 × 2. */

.filtros-cotizaciones-sin-caja .campo-busqueda-cotizaciones-estados {
  grid-column: auto;
  display: flex;
  align-items: center;
  width: 100%;
  min-width: 0;
  height: 100%;
  margin: 0;
}

.filtros-cotizaciones-sin-caja .campo-busqueda-cotizaciones-estados input:focus {
  border-color: var(--color-marca-azul);
  box-shadow: var(--anillo-foco);
}

.tabla-items-cotizacion-detallada [data-precio-venta-unitario] {
  display: block;
  color: var(--color-marca-azul-oscuro);
  font-weight: var(--peso-negrita);
  text-align: right;
  white-space: nowrap;
}

/* Cierre v2.16: prioridad final de los componentes compartidos. */
.filtros-cotizaciones-sin-caja .campo-busqueda-cotizaciones-estados input {
  width: 100%;
  min-width: 0;
  min-height: var(--alto-control);
  padding: var(--espacio-4) var(--espacio-6);
  border: 1px solid var(--color-borde);
  border-radius: var(--radio-unico);
  color: var(--color-texto);
  background: var(--color-superficie);
  font: inherit;
  outline: 0;
}

/* v2.17 · Lectura estable y encabezados de datos sin superposiciones. */
.tabla thead th,
.tabla thead th.celda-dinero,
.tabla thead th.tabla-accion {
  min-width: 0;
  text-align: center !important;
  white-space: normal;
  overflow-wrap: anywhere;
}
.tabla thead .tabla-ordenable,
.tabla thead .celda-dinero .tabla-ordenable {
  width: 100%;
  justify-content: center;
  text-align: center;
}

:is(.encabezado-columnas-cuentas,.encabezado-columnas-movimientos,.encabezado-columnas-liquidaciones) > span {
  min-width: 0;
  padding-inline: 8px;
  text-align: center !important;
  white-space: normal;
  overflow-wrap: anywhere;
}

.detalle-indicador-lineas {
  min-width: 0;
  display: grid !important;
  gap: 2px;
  margin-top: 2px;
}
.detalle-indicador-lineas > span {
  min-width: 0;
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 8px;
}
.detalle-indicador-lineas b {
  flex: 0 0 auto;
  font-size: inherit;
  font-weight: var(--peso-seminegrita);
  white-space: nowrap;
}

.tabla-planeacion-contenedor {
  width: 100%;
  min-width: 0;
  max-width: 100%;
  overflow: hidden;
}
.tabla-planeacion-contenedor .encabezado-columnas-movimientos,
.tabla-planeacion-contenedor .movimiento-proximo {
  width: 100%;
  min-width: 0;
  max-width: 100%;
  grid-template-columns: minmax(52px,5.5fr) minmax(0,33fr) minmax(0,13fr) minmax(0,13fr) minmax(0,12.5fr) minmax(0,15fr) minmax(64px,8fr);
  gap: 0;
}
.tabla-planeacion-contenedor .nombre-proximo,
.tabla-planeacion-contenedor .lista-proximo,
.tabla-planeacion-contenedor .dias-proximo,
.tabla-planeacion-contenedor .valor-proximo,
.tabla-planeacion-contenedor .saldo-proyectado-proximo,
.tabla-planeacion-contenedor .acciones-proximo { min-width: 0; }
.tabla-planeacion-contenedor .nombre-proximo,
.tabla-planeacion-contenedor .lista-proximo { padding-inline: 8px; }
.tabla-planeacion-contenedor .dias-proximo { justify-self: center; }
.tabla-planeacion-contenedor .valor-proximo,
.tabla-planeacion-contenedor .saldo-proyectado-proximo {
  justify-self: stretch;
  padding-inline: 8px;
  overflow: hidden;
  text-align: right;
  text-overflow: ellipsis;
}
.tabla-planeacion-contenedor .acciones-proximo {
  justify-self: stretch;
  justify-content: flex-end;
  padding-left: 8px;
}

@media (max-width: 860px) {
  .tabla-planeacion-contenedor { overflow-x: visible; }
  .tabla-planeacion-contenedor .encabezado-columnas-movimientos {
    display: none;
    min-width: 0;
  }
  .tabla-planeacion-contenedor .movimiento-proximo {
    min-width: 0;
    grid-template-columns: 50px minmax(0,1fr);
  }
  .tabla-planeacion-contenedor .nombre-proximo,
  .tabla-planeacion-contenedor .lista-proximo,
  .tabla-planeacion-contenedor .dias-proximo,
  .tabla-planeacion-contenedor .valor-proximo,
  .tabla-planeacion-contenedor .saldo-proyectado-proximo,
  .tabla-planeacion-contenedor .acciones-proximo {
    grid-column: 2;
    justify-self: start;
    padding-inline: 0;
    text-align: left;
  }
  .tabla-planeacion-contenedor .valor-proximo { justify-items: start; }
  .tabla-planeacion-contenedor .acciones-proximo { justify-content: flex-start; }
}

/* v2.22 · Cotizador y constructor de costos por componente. */
.accion-seleccionable[aria-pressed="true"]::after {
  content: "✓";
  position: absolute;
  top: -6px;
  right: -6px;
  width: 16px;
  height: 16px;
  display: grid;
  place-items: center;
  border: 1px solid var(--color-accion-informativa);
  border-radius: 50%;
  color: var(--color-accion-informativa);
  background: var(--color-superficie);
  font-size: var(--texto-auxiliar);
  font-weight: var(--peso-negrita);
  line-height: 1;
}
.accion-seleccionable { position: relative; overflow: visible; }

.titulo-columna-doble { display: grid; justify-items: center; gap: 0; line-height: 1.15; }

/* v2.23 · Catálogo único, tabla estable y constructor compacto. */
.campo-configuracion-inactivo { opacity: .48; }

.titulo-columna-doble > span { white-space: normal; word-break: keep-all; overflow-wrap: normal; }
.tabla-items-cotizacion-detallada .celda-costo-unitario > :is(strong,input), .tabla-items-cotizacion-detallada .costo-total-cotizacion {
  color: var(--color-peligro);
}
.tabla-items-cotizacion-detallada .acciones-item-cotizacion {
  width: 100%;
  flex-wrap: nowrap;
  justify-content: flex-end;
}

/* v2.25 · Instalación directa, personalización visible y decimales uniformes. */
.tabla-items-cotizacion-detallada .tabla-ordenable > .titulo-columna-doble {
  display: grid;
  justify-items: center;
  gap: 0;
  line-height: 1.15;
}
.tabla-items-cotizacion-detallada .tabla-ordenable > .titulo-columna-doble > span {
  white-space: nowrap;
}
.tabla-detalle-cotizacion tfoot :is(th, td, strong), .tabla tfoot :is(th, td, strong, b), .contenido-otros-gastos footer :is(span, strong) {
  font-size: var(--texto-cuerpo) !important;
}

/* v2.27 · Espaciado de iconos, resumen de ganancia y columnas comerciales. */
.tabla th.tabla-accion,
.tabla td.tabla-accion { padding-inline: 10px; }
.tabla .acciones-registro, .tabla .acciones-item-cotizacion, .tabla .acciones-tabla {
  box-sizing: border-box;
  padding-inline: 0;
}

/* v2.28 · Totales completos, descripciones fluidas y sesión protegida. */
.tabla-items-cotizacion-detallada textarea[data-descripcion] {
  width: 100%;
  min-width: 0;
  min-height: 40px;
  max-width: 100%;
  box-sizing: border-box;
  padding: 9px 11px;
  overflow: hidden;
  border: 1px solid var(--color-borde);
  border-radius: var(--radio-control);
  color: var(--color-texto);
  background: var(--color-superficie);
  font: inherit;
  line-height: 1.35;
  outline: 0;
}
.tabla-items-cotizacion-detallada textarea[data-descripcion]:focus {
  border-color: var(--color-marca-azul);
  box-shadow: var(--anillo-foco);
}

/* Cebra compartida de cuentas: los tableros usan los mismos estados que el Gestor. */
.modulo-planeacion .cuenta-planeacion { background: var(--color-superficie); }
.modulo-planeacion .cuenta-planeacion:nth-child(even) { background: var(--color-fila-cebra); }

.tabla-detalle-cotizacion .tabla-items-cotizacion-detallada tfoot .fila-totales-cotizacion > th {
  padding: 0 !important;
  border-top: 2px solid var(--color-marca-azul-oscuro);
  background: var(--color-marca-azul);
}

.estado-sesion-cotizador {
  min-height: var(--alto-control);
  display: grid;
  grid-template-columns: 10px auto;
  grid-template-rows: auto auto;
  align-items: center;
  column-gap: var(--espacio-3);
  padding: 7px var(--espacio-5);
  border: 1px solid var(--color-borde-panel);
  border-radius: var(--radio-control);
  color: var(--color-texto);
  background: var(--color-superficie);
  box-shadow: var(--sombra-control);
}
.estado-sesion-cotizador > span {
  width: 9px;
  height: 9px;
  grid-row: 1 / 3;
  border-radius: 50%;
  background: var(--color-exito);
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--color-exito) 18%, transparent);
}
.estado-sesion-cotizador strong {
  font-size: var(--texto-auxiliar);
  line-height: 1.1;
}
.estado-sesion-cotizador small {
  color: var(--color-texto-suave);
  font-size: var(--texto-auxiliar);
  line-height: 1.1;
}
.estado-sesion-cotizador[data-estado="verificando"] > span {
  background: var(--color-advertencia);
}
.estado-sesion-cotizador[data-estado="vencida"] > span, .estado-sesion-cotizador[data-estado="sin-conexion"] > span {
  background: var(--color-peligro);
}

.popup-proteccion-cotizacion {
  width: min(650px, calc(100% - 32px));
}
.contenido-proteccion-cotizacion {
  display: grid;
  gap: var(--espacio-4);
  padding: var(--espacio-9);
  background: var(--color-superficie-secundaria);
}
.contenido-proteccion-cotizacion p {
  margin: 0;
  color: var(--color-texto);
  line-height: var(--interlineado-base);
}
.contenido-proteccion-cotizacion strong {
  color: var(--color-texto-fuerte);
  font-size: var(--texto-cuerpo);
}

@media (max-width: 720px) {

  .popup-proteccion-cotizacion > form > footer {
  align-items: stretch;
  flex-direction: column;
}
  .popup-proteccion-cotizacion > form > footer .boton {
  width: 100%;
}
}

/* v2.28.2 · El detalle ocupa el panel completo con o sin columnas de medidas. */
.panel-detalle-por-item { overflow: hidden; }
.panel-detalle-por-item > .tabla-detalle-cotizacion {
  width: 100%;
  max-width: 100%;
  margin: 0;
  padding: 0;
}
.cotizador-error {
  padding: 0 var(--espacio-8) var(--espacio-6);
  margin: 0;
}
.cotizador-error:empty {
  display: none;
}
.errores-guardado-cotizacion {
  margin: var(--espacio-3) 0 0;
  padding-left: var(--espacio-9);
}
.errores-guardado-cotizacion:empty {
  display: none;
}
.errores-guardado-cotizacion a {
  color: inherit;
  font-weight: var(--peso-seminegrita);
  text-decoration: underline;
}
#cliente-cotizacion, #revision-cotizacion, #items-cotizacion {
  scroll-margin-top: 24px;
}

/* v2.29 · Estados semánticos, totales por columna y constructor reorganizado. */
.control-estado-cotizacion.estado-cotizacion-solicitud {
  color: var(--estado-solicitud-texto);
  border-color: var(--estado-solicitud-borde);
  background: var(--estado-solicitud-fondo);
}
.control-estado-cotizacion.estado-cotizacion-enviada {
  color: var(--estado-enviada-texto);
  border-color: var(--estado-enviada-borde);
  background: var(--estado-enviada-fondo);
}
.control-estado-cotizacion.estado-cotizacion-aprobada {
  color: var(--estado-aprobada-texto);
  border-color: var(--estado-aprobada-borde);
  background: var(--estado-aprobada-fondo);
}
.control-estado-cotizacion.estado-cotizacion-produccion {
  color: var(--estado-produccion-texto);
  border-color: var(--estado-produccion-borde);
  background: var(--estado-produccion-fondo);
}
.control-estado-cotizacion.estado-cotizacion-entregada {
  color: var(--estado-entregada-texto);
  border-color: var(--estado-entregada-borde);
  background: var(--estado-entregada-fondo);
}
.control-estado-cotizacion.estado-cotizacion-registrada {
  color: var(--estado-registrada-texto);
  border-color: var(--estado-registrada-borde);
  background: var(--estado-registrada-fondo);
}
.control-estado-cotizacion.estado-cotizacion-pendiente_factura {
  color: var(--estado-pendiente-factura-texto);
  border-color: var(--estado-pendiente-factura-borde);
  background: var(--estado-pendiente-factura-fondo);
}
.control-estado-cotizacion.estado-cotizacion-facturada {
  color: var(--estado-facturada-texto);
  border-color: var(--estado-facturada-borde);
  background: var(--estado-facturada-fondo);
}
.control-estado-cotizacion.estado-cotizacion-no_aprobada, .control-estado-cotizacion.estado-cotizacion-cancelada {
  color: var(--alerta-peligro-texto);
  border-color: var(--alerta-peligro-borde);
  background: var(--alerta-peligro-fondo);
}
.control-estado-cotizacion.estado-cotizacion-archivada {
  color: var(--alerta-neutral-texto);
  border-color: var(--alerta-neutral-borde);
  background: var(--alerta-neutral-fondo);
}
.control-estado-cotizacion :is(.contenido-control-estado,strong,select,.estado-cotizacion-icono) {
  color: inherit !important;
  -webkit-text-fill-color: currentColor;
}
.control-estado-cotizacion select option {
  color: var(--color-texto) !important;
  background: var(--color-superficie);
  -webkit-text-fill-color: var(--color-texto);
}

/* Distribución del constructor: controles y resumen adaptados a la pantalla. */
/* v3.2: mismos controles, encabezados y espaciados en los nuevos módulos. */
.navegacion-seccion {
  min-width: 0;
  padding: 5px 0;
}

.navegacion-titulo {
  display: block;
  height: 17px;
  min-height: 17px;
  margin: 9px 10px 6px;
  overflow: hidden;
  white-space: nowrap;
  visibility: hidden;
  opacity: 0;
  color: #9bc7e5;
  font-size: var(--texto-auxiliar);
  line-height: 17px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 1px;
  transition: opacity .2s ease;
}

.menu-expandido .navegacion-titulo,
.barra-lateral:hover .navegacion-titulo,
.barra-lateral:focus-within .navegacion-titulo {
  visibility: visible;
  opacity: 1;
}

.navegacion-seccion + .navegacion-seccion {
  border-top: 1px solid rgba(255,255,255,.14);
}

.navegacion {
  min-height: 0;
  overflow-y: auto;
  overflow-x: hidden;
}

.rejilla-condiciones { width: min(100%,var(--ancho-condiciones-comerciales)); display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); justify-content: center; column-gap: var(--espacio-8); row-gap: var(--espacio-10); margin-inline: auto; padding: var(--espacio-10); box-sizing: border-box; }
.rejilla-condiciones .campo-condicion { display: grid; align-content: start; gap: var(--espacio-5); min-width: 0; }
.campo-condicion .control-vigencia-cotizacion {
  margin: 0;
  padding: 0;
  display: grid;
  gap: var(--espacio-5);
  grid-template-columns: 1fr;
}

.opcion-condicion { min-height: 22px; display: flex !important; align-items: center; gap: var(--separacion-acciones); color: var(--color-texto); font-size: var(--texto-cuerpo); line-height: var(--interlineado-compacto); font-weight: var(--peso-seminegrita); }
.opcion-condicion input[type="checkbox"] { width: 17px !important; min-width: 17px; height: 17px; min-height: 17px; margin: 0; accent-color: var(--color-marca-azul); }
.campo-condicion [hidden], .control-vigencia-cotizacion [hidden] {
  display: none !important;
}
.condicion-inactiva .opcion-condicion { color: var(--color-texto); }
.contenido-v32 { padding: 24px; }

.acciones-formulario-v32 { display: flex; align-items: center; gap: var(--separacion-acciones); }
@media (max-width: 1100px) { .rejilla-condiciones { grid-template-columns: repeat(2,minmax(0,1fr)); }  }
@media (max-width: 760px) { .rejilla-condiciones { grid-template-columns: 1fr; padding: 18px; }

.navegacion-titulo {
  display: block;
}
 }

@media (max-width: 860px) {

.navegacion-titulo {
  visibility: visible;
  opacity: 1;
}
 }
/* Configuración permanece fija fuera de la lista desplazable. */
.navegacion-configuracion [hidden] {
  display: none !important;
}

.navegacion-configuracion .navegacion-submenu {
  width: 100%;
}

.submenu-titulo { padding: 9px 10px 4px; font-size:var(--texto-auxiliar); color: #fff; }
@media (max-width: 860px) {

.barra-lateral .navegacion-principal {
  padding-left: 10px;
  padding-right: 53px;
}

.barra-lateral .navegacion-principal > .navegacion-texto {
  max-width: 190px;
  opacity: 1;
  transform: none;
}

.barra-lateral .perfil-datos {
  transform: translate(0, -50%);
}

.barra-lateral .formulario-salir {
  transform: translateY(-50%);
}

}

/* v3.4: preferencias acotadas y controles comunes, sin alterar identidad ni columnas. */

html[data-relieve="suave"] :is(.boton,.accion-icono):not(:active) { transform: none; }
html[data-movimiento="reducido"] *, html[data-movimiento="reducido"] *::before, html[data-movimiento="reducido"] *::after {
  animation-duration: .01ms !important; animation-iteration-count: 1 !important;
  transition-duration: .01ms !important; scroll-behavior: auto !important;
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; scroll-behavior: auto !important; }
}

.panel:not(.hd-panel) > header { flex-wrap: wrap; }
.panel > header .acciones-pagina { margin-left: auto; max-width: 100%; }

.aviso-listado { margin: 0; padding: 16px 18px; }

/* v3.6: ancho útil, acciones y campos compartidos página a página. */
.barra-filtros-finanzas {
  grid-template-columns: minmax(320px,var(--ancho-busqueda-comun)) minmax(180px,var(--ancho-selector-filtro)) auto;
  justify-content: start;
}
:is(.acciones-pagina,.acciones-registro,.acciones-tabla,.acciones-item-cotizacion,.acciones-detalle-item,.acciones-encabezado-cliente,.acciones-cuentas-encabezado,.acciones-popup-cuenta,.acciones-liquidacion,.acciones-ticktick,.acciones-formulario-v32) {
  gap: var(--separacion-acciones);
}
.tabla :is(.acciones-registro,.acciones-item-cotizacion,.acciones-tabla) {
  width: max-content;
  min-width: max-content;
  margin-left: auto;
  padding-inline: 0;
}
.panel-condiciones-cotizacion :is(.control-cotizador,select,input,textarea) {
  font-family: var(--fuente-familia);
  font-size: var(--texto-cuerpo);
  font-weight: var(--peso-regular);
  line-height: var(--interlineado-compacto);
}
.panel-condiciones-cotizacion .campo-cotizador > span:not(.texto-solo-lectores) {
  min-height: 22px;
  display: flex;
  align-items: center;
  color: var(--color-texto);
  font-size: var(--texto-cuerpo);
  line-height: var(--interlineado-compacto);
  font-weight: var(--peso-seminegrita);
}
.panel-condiciones-cotizacion .campo-cotizador > small, .panel-condiciones-cotizacion [data-vigencia-resumen] {
  margin: 0;
  color: var(--color-texto-suave);
  font-size: var(--texto-auxiliar);
  line-height: var(--interlineado-base);
}
.panel-condiciones-cotizacion .condicion-inactiva :is(.control-cotizador,[data-vigencia-resumen]) {
  opacity: .58;
}
.panel-condiciones-cotizacion .campo-detalle-condicion, .panel-condiciones-cotizacion .campo-condicion-notas .campo-cotizador {
  gap: var(--espacio-3);
}

/* v3.7: separación inequívoca de periodos, históricos reversibles y estados canónicos. */
.mes-movimientos-gestor + .mes-movimientos-gestor { margin-top: 0; }
.acciones-popup-cuenta-secundarias { flex-wrap: wrap; }
.clasificacion-historica {
  display: block;
  margin-top: var(--espacio-1);
  color: var(--color-texto-suave);
  font-size: var(--texto-auxiliar);
  line-height: var(--interlineado-base);
}
.clasificacion-historica-manual { color: var(--color-marca-azul-oscuro); font-weight: var(--peso-seminegrita); }

@media (max-width: 760px) {
  .barra-filtros-finanzas { grid-template-columns: 1fr; }
}
@media (max-width: 520px) {
  .tabla :is(.acciones-registro,.acciones-item-cotizacion,.acciones-tabla) {
  width: 100%;
  min-width: 0;
  margin-left: 0;
  justify-content: flex-end !important;
}
}

/* v3.11: correcciones liquidables, costos explícitos y controles financieros uniformes. */
.rejilla-editar-pago {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--espacio-5);
}
.rejilla-editar-pago > label {
  min-width: 0;
  display: grid;
  align-content: start;
  gap: var(--espacio-2);
  color: var(--color-texto);
  font-size: var(--texto-auxiliar);
  font-weight: var(--peso-seminegrita);
}
.rejilla-editar-pago input {
  width: 100%;
  min-width: 0;
  min-height: var(--alto-control);
  padding: 9px 11px;
  border: 1px solid var(--color-borde);
  border-radius: var(--radio-control);
  color: var(--color-texto);
  background: var(--color-superficie);
  font-family: var(--fuente-familia);
  font-size: var(--texto-cuerpo);
  font-weight: var(--peso-regular);
  box-sizing: border-box;
}
.rejilla-editar-pago input:focus { border-color: var(--color-marca-azul); outline: 0; box-shadow: var(--anillo-foco); }

.estado-costo-item {
  display: block;
  margin-top: var(--espacio-1);
  color: var(--color-texto-suave);
  font-size: var(--texto-auxiliar);
  line-height: var(--interlineado-compacto);
  white-space: normal;
}

.costo-por-revisar { color: var(--color-importe-advertencia) !important; }

.encabezado-pagina:not(.hd-encabezado-pagina).encabezado-informe-mensual {
  display: grid;
  grid-template-columns: minmax(360px, 1fr) auto;
  align-items: end;
  column-gap: var(--espacio-8);
}

.encabezado-informe-mensual .acciones-exportacion-informe {
  align-items: end;
  flex-wrap: nowrap;
  gap: var(--separacion-acciones);
}
.selector-periodo-informe {
  width: 230px;
  min-width: 230px;
  gap: var(--espacio-2);
}
.selector-periodo-informe label {
  min-height: 18px;
  color: var(--color-texto-suave);
  font-family: var(--fuente-familia);
  font-size: var(--texto-auxiliar);
  font-weight: var(--peso-seminegrita);
  line-height: var(--interlineado-compacto);
}
.control-periodo-informe {
  width: 100%;
  min-height: var(--alto-control);
  display: grid;
  grid-template-columns: 34px minmax(0, 1fr);
  align-items: center;
  overflow: hidden;
  border: 1px solid var(--color-borde);
  border-radius: var(--radio-control);
  color: var(--color-texto);
  background: var(--color-superficie);
  box-sizing: border-box;
}
.control-periodo-informe:focus-within { border-color: var(--color-marca-azul); box-shadow: var(--anillo-foco); }
.icono-periodo-informe {
  width: 34px;
  height: 100%;
  display: grid;
  place-items: center;
  color: var(--color-marca-azul);
  background: var(--color-superficie-secundaria);
}
.icono-periodo-informe svg { width: 17px; height: 17px; }
.selector-periodo-informe .control-periodo-informe select {
  width: 100%;
  min-width: 0;
  min-height: calc(var(--alto-control) - 2px);
  padding: 8px 30px 8px 10px;
  border: 0;
  border-radius: 0;
  color: var(--color-texto);
  background-color: transparent;
  box-shadow: none;
  font-family: var(--fuente-familia);
  font-size: var(--texto-cuerpo);
  font-weight: var(--peso-regular);
  line-height: var(--interlineado-compacto);
  outline: 0;
}
.rejilla-informe-financiero {
  grid-template-columns: minmax(430px, .78fr) minmax(760px, 1.42fr);
  align-items: start;
}
.resumen-ejecutivo-informe .lista-datos > div {
  grid-template-columns: minmax(0, 1fr) auto;
  gap: var(--espacio-5);
}
.resumen-ejecutivo-informe .lista-datos dt,
.resumen-ejecutivo-informe .lista-datos dd {
  font-size: var(--texto-cuerpo);
  line-height: var(--interlineado-base);
}
.resumen-ejecutivo-informe .lista-datos dt { white-space: nowrap; }
.resumen-ejecutivo-informe .lista-datos dd { text-align: right; white-space: nowrap; }
.tabla-principales-saldos { min-width: 1000px; table-layout: fixed; }
.tabla-principales-saldos col.col-informe-nombre { width: 185px; }
.tabla-principales-saldos col.col-informe-descripcion { width: auto; }
.tabla-principales-saldos col.col-informe-tipo { width: 135px; }
.tabla-principales-saldos col.col-informe-vencimiento { width: 180px; }
.tabla-principales-saldos col.col-informe-saldo { width: 130px; }
.tabla-principales-saldos :is(th,td):nth-child(3),
.tabla-principales-saldos :is(th,td):nth-child(4),
.tabla-principales-saldos :is(th,td):nth-child(5) { white-space: nowrap; }
.tabla-principales-saldos td:nth-child(3) .estado { min-width: 104px; justify-content: center; white-space: nowrap; }

/* v3.13 · Grupos comerciales delimitados y subtotales al cierre. */
.panel-cliente-cotizacion .campo-cliente-cotizacion {
  min-height: 0;
  display: grid;
  align-content: start;
  gap: var(--espacio-6);
  padding: var(--espacio-8) var(--espacio-9) var(--espacio-9);
}
.campo-contacto-cliente-cotizacion .control-cotizador[readonly] {
  color: var(--color-texto-suave);
  background: var(--color-superficie-secundaria);
  cursor: default;
}
.panel-condiciones-cotizacion .rejilla-condiciones {
  width: 100%;
  max-width: none;
  grid-template-columns: repeat(4,minmax(0,1fr));
  margin: 0;
  padding: var(--espacio-9) var(--espacio-10) var(--espacio-10);
  column-gap: var(--espacio-9);
  row-gap: var(--espacio-10);
  background: var(--color-superficie-terciaria);
}
.acciones-detalle-item {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  flex-wrap: wrap;
  gap: var(--separacion-acciones);
}
.tabla-items-cotizacion-detallada {
  border-collapse: separate;
  border-spacing: 0;
}
.pagina > #formulario-documentos { width: 100%; max-width: none; }

.zona-item-independiente[hidden] {
  display: none;
}
.destino-item > td { box-shadow: inset 0 3px var(--color-marca-azul), inset 0 -3px var(--color-marca-azul); }
.fila-zona-arrastre[hidden] { display: none; }
.fila-zona-arrastre > td { padding: 0 !important; }
.zona-item-independiente {
  margin: var(--espacio-5);
  padding: var(--espacio-8);
  border: 2px dashed var(--color-marca-azul);
  border-radius: var(--radio-unico);
  background: var(--color-superficie-terciaria);
  color: var(--color-marca-azul-oscuro);
  text-align: center;
  box-sizing: border-box;
  max-width: 100%;
}

.dialogo-mover-item {
  width: min(480px,calc(100vw - 32px));
  padding: var(--espacio-10);
  border: 1px solid var(--color-borde);
  border-radius: var(--radio-unico);
  color: var(--color-texto);
}

.dialogo-mover-item h2 {
  color: var(--color-marca-azul-oscuro);
}
.dialogo-mover-item label {
  display: grid;
  gap: var(--espacio-3);
  margin-block: var(--espacio-9);
}
.dialogo-mover-item select {
  width: 100%;
  min-height: var(--alto-control);
  padding: var(--espacio-3) var(--espacio-5);
  border: 1px solid var(--color-borde);
  border-radius: var(--radio-control);
  font: inherit;
  color: inherit;
  background: var(--color-superficie);
  border-color: var(--color-borde-panel);
}

.fila-grupo-cotizacion .identificador-grupo {
  color: var(--color-marca-azul-oscuro);
  font-size: var(--texto-cuerpo);
  font-weight: var(--peso-negrita);
}
.contenido-grupo-cotizacion {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  align-items: center;
  gap: var(--espacio-7);
}
.contenido-grupo-cotizacion label {
  display: grid;
  min-width: 0;
  gap: var(--espacio-2);
  color: var(--color-texto);
  font-size: var(--texto-auxiliar);
  font-weight: var(--peso-seminegrita);
}
.contenido-grupo-cotizacion label > span {
  font-size: var(--texto-auxiliar);
  line-height: var(--interlineado-compacto);
}

.acciones-grupo-cotizacion {
  justify-content: flex-end;
}

.fila-variante-cotizacion > td:nth-child(2) {
  padding-left: var(--espacio-10);
}
.fila-variante-cotizacion .identificador-item [data-item-letra] {
  font-size: var(--texto-auxiliar);
  font-weight: var(--peso-seminegrita);
}
.fila-variante-cotizacion textarea[data-descripcion] {
  color: var(--color-texto);
  font-weight: var(--peso-regular);
}
.fila-variante-cotizacion .celda-valor-fijo, .fila-variante-cotizacion .celda-valor-fijo > strong {
  font-weight: var(--peso-regular);
}

.subtotal-grupo-cotizacion {
  min-height: 48px;
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: var(--espacio-8);
  padding: var(--espacio-3) var(--espacio-8);
  color: var(--color-texto-suave);
  text-align: right;
}
.subtotal-grupo-cotizacion > span {
  font-size: var(--texto-auxiliar);
  font-weight: var(--peso-medio);
}
.subtotal-grupo-cotizacion > strong {
  min-width: 0;
  color: var(--color-marca-azul-oscuro);
  font-size: var(--texto-cuerpo);
  font-weight: var(--peso-negrita);
  white-space: nowrap;
}

.cotizador-solo-lectura .fila-grupo-cotizacion input {
  border-color: transparent;
  background: transparent;
}

@media (max-width: 1180px) {
  .contenido-grupo-cotizacion {
  grid-template-columns: minmax(260px, 1fr) auto;
}
}
@media (max-width: 1100px) {
  .panel-condiciones-cotizacion .rejilla-condiciones {
  grid-template-columns: repeat(2,minmax(0,1fr));
}
}
@media (max-width: 760px) {
  .panel-condiciones-cotizacion .rejilla-condiciones {
  grid-template-columns: 1fr;
  padding: var(--espacio-8);
}
  .contenido-grupo-cotizacion {
  grid-template-columns: 1fr;
}
  
}
.panel-cliente-cotizacion.hd-panel {
  position: relative;
  z-index: 4;
  overflow: visible;
}
.formulario-estado-cotizacion {
  margin: 0;
  width: max-content;
  max-width: 100%;
  display: flex;
  align-items: center;
  gap: var(--separacion-acciones);
  flex-wrap: nowrap;
}
.control-estado-cotizacion {
  width: var(--ancho-estado-cotizacion);
  min-width: var(--ancho-estado-cotizacion);
  max-width: var(--ancho-estado-cotizacion);
  min-height: var(--alto-estado-cotizacion);
  height: var(--alto-estado-cotizacion);
  display: grid;
  grid-template-columns: calc(var(--tamano-icono-estado-cotizacion) + 1px) minmax(0, 1fr);
  align-items: center;
  align-content: center;
  gap: var(--espacio-2);
  overflow: hidden;
  padding: var(--relleno-estado-cotizacion);
  border: 1px solid color-mix(in srgb, currentColor 26%, var(--color-borde));
  border-radius: var(--radio-control);
  box-sizing: border-box;
}
.contenido-control-estado {
  min-width: 0;
  min-height: var(--alto-linea-estado-cotizacion);
  display: grid;
  grid-template-rows: minmax(var(--alto-linea-estado-cotizacion), auto);
  align-content: center;
  gap: 0;
  overflow: hidden;
}
.control-estado-con-factura .contenido-control-estado {
  min-height: calc(var(--alto-linea-estado-cotizacion) + var(--alto-linea-factura));
  grid-template-rows: minmax(var(--alto-linea-estado-cotizacion), auto) minmax(var(--alto-linea-factura), auto);
}
.control-estado-cotizacion select {
  width: 100%;
  min-width: 0;
  height: var(--alto-linea-estado-cotizacion);
  min-height: var(--alto-linea-estado-cotizacion);
  padding: 1px var(--espacio-9) 1px 2px;
  border: 0;
  color: currentColor;
  background-color: transparent;
  font: inherit;
  font-size: var(--texto-estado-cotizacion);
  line-height: var(--interlineado-compacto);
  font-weight: var(--peso-seminegrita);
  outline: 0;
  cursor: pointer;
}
.estado-facturacion-cotizacion {
  min-height: var(--alto-linea-factura);
  display: block;
  overflow: hidden;
  color: currentColor;
  font-size: var(--texto-auxiliar);
  line-height: var(--alto-linea-factura);
  opacity: .82;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.control-estado-cotizacion-bloqueado {
  min-height: var(--alto-estado-cotizacion);
  height: var(--alto-estado-cotizacion);
}

@media (max-width: 1400px) {
  .rejilla-informe-financiero { grid-template-columns: 1fr; }
}
@media (max-width: 1100px) {

.encabezado-pagina:not(.hd-encabezado-pagina).encabezado-informe-mensual {
  grid-template-columns: 1fr;
  align-items: stretch;
}

  .encabezado-informe-mensual .acciones-exportacion-informe { justify-content: flex-end; flex-wrap: wrap; }
}
@media (max-width: 620px) {
  .rejilla-editar-pago { grid-template-columns: 1fr; }
  .selector-periodo-informe { width: 100%; min-width: 100%; }
  .encabezado-informe-mensual .acciones-exportacion-informe .boton { flex: 1 1 auto; }
  .resumen-ejecutivo-informe .lista-datos dt { white-space: normal; }
}

/* Controles de producción, cotizaciones y finanzas aún en uso. */
.formulario-historico { padding:16px 20px; }

.formulario-historico label { display:grid; gap:8px; min-width:0; font-size:var(--texto-cuerpo); }
.control-vigencia-cotizacion p {
  margin: 0;
  font-size: var(--texto-auxiliar);
  line-height: var(--interlineado-base);
  color: var(--color-texto-suave);
}
.control-vigencia-cotizacion {
  display: grid;
  grid-template-columns: minmax(170px,1fr) minmax(160px,1fr);
  gap: var(--espacio-7);
  align-items: center;
  padding: 0 var(--espacio-9) var(--espacio-9);
}
.contenido-control-produccion { padding:16px 22px 22px; }
.rejilla-revision-gastos-cotizacion {
  min-width: 0;
  display: grid;
  grid-template-columns: repeat(2,minmax(0,1fr));
  align-items: stretch;
  gap: var(--espacio-8);
}
.rejilla-revision-gastos-cotizacion > .panel {
  min-width: 0;
  margin: 0;
  overflow: hidden;
}
.control-produccion-cotizacion [data-estado-revision] {
  max-width: 180px;
  font-size: var(--texto-auxiliar);
  font-weight: var(--peso-seminegrita);
  text-align: right;
}
.comparacion-precios [data-comparacion-precios] { font-size:var(--texto-cuerpo); line-height:var(--interlineado-base); }
@media (max-width: 1100px) {
  .rejilla-revision-gastos-cotizacion {
  grid-template-columns: minmax(0,1fr);
}
}
.contenido-control-produccion ul { margin:0 0 14px; padding-left:22px; max-height:220px; overflow:auto; }
.contenido-control-produccion li { padding:4px 0; font-size:var(--texto-cuerpo); overflow-wrap:anywhere; }

.aviso-historico { border-left:4px solid var(--color-marca-azul); background:var(--color-superficie-secundaria); padding:16px 20px; margin:12px 20px; font-size:var(--texto-cuerpo); }
.aviso-historico a { margin-left:8px; text-decoration:underline; }
.comparacion-precios summary {
  padding: var(--espacio-5) 0;
  cursor: pointer;
  font-size: var(--texto-cuerpo);
  font-weight: var(--peso-seminegrita);
}
.comparacion-precios>label {
  max-width: var(--ancho-selector-comparacion-precios);
  margin: var(--espacio-3) 0;
}

.popup-revision-produccion { width:min(780px,calc(100vw - 32px)); max-height:90vh; }
.popup-revision-produccion section { margin:0; }
.popup-revision-produccion h2 { margin:0; font-size:var(--texto-titulo); }
.popup-revision-produccion ul { max-height:55vh; }
.popup-revision-produccion footer { display:flex; gap:12px; justify-content:flex-end; padding:16px 20px; }
.panel-finanzas-mensuales,.movimientos-mensuales-gestor { min-width:0; display:grid; gap:var(--espacio-9); }
.movimientos-mensuales-gestor { padding:0; }
.introduccion-movimientos { padding:4px 0; }
.introduccion-movimientos h3 { margin:0 0 var(--espacio-2); font-size:var(--texto-titulo); }
.introduccion-movimientos p { margin:0; font-size:var(--texto-cuerpo); line-height:var(--interlineado-base); }
.mes-movimientos-gestor { margin:0; overflow:hidden; }
.mes-movimientos-gestor>summary { cursor:pointer; list-style:none; }
.mes-movimientos-gestor>summary::-webkit-details-marker { display:none; }
.mes-movimientos-gestor>summary:focus-visible { outline:2px solid var(--color-texto-inverso); outline-offset:-5px; }
.titulo-mes-linea { display:flex; align-items:center; gap:var(--espacio-3); }
.indicador-mes-financiero { flex:0 0 auto; transform:rotate(-90deg); transition:transform .18s ease; }
.mes-movimientos-gestor[open] .indicador-mes-financiero { transform:rotate(0); }
.formulario-historico { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; align-items:end; }
.formulario-historico .campo-amplio { grid-column:1/-1; }
.formulario-historico>button { justify-self:start; }
.tabla-historicos { table-layout:fixed; min-width:900px; }
.tabla-historicos th:nth-child(1) { width:20%; }.tabla-historicos th:nth-child(2) { width:16%; }.tabla-historicos th:nth-child(3) { width:32%; }.tabla-historicos th:nth-child(4),.tabla-historicos th:nth-child(5) { width:16%; }
.tabla-historicos td { padding:14px; white-space:normal; overflow-wrap:anywhere; font-size:var(--texto-cuerpo); }
.tabla-historicos small { display:block; }

@media (max-width: 620px) {
.formulario-historico, .control-vigencia-cotizacion {
  grid-template-columns: minmax(0,1fr) !important;
}

}

.pestanas-estados-cotizaciones .pestana-estado-todas.activa { background: var(--color-superficie-terciaria); }
