/*
 * HD Conecta · Sistema visual canónico
 *
 * Esta hoja contiene la identidad definitiva de los componentes compartidos.
 * Las clases hd-* son estructurales: no deben duplicarse dentro de vistas.
 * No se permiten !important ni colores de marca fuera de las variables.
 */

:root {
  --hd-azul-900: var(--color-marca-azul-oscuro);
  --hd-azul-700: var(--color-marca-azul);
  --hd-azul-500: var(--color-marca-azul-claro);
  --hd-azul-100: var(--color-superficie-terciaria);
  --hd-fondo: var(--color-fondo);
  --hd-superficie: var(--color-superficie);
  --hd-texto: var(--color-texto);
  --hd-texto-fuerte: var(--color-texto-fuerte);
  --hd-texto-suave: var(--color-texto-suave);
  --hd-borde: var(--color-borde-panel);
  --hd-cebra: var(--color-fila-cebra);
  --hd-ingreso: var(--color-exito);
  --hd-ingreso-fondo: var(--color-exito-suave);
  --hd-ingreso-borde: var(--color-exito-borde);
  --hd-egreso: var(--color-peligro);
  --hd-egreso-fondo: var(--color-peligro-suave);
  --hd-egreso-borde: var(--color-peligro-borde);
  --hd-informativo: var(--color-advertencia);
  --hd-informativo-fondo: var(--color-advertencia-suave);
  --hd-informativo-borde: var(--color-advertencia-borde);
  --hd-radio-control: var(--radio-unico);
  --hd-radio-panel: var(--radio-unico);
  --hd-alto-control: var(--alto-control);
  --hd-alto-accion: var(--tamano-icono-accion);
  --hd-separacion: var(--separacion-acciones);
  --hd-sombra-panel: var(--sombra-panel);
  --hd-sombra-control: var(--sombra-control);
  --hd-ancho-dialogo-amplio: var(--ancho-dialogo-amplio);
}

/* Ventana de unidades y medidas comerciales: mismos tokens que los formularios. */
.hd-unidades-ventana > section { display: flex; flex-direction: column; max-height: calc(100dvh - 34px); }
.hd-unidades-ventana > section > :is(header,footer) { flex-shrink: 0; }
.hd-unidades-cuerpo { padding: var(--espacio-7); overflow-y: auto; min-height: 0; }
.hd-unidades-grupos { display: grid; gap: var(--espacio-6); margin-top: var(--espacio-6); }
.hd-unidades-grupo { display: grid; grid-template-columns: minmax(100px, .8fr) minmax(0, 4fr); gap: var(--espacio-5); align-items: start; }
.hd-unidades-grupo h3 { margin: 10px 0 0; font-size: var(--texto-cuerpo); color: var(--hd-azul-900); }
.hd-unidades-opciones { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: var(--espacio-3); }
.hd-unidades-opcion { display: grid; align-content: center; gap: 3px; min-height: 76px; padding: var(--espacio-4); border: 1px solid var(--hd-borde); border-radius: var(--hd-radio-control); background: var(--hd-cebra); color: var(--hd-texto); font: inherit; text-align: center; cursor: pointer; overflow-wrap: anywhere; }
.hd-unidades-opcion:hover, .hd-unidades-opcion[aria-pressed="true"] { border-color: var(--hd-azul-700); background: var(--hd-azul-100); color: var(--hd-azul-900); }
.hd-unidades-opcion:focus-visible { outline: 2px solid var(--hd-azul-700); outline-offset: 2px; }
.hd-unidades-opcion small, .hd-unidades-ayuda { color: var(--hd-texto-suave); font-size: var(--texto-auxiliar); line-height: var(--interlineado-base); }
.hd-unidades-ayuda { margin-bottom: 0; }
.hd-medidas { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--espacio-2); align-items: center; }
.hd-medidas > label { display: grid; gap: 3px; margin: 0; min-width: 0; }
.hd-medidas > label > span { font-size: var(--texto-auxiliar); color: var(--hd-texto-suave); text-align: center; }
.hd-medidas input { width: 100%; min-width: 0; box-sizing: border-box; text-align: center; }
.hd-medidas .medida-no-aplica { display: none; text-align: center; color: var(--hd-texto-suave); }
.hd-medidas--inactivas > label { display: none; }
.hd-medidas--inactivas .medida-no-aplica { display: block; grid-column: 1 / -1; }
@media (max-width: 760px) { .hd-unidades-grupo { grid-template-columns: minmax(0, 1fr); } }

/* Encabezado de página */
.hd-encabezado-pagina {
  width: 100%;
  min-width: 0;
  box-sizing: border-box;
  flex-wrap: wrap;
  padding: 0;
  min-height: 84px;
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 20px;
  margin-bottom: 20px;
}

.hd-encabezado-pagina > div:first-child {
  min-width: 0;
  max-width: 920px;
  display: grid;
  gap: 4px;
}

.hd-encabezado-pagina .sobrelinea {
  margin: 0;
  color: var(--hd-azul-700);
  font-size: var(--texto-auxiliar);
  font-weight: 700;
  letter-spacing: .04em;
  text-transform: uppercase;
}

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

.hd-encabezado-pagina p:last-child {
  margin: 0;
  color: var(--hd-texto-suave);
  font-size: var(--texto-cuerpo);
  line-height: 1.5;
}

/* Ficha del trabajo: identidad y navegación comunes a sus formularios. */
.hd-encabezado-pagina.hd-ficha-trabajo { display: flex; flex-wrap: wrap; align-items: center; min-height: 0; gap: var(--espacio-6); margin-bottom: var(--espacio-7); }
.hd-ficha-trabajo > .hd-ficha-trabajo__identidad { flex: 1 1 360px; max-width: 100%; overflow-wrap: anywhere; }
.hd-ficha-trabajo__acciones { flex: 0 1 auto; max-width: 100%; }
.hd-ficha-trabajo__contexto { display: flex; flex-wrap: wrap; align-items: center; gap: var(--espacio-2) var(--espacio-5); min-width: 0; }
.hd-ficha-trabajo__contexto :is(p,.hd-estado) { min-width: 0; max-width: 100%; font-size: var(--texto-cuerpo); line-height: var(--interlineado-base); overflow-wrap: anywhere; }
.hd-ficha-trabajo__cliente { margin: 0; }
.hd-ficha-trabajo__referencia { margin: 0; padding-left: var(--espacio-5); border-left: 1px solid var(--hd-borde); color: var(--hd-texto-suave); }
.hd-ficha-trabajo__secciones { display: flex; flex-wrap: wrap; align-items: stretch; gap: var(--espacio-1) var(--espacio-7); grid-column: 1 / -1; width: 100%; min-width: 0; border-bottom: 1px solid var(--hd-borde); }
.hd-ficha-trabajo .hd-ficha-trabajo__seccion { display: flex; flex-wrap: wrap; align-items: center; gap: var(--espacio-2) var(--espacio-3); min-width: 0; max-width: 100%; min-height: var(--hd-alto-control); padding: var(--espacio-3) var(--espacio-1); box-sizing: border-box; border-bottom: 2px solid transparent; color: var(--hd-texto-suave); font-size: var(--texto-cuerpo); font-weight: var(--peso-seminegrita); line-height: var(--interlineado-base); text-decoration: none; overflow-wrap: anywhere; }
.hd-ficha-trabajo__seccion small { font-size: inherit; font-weight: var(--peso-regular); }
.hd-ficha-trabajo .hd-ficha-trabajo__seccion:is(:hover,[aria-current]) { color: var(--hd-azul-900); border-bottom-color: var(--hd-azul-700); }
.hd-ficha-trabajo .hd-ficha-trabajo__seccion:focus-visible { outline: 2px solid var(--hd-azul-700); outline-offset: 2px; }
.hd-ficha-trabajo__seccion--pendiente { color: var(--hd-texto-suave); cursor: default; }
.hd-ficha-trabajo :is(.boton,.formulario-accion-cabecera) { min-width: 0; max-width: 100%; white-space: normal; overflow-wrap: anywhere; }
.hd-ficha-trabajo .boton > svg { flex-shrink: 0; }

.hd-encabezado-pagina .estado-sesion-cotizador { display: inline-grid; min-height: 0; max-width: 100%; margin-top: var(--espacio-3); padding: 0; border: 0; background: transparent; box-shadow: none; }

/* Importes y paneles comunes a las fichas del trabajo y del cliente. */
.hd-ficha-trabajo__contenido { display: grid; gap: var(--espacio-7); min-width: 0; }
.hd-ficha-trabajo__contenido > :is(.hd-panel,.hd-acordeon,.hd-nota,.hd-alerta) { margin: 0; }
.hd-ficha-trabajo__contenido > :is(.hd-panel,.hd-acordeon) { box-shadow: none; }
.hd-ficha-trabajo__contenido :is(.hd-panel,.hd-acordeon) > .hd-panel__encabezado,
.modulo-finanzas .mes-movimientos-gestor > .hd-panel__encabezado { --hd-texto-encabezado: var(--hd-azul-900); --hd-texto-encabezado-suave: var(--hd-texto-suave); min-height: 0; padding: var(--espacio-6) var(--espacio-7); flex-direction: row; flex-wrap: wrap; align-items: center; border-bottom: 1px solid var(--hd-borde); color: var(--hd-azul-900); background: var(--hd-superficie); }
.hd-ficha-trabajo__contenido .hd-panel__encabezado :is(h2,h3),
.modulo-finanzas .mes-movimientos-gestor > .hd-panel__encabezado :is(h2,h3) { color: var(--hd-azul-900); }
.hd-ficha-trabajo__contenido .hd-panel__encabezado p,
.modulo-finanzas .mes-movimientos-gestor > .hd-panel__encabezado p { color: var(--hd-texto-suave); font-size: var(--texto-cuerpo); }
.hd-ficha-trabajo__contenido .hd-panel__encabezado .hd-acciones { width: auto; max-width: 100%; }
.hd-ficha-trabajo__contenido .hd-panel__encabezado .boton-secundario { border-color: var(--hd-borde); }
.hd-ficha-trabajo__contenido :is(.hd-nota,.hd-formulario label,.hd-panel__contador,.hd-tabla th,.hd-tabla td,.hd-tabla small) { font-size: var(--texto-cuerpo); }
.hd-ficha-trabajo__contenido .hd-panel__contador { color: var(--hd-texto-suave); overflow-wrap: anywhere; }
.hd-ficha-trabajo__contenido .hd-panel__contenido { padding: var(--espacio-6) var(--espacio-7); }
.hd-ficha-trabajo__contenido :is(.hd-tabla,form,.boton,.hd-acciones) { min-width: 0; max-width: 100%; }
.hd-ficha-trabajo__contenido .boton { white-space: normal; overflow-wrap: anywhere; }
.hd-ficha-trabajo__contenido .boton > svg { flex-shrink: 0; }
:is(.hd-ficha-trabajo,.hd-ficha-trabajo__contenido) .boton-primario { border-color: var(--hd-azul-700); background: var(--hd-azul-700); box-shadow: none; }
.hd-ficha-trabajo__contenido .hd-acordeon__indicador svg { width: var(--tamano-svg-icono-accion); height: var(--tamano-svg-icono-accion); }
.hd-ficha-trabajo__contenido .hd-tabla :is(th,td) { min-width: 0; white-space: normal; overflow-wrap: anywhere; }
.hd-resumen-importes-trabajo { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); margin: 0; overflow: hidden; border: 1px solid var(--hd-borde); border-radius: var(--hd-radio-panel); background: var(--hd-superficie); }
.hd-resumen-importes-trabajo[data-columnas="4"] { grid-template-columns: repeat(4,minmax(0,1fr)); }
.hd-resumen-importes-trabajo[data-columnas="5"] { grid-template-columns: repeat(5,minmax(0,1fr)); }
.hd-resumen-importes-trabajo[data-columnas="2"] { grid-template-columns: repeat(2,minmax(0,1fr)); }
.hd-resumen-importes-trabajo[data-columnas="1"] { grid-template-columns: minmax(0,1fr); }
.hd-resumen-importes-trabajo > div { min-width: 0; padding: var(--espacio-6) var(--espacio-7); }
.hd-resumen-importes-trabajo > div + div { border-left: 1px solid var(--hd-borde); }
.hd-resumen-importes-trabajo dt { color: var(--hd-texto-suave); font-size: var(--texto-cuerpo); }
.hd-resumen-importes-trabajo dt a { color: inherit; overflow-wrap: anywhere; }
.hd-resumen-importes-trabajo dt a:focus-visible { outline: 2px solid var(--hd-azul-700); outline-offset: 3px; }
.hd-resumen-importes-trabajo dd { margin: var(--espacio-2) 0 0; color: var(--hd-texto-fuerte); font-size: var(--texto-destacado); font-weight: var(--peso-negrita); line-height: 1.3; overflow-wrap: anywhere; }
.hd-resumen-importes-trabajo dd.hd-valor--positivo { color: var(--color-texto-positivo); }
.hd-resumen-importes-trabajo dd.hd-valor--negativo { color: var(--color-texto-negativo); }
.hd-resumen-importes-trabajo dd small { display: block; margin-top: var(--espacio-1); color: var(--hd-texto-suave); font-size: var(--texto-cuerpo); font-weight: var(--peso-regular); }
.hd-resumen-importes-trabajo__saldo dd { color: var(--hd-azul-900); }
.hd-formulario-abono-trabajo > .hd-formulario__rejilla { grid-template-columns: repeat(3,minmax(0,1fr)); align-items: end; padding: var(--espacio-7); }
.hd-formulario-abono-trabajo .boton { width: 100%; }
.hd-cobros-historial { min-width: 0; border-top: 1px solid var(--hd-borde); }
.hd-cobros-historial > h3 { margin: 0; padding: var(--espacio-6) var(--espacio-7); color: var(--hd-texto-fuerte); font-size: var(--texto-cuerpo); }
.hd-cobros-historial > .hd-nota { margin: 0; padding: 0 var(--espacio-7) var(--espacio-7); }
.hd-opciones-cuenta-trabajo__fila { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--espacio-5); }
.hd-opciones-cuenta-trabajo__fila + .hd-opciones-cuenta-trabajo__fila { margin-top: var(--espacio-6); padding-top: var(--espacio-6); border-top: 1px solid var(--hd-borde); }
.hd-opciones-cuenta-trabajo__fila > .hd-nota { margin: 0; }
.hd-ficha-trabajo__contenido :is(.tabla-historial-abonos,.tabla-soportes) { table-layout: fixed; width: 100%; }
.tabla-historial-abonos .col-abono-fecha { width: 25%; }
.tabla-historial-abonos .col-abono-movimiento { width: 43%; }
.tabla-historial-abonos .col-abono-importe { width: 20%; }
.tabla-historial-abonos .col-abono-acciones { width: 12%; }
.tabla-soportes .col-soporte-archivo { width: 27%; }
.tabla-soportes .col-soporte-relacion { width: 22%; }
.tabla-soportes .col-soporte-descripcion { width: 22%; }
.tabla-soportes .col-soporte-tamano { width: 10%; }
.tabla-soportes .col-soporte-fecha { width: 12%; }
.tabla-soportes .col-soporte-accion { width: 7%; }
.hd-tabla--cuentas-trabajo { table-layout: fixed; width: 100%; }
.hd-tabla--cuentas-trabajo .col-trabajo-item { width: 7%; }
.hd-tabla--cuentas-trabajo .col-trabajo-descripcion { width: 25%; }
.hd-tabla--cuentas-trabajo .col-trabajo-importe { width: 13%; }
.hd-tabla--cuentas-trabajo .col-trabajo-factura { width: 10%; }
.hd-tabla--cuentas-trabajo .col-trabajo-acciones { width: 19%; }
.hd-tabla--cuentas-trabajo :is(td,th) { min-width: 0; overflow-wrap: anywhere; white-space: normal; }
.hd-tabla--cuentas-trabajo .form-factura-requisito { max-width: 100%; }
.hd-tabla--cuentas-trabajo .hd-acciones { justify-content: flex-start; }
.hd-tabla--items-trabajo { table-layout: fixed; width: 100%; }
.hd-tabla--items-trabajo .col-trabajo-item { width: 7%; }
.hd-tabla--items-trabajo .col-trabajo-descripcion { width: 32%; }
.hd-tabla--items-trabajo .col-trabajo-medida { width: 21%; }
.hd-tabla--items-trabajo .col-trabajo-cantidad { width: 10%; }
.hd-tabla--items-trabajo .col-trabajo-importe { width: 15%; }
.hd-tabla--items-sin-precios .col-trabajo-descripcion { width: 45%; }
.hd-tabla--items-sin-precios .col-trabajo-medida { width: 30%; }
.hd-tabla--items-sin-precios .col-trabajo-cantidad { width: 18%; }
.hd-tabla--items-trabajo :is(td,th) { overflow-wrap: anywhere; white-space: normal; }
.hd-tabla:is(.hd-tabla--items-trabajo,.hd-tabla--cuentas-trabajo) .celda-dinero { white-space: normal; overflow-wrap: anywhere; }
@media (max-width: 900px) {
  .hd-ficha-trabajo > .hd-ficha-trabajo__identidad { flex-basis: auto; }
  .hd-resumen-importes-trabajo[data-columnas="4"] { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .hd-resumen-importes-trabajo[data-columnas="4"] > div:nth-child(odd) { border-left: 0; }
  .hd-resumen-importes-trabajo[data-columnas="4"] > div:nth-child(n+3) { border-top: 1px solid var(--hd-borde); }
}
@media (max-width: 620px) {
  .hd-ficha-trabajo__acciones { justify-content: flex-start; }
  .hd-resumen-importes-trabajo,
  .hd-resumen-importes-trabajo[data-columnas] { grid-template-columns: minmax(0,1fr); }
  .hd-resumen-importes-trabajo > div { display: grid; grid-template-columns: minmax(0,.7fr) minmax(0,1fr); gap: var(--espacio-3); align-items: center; }
  .hd-resumen-importes-trabajo > div + div { border-left: 0; border-top: 1px solid var(--hd-borde); }
  .hd-resumen-importes-trabajo dd { margin-top: 0; text-align: right; }
  .hd-formulario-abono-trabajo > .hd-formulario__rejilla { grid-template-columns: minmax(0,1fr); }
}

.hd-tabla--nombres { table-layout: fixed; width: 100%; min-width: 0; }
.hd-tabla--nombres .col-nombre { width: 26%; }
.hd-tabla--nombres .col-cuentas { width: 8%; }
.hd-tabla--nombres .col-importe { width: 13%; }
.hd-tabla--nombres .col-abonos { width: 13%; }
.hd-tabla--nombres .col-saldo { width: 14%; }
.hd-tabla--nombres .col-acciones { width: 13%; }
.hd-tabla--nombres :is(th,td,.hd-acciones) { min-width: 0; max-width: 100%; white-space: normal; overflow-wrap: anywhere; }
.hd-tabla--nombres :is(th,td) { padding-inline: var(--espacio-3); }
.hd-tabla--nombres .celda-cantidad { text-align: center; vertical-align: middle; }
.modulo-finanzas .hd-tabla--nombres .acciones-registro { width: 100%; min-width: 0; max-width: 100%; flex-wrap: wrap; }
.modulo-finanzas .hd-tabla--nombres tfoot td { padding-block: var(--espacio-6); border-top: 2px solid var(--hd-azul-900); background: var(--hd-superficie); color: var(--hd-texto-fuerte); font-size: var(--texto-cuerpo); font-weight: var(--peso-regular); }
.panel-finanzas-por-nombre > .hd-ficha-trabajo__contenido { margin-bottom: var(--espacio-7); }
@container (max-width: 1100px) {
  .hd-listado-adaptable > .hd-tabla--nombres [data-etiqueta="Nombre"] { grid-column: 1 / -1; }
  .hd-listado-adaptable > .hd-tabla--nombres tfoot { display: block; width: 100%; border-top: 2px solid var(--hd-azul-900); }
  .hd-listado-adaptable > .hd-tabla--nombres tfoot tr { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: var(--espacio-5); padding: var(--espacio-6); }
  .hd-listado-adaptable > .hd-tabla--nombres tfoot td { display: block; width: auto; min-width: 0; padding: 0; border: 0; text-align: left; }
  .hd-listado-adaptable > .hd-tabla--nombres tfoot td::before { content: attr(data-etiqueta); display: block; margin-bottom: var(--espacio-2); color: var(--hd-texto-suave); font-size: var(--texto-auxiliar); font-weight: var(--peso-regular); }
  .hd-listado-adaptable > .hd-tabla--nombres tfoot td:first-child { grid-column: 1 / -1; }
  .hd-listado-adaptable > .hd-tabla--nombres tfoot td:first-child::before,
  .hd-listado-adaptable > .hd-tabla--nombres tfoot td:last-child { display: none; }
}
@container (max-width: 460px) {
  .hd-listado-adaptable > .hd-tabla--nombres tfoot tr { grid-template-columns: minmax(0,1fr); }
}
.hd-contacto-cliente > .hd-datos { padding: var(--espacio-6) var(--espacio-7); }
.hd-contacto-cliente .hd-datos dd { min-width: 0; overflow-wrap: anywhere; white-space: pre-wrap; }
.hd-contacto-cliente > .hd-acciones { padding: var(--espacio-6) var(--espacio-7); }
@media (max-width: 520px) {
}

/* Acciones compartidas */
.hd-acciones,
.acciones-pagina,
.acciones-registro {
  min-width: 0;
  box-sizing: border-box;
  display: flex;
  align-items: center;
  justify-content: flex-end;
  flex-wrap: wrap;
  gap: var(--hd-separacion);
}


/* Un único contexto para importes semánticos sobre fondos azules. */
:is(.hd-panel__encabezado, .encabezado-panel, .hd-resumen-cotizacion) {
  --color-texto-positivo: var(--color-exito-inverso);
  --color-texto-negativo: var(--color-peligro-inverso);
}

/* Panel y encabezado de panel */
.hd-panel {
  min-width: 0;
  overflow: hidden;
  border: 1px solid var(--hd-borde);
  border-radius: var(--hd-radio-panel);
  background: var(--hd-superficie);
  box-shadow: var(--hd-sombra-panel);
}

.hd-panel + .hd-panel,
.hd-panel + .hd-indicadores,
.hd-indicadores + .hd-panel {
  margin-top: var(--espacio-9);
}

/* Las rejillas ya distribuyen la separación mediante gap. */
:is(.rejilla-informe-financiero, .hd-configuracion, .hd-configuracion-maestro-detalle, .hd-formulario) > .hd-panel + .hd-panel {
  margin-top: 0;
}

/* También gana cuando el panel aún conserva la clase histórica .panel. */
.hd-panel > .hd-panel__encabezado,
.hd-panel__encabezado {
  min-height: var(--alto-encabezado-panel);
  display: flex;
  flex-wrap: nowrap;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  padding: 14px 18px;
  border-bottom: 5px solid var(--hd-azul-900);
  color: var(--hd-texto-encabezado, var(--color-texto-inverso));
  background: var(--hd-azul-700);
  box-shadow: none;
}

.hd-panel__encabezado .titulo-panel-planeacion { padding: 0; }
.hd-panel__encabezado .hd-total { min-height: 0; padding-block: 0; }

/* El contorno pertenece al bloque exterior; las piezas interiores se unen. */
.hd-panel > .hd-panel__encabezado {
  border-radius: calc(var(--hd-radio-panel) - 1px) calc(var(--hd-radio-panel) - 1px) 0 0;
}
:is(.hd-panel,.hd-acordeon) > .hd-resumen-importes-trabajo {
  border: 0;
  border-radius: 0;
}

.hd-panel__encabezado > div:first-child {
  min-width: 0;
  display: grid;
  gap: 3px;
}

.hd-panel > .hd-panel__encabezado :is(h2, h3),
.hd-panel__encabezado :is(h2, h3) {
  margin: 0;
  color: var(--hd-texto-encabezado, var(--color-texto-inverso));
  font-size: var(--texto-titulo);
  line-height: 1.3;
}

.hd-panel > .hd-panel__encabezado p,
.hd-panel__encabezado p {
  margin: 0;
  color: var(--hd-texto-encabezado-suave, var(--color-texto-inverso-suave));
  font-size: var(--texto-auxiliar);
  line-height: 1.45;
}

.hd-panel > .hd-panel__encabezado .boton-secundario,
.hd-panel__encabezado .boton-secundario {
  border-color: rgba(255, 255, 255, .88);
  color: var(--hd-azul-900);
  background: var(--color-superficie);
}

/* Tarjetas de indicador */
.hd-indicadores {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: 14px;
  margin-bottom: 20px;
}

.hd-indicador {
  min-width: 0;
  min-height: 154px;
  display: grid;
  grid-template-columns: 40px minmax(0, 1fr);
  grid-template-rows: auto 1fr auto;
  gap: 10px 12px;
  padding: 16px;
  border: 1px solid var(--hd-borde);
  border-radius: var(--hd-radio-panel);
  color: var(--hd-texto);
  background: var(--hd-superficie);
  box-shadow: var(--hd-sombra-panel);
  text-decoration: none;
}

.hd-indicador:hover {
  border-color: rgba(10, 120, 190, .42);
  box-shadow: var(--sombra-panel-activo);
}

.hd-indicador:focus-visible {
  outline: 3px solid rgba(25, 160, 220, .25);
  outline-offset: 2px;
}

.hd-indicador__icono {
  width: 40px;
  height: 40px;
  display: grid;
  place-items: center;
  border: 1px solid rgba(15, 65, 150, .15);
  border-radius: var(--radio-unico);
  color: var(--color-texto-inverso);
  background: var(--hd-azul-700);
  box-shadow: var(--hd-sombra-control);
}

.hd-indicador__icono svg {
  width: 22px;
  height: 22px;
}

.hd-indicador > div:nth-child(2) {
  min-width: 0;
  display: grid;
  align-content: start;
  gap: 4px;
}

.hd-indicador > div:nth-child(2) strong {
  color: var(--hd-texto-fuerte);
  font-size: var(--texto-cuerpo);
  line-height: 1.3;
}

.hd-indicador > div:nth-child(2) small {
  color: var(--hd-texto-suave);
  font-size: var(--texto-auxiliar);
  line-height: 1.5;
}

.hd-indicador__valor {
  grid-column: 1 / -1;
  align-self: end;
  color: var(--hd-texto-fuerte);
  font-size: var(--texto-destacado);
  line-height: 1.15;
  text-align: right;
  white-space: nowrap;
}

.hd-indicador__valor--texto { white-space: normal; overflow-wrap: anywhere; font-size: var(--texto-subtitulo); }

.hd-indicador > footer,
.hd-indicador__pie {
  grid-column: 1 / -1;
  min-height: 39px;
  padding-top: 10px;
  border-top: 1px solid var(--hd-borde);
  color: var(--hd-texto-suave);
  font-size: var(--texto-auxiliar);
  line-height: 1.5;
}

.hd-valor--positivo { color: var(--color-texto-positivo); }
.hd-valor--negativo { color: var(--color-texto-negativo); }
.hd-valor--informativo { color: var(--hd-informativo); }

.hd-indicador--positivo { border-top: 3px solid var(--hd-ingreso); }
.hd-indicador--negativo { border-top: 3px solid var(--hd-egreso); }
.hd-indicador--informativo { border-top: 3px solid var(--hd-informativo); }
.hd-indicador--neutro { border-top: 3px solid var(--hd-azul-700); }
.hd-indicador--ingreso { border-top: 3px solid var(--hd-ingreso); }
.hd-indicador--egreso { border-top: 3px solid var(--hd-egreso); }
.hd-indicador--advertencia { border-top: 3px solid var(--hd-informativo); }

.hd-indicadores--cuatro { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.hd-indicadores--cinco { grid-template-columns: repeat(5, minmax(0, 1fr)); }
.hd-indicadores--tres { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.hd-indicador--compacto { min-height: 132px; }

.hd-indicador--sin-icono {
  grid-template-columns: minmax(0, 1fr);
}

.hd-indicador--sin-icono > div:first-child {
  min-width: 0;
  display: grid;
  align-content: start;
  gap: 4px;
}

.hd-indicador--sin-icono > div:first-child strong {
  color: var(--hd-texto-fuerte);
  font-size: var(--texto-cuerpo);
  line-height: 1.3;
}

.hd-indicador--sin-icono > div:first-child small {
  color: var(--hd-texto-suave);
  font-size: var(--texto-auxiliar);
  line-height: 1.5;
}

/* Configuración: una sola composición para índice y vistas maestro-detalle. */
.hd-configuracion {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--espacio-6);
}

.hd-configuracion__tarjeta {
  min-width: 0;
  min-height: 118px;
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: var(--espacio-3) var(--espacio-5);
  align-content: start;
  padding: var(--espacio-7);
  color: var(--hd-texto);
  text-decoration: none;
}

.hd-configuracion__icono {
  width: 40px;
  height: 40px;
  display: grid;
  place-items: center;
  border: 1px solid rgba(15, 65, 150, .15);
  border-radius: var(--radio-unico);
  color: var(--color-texto-inverso);
  background: var(--hd-azul-700);
  box-shadow: var(--hd-sombra-control);
}

.hd-configuracion__icono svg { width: 22px; height: 22px; }
.hd-configuracion__tarjeta > span:nth-child(2) { display: grid; gap: 4px; }
.hd-configuracion__tarjeta > span { min-width: 0; overflow-wrap: anywhere; }
.hd-configuracion__tarjeta:focus-visible { outline: 2px solid var(--hd-azul-700); outline-offset: 3px; }
.hd-configuracion__dato { color: var(--hd-azul-900); font-size: var(--texto-auxiliar); font-weight: var(--peso-seminegrita); }
.hd-configuracion__tarjeta strong { color: var(--hd-texto-fuerte); font-size: var(--texto-cuerpo); }
.hd-configuracion__tarjeta small { color: var(--hd-texto-suave); font-size: var(--texto-auxiliar); line-height: 1.45; }
.hd-configuracion__tarjeta > b {
  grid-column: 1 / -1;
  align-self: end;
  color: var(--hd-texto-fuerte);
  font-size: var(--texto-cuerpo);
  text-align: right;
}
.hd-configuracion__tarjeta > small { grid-column: 1 / -1; text-align: right; }

.hd-configuracion-maestro-detalle {
  display: grid;
  grid-template-columns: minmax(320px, var(--ancho-maestro-configuracion)) minmax(0, 1fr);
  align-items: start;
  gap: var(--espacio-8);
}

/* Categorías y referencia visual utilizan las dimensiones compartidas. */
.hd-tabla--categorias { table-layout: fixed; min-width: 0; }
.col-categoria-nombre { width: var(--col-categoria-nombre); }
.col-categoria-productos { width: var(--col-categoria-productos); }
.col-categoria-estado { width: var(--col-categoria-estado); }
.col-categoria-acciones { width: var(--col-categoria-acciones); }
.hd-referencia-visual { display: grid; gap: var(--espacio-9); }
.hd-referencia-visual > .hd-nota { margin: 0; }
.hd-documentos-referencia { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--espacio-9); }
.hd-documento-referencia { min-width: 0; border: 1px solid var(--hd-borde); border-radius: var(--hd-radio-panel); overflow: hidden; }
.hd-documento-referencia > header { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: var(--espacio-5); padding: var(--espacio-7); background: var(--color-superficie-secundaria); }
.hd-documento-referencia h3 { margin: 0; color: var(--hd-azul-900); font-size: var(--texto-titulo); }
.hd-tabla--referencia { table-layout: fixed; min-width: 620px; }
.hd-tabla--referencia :is(th,td) { overflow-wrap: anywhere; }
.hd-tabla--referencia th:first-child { width: 32%; }
.hd-referencia-grupo { min-width: 0; overflow: hidden; border: 1px solid var(--hd-borde); border-radius: var(--hd-radio-panel); }
.hd-referencia-grupo > summary { padding: var(--espacio-7) var(--espacio-9); background: var(--hd-cebra); color: var(--hd-azul-900); font-size: var(--texto-cuerpo); font-weight: var(--peso-seminegrita); cursor: pointer; }
.hd-referencia-grupo > summary > span { margin-left: var(--espacio-5); font-size: var(--texto-auxiliar); color: var(--hd-texto-suave); font-weight: var(--peso-regular); }
.hd-referencia-grupo > summary:focus-visible { outline: 2px solid var(--hd-azul-700); outline-offset: -3px; }
.hd-tabla--muestras { min-width: 860px; }
.hd-tabla--muestras th:first-child { width: 23%; }
.hd-tabla--muestras th:nth-child(2) { width: 23%; }
.hd-tabla--muestras th:nth-child(3) { width: 24%; }
.hd-referencia-valor { color: var(--hd-texto-suave); font-size: var(--texto-auxiliar); }
.hd-muestras-componentes { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--espacio-9); }
.hd-muestra-contenido { display: grid; gap: var(--espacio-7); }
.hd-muestra-contenido :is(p,small) { margin: 0; }
.hd-muestra-contenido > .hd-acciones { justify-content: flex-start; }
.hd-muestra-titulo { font-size: var(--texto-destacado); font-weight: var(--peso-negrita); color: var(--hd-azul-900); }
.hd-muestra-subtitulo { font-size: var(--texto-titulo); font-weight: var(--peso-seminegrita); color: var(--hd-azul-900); }
:is(.hd-muestra-tabla,.hd-muestra-avisos) { grid-column: 1 / -1; }
.hd-tabla--muestra { table-layout: fixed; min-width: 620px; }
.hd-tabla--muestra th:first-child { width: 42%; }
.hd-muestra-estados { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--espacio-7); }
.hd-muestra-estados > .hd-alerta { margin: 0; }
.hd-muestra-visual { display: inline-flex; align-items: center; max-width: 100%; box-sizing: border-box; font-family: var(--fuente-familia); font-size: var(--texto-cuerpo); line-height: var(--interlineado-base); }
.hd-muestra-visual--color { width: var(--espacio-12); height: var(--espacio-12); border: 1px solid var(--hd-borde); border-radius: var(--hd-radio-control); background: var(--hd-muestra-valor); }
.hd-muestra-visual--fuente { font-family: var(--hd-muestra-valor); }
.hd-muestra-visual--texto { font-size: var(--hd-muestra-valor); }
.hd-muestra-visual--peso { font-weight: var(--hd-muestra-valor); }
.hd-muestra-visual--interlineado { display: block; line-height: var(--hd-muestra-valor); }
.hd-muestra-visual--sombra { margin: var(--espacio-3); padding: var(--espacio-4) var(--espacio-5); border-radius: var(--hd-radio-control); color: var(--color-texto-inverso); background: var(--hd-azul-700); box-shadow: var(--hd-muestra-valor); }
.hd-muestra-visual--radio { width: calc(3 * var(--espacio-12)); height: var(--alto-control); border: 1px solid var(--hd-borde); border-radius: var(--hd-muestra-valor); background: var(--hd-cebra); }
.hd-muestra-visual--control { --hd-alto-control: var(--hd-muestra-valor); --alto-control: var(--hd-muestra-valor); }
.hd-muestra-visual--icono { justify-content: center; width: var(--hd-muestra-valor); height: var(--hd-muestra-valor); border-radius: var(--hd-radio-control); color: var(--color-texto-inverso); background: var(--hd-azul-700); }
.hd-muestra-visual--icono > svg { width: var(--tamano-svg-icono-accion); height: var(--tamano-svg-icono-accion); max-width: 70%; max-height: 70%; }
.hd-muestra-visual--simbolo { color: var(--hd-azul-700); }
.hd-muestra-visual--simbolo > svg { width: var(--hd-muestra-valor); height: var(--hd-muestra-valor); }
.hd-muestra-visual--casilla { justify-content: center; width: var(--hd-muestra-valor); height: var(--hd-muestra-valor); border-radius: var(--espacio-1); background: var(--hd-azul-700); color: var(--color-texto-inverso); font-size: var(--texto-auxiliar); }
.hd-muestra-visual--proporcion { display: block; width: 100%; padding: var(--espacio-1); border: 1px solid var(--hd-borde); border-radius: var(--espacio-1); background: var(--hd-superficie); }
.hd-muestra-visual--proporcion > span { display: block; width: var(--hd-muestra-valor); height: var(--espacio-7); background: var(--hd-azul-700); border-radius: var(--espacio-1); }
.hd-muestra-visual--ancho { display: grid; gap: var(--espacio-2); }
.hd-muestra-visual--ancho > i { width: calc(var(--hd-muestra-valor) / 10); max-width: 100%; height: var(--espacio-5); background: var(--hd-azul-700); }
.hd-muestra-visual--altura { gap: var(--espacio-3); align-items: flex-end; }
.hd-muestra-visual--altura > i { width: var(--espacio-9); height: calc(var(--hd-muestra-valor) / 4); background: var(--hd-azul-700); }
.hd-muestra-visual--espacio { gap: var(--hd-muestra-valor); }
.hd-muestra-visual--espacio > i { width: var(--espacio-3); height: var(--espacio-9); background: var(--hd-azul-700); }
.hd-muestra-visual--relleno { padding: var(--hd-muestra-valor); border: 1px solid var(--hd-borde); border-radius: var(--hd-radio-control); background: var(--hd-cebra); }
.hd-muestra-visual--relleno > span { background: var(--hd-superficie); }
.muestra-preferencias { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: start; gap: var(--espacio-9); }
.muestra-preferencias > .hd-nota { grid-column: 1 / -1; margin: 0; }
@media (max-width: 1400px) { .hd-documentos-referencia { grid-template-columns: minmax(0, 1fr); } }
@media (max-width: 600px) { :is(.muestra-preferencias,.hd-muestras-componentes,.hd-muestra-estados) { grid-template-columns: minmax(0, 1fr); } }

/* Superficies principales: mismo ancho útil que el listado financiero. */
.pagina > :is(form.hd-formulario, form.formulario-modulo, form.formulario-v32, form.formulario-preferencias) {
  width: 100%;
  min-width: 0;
  max-width: none;
  box-sizing: border-box;
}
/* Los avisos directos necesitan el mismo espacio que el contenido del panel. */
.hd-panel > :is(.hd-alerta,.hd-nota,.aviso-contextual,.alerta),
.panel:not(.hd-panel) > :is(.hd-alerta,.hd-nota,.aviso-contextual,.alerta) {
  width: auto;
  max-width: none;
  box-sizing: border-box;
  margin: var(--espacio-7) var(--espacio-9);
  overflow-wrap: break-word;
}

/* Filtros, formularios y contenido de panel */
.hd-panel__contenido {
  min-width: 0;
  padding: var(--espacio-9);
}

.hd-panel--desborde-visible { overflow: visible; }

.hd-filtros {
  width: 100%;
  min-width: 0;
  box-sizing: border-box;
  display: grid;
  align-items: end;
  gap: var(--espacio-5);
  margin: 0;
  padding: var(--espacio-7) var(--espacio-8);
  border: 1px solid var(--hd-borde);
  border-radius: var(--hd-radio-panel);
  background: var(--hd-superficie);
  box-shadow: var(--hd-sombra-panel);
}

.hd-panel > .hd-filtros {
  border: 0;
  border-bottom: 1px solid var(--hd-borde);
  border-radius: 0;
  box-shadow: none;
}

.hd-filtros--directorio {
  grid-template-columns: minmax(0, var(--ancho-busqueda-comun)) repeat(2, minmax(0, var(--ancho-selector-filtro)));
}

.hd-filtros--dos {
  grid-template-columns: minmax(0, var(--ancho-busqueda-comun)) minmax(0, var(--ancho-selector-filtro));
}

.hd-filtros--busqueda {
  grid-template-columns: minmax(0, var(--ancho-busqueda-comun));
}

.hd-filtros > :is(.boton,.hd-acciones) { align-self: end; }

.hd-filtros label,
.hd-formulario label,
label.campo-cotizador,
.rejilla-popup-cuenta label {
  min-width: 0;
  display: grid;
  gap: var(--espacio-2);
  align-content: start;
  color: var(--hd-texto);
  font-size: var(--texto-auxiliar);
  font-weight: 700;
}

.hd-filtros :is(input:not([type="hidden"]):not([type="checkbox"]):not([type="radio"]), select),
.hd-formulario :is(input:not([type="hidden"]):not([type="checkbox"]):not([type="radio"]):not([type="file"]):not([data-fecha-parte]), select, textarea),
.hd-cotizador-tabla :is(input,select,textarea):where(:not([type="hidden"]):not([type="checkbox"]):not([type="radio"])),
.fila-otro-gasto input,
.hd-personalizador input:where(:not([type="hidden"]):not([type="checkbox"]):not([type="radio"])),
.control-cotizador:not([type="hidden"]):not([type="checkbox"]):not([type="radio"]) {
  width: 100%;
  min-width: 0;
  min-height: var(--hd-alto-control);
  box-sizing: border-box;
  padding: var(--espacio-3) var(--espacio-5);
  border: 1px solid var(--hd-borde);
  border-radius: var(--hd-radio-control);
  color: var(--hd-texto);
  background: var(--hd-superficie);
  font: var(--peso-regular) var(--texto-cuerpo)/var(--interlineado-base) var(--fuente-familia);
  outline: 0;
}

.hd-filtros :is(input:not([type="hidden"]):not([type="checkbox"]):not([type="radio"]), select):focus,
.hd-formulario :is(input:not([type="hidden"]):not([type="checkbox"]):not([type="radio"]):not([type="file"]):not([data-fecha-parte]), select, textarea):focus,
.hd-cotizador-tabla :is(input,select,textarea):where(:not([type="hidden"]):not([type="checkbox"]):not([type="radio"])):focus,
.fila-otro-gasto input:focus,
.hd-personalizador input:where(:not([type="hidden"]):not([type="checkbox"]):not([type="radio"])):focus,
.control-cotizador:focus {
  border-color: var(--hd-azul-700);
  box-shadow: var(--anillo-foco);
}

.hd-formulario {
  width: 100%;
  display: grid;
  gap: var(--espacio-9);
}
.hd-formulario.hd-panel { gap: 0; }

.hd-formulario__rejilla {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  align-items: start;
  gap: var(--espacio-7);
  padding: var(--espacio-9);
  background: var(--color-superficie-secundaria);
}

.hd-formulario__rejilla--tres { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.hd-formulario__rejilla--cuatro { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.hd-campo--ancho,
.hd-formulario__rejilla .campo-ancho { grid-column: 1 / -1; }
/* Ayudas y errores comparten jerarquía; los campos calculados siguen siendo legibles. */
.hd-formulario label > small:not(.campo-error):not(.hd-error-campo),
label.campo-cotizador > small:not(.campo-error):not(.hd-error-campo),
.rejilla-popup-cuenta label > small:not(.campo-error):not(.hd-error-campo),
.hd-ayuda-campo {
  color: var(--hd-texto-suave);
  font-size: var(--texto-auxiliar);
  font-weight: var(--peso-regular);
  line-height: var(--interlineado-base);
}
.hd-formulario :is(input,select,textarea):disabled,
.control-cotizador:disabled { cursor: default; }
.hd-dialogo > form > header :is(h2,h3) {
  margin: 0;
  font-family: var(--fuente-familia);
  font-size: var(--texto-titulo);
}


.hd-paso,
.hd-panel__contador {
  min-width: 34px;
  min-height: 34px;
  display: inline-grid;
  place-items: center;
  padding: 5px 9px;
  border: 1px solid rgba(255, 255, 255, .55);
  border-radius: var(--radio-unico);
  color: var(--color-texto-inverso);
  background: rgba(255, 255, 255, .14);
  font-size: var(--texto-auxiliar);
  font-weight: 700;
}

.hd-opciones {
  min-width: 0;
  min-height: 76px;
  display: flex;
  align-items: center;
  align-self: stretch;
  flex-wrap: wrap;
  gap: 12px 18px;
  margin: 0;
  padding: 12px 14px;
  border: 1px solid var(--hd-borde);
  border-radius: var(--hd-radio-control);
  background: var(--hd-superficie);
}

.hd-opciones legend {
  padding: 0 5px;
  color: var(--hd-texto);
  font-size: var(--texto-auxiliar);
  font-weight: 700;
}

.hd-opciones label, .hd-formulario .hd-opcion, label.confirmacion-advertencias {
  display: inline-flex;
  align-items: center;
  grid-template-columns: none;
  gap: var(--espacio-3);
  min-width: 0;
  white-space: normal;
  font-size: var(--texto-cuerpo);
}

.hd-opciones input, .hd-formulario .hd-opcion input, label.confirmacion-advertencias input[type="checkbox"] {
  width: var(--tamano-casilla);
  min-width: var(--tamano-casilla);
  height: var(--tamano-casilla);
  min-height: var(--tamano-casilla);
  margin: 0;
  accent-color: var(--hd-azul-700);
  flex: 0 0 var(--tamano-casilla);
  padding: 0;
}

.hd-formulario label[hidden],
label.confirmacion-advertencias[hidden] { display: none; }

.campo-error,
.hd-error-campo {
  color: var(--hd-egreso);
  font-size: var(--texto-auxiliar);
  font-weight: var(--peso-medio);
}

.campo-error:empty,
.hd-error-campo:empty { display: none; }
[data-hd-opcion][aria-invalid="true"] { border-color: var(--hd-color-negativo, var(--hd-egreso)); }

/* El mismo estado de error se aplica a formularios y al campo especial del cotizador. */
.hd-formulario :is(input:not([type="hidden"]):not([type="checkbox"]):not([type="radio"]):not([type="file"]):not([data-fecha-parte]), select, textarea)[aria-invalid="true"],
.hd-filtros :is(input:not([type="hidden"]):not([type="checkbox"]):not([type="radio"]), select)[aria-invalid="true"],
.control-cotizador[aria-invalid="true"],
.rejilla-popup-cuenta :is(input,select,textarea)[aria-invalid="true"],
.formulario-modulo :is(input,select,textarea)[aria-invalid="true"] {
  border-color: var(--hd-egreso);
  box-shadow: 0 0 0 3px var(--hd-egreso-fondo);
}

.hd-nota {
  margin: 0;
  padding: 14px 16px;
  border: 1px solid var(--hd-borde);
  border-left: 4px solid var(--hd-azul-700);
  border-radius: var(--hd-radio-control);
  color: var(--hd-texto-suave);
  background: var(--hd-azul-100);
  font-size: var(--texto-auxiliar);
  line-height: 1.6;
}

.hd-nota strong { color: var(--hd-texto-fuerte); }

/* Estados vacíos, avisos y fichas de datos */
/* Alias históricos conservados para las vistas existentes. */
:is(.hd-estado-vacio, .estado-vacio, .estado-filtro-vacio) {
  width: 100%; min-width: 0; box-sizing: border-box;
  min-height: 240px; display: grid; place-content: center; justify-items: center;
  padding: var(--espacio-10) var(--espacio-9); margin: 0;
  color: var(--hd-texto-suave); text-align: center;
  font-size: var(--texto-cuerpo); line-height: 1.6; overflow-wrap: anywhere;
}
:is(.hd-estado-vacio, .estado-vacio, .estado-filtro-vacio)[hidden] { display: none; }
:is(.hd-estado-vacio, .estado-vacio, .estado-filtro-vacio) strong { color: var(--hd-texto-fuerte); }
:is(.hd-estado-vacio, .estado-vacio, .estado-filtro-vacio) p { max-width: 440px; margin: var(--espacio-2) 0 0; }
:is(.hd-estado-vacio, .estado-vacio, .estado-filtro-vacio) .boton { justify-self: center; margin-top: var(--espacio-6); max-width: 100%; }
.estado-vacio-compacto { min-height: 210px; }
.estado-filtro-vacio, .estado-vacio-mes { min-height: 92px; }
.estado-filtro-vacio { background: var(--color-superficie); }
.boton[aria-busy="true"] { cursor: progress; }
.boton[aria-busy="true"]::before {
  content: ""; width: 14px; height: 14px; flex: 0 0 14px;
  border: 2px solid currentColor; border-right-color: transparent;
  border-radius: 50%; animation: carga-hd .8s linear infinite;
}
@media (prefers-reduced-motion: reduce) {
  .boton[aria-busy="true"]::before { animation: none; }
}

.hd-alerta {
  margin: 0 0 18px;
  padding: 12px 14px;
  border: 1px solid var(--hd-borde);
  border-radius: var(--hd-radio-control);
  color: var(--hd-texto);
  background: var(--hd-superficie);
  font-size: var(--texto-auxiliar);
  line-height: 1.55;
}

.hd-alerta--positivo { color: var(--hd-ingreso); border-color: var(--hd-ingreso-borde); background: var(--hd-ingreso-fondo); }
.hd-alerta--negativo { color: var(--hd-egreso); border-color: var(--hd-egreso-borde); background: var(--hd-egreso-fondo); }
.hd-alerta--advertencia { color: var(--hd-informativo); border-color: var(--hd-informativo-borde); background: var(--hd-informativo-fondo); }
.hd-alerta--neutral { color: var(--hd-texto-suave); background: var(--color-superficie-secundaria); }

/* Avisos de campos: la misma lectura en páginas y ventanas. */
.hd-resumen-validacion { min-width: 0; max-width: 100%; overflow-wrap: anywhere; }
.hd-resumen-validacion[hidden] { display: none; }
.hd-resumen-validacion :is(strong,p,ul) { margin: 0; }
.hd-resumen-validacion :is(p,ul):not([hidden]) { margin-top: var(--espacio-3); }
.hd-resumen-validacion ul { padding-left: var(--espacio-7); }
.hd-resumen-validacion a { color: inherit; text-decoration: underline; text-underline-offset: 3px; }
.hd-resumen-validacion a:focus-visible { outline: 2px solid currentColor; outline-offset: 2px; }
.hd-resumen-validacion:focus { outline: 2px solid var(--hd-egreso); outline-offset: 2px; }
.hd-tabla :is(td,th) > .hd-error-campo { display: block; margin-top: var(--espacio-2); white-space: normal; }


.hd-detalle {
  display: grid;
  gap: 18px;
  margin-bottom: 18px;
}

.hd-detalle--dos { grid-template-columns: repeat(2, minmax(0, 1fr)); }

.hd-datos {
  display: grid;
  margin: 0;
  padding: 5px 18px 18px;
}

.hd-datos > div {
  display: grid;
  grid-template-columns: minmax(120px, .42fr) 1fr;
  gap: 16px;
  padding: 13px 0;
  border-bottom: 1px solid var(--hd-borde);
}

.hd-datos > div:last-child { border-bottom: 0; }
.hd-datos dt { color: var(--hd-texto-suave); font-size: var(--texto-auxiliar); }
.hd-datos dd { margin: 0; color: var(--hd-texto-fuerte); font-size: var(--texto-auxiliar); text-align: right; overflow-wrap: anywhere; }

.hd-accion-discreta {
  display: flex;
  justify-content: flex-end;
  margin-top: 16px;
}

/* Navegación y foco: definición compartida para controles de acción. */
:is(.boton,.accion-icono,.boton-menu-movil,.paginacion a,.pestanas-estados-cotizaciones a):focus-visible { outline: 2px solid var(--color-marca-azul); outline-offset: 3px; }
.barra-lateral :is(a,button,input,select):focus-visible { outline: 2px solid var(--color-texto-inverso); outline-offset: -3px; }
.hd-saltar-contenido { position: fixed; top: var(--espacio-5); left: var(--espacio-5); z-index: 10000; padding: var(--espacio-5) var(--espacio-7); border-radius: var(--radio-control); color: var(--color-texto-inverso); background: var(--color-marca-azul-oscuro); transform: translateY(-200%); }
.hd-saltar-contenido:focus { transform: none; outline: 2px solid var(--color-marca-azul); outline-offset: 3px; }
.barra-lateral .cerrar-menu-movil { display: none; }
@media (max-width: 860px) {
  .barra-lateral .cerrar-menu-movil { display: grid; align-self: flex-end; margin: var(--espacio-3); }
}

/* Etiquetas y datos clave */
.hd-etiquetas { display: flex; flex-wrap: wrap; gap: 5px; }

.estado,
.hd-estado {
  display: inline-flex;
  align-items: center;
  min-height: 25px;
  padding: 4px 8px;
  border-radius: var(--radio-unico);
  font-size: var(--texto-auxiliar);
  font-weight: var(--peso-seminegrita);
}

.estado { text-transform: capitalize; }
.estado-positivo,
.hd-estado--positivo { color: var(--hd-ingreso); background: var(--hd-ingreso-fondo); }
.estado-negativo,
.hd-estado--negativo { color: var(--hd-egreso); background: var(--hd-egreso-fondo); }
.estado-advertencia,
.hd-estado--advertencia { color: var(--hd-informativo); background: var(--hd-informativo-fondo); }
.estado-neutro,
.hd-estado--neutral { color: var(--hd-azul-900); background: var(--hd-azul-100); }

.hd-datos-clave {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: var(--espacio-6);
  padding: var(--espacio-9);
}

.hd-dato-clave {
  min-width: 0;
  min-height: var(--alto-dato-clave-minimo);
  display: grid;
  align-content: space-between;
  gap: var(--espacio-3);
  padding: var(--espacio-7);
  border: 1px solid var(--hd-borde);
  border-radius: var(--radio-unico);
  background: var(--hd-superficie);
  color: var(--hd-azul-900);
}

.hd-dato-clave span {
  color: var(--hd-texto);
  font-size: var(--texto-auxiliar);
  font-weight: var(--peso-seminegrita);
}
.hd-dato-clave strong {
  font-size: var(--texto-destacado);
  line-height: var(--interlineado-compacto);
  text-align: right;
  font-variant-numeric: tabular-nums;
}
.hd-dato-clave small {
  color: var(--hd-texto-suave);
  font-size: var(--texto-auxiliar);
  line-height: var(--interlineado-base);
}

/* Traslado seguro de registros */
.hd-traslado {
  display: grid;
  grid-template-columns: minmax(0, 1.25fr) minmax(320px, .75fr);
  align-items: center;
  gap: 26px;
  padding: 24px;
}

.hd-traslado > label { min-width: 0; }

/* Datos y enlaces de tabla: independientes de la clase histórica .tabla. */
.hd-tabla td :is(strong, small) { display: block; }
.hd-tabla td strong { color: var(--hd-texto-fuerte); font-size: var(--texto-cuerpo); }
.hd-tabla td small { margin-top: 2px; color: var(--hd-texto-suave); }
/* Vínculos de datos: un mismo azul y peso en todas las tablas. */
body :is(.tabla,.hd-tabla) td a:where(:not(.accion-icono):not(.boton)) { color: var(--hd-azul-700); font-weight: 700; text-decoration: none; }
body :is(.tabla,.hd-tabla) td a:where(:not(.accion-icono):not(.boton)) :is(strong,b,span) { color: inherit; font-weight: inherit; }
body :is(.tabla,.hd-tabla) td a:where(:not(.accion-icono):not(.boton)):is(:hover,:focus-visible) { color: var(--hd-azul-700); text-decoration: underline; text-underline-offset: 3px; }
.hd-tabla :is(.acciones-registro,.acciones-tabla) { width: 100%; min-width: 0; max-width: 100%; margin-left: auto; flex-wrap: wrap; }

/* Tabla administrativa del catálogo */
.hd-tabla--catalogo {
  width: 100%;
  min-width: 0;
  table-layout: fixed;
}

.hd-tabla--catalogo .col-catalogo-producto { width: calc(var(--col-catalogo-producto) + var(--col-catalogo-categoria)); }
.hd-tabla--catalogo .col-catalogo-unidad { width: var(--col-catalogo-unidad); }
.hd-tabla--catalogo .col-catalogo-costo { width: calc(var(--col-catalogo-importe) + var(--col-catalogo-fecha)); }
.hd-tabla--catalogo .col-catalogo-precio { width: var(--col-catalogo-importe); }
.hd-tabla--catalogo .col-catalogo-utilidad { width: calc(var(--col-catalogo-importe) + var(--col-catalogo-margen)); }
.hd-tabla--catalogo .col-catalogo-acciones { width: var(--col-catalogo-acciones); }
.hd-tabla--catalogo :is(th, td) {
  min-width: 0;
  padding-inline: var(--espacio-5);
  white-space: normal;
  overflow-wrap: anywhere;
}
.hd-tabla--catalogo th {
  line-height: var(--interlineado-compacto);
  word-break: normal;
  hyphens: none;
}
.hd-tabla--catalogo .titulo-columna-doble > span { white-space: normal; }

.hd-celda--positiva {
  color: var(--hd-ingreso);
  font-weight: var(--peso-negrita);
}
.hd-celda--negativa {
  color: var(--hd-egreso);
  font-weight: var(--peso-negrita);
}
.hd-celda--advertencia {
  color: var(--hd-informativo);
  font-weight: var(--peso-negrita);
}

.hd-tabla.hd-tabla--catalogo .celda-dinero { white-space: normal; overflow-wrap: anywhere; }
.hd-tabla--catalogo .celda-dinero small { white-space: normal; overflow-wrap: anywhere; }
.hd-tabla :is(.hd-celda--positiva,.hd-celda--negativa,.hd-celda--advertencia) > strong { color: inherit; }
.hd-tabla--comparacion-precios { min-width: var(--ancho-tabla-comparacion-precios); table-layout: auto; }
.hd-tabla--comparacion-precios :is(th,td) { white-space: normal; overflow-wrap: anywhere; }
.hd-tabla--comparacion-precios .celda-dinero { white-space: nowrap; }

/* Estados: el fondo define la naturaleza; el círculo define cobertura. */
.hd-fila--ingreso {
  color: var(--hd-texto-fuerte);
  background: var(--hd-ingreso-fondo);
}

.hd-fila--egreso {
  color: var(--hd-texto-fuerte);
  background: var(--hd-egreso-fondo);
}

.hd-fila--informativo {
  color: var(--hd-texto-fuerte);
  background: var(--hd-informativo-fondo);
}

.hd-fila--ingreso > td,
.hd-fila--egreso > td,
.hd-fila--informativo > td {
  color: var(--hd-texto-fuerte);
  font-weight: 400;
}

.hd-fila--ingreso > td > strong,
.hd-fila--egreso > td > strong,
.hd-fila--informativo > td > strong {
  color: var(--hd-texto-fuerte);
}

/* Producción usa las medidas comunes de columnas y los controles del formulario. */
.hd-tabla--produccion-items {
  width: 100%;
  min-width: 0;
  table-layout: fixed;
}
.hd-tabla--produccion-items .col-produccion-cantidad { width: var(--ancho-valor-cotizacion); }
.hd-tabla--produccion-items :is(.col-produccion-medidas,.col-produccion-progreso) { width: var(--ancho-medidas-cotizacion); }
.hd-tabla--produccion-items .col-produccion-codigo { width: var(--ancho-item-cotizacion); }
.hd-tabla--produccion-items .col-produccion-nota { width: var(--ancho-campo-gasto); }
.hd-tabla--produccion-items [data-produccion-estado] { font-size: var(--texto-auxiliar); }

/* Historial operativo: acordeones y colores del sistema visual compartido. */
.hd-historial-produccion { display: grid; gap: var(--espacio-6); margin: 0; padding: 0; list-style: none; }
.hd-historial-produccion > li { min-width: 0; }
.hd-historial-produccion__resumen { display: flex; align-items: center; justify-content: space-between; gap: var(--espacio-5); padding: var(--espacio-7); color: var(--hd-texto-fuerte); font-size: var(--texto-cuerpo); }
.hd-historial-produccion__resumen > span:first-child { min-width: 0; display: grid; gap: var(--espacio-2); overflow-wrap: anywhere; }
.hd-historial-produccion__meta { color: var(--hd-texto-suave); font-size: var(--texto-auxiliar); }
.hd-historial-produccion__contador { display: inline-flex; align-items: center; gap: var(--espacio-3); flex-shrink: 0; color: var(--hd-texto-suave); font-size: var(--texto-auxiliar); }
.hd-tabla--historial-produccion { table-layout: fixed; min-width: 0; width: 100%; }
.hd-tabla--historial-produccion :is(th,td) { width: 33.333%; white-space: normal; overflow-wrap: anywhere; vertical-align: top; }
.hd-tabla--historial-produccion tbody th small { display: block; margin-top: var(--espacio-2); color: var(--hd-texto-suave); font-size: var(--texto-auxiliar); font-weight: normal; }
.hd-tabla--historial-produccion .hd-historial-produccion__valor { white-space: pre-wrap; }
.hd-historial-produccion__caption { padding: var(--espacio-4) var(--espacio-7); color: var(--hd-texto-suave); font-size: var(--texto-auxiliar); text-align: left; }
.hd-historial-produccion__aviso { margin: var(--espacio-7); }
.hd-historial-produccion__navegacion { margin-top: var(--espacio-7); }
@media (max-width: 620px) {
  .hd-historial-produccion__resumen { flex-wrap: wrap; }
}

/* Los colores semánticos viven en estados y valores, no en datos descriptivos. */
.hd-tabla--datos-neutros tbody td {
  color: var(--hd-texto-fuerte);
  font-weight: 400;
}

.hd-tabla--datos-neutros :is(.hd-valor--positivo, .hd-celda--positiva) { color: var(--hd-ingreso); }
.hd-tabla--datos-neutros :is(.hd-valor--negativo, .hd-celda--negativa) { color: var(--hd-egreso); }
.hd-tabla--datos-neutros :is(.hd-valor--informativo, .hd-celda--advertencia) { color: var(--hd-informativo); }

.hd-enlace-dato {
  color: var(--hd-texto-fuerte);
  font-weight: 400;
  text-decoration: none;
}

.hd-enlace-dato:hover,
.hd-enlace-dato:focus-visible {
  color: var(--hd-azul-900);
  text-decoration: underline;
}

/* Finanzas: resúmenes, históricos y soportes documentales. */
.hd-resumen-financiero {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  flex-wrap: wrap;
  gap: 18px;
}

.hd-resumen-financiero > span {
  min-width: 118px;
  display: grid;
  gap: 4px;
  color: var(--hd-texto-suave);
  font-size: var(--texto-auxiliar);
  text-align: right;
}

.hd-resumen-financiero strong {
  font-size: var(--texto-cuerpo);
  line-height: 1.25;
  white-space: nowrap;
}

.hd-tabla--historicos {
  width: 100%; min-width: 0;
  table-layout: fixed;
}

.hd-tabla--historicos .col-nombre { width: 20%; }
.hd-tabla--historicos .col-descripcion { width: 28%; }
.hd-tabla--historicos .col-fecha { width: 16%; }
.hd-tabla--historicos .col-importe { width: 8%; }
.hd-tabla--historicos .col-acciones { width: 12%; }
.hd-tabla.hd-tabla--historicos :is(th,td) { min-width: 0; white-space: normal; overflow-wrap: anywhere; }
.hd-panel--historicos .hd-listado-adaptable { overflow-x: visible; }
.hd-tabla--historicos .acciones-registro { flex-wrap: wrap; }
.hd-tabla--historicos td > small { display: block; margin-top: 4px; color: var(--hd-texto-suave); }

.hd-soportes-formulario {
  display: grid;
  grid-template-columns: minmax(180px, .8fr) minmax(240px, 1.2fr) minmax(250px, 1.2fr) auto;
  align-items: end;
  gap: 14px;
  padding: 18px;
}

.hd-soportes-resumen {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  padding: 14px 18px;
  border-top: 1px solid var(--hd-borde);
  color: var(--hd-texto-suave);
  font-size: var(--texto-auxiliar);
}

.hd-soportes-resumen strong { color: var(--hd-texto-fuerte); }

/* Un único contenedor, encabezado y pie para modales y confirmaciones. */
:where(dialog.popup-cuenta) { width: min(720px, calc(100vw - 32px)); }
dialog.dialogo-sistema,
dialog.popup-cuenta,
dialog.popup-anulacion,
dialog.popup-confirmacion {
  padding: 0;
  overflow: auto;
  max-width: calc(100vw - 32px);
  max-height: calc(100vh - 32px);
  max-height: calc(100dvh - 32px);
  box-sizing: border-box;
  border: 1px solid var(--color-borde-panel);
  border-radius: var(--radio-panel);
  color: var(--color-texto);
  background: var(--color-superficie);
  box-shadow: var(--sombra-elevada);
}
/* Editores amplios: una sola medida, sin límites diferentes en píxeles. */
dialog:is(.hd-dialogo--amplio,.hd-personalizador,.hd-unidades-ventana,.popup-cuenta:has([data-editor-detalle-comercial])) {
  width: var(--hd-ancho-dialogo-amplio);
  max-width: var(--hd-ancho-dialogo-amplio);
  min-width: 0;
}
dialog.dialogo-sistema::backdrop,
dialog.popup-cuenta::backdrop,
dialog.popup-anulacion::backdrop,
dialog.popup-confirmacion::backdrop,
dialog.dialogo-mover-item::backdrop {
  background: var(--color-velo-dialogo);
  backdrop-filter: blur(4px);
}

:is(.dialogo-sistema,.popup-cuenta,.popup-anulacion,.popup-confirmacion) > :is(form,section) > header,
.popup-personalizar-contenido > header {
  --color-relieve: var(--color-marca-azul-oscuro);
  min-height: var(--alto-encabezado-panel);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--espacio-7);
  padding: var(--espacio-7) var(--espacio-9);
  color: var(--color-texto-inverso);
  border-bottom: 1px solid var(--relieve-borde);
  background: var(--relieve-fondo);
  box-shadow: var(--sombra-relieve-encabezado);
}
:is(.dialogo-sistema,.popup-cuenta,.popup-anulacion,.popup-confirmacion) h2,
.popup-personalizar-contenido h2 {
  margin: 0;
  color: inherit;
  font-size: var(--texto-titulo);
}
:is(.dialogo-sistema,.popup-cuenta,.popup-anulacion,.popup-confirmacion) .sobrelinea,
.popup-personalizar-contenido .sobrelinea {
  margin: 0 0 2px;
  color: var(--color-texto-inverso-suave);
}
:is(.dialogo-sistema,.popup-cuenta,.popup-anulacion,.popup-confirmacion) > :is(form,section) > footer,
.popup-personalizar-contenido > footer {
  min-height: 72px;
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: var(--separacion-acciones);
  flex-wrap: wrap;
  padding: var(--espacio-7) var(--espacio-9);
  border-top: 1px solid var(--color-borde);
  background: var(--color-superficie);
}
.cerrar-popup {
  width: var(--tamano-icono-accion);
  height: var(--tamano-icono-accion);
  min-width: var(--tamano-icono-accion);
  display: grid;
  place-items: center;
  padding: 0;
  border: 1px solid rgba(255,255,255,.28);
  border-radius: var(--radio-control);
  color: #fff;
  background: rgba(255,255,255,.12);
  cursor: pointer;
  flex-shrink: 0;
  font-size: var(--texto-titulo);
}


:is(.dialogo-sistema,.popup-cuenta,.popup-anulacion,.popup-confirmacion) > :is(form,section) { min-width: 0; margin: 0; }
:is(.dialogo-sistema,.popup-cuenta,.popup-anulacion,.popup-confirmacion) > :is(form,section) > header > div { min-width: 0; overflow-wrap: anywhere; }
:is(.popup-confirmacion-contenido,.popup-anulacion-contenido) { padding: var(--espacio-9); overflow-wrap: anywhere; }
.cerrar-popup:focus-visible { outline: 2px solid var(--color-texto-inverso); outline-offset: 2px; }
@media (max-width: 680px) {
  :is(.dialogo-sistema,.popup-cuenta,.popup-anulacion,.popup-confirmacion) > :is(form,section) > footer,
  .popup-personalizar-contenido > footer { align-items: stretch; flex-direction: column; }
  :is(.dialogo-sistema,.popup-cuenta,.popup-anulacion,.popup-confirmacion) > :is(form,section) > footer .boton,
  .popup-personalizar-contenido > footer .boton { width: 100%; white-space: normal; }
}

.hd-dialogo > form > footer.hd-acciones {
  gap: var(--separacion-acciones);
  justify-content: flex-end;
}
.hd-dialogo .acciones-popup-cuenta { min-width: 0; max-width: 100%; flex-wrap: wrap; }
@media (max-width: 860px) {
  .hd-dialogo > form > footer.hd-acciones { align-items: stretch; flex-direction: column; flex-wrap: nowrap; }
}

/* Inicio y pantallas informativas del núcleo. */
.hd-modulo-estado {
  width: min(760px, 100%);
}

.hd-modulo-estado .hd-panel__contenido {
  min-height: 210px;
  display: grid;
  align-content: center;
  justify-items: start;
  gap: 12px;
  padding: 28px;
}

.hd-modulo-estado .hd-panel__contenido h2 {
  margin: 0;
  color: var(--hd-texto-fuerte);
  font-size: var(--texto-titulo);
  line-height: 1.4;
}

.hd-modulo-estado .hd-panel__contenido p {
  margin: 0;
  color: var(--hd-texto-suave);
  line-height: 1.65;
}

.hd-modulo-estado .hd-acciones {
  justify-content: flex-start;
  margin-top: 4px;
}

/* Perfil: ficha personal y fotografía. */
.hd-perfil {
  width: min(760px, 100%);
}

.hd-perfil__editor {
  display: grid;
  grid-template-columns: auto minmax(180px, 1fr);
  align-items: center;
  gap: 18px 22px;
  padding: 24px;
}

.hd-perfil__avatar {
  width: 112px;
  height: 112px;
  grid-row: span 3;
  display: grid;
  place-items: center;
  overflow: hidden;
  border: 4px solid var(--hd-superficie);
  border-radius: 50%;
  color: var(--hd-azul-900);
  background: var(--hd-azul-100);
  box-shadow: 0 0 0 1px var(--hd-borde), var(--hd-sombra-panel);
  font-size: var(--texto-destacado);
  font-weight: 700;
}

.hd-perfil__avatar img {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
  object-position: 50% 50%;
}

.hd-perfil__datos {
  min-width: 0;
  display: grid;
  justify-items: start;
  gap: 5px;
}

.hd-perfil__datos strong {
  color: var(--hd-texto-fuerte);
  font-size: var(--texto-titulo);
}

.hd-perfil__datos small {
  color: var(--hd-texto-suave);
  font-size: var(--texto-auxiliar);
}

.hd-perfil__acciones {
  justify-content: flex-start;
}

.hd-perfil__quitar {
  margin: 0;
}

.hd-cobertura {
  width: var(--tamano-svg-icono-accion);
  height: var(--tamano-svg-icono-accion);
  display: inline-block;
  flex: 0 0 var(--tamano-svg-icono-accion);
  overflow: hidden;
  border-radius: 50%;
  color: transparent;
  font-size: 0;
  vertical-align: middle;
  background-image: radial-gradient(circle at 32% 25%, rgba(255,255,255,.42), transparent 56%);
  box-shadow: inset 0 1px 1px rgba(255,255,255,.65), inset 0 -2px 2px rgba(0,0,0,.13);
}

.hd-cobertura--si { background-color: var(--hd-ingreso); }
.hd-cobertura--no { background-color: var(--hd-egreso); }
.hd-cobertura--informativa { background-color: var(--hd-informativo); }
.indicador-cobertura-hd {
  width: var(--tamano-svg-icono-accion);
  display: inline-flex;
  flex: 0 0 var(--tamano-svg-icono-accion);
  align-items: center;
  justify-content: center;
}

/* Filtros comerciales: una distribución por tamaño de pantalla. */
.filtros-cotizaciones-sin-caja {
  width: 100%;
  min-width: 0;
  display: grid;
  align-items: stretch;
  gap: var(--espacio-3);
  margin: 0 0 var(--espacio-6);
  padding: 0;
  border: 0;
  overflow: visible;
  background: transparent;
  box-shadow: none;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  grid-auto-flow: row;
  grid-auto-rows: minmax(66px, auto);
}
@media (max-width: 1400px) {
  .filtros-cotizaciones-sin-caja { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}
@media (max-width: 980px) {
  .filtros-cotizaciones-sin-caja { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 680px) {
  .filtros-cotizaciones-sin-caja { grid-template-columns: minmax(0, 1fr); }
}

/* Los listados ajustan sus columnas al espacio disponible. */
.hd-listado-adaptable { container-type: inline-size; min-width: 0; overflow-x: visible; }
.hd-tabla-contenedor.hd-listado-adaptable { overflow-x: visible; }

/* Directorio y equipos conservan el nombre y reúnen los datos relacionados. */
:is(.hd-tabla--directorio,.hd-tabla--equipos) { width: 100%; min-width: 0; table-layout: fixed; }
.hd-tabla--directorio .col-directorio-nombre { width: 28%; }
.hd-tabla--directorio .col-directorio-relacion { width: 12%; }
.hd-tabla--directorio .col-directorio-documento { width: 13%; }
.hd-tabla--directorio .col-directorio-contacto { width: 21%; }
.hd-tabla--directorio .col-directorio-fecha { width: 14%; }
.hd-tabla--directorio .col-directorio-acciones { width: 12%; }
.hd-tabla--equipos .col-equipo-nombre { width: 28%; }
.hd-tabla--equipos .col-equipo-categoria { width: 15%; }
.hd-tabla--equipos .col-equipo-ubicacion { width: 23%; }
.hd-tabla--equipos .col-equipo-estado { width: 12%; }
.hd-tabla--equipos .col-equipo-fechas { width: 14%; }
.hd-tabla--equipos .col-equipo-acciones { width: 8%; }
:is(.hd-tabla--directorio,.hd-tabla--equipos) :is(th,td) { min-width: 0; padding-inline: var(--espacio-3); white-space: normal; overflow-wrap: anywhere; }
:is(.hd-tabla--directorio,.hd-tabla--catalogo,.hd-tabla--equipos) .acciones-registro { min-width: 0; flex-wrap: wrap; }
:is(.hd-tabla--directorio,.hd-tabla--catalogo,.hd-tabla--equipos) .hd-estado { min-width: 0; max-width: 100%; white-space: normal; }
:is(.hd-tabla--directorio,.hd-tabla--catalogo,.hd-tabla--equipos) thead th.tabla-accion { min-width: 0; }
.hd-fecha-equipo { display: block; }
.hd-fecha-equipo + .hd-fecha-equipo { margin-top: var(--espacio-3); }
.hd-tabla--produccion-lista { width: 100%; min-width: 0; table-layout: fixed; }
.hd-tabla--produccion-lista .col-produccion-ficha { width: 8%; }
.hd-tabla--produccion-lista .col-produccion-cliente { width: 15%; }
.hd-tabla--produccion-lista .col-produccion-trabajo { width: 26%; }
.hd-tabla--produccion-lista .col-produccion-responsable { width: 13%; }
.hd-tabla--produccion-lista .col-produccion-entrega { width: 11%; }
.hd-tabla--produccion-lista .col-produccion-avance { width: 13%; }
.hd-tabla--produccion-lista .col-produccion-estado { width: 14%; }
.hd-tabla--produccion-lista :is(th,td) { padding-inline: var(--espacio-3); white-space: normal; }
.hd-tabla--produccion-lista thead th.tabla-accion { min-width: 0; }
.hd-tabla--produccion-lista .hd-estado { max-width: 100%; white-space: normal; }

.tabla-cotizaciones-lista {
  --ancho-acciones-cotizacion: 70px;
  width: 100%;
  min-width: 0;
  table-layout: fixed;
}
.tabla-cotizaciones-lista.acciones-cotizaciones-2 { --ancho-acciones-cotizacion: 112px; }
.tabla-cotizaciones-lista.acciones-cotizaciones-3 { --ancho-acciones-cotizacion: 158px; }
.tabla-cotizaciones-lista col.col-cotizacion-numero { width: 9%; }
.tabla-cotizaciones-lista col.col-cotizacion-cliente { width: 14%; }
.tabla-cotizaciones-lista col.col-cotizacion-referencia { width: auto; }
.tabla-cotizaciones-lista col.col-cotizacion-fecha { width: 11%; }
.tabla-cotizaciones-lista col.col-cotizacion-total { width: 8%; }
.tabla-cotizaciones-lista col.col-cotizacion-estado { width: var(--ancho-estado-cotizacion); }
.tabla-cotizaciones-lista col.col-cotizacion-acciones { width: var(--ancho-acciones-cotizacion); }
.tabla-cotizaciones-lista .control-estado-cotizacion {
  width: 100%; min-width: 0; max-width: 100%; height: auto;
  min-height: var(--alto-control); overflow: visible;
}
.tabla-cotizaciones-lista .formulario-estado-cotizacion { width: 100%; min-width: 0; }
.tabla-cotizaciones-lista :is(th,td) { padding-inline: var(--espacio-3); }
.tabla-cotizaciones-lista :is(th,td).tabla-accion { padding-inline: var(--espacio-3); }
.tabla-cotizaciones-lista .contenido-control-estado { overflow: visible; }
.tabla-cotizaciones-lista .acciones-registro { flex-wrap: wrap; }

/* Si faltan columnas legibles, cada registro pasa a una tarjeta completa. */
@container (max-width: 1100px) {
  .hd-listado-adaptable > .hd-tabla { display: block; min-width: 0; table-layout: auto; }
  .hd-listado-adaptable > .hd-tabla :is(colgroup,thead) { display: none; }
  .hd-listado-adaptable > .hd-tabla tbody { display: block; }
  .hd-listado-adaptable > .hd-tabla tbody tr {
    display: grid; grid-template-columns: repeat(2,minmax(0,1fr));
    gap: var(--espacio-5); padding: var(--espacio-6);
  }
  .hd-listado-adaptable > .hd-tabla tbody :is(td,th) {
    display: block; width: auto; min-width: 0; height: auto; min-height: 0;
    padding: 0; border: 0; white-space: normal; text-align: left;
  }
  .hd-listado-adaptable > .hd-tabla tbody :is(td,th)::before {
    content: attr(data-etiqueta); display: block; margin-bottom: var(--espacio-2);
    color: var(--hd-texto-suave); font-size: var(--texto-auxiliar); font-weight: var(--peso-seminegrita);
  }
  .hd-listado-adaptable > .hd-tabla tbody :is([data-etiqueta="Referencia"],[data-etiqueta="Trabajo"],[data-etiqueta="Descripción"],[data-etiqueta="Nota"],[data-etiqueta="Acciones"],[colspan]) { grid-column: 1 / -1; }
  .hd-listado-adaptable > .hd-tabla tbody [colspan]::before { display: none; }
  .hd-listado-adaptable > :is(.hd-tabla--directorio,.hd-tabla--equipos) [data-etiqueta="Nombre"],
  .hd-listado-adaptable > .hd-tabla--catalogo :is([data-etiqueta="Producto o servicio"],[data-etiqueta="Unidad de venta"]) { grid-column: 1 / -1; }
  .hd-listado-adaptable > .hd-tabla--historial-produccion tbody [data-etiqueta="Campo"] { grid-column: 1 / -1; }
  .hd-listado-adaptable > .hd-tabla .acciones-registro { justify-content: flex-start; }
  .hd-listado-adaptable > .hd-tabla :is(input,select) { width: 100%; min-width: 0; max-width: 100%; }
}
@container (max-width: 460px) {
  .hd-listado-adaptable > .hd-tabla tbody tr { grid-template-columns: minmax(0,1fr); }
}

/* Tabla y listado financiero */
.hd-tabla-contenedor {
  width: 100%;
  overflow-x: auto;
  background: var(--hd-superficie);
}

.hd-tabla {
  width: 100%;
  border-collapse: collapse;
  color: var(--hd-texto);
  background: var(--hd-superficie);
}

/* Texto completo: permite cortar cadenas sin espacios sin ampliar columnas. */
.hd-tabla tbody :is(td, th) { overflow-wrap: anywhere; word-break: normal; }
.hd-tabla tbody td:is([data-etiqueta="Descripción"], [data-etiqueta="Referencia"], .hd-celda-texto) {
  white-space: normal; overflow-wrap: anywhere; vertical-align: middle;
}
.hd-tabla tbody td:is([data-etiqueta="Descripción"], [data-etiqueta="Referencia"], .hd-celda-texto) > :is(span, a, strong, small) {
  max-width: 100%; white-space: normal; overflow-wrap: anywhere;
}

/* Las tablas extensas conservan columnas legibles y se desplazan en pantallas estrechas. */
.hd-tabla--inventario {
  min-width: var(--ancho-tabla-inventario);
  table-layout: fixed;
}
.hd-tabla--inventario :is(th, td) { overflow-wrap: anywhere; }
.hd-tabla--inventario :is(th, td):nth-child(1) {
  width: var(--col-inventario-nombre);
}
.hd-tabla--inventario :is(th, td):nth-child(2) {
  width: var(--col-inventario-categoria);
}
.hd-tabla--inventario :is(th, td):nth-child(3) {
  width: var(--col-inventario-ubicacion);
}
.hd-tabla--inventario :is(th, td):nth-child(4) {
  width: var(--col-inventario-estado);
}
.hd-tabla--inventario :is(th, td):nth-child(5), .hd-tabla--inventario :is(th, td):nth-child(6) {
  width: var(--col-inventario-fecha);
}
.hd-tabla--inventario :is(th, td):nth-child(7) {
  width: var(--col-inventario-acciones);
  text-align: center;
}

.hd-tabla thead th,
.hd-listado__columnas {
  min-height: 42px;
  padding: var(--relleno-cabecera-y) var(--relleno-celda-x);
  border: 0;
  color: var(--color-texto-inverso);
  background: var(--hd-azul-700);
  font-size: var(--texto-auxiliar);
  font-weight: 700;
  line-height: 1.35;
  text-transform: uppercase;
}

.hd-tabla thead th { height: var(--alto-cabecera-tabla); text-align: center; letter-spacing: .035em; }

/* Reservar el ancho de Acciones sin partir la palabra letra por letra. */
.hd-tabla thead th.tabla-accion {
  width: auto;
  min-width: 110px;
  white-space: nowrap;
  overflow-wrap: normal;
  word-break: normal;
}

.hd-tabla tbody :where(td, th[scope="row"]) {
  height: var(--alto-fila-tabla);
  min-height: 52px;
  text-align: left;
  vertical-align: middle;
  border-left: 0;
  padding: var(--relleno-celda-y) var(--relleno-celda-x);
  border-bottom: 0;
  font-size: var(--texto-cuerpo);
  line-height: 1.5;
}

.hd-tabla tbody tr:nth-child(odd of :not([hidden]):not([data-no-ordenar]):not(.hd-fila--informativo):not(:has(td[colspan]))):not(.hd-fila--ingreso):not(.hd-fila--egreso):not(.hd-fila--informativo) {
  background: var(--hd-superficie);
}

.hd-tabla tbody tr:nth-child(even of :not([hidden]):not([data-no-ordenar]):not(.hd-fila--informativo):not(:has(td[colspan]))):not(.hd-fila--ingreso):not(.hd-fila--egreso):not(.hd-fila--informativo) {
  background: var(--hd-cebra);
}

.hd-tabla tbody tr:not(.hd-fila--ingreso):not(.hd-fila--egreso):not(.hd-fila--informativo):hover {
  background: var(--hd-azul-100);
}

/* La alineación de cada dato prevalece sobre el valor general de las celdas. */
.hd-tabla .celda-dinero { text-align: right; white-space: nowrap; font-variant-numeric: tabular-nums; }
.hd-tabla .tabla-accion { text-align: right; }

.hd-listado__columnas {
  display: grid;
  align-items: center;
}

.hd-listado__fila { border-bottom: 0; }

/* La fecha expresa la naturaleza; el círculo expresa la cobertura. */
.movimiento-proximo-ingreso time { color: var(--hd-ingreso); }
.movimiento-proximo-egreso time,
.movimiento-proximo-informativo time { color: var(--hd-informativo); }

/* Totales y subtotales */
.hd-total {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 12px;
  color: var(--color-texto-inverso);
  text-align: right;
}

.hd-total span {
  color: var(--color-texto-inverso-suave);
  font-size: var(--texto-auxiliar);
  font-weight: 700;
}

.hd-total strong {
  color: var(--color-texto-inverso);
  font-size: var(--texto-destacado);
  line-height: 1.15;
  white-space: nowrap;
}

/* Acordeón definitivo */
.hd-acordeon {
  min-width: 0;
  overflow: hidden;
  border: 1px solid var(--hd-borde);
  border-radius: var(--hd-radio-panel);
  background: var(--hd-superficie);
  box-shadow: var(--hd-sombra-panel);
}

.hd-acordeon + .hd-acordeon { margin-top: 16px; }
.hd-acordeon > summary { cursor: pointer; list-style: none; }
.hd-acordeon > summary::-webkit-details-marker { display: none; }
.hd-acordeon > summary:focus-visible { outline: 3px solid rgba(25, 160, 220, .25); outline-offset: -3px; }

.hd-acordeon__indicador {
  transition: transform .18s ease;
}

.hd-acordeon[open] > summary .hd-acordeon__indicador { transform: rotate(180deg); }

/* Cotizaciones: una única composición para constructor, grupos y totales. */
.hd-cotizador {
  display: grid;
  gap: var(--espacio-9);
}

.hd-cotizador .hd-panel,
.hd-cotizador .hd-indicadores {
  margin-block: 0;
}

.hd-cotizador .rejilla-cliente-historial-cotizacion {
  grid-template-columns: minmax(0,.8fr) minmax(0,1.2fr);
}
@media (max-width: 980px) {
  .hd-cotizador .rejilla-cliente-historial-cotizacion {
    grid-template-columns: minmax(0,1fr);
  }
}

.hd-cotizador-tabla__contenedor {
  border-radius: 0 0 var(--hd-radio-panel) var(--hd-radio-panel);
}

.hd-cotizador-tabla {
  width: 100%;
  min-width: var(--ancho-tabla-cotizador);
  table-layout: fixed;
}

.hd-cotizador-tabla .col-item {
  width: var(--ancho-item-cotizacion);
}
.hd-cotizador-tabla .col-descripcion { width: auto; }
.hd-cotizador-tabla .columna-medida {
  width: var(--ancho-medidas-cotizacion);
}
.hd-cotizador-tabla .col-valor { width: var(--ancho-valor-cotizacion); }
.hd-cotizador-tabla .col-acciones {
  width: var(--ancho-acciones-cotizador);
}
.hd-cotizador-tabla :is(.estado-costo-item,[data-costo-fijo]) { white-space: nowrap; }
.hd-cotizador-tabla :is([data-unidad], [data-cantidad]) { text-align: center; }

.hd-cotizador-tabla thead :is(th,th.celda-dinero) {
  padding: var(--relleno-cabecera-y) var(--espacio-2);
  color: var(--color-texto-inverso);
  background: var(--hd-azul-700);
  text-align: center;
  white-space: normal;
  word-break: keep-all;
  overflow-wrap: normal;
  hyphens: none;
}

.hd-cotizador-tabla thead :is(.tabla-ordenable,.celda-dinero .tabla-ordenable) { justify-content: center; }
.hd-cotizador-tabla thead th.tabla-accion { text-align: right; }

.hd-cotizador-tabla tbody td {
  padding: var(--relleno-celda-y) var(--espacio-2);
  vertical-align: middle;
}

:is(.hd-cotizador-tabla,.hd-cuentas-comerciales) .fila-grupo-cotizacion > td {
  border-top: 2px solid var(--color-marca-azul-oscuro);
  border-bottom: 1px solid var(--color-borde-panel);
  color: var(--hd-azul-900);
  background: var(--hd-azul-100);
  vertical-align: middle;
}

.hd-cotizador-tabla .fila-subtotal-grupo-cotizacion > td {
  padding: 0;
  border-right: 2px solid var(--color-marca-azul-oscuro);
  border-bottom: 2px solid var(--color-marca-azul-oscuro);
  border-left: 2px solid var(--color-marca-azul-oscuro);
  border-radius: 0 0 var(--radio-panel) var(--radio-panel);
}

.confirmacion-costo-cero-item {
  min-width: 0; display: flex; align-items: center; gap: var(--espacio-2);
  margin-top: var(--espacio-2); color: var(--color-texto); font-size: var(--texto-auxiliar);
  font-weight: var(--peso-seminegrita); line-height: var(--interlineado-base); white-space: nowrap;
}
.hd-cotizador-tabla .confirmacion-costo-cero-item input[type="checkbox"] {
  flex: 0 0 var(--tamano-casilla); width: var(--tamano-casilla); min-width: var(--tamano-casilla);
  height: var(--tamano-casilla); min-height: var(--tamano-casilla); margin: 0; padding: 0;
  accent-color: var(--color-marca-azul);
}
.confirmacion-costo-cero-item[hidden] { display: none; }
.hd-cotizador-tabla tbody :is(.columna-medida,[data-etiqueta="Cantidad"],.celda-costo-unitario) { padding-inline: var(--espacio-1); }

/* Campos de variantes: excepción compacta del control compartido. */
.contenido-grupo-cotizacion input { font-weight: var(--peso-seminegrita); }
.hd-cotizador-tabla input[readonly] { color: var(--color-texto-fuerte); background: var(--color-superficie-secundaria); font-weight: var(--peso-seminegrita); }
.hd-cotizador-tabla :is([data-ancho],[data-alto],[data-cantidad],[data-costo-personalizado]) { padding-inline: var(--espacio-1); text-indent: 0; }
.hd-cotizador-tabla [data-moneda] { text-align: right; font-variant-numeric: tabular-nums; }
.hd-cotizador-tabla .campo-medida-variante {
  display: none; min-height: var(--alto-control-variante); margin-top: var(--espacio-3);
  padding-block: var(--espacio-2); color: var(--color-texto-suave); font-size: var(--texto-auxiliar);
}
.fila-variante-cotizacion .campo-medida-variante { display: block; }
/* El orden real de los ítems suministra la cebra, incluso después de moverlos. */
.hd-cotizador-tabla tr[data-cebra="blanco"] > td { background: var(--color-superficie); }
.hd-cotizador-tabla tr[data-cebra="azul"] > td { background: var(--color-fila-cebra); }
.hd-cotizador-tabla .fila-grupo-cotizacion > td:first-child { border-left: 2px solid var(--color-marca-azul-oscuro); border-top-left-radius: var(--radio-panel); }
.hd-cotizador-tabla .fila-grupo-cotizacion > td:last-child { border-right: 2px solid var(--color-marca-azul-oscuro); border-top-right-radius: var(--radio-panel); }
.hd-cotizador-tabla .fila-variante-cotizacion > td:first-child { border-left: 2px solid var(--color-marca-azul-oscuro); }
.hd-cotizador-tabla .fila-variante-cotizacion > td:last-child { border-right: 2px solid var(--color-marca-azul-oscuro); }

.hd-resumen-cotizacion {
  display: grid;
  grid-template-columns: .8fr .8fr 1.45fr repeat(4, 1fr);
  align-items: stretch;
  color: var(--color-texto-inverso);
  background: var(--color-marca-azul-oscuro);
  --color-importe-positivo: var(--color-exito-inverso);
  --color-importe-negativo: var(--color-peligro-inverso);
  --color-importe-advertencia: var(--color-texto-inverso);
}

.hd-resumen-cotizacion > span {
  min-width: 0;
  min-height: 72px;
  display: grid;
  align-content: center;
  justify-items: end;
  gap: var(--espacio-1);
  padding: var(--espacio-4) var(--espacio-6);
  border-right: 1px solid color-mix(in srgb, var(--color-texto-inverso) 22%, transparent);
  text-align: right;
}

.hd-resumen-cotizacion > span:last-child { border-right: 0; }

.hd-resumen-cotizacion small {
  color: var(--color-texto-inverso-suave);
  font-size: var(--texto-auxiliar);
  font-weight: var(--peso-negrita);
  line-height: var(--interlineado-compacto);
  text-transform: uppercase;
}

.hd-resumen-cotizacion strong {
  color: var(--color-texto-inverso);
  font-size: var(--texto-cuerpo);
  line-height: 1.3;
  overflow-wrap: anywhere;
}

.hd-resumen-cotizacion .resumen-total-costo strong, .hd-resumen-cotizacion .resumen-total-gastos strong {
  color: var(--color-importe-negativo);
}
.hd-resumen-cotizacion .resumen-total-ganancia strong {
  color: var(--color-importe-positivo);
}
.hd-resumen-cotizacion .resumen-total-venta strong { font-size: var(--texto-titulo); }

/* Revisión gráfica dentro de acciones financieras */
.acciones-registro .accion-revision-diseno {
  position: relative;
  flex: 0 0 var(--hd-alto-accion);
  width: var(--hd-alto-accion);
  min-width: var(--hd-alto-accion);
  color: var(--color-texto-inverso);
}

.accion-revision-diseno .revision-cuenta-marca {
  position: absolute;
  right: -2px;
  bottom: -2px;
  width: 16px;
  height: 16px;
  display: grid;
  place-items: center;
  border: 2px solid var(--hd-superficie);
  border-radius: 50%;
  color: var(--color-texto-inverso);
  background: var(--hd-azul-900);
  font: 700 11px/1 Poppins, sans-serif;
}

.accion-revision-diseno.revision-cuenta-sin_propuesta .revision-cuenta-marca {
  background: var(--hd-texto-suave);
}

.accion-revision-diseno.revision-cuenta-ajustes .revision-cuenta-marca {
  background: var(--hd-informativo);
}

.accion-revision-diseno.revision-cuenta-aprobado .revision-cuenta-marca {
  background: var(--hd-ingreso);
}

.accion-revision-diseno:focus-visible {
  outline: 3px solid rgba(25, 160, 220, .28);
  outline-offset: 3px;
}

/* Responsive común */
@media (max-width: 1380px) {
  .hd-indicadores { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .hd-indicadores--cinco,
  .hd-indicadores--cuatro { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .hd-formulario__rejilla--cuatro { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .hd-datos-clave { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .hd-resumen-cotizacion { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}

@media (max-width: 900px) {
  .hd-encabezado-pagina {
    min-height: 0;
    align-items: stretch;
    flex-direction: column;
  }

  .hd-encabezado-pagina .hd-acciones { width: 100%; align-self: stretch; justify-content: flex-start; }
  .hd-encabezado-pagina .hd-acciones .boton { flex: 1 1 auto; }
  .hd-panel__encabezado { align-items: flex-start; flex-direction: column; }
  .hd-panel__encabezado .hd-acciones { width: 100%; justify-content: flex-start; }
  .hd-indicadores { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .hd-indicadores--tres { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .hd-filtros--directorio { grid-template-columns: 1fr 1fr; }
  .hd-filtros--directorio .campo-busqueda { grid-column: 1 / -1; }
  .hd-filtros--dos { grid-template-columns: 1fr; }
  .hd-filtros--dos .campo-busqueda { grid-column: auto; }
  .hd-formulario__rejilla--tres { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .hd-detalle--dos { grid-template-columns: 1fr; }
  .hd-traslado { grid-template-columns: 1fr; }
  .hd-soportes-formulario { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .hd-soportes-resumen { align-items: flex-start; flex-direction: column; }
  .hd-configuracion { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .hd-configuracion-maestro-detalle { grid-template-columns: 1fr; }
  .hd-resumen-cotizacion { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 620px) {
  .hd-indicadores { grid-template-columns: 1fr; }
  .hd-indicadores--cuatro,
  .hd-indicadores--cinco,
  .hd-indicadores--tres,
  .hd-filtros--directorio,
  .hd-filtros--dos,
  .hd-formulario__rejilla,
  .hd-formulario__rejilla--tres,
  .hd-formulario__rejilla--cuatro,
  .hd-datos-clave,
  .hd-configuracion,
  .hd-resumen-cotizacion { grid-template-columns: 1fr; }
  .hd-filtros--directorio .campo-busqueda,
  .hd-filtros--dos .campo-busqueda,
  .hd-campo--ancho,
  .hd-formulario__rejilla .campo-ancho { grid-column: auto; }
  .hd-soportes-formulario { grid-template-columns: 1fr; }
  .hd-resumen-financiero { width: 100%; justify-content: space-between; }
  .hd-indicador { min-height: 142px; }
  .hd-panel__encabezado { padding: 14px; }
  .hd-formulario__rejilla,
  .hd-datos-clave,
  .hd-traslado { padding: 16px; }
  .hd-datos > div { grid-template-columns: 1fr; gap: 4px; }
  .hd-datos dd { text-align: left; }
  .hd-perfil__editor { grid-template-columns: 1fr; justify-items: start; padding: 18px; }
  .hd-perfil__avatar { grid-row: auto; }
  .hd-perfil__acciones { width: 100%; }
  .hd-acciones { justify-content: stretch; }
  .hd-acciones .boton:not(.boton-solo-icono) { flex: 1 1 100%; justify-content: center; }
}

/* Cotizaciones enviadas: doce columnas reales, sin hueco de Acciones. */
.cotizador-solo-lectura .hd-cotizador-tabla {
  min-width: calc(var(--ancho-tabla-cotizador) - var(--ancho-acciones-cotizador));
}
.cotizador-solo-lectura .hd-cotizador-tabla .col-acciones { width: 0; visibility: collapse; }
.cotizador-solo-lectura .hd-cotizador-tabla .asa-reordenar-item,
.cotizador-solo-lectura .hd-cotizador-tabla .confirmacion-costo-cero-item { display: none; }
.cotizador-solo-lectura .hd-cotizador-tabla :is(input,textarea):disabled { border-color: transparent; background: transparent; box-shadow: none; }
.cotizador-solo-lectura .hd-cotizador-tabla :is(input,textarea):disabled::placeholder { color: transparent; }

.hd-formulario label.control-factura-financiera { display: flex; align-items: center; gap: 10px; min-height: 40px; font-weight: var(--peso-seminegrita); }
.hd-formulario label.control-factura-financiera[hidden] { display: none; }
.control-factura-financiera input { width: 18px; height: 18px; min-height: 18px; margin: 0; accent-color: var(--color-marca-azul); }
.estado-factura-cuenta { display: block; margin-top: 4px; font-weight: var(--peso-seminegrita); }
.estado-factura-pendiente { color: var(--alerta-advertencia-texto); }
.estado-factura-emitida { color: var(--color-exito); }
.accion-factura-pendiente { color: var(--color-marca-azul-oscuro); }
.accion-factura-emitida { color: var(--color-exito); }

.fila-valores-financieros {
  grid-column: 1 / -1;
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: var(--espacio-5);
  align-items: center;
}
.fila-valores-financieros > label,
.fila-valores-financieros > label[class] { grid-column: auto; min-width: 0; }
.fila-valores-financieros > .control-factura-financiera { justify-content: center; align-self: end; min-height: 42px; }
.fila-valores-financieros:has(> .control-factura-financiera[hidden]) { grid-template-columns: repeat(3,minmax(0,1fr)); }
/* Columnas por función, sin depender de la posición de cada encabezado. */
.modulo-finanzas {
  --hd-finanzas-dias: 104px;
  --hd-finanzas-nombre: 190px;
  --hd-finanzas-medidas: 144px;
  --hd-finanzas-cantidad: 130px;
  --hd-finanzas-fecha: 200px;
  --hd-finanzas-importe: 112px;
  --hd-finanzas-numero-acciones: 4;
}
.modulo-finanzas :is(.tabla-finanzas-general,.tabla-cuentas-cliente,.tabla-aplicaciones-abono) {
  --hd-finanzas-acciones: calc(var(--hd-finanzas-numero-acciones) * var(--tamano-icono-accion) + (var(--hd-finanzas-numero-acciones) - 1) * var(--separacion-acciones) + 28px);
}
.modulo-finanzas :is(.tabla-finanzas-general,.tabla-cuentas-cliente) { width: 100%; min-width: 1520px; table-layout: fixed; }
/* La fila con más acciones determina el ancho de la columna de toda la tabla. */
.modulo-finanzas :is(.tabla-finanzas-general,.tabla-cuentas-cliente):has(tbody .acciones-registro > :nth-child(5 of :not([hidden]))) { --hd-finanzas-numero-acciones: 5; }
.modulo-finanzas :is(.tabla-finanzas-general,.tabla-cuentas-cliente):has(tbody .acciones-registro > :nth-child(6 of :not([hidden]))) { --hd-finanzas-numero-acciones: 6; }
.modulo-finanzas :is(.tabla-finanzas-general,.tabla-cuentas-cliente,.tabla-movimientos-mensuales,.tabla-aplicaciones-abono,.tabla-correcciones-abono) .col-dias { width: var(--hd-finanzas-dias); }
.modulo-finanzas :is(.tabla-finanzas-general,.tabla-cuentas-cliente,.tabla-movimientos-mensuales,.tabla-aplicaciones-abono,.tabla-correcciones-abono) .col-nombre { width: var(--hd-finanzas-nombre); }
.modulo-finanzas :is(.tabla-finanzas-general,.tabla-cuentas-cliente,.tabla-movimientos-mensuales,.tabla-aplicaciones-abono,.tabla-correcciones-abono) .col-descripcion { width: auto; }
.modulo-finanzas :is(.tabla-finanzas-general,.tabla-cuentas-cliente,.tabla-movimientos-mensuales,.tabla-aplicaciones-abono,.tabla-correcciones-abono) .col-medidas { width: var(--hd-finanzas-medidas); }
.modulo-finanzas :is(.tabla-finanzas-general,.tabla-cuentas-cliente,.tabla-movimientos-mensuales,.tabla-aplicaciones-abono,.tabla-correcciones-abono) .col-cantidad { width: var(--hd-finanzas-cantidad); }
.modulo-finanzas :is(.tabla-finanzas-general,.tabla-cuentas-cliente,.tabla-movimientos-mensuales,.tabla-aplicaciones-abono,.tabla-correcciones-abono) .col-fecha { width: var(--hd-finanzas-fecha); }
.modulo-finanzas :is(.tabla-finanzas-general,.tabla-cuentas-cliente,.tabla-movimientos-mensuales,.tabla-aplicaciones-abono,.tabla-correcciones-abono) .col-importe { width: var(--hd-finanzas-importe); }
.modulo-finanzas :is(.tabla-finanzas-general,.tabla-cuentas-cliente,.tabla-movimientos-mensuales,.tabla-aplicaciones-abono,.tabla-correcciones-abono) .col-acciones { width: var(--hd-finanzas-acciones); }
.modulo-finanzas :is(.tabla-finanzas-general,.tabla-cuentas-cliente) .celda-dinero { padding-inline: 8px; white-space: nowrap; }
.modulo-finanzas :is(.tabla-finanzas-general,.tabla-cuentas-cliente) td[data-etiqueta="Días"] { padding-inline: 8px; text-align: center; }
.hd-tabla tbody :is(.celda-medidas-comerciales, .celda-cantidad-comercial) { text-align: center; vertical-align: middle; overflow-wrap: anywhere; }
/* Solicitud: la antigüedad acompaña a la fecha en todas las cuentas. */
.hd-listado-adaptable > .hd-tabla tbody tr[hidden] { display: none; }
.hd-solicitud-resumen { display: flex; flex-wrap: wrap; align-items: baseline; gap: var(--espacio-2); min-width: 0; max-width: 100%; }
.hd-solicitud-resumen .antiguedad-solicitud { min-width: 0; min-height: 0; max-width: 100%; padding: 0; border: 0; border-radius: 0; background: transparent; font-size: inherit; }
.hd-solicitud-resumen__fecha { min-width: 0; max-width: 100%; overflow-wrap: anywhere; }
/* Cuentas pendientes: se prioriza descripción y se compactan los importes. */
.modulo-finanzas .hd-listado-adaptable:has(> .tabla-finanzas-general) { overflow-x: visible; }
.modulo-finanzas .tabla-finanzas-general { width: 100%; min-width: 0; table-layout: fixed; }
.modulo-finanzas .tabla-finanzas-general .col-fecha { width: 17%; }
.modulo-finanzas .tabla-finanzas-general .col-nombre { width: 14%; }
.modulo-finanzas .tabla-finanzas-general .col-descripcion { width: 25%; }
.modulo-finanzas .tabla-finanzas-general .col-medidas { width: 8%; }
.modulo-finanzas .tabla-finanzas-general .col-cantidad { width: 5%; }
.modulo-finanzas .tabla-finanzas-general .col-importe { width: 7%; }
.modulo-finanzas .tabla-finanzas-general .col-acciones { width: 10%; }
.modulo-finanzas .tabla-finanzas-general :is(th,td) { min-width: 0; padding-inline: var(--espacio-3); white-space: normal; overflow-wrap: anywhere; }
.modulo-finanzas .tabla-finanzas-general .celda-dinero { white-space: normal; overflow-wrap: anywhere; }
.modulo-finanzas .tabla-finanzas-general td.celda-dinero { text-align: right; }
.modulo-finanzas .tabla-finanzas-general .tabla-accion { min-width: 0; text-align: center; }
.modulo-finanzas .tabla-finanzas-general .acciones-registro { min-width: 0; max-width: 100%; flex-wrap: wrap; justify-content: center; }
@container (max-width: 1100px) {
  .modulo-finanzas .tabla-finanzas-general tbody td { padding: 0; }
  .modulo-finanzas .tabla-finanzas-general .tabla-accion { text-align: left; }
  .modulo-finanzas .tabla-finanzas-general .acciones-registro { justify-content: flex-start; }
}
/* Meses: resumen compartido y seis columnas dentro del ancho disponible. */
.modulo-finanzas .movimientos-mensuales-gestor { gap: var(--espacio-7); }
.modulo-finanzas .mes-movimientos-gestor { container-type: inline-size; box-shadow: none; }
.modulo-finanzas .mes-movimientos-gestor + .mes-movimientos-gestor { margin-top: 0; }
.modulo-finanzas .mes-movimientos-gestor > .hd-panel__encabezado { display: grid; grid-template-columns: minmax(0,.65fr) minmax(0,1.5fr); gap: var(--espacio-6); }
.modulo-finanzas .mes-movimientos-gestor > summary:focus-visible { outline: 2px solid var(--hd-azul-700); outline-offset: -3px; }
.modulo-finanzas .hd-mes-movimientos__titulo,
.modulo-finanzas .hd-mes-movimientos__titulo :is(h2,p) { min-width: 0; overflow-wrap: anywhere; }
.modulo-finanzas .indicador-mes-financiero svg { width: var(--tamano-svg-icono-accion); height: var(--tamano-svg-icono-accion); }
.modulo-finanzas .mes-movimientos-gestor > .hd-listado-adaptable { overflow-x: visible; }
.modulo-finanzas .tabla-movimientos-mensuales { width: 100%; table-layout: fixed; min-width: 0; }
.modulo-finanzas .tabla-movimientos-mensuales .col-fecha { width: 13%; }
.modulo-finanzas .tabla-movimientos-mensuales .col-nombre { width: 20%; }
.modulo-finanzas .tabla-movimientos-mensuales .col-descripcion { width: 37%; }
.modulo-finanzas .tabla-movimientos-mensuales .col-cantidad { width: 8%; }
.modulo-finanzas .tabla-movimientos-mensuales .col-importe { width: 14%; }
.modulo-finanzas .tabla-movimientos-mensuales .col-acciones { width: 8%; }
.modulo-finanzas .tabla-movimientos-mensuales :is(th,td) { min-width: 0; padding-inline: var(--espacio-3); white-space: normal; overflow-wrap: anywhere; }
.modulo-finanzas .tabla-movimientos-mensuales .tabla-accion { text-align: center; padding-inline: var(--espacio-3); }
.modulo-finanzas .tabla-movimientos-mensuales .acciones-registro { justify-content: center; flex-wrap: wrap; }
@container (max-width: 1100px) {
  .modulo-finanzas .mes-movimientos-gestor > .hd-panel__encabezado { grid-template-columns: minmax(0,1fr); }
  .mes-movimientos-gestor .tabla-movimientos-mensuales [data-etiqueta="Abono / referencia"] { grid-column: 1 / -1; }
  .modulo-finanzas .tabla-movimientos-mensuales tbody td { padding: 0; }
  .modulo-finanzas .tabla-movimientos-mensuales .tabla-accion { text-align: left; padding: 0; }
  .modulo-finanzas .tabla-movimientos-mensuales .acciones-registro { justify-content: flex-start; }
}
@container (max-width: 620px) {
  .mes-movimientos-gestor .hd-resumen-importes-trabajo { grid-template-columns: minmax(0,1fr); }
  .mes-movimientos-gestor .hd-resumen-importes-trabajo > div { display: grid; grid-template-columns: minmax(0,.7fr) minmax(0,1fr); gap: var(--espacio-3); align-items: center; }
  .mes-movimientos-gestor .hd-resumen-importes-trabajo > div + div { border-left: 0; border-top: 1px solid var(--hd-borde); }
  .mes-movimientos-gestor .hd-resumen-importes-trabajo dd { margin-top: 0; text-align: right; }
}
/* Historial: resumen y acordeones comunes; una fila completa por corrección. */
.hd-historial-abono__contenido { padding: var(--espacio-9); min-width: 0; }
.hd-historial-abono__contenido > [data-abono-detalle] > p { overflow-wrap: anywhere; }
:is(.hd-historial-abono__soportes,.hd-historial-abono__correcciones) { margin-block-start: var(--espacio-7); }
.hd-historial-abono__contenido .hd-acordeon { box-shadow: none; }
.hd-historial-abono__contenido .hd-acordeon > summary { display: flex; flex-wrap: wrap; align-items: center; gap: var(--espacio-4); min-height: 0; color: var(--hd-azul-900); background: var(--hd-superficie); padding: var(--espacio-6) var(--espacio-7); }
.hd-historial-abono__contenido .hd-acordeon > summary h3 { margin: 0; font-size: var(--texto-cuerpo); color: inherit; }
.hd-historial-abono__contenido .hd-acordeon__indicador { margin-left: auto; }
.hd-historial-abono__contenido .hd-acordeon__indicador svg { width: var(--tamano-svg-icono-accion); height: var(--tamano-svg-icono-accion); }
.hd-historial-abono__seccion { padding: var(--espacio-7); border-top: 1px solid var(--hd-borde); min-width: 0; }
.hd-historial-abono__seccion > p, .hd-historial-abono__soportes small { color: var(--hd-texto-suave); font-size: var(--texto-auxiliar); }
.hd-historial-abono__soportes li { margin-block: var(--espacio-4); overflow-wrap: anywhere; }
.hd-historial-abono__soportes small { display: block; }
.modulo-finanzas :is(.tabla-correcciones-abono,.tabla-aplicaciones-abono) { width: 100%; min-width: 0; table-layout: fixed; }
.modulo-finanzas :is(.tabla-correcciones-abono,.tabla-aplicaciones-abono) :is(th,td) { min-width: 0; white-space: normal; overflow-wrap: anywhere; }
.modulo-finanzas .tabla-correcciones-abono .col-fecha { width: 16%; }
.modulo-finanzas .tabla-correcciones-abono .col-descripcion { width: 27%; }
.modulo-finanzas .tabla-correcciones-abono .col-cambios { width: 39%; }
.modulo-finanzas .tabla-correcciones-abono .col-nombre { width: 18%; }
.hd-correccion-campo + .hd-correccion-campo { margin-top: var(--espacio-5); padding-top: var(--espacio-5); border-top: 1px solid var(--hd-borde); }
.hd-correccion-campo .hd-datos { padding: 0; margin-block: var(--espacio-2) 0; }
.hd-correccion-campo .hd-datos > div { grid-template-columns: minmax(0,.45fr) minmax(0,1fr); gap: var(--espacio-3); padding-block: var(--espacio-2); }
.hd-correccion-campo .hd-datos :is(dt,dd) { min-width: 0; white-space: normal; overflow-wrap: anywhere; }

.hd-historial-abono__anulacion { padding-block-start: var(--espacio-7); margin-block-start: var(--espacio-7); border-top: 1px solid var(--color-borde-panel); }
.modulo-finanzas .tabla-aplicaciones-abono .col-fecha { width: 15%; }
.modulo-finanzas .tabla-aplicaciones-abono .col-descripcion { width: 32%; }
.modulo-finanzas .tabla-aplicaciones-abono .col-medidas { width: 12%; }
.modulo-finanzas .tabla-aplicaciones-abono .col-cantidad { width: 8%; }
.modulo-finanzas .tabla-aplicaciones-abono .col-importe { width: 12%; }
.modulo-finanzas .tabla-aplicaciones-abono .col-estado { width: 11%; }
.modulo-finanzas .tabla-aplicaciones-abono .col-acciones { width: 10%; }
.modulo-finanzas .hd-historial-abono__contenido .hd-listado-adaptable { overflow-x: visible; }
.tabla-aplicaciones-abono .hd-acciones { flex-wrap: wrap; }
.tabla-aplicaciones-abono .boton { max-width: 100%; white-space: normal; overflow-wrap: anywhere; }
[data-importe-resumen="abono-estado"] { font-size: var(--texto-cuerpo); }
.hd-tabla .hd-celda-centrada { text-align: center; vertical-align: middle; }
.tabla-aplicaciones-abono :is(.celda-medidas-comerciales,.celda-cantidad-comercial) { white-space: pre-line; }
@container (max-width: 1100px) {
  .hd-listado-adaptable > :is(.tabla-aplicaciones-abono,.tabla-correcciones-abono) :is([data-etiqueta="Descripción / cuenta"],[data-etiqueta="Cuenta / aplicación"],[data-etiqueta="Cambios"]) { grid-column: 1 / -1; }
}
@media (max-width: 620px) {
  .hd-historial-abono__contenido { padding: var(--espacio-5); }
  .hd-historial-abono__seccion { padding: var(--espacio-5); }
}

.hd-detalle-comercial { grid-column: 1 / -1; min-width: 0; }
.hd-detalle-comercial__encabezado { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--espacio-4); }
.hd-detalle-comercial > p { margin-block: var(--espacio-3) var(--espacio-4); color: var(--hd-texto-suave); font-size: var(--texto-auxiliar); }
.hd-tabla-comercial { width: 100%; min-width: 0; table-layout: fixed; }
.hd-tabla-comercial .col-descripcion { width: auto; }
.hd-tabla-comercial .col-unidad { width: 110px; }
.hd-tabla-comercial .col-medidas { width: 206px; }
.hd-tabla-comercial .col-cantidad { width: 110px; }
.hd-tabla-comercial .col-precio { width: 144px; }
.hd-tabla-comercial .col-total { width: 128px; }
.hd-tabla-comercial .col-accion { width: 110px; }
.hd-tabla-comercial :is(th,td) { padding: 10px 6px; vertical-align: middle; }
.hd-tabla-comercial thead th { white-space: nowrap; overflow-wrap: normal; word-break: normal; }
.hd-tabla-comercial input { min-width: 0; width: 100%; box-sizing: border-box; }
.hd-tabla-comercial [data-comercial-unidad], .hd-tabla-comercial [data-comercial-cantidad] { text-align: center; }

/* Búsquedas con lupa: un solo espacio e icono neutro para todos los módulos. */
:is(.campo-busqueda,.campo-busqueda-cotizaciones,.campo-busqueda-cotizaciones-estados):has(> svg) > svg {
  position: absolute;
  top: 50%;
  left: 13px;
  width: 18px;
  height: 18px;
  color: var(--color-texto-suave);
  transform: translateY(-50%);
  pointer-events: none;
}
:is(.hd-filtros,.barra-filtros,.filtros-cotizaciones-sin-caja)
  :is(.campo-busqueda,.campo-busqueda-cotizaciones,.campo-busqueda-cotizaciones-estados):has(> svg)
  > input[type="search"]:not([disabled]):not([readonly]) {
  padding-left: 42px;
}

@media (min-width: 1181px) and (max-width: 1380px) {
  .modulo-finanzas .hd-indicadores--cuatro { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .modulo-finanzas .hd-indicadores--cinco { grid-template-columns: repeat(5, minmax(0, 1fr)); }
}
@media (max-width: 860px) {
  .modulo-finanzas .tabla-finanzas-general,
  .modulo-finanzas .tabla-cuentas-cliente { min-width: 0; table-layout: auto; }
}
@media (max-width: 760px) {
  .fila-valores-financieros,
  .fila-valores-financieros:has(> .control-factura-financiera[hidden]) { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* Botones compartidos: geometría base y excepciones explícitas. */
.boton:not(.accion-icono) {
  box-sizing: border-box;
  height: var(--hd-alto-control);
  min-height: var(--hd-alto-control);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--separacion-acciones);
  padding: 0 var(--espacio-7);
  border-width: 1px;
  border-style: solid;
  border-radius: var(--hd-radio-control);
  font-family: var(--fuente-familia);
  font-size: var(--texto-cuerpo);
  line-height: var(--interlineado-compacto);
  font-weight: var(--peso-seminegrita);
  text-decoration: none;
  vertical-align: middle;
  white-space: nowrap;
  flex-shrink: 0;
  cursor: pointer;
}
.boton.boton-solo-icono { width: var(--alto-control); min-width: var(--alto-control); padding: 0; }
.boton.boton-texto { height: auto; min-height: auto; padding: var(--espacio-1); }
.boton:not(.accion-icono) > svg { flex-shrink: 0; }

/* La vista móvil financiera conserva sus fichas sin anchos de escritorio. */
@media (max-width: 520px) {
  .modulo-finanzas .tabla:is(.tabla-finanzas-general,.tabla-cuentas-cliente),
  .modulo-finanzas .tabla:is(.tabla-finanzas-general,.tabla-cuentas-cliente) :is(th,td) {
    width: 100%;
    min-width: 0;
    table-layout: auto;
    white-space: normal;
  }
}

/* Personalizar ítem: base de tabla con opciones de cálculo plegadas. */
/* Personalizador: contexto del ítem, costos adicionales y un solo precio de venta. */
dialog.hd-personalizador { overflow: hidden; }
.hd-personalizador .popup-personalizar-contenido {
  width: 100%; min-width: 0;
  max-height: calc(100vh - 32px); max-height: calc(100dvh - 32px);
  display: flex; flex-direction: column;
}
.hd-personalizador .popup-personalizar-contenido > :is(header,footer) { flex-shrink: 0; }
.hd-personalizador .popup-personalizar-contenido > header p:last-child { margin: var(--espacio-2) 0 0; }
.hd-personalizador-cuerpo {
  min-height: 0; min-width: 0; overflow: auto; overscroll-behavior: contain;
  display: grid; gap: var(--espacio-7); padding: var(--espacio-8);
}
.hd-personalizador :is(label,section) { min-width: 0; }
.hd-personalizador label { display: grid; gap: var(--espacio-2); align-content: start; }
.hd-personalizador input { width: 100%; min-width: 0; box-sizing: border-box; }
.hd-personalizador [data-moneda] { text-align: right; font-variant-numeric: tabular-nums; }
.hd-personalizador :is(h3,p) { margin: 0; }
.hd-personalizador h3 { font-size: var(--texto-titulo); color: var(--color-texto); }
.hd-personalizador small { color: var(--color-texto-suave); font-size: var(--texto-auxiliar); line-height: var(--interlineado-base); }
.hd-personalizador [hidden] { display: none; }
.hd-personalizador-referencia { display: grid; gap: var(--espacio-2); overflow-wrap: anywhere; }
.hd-personalizador-seccion { display: flex; gap: var(--espacio-5); align-items: center; justify-content: space-between; flex-wrap: wrap; }
.hd-personalizador-tabla-contenedor { min-width: 0; border: 1px solid var(--color-borde); border-radius: var(--radio-control); }
.hd-personalizador-tabla-contenedor:focus-visible { outline: 2px solid var(--color-marca-azul); outline-offset: 2px; }
.hd-personalizador-tabla {
  width: 100%;
  min-width: var(--ancho-tabla-personalizador);
  table-layout: fixed;
}
.hd-personalizador-tabla .col-descripcion { width: auto; }
.hd-personalizador-tabla .col-importe {
  width: var(--ancho-importe-personalizador);
}
.hd-personalizador-tabla .col-acciones {
  width: var(--ancho-acciones-personalizador);
}
.hd-personalizador-tabla :is(th,td) { padding-inline: var(--espacio-4); vertical-align: middle; }
.hd-personalizador-tabla td input { min-width: 0; }
.hd-personalizador-totales {
  display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: var(--espacio-5);
  padding-top: var(--espacio-5); border-top: 1px solid var(--color-borde); margin: 0;
}
.hd-personalizador-totales :is(span,label) { display: grid; gap: var(--espacio-2); align-content: start; color: var(--color-texto); font-size: var(--texto-auxiliar); }
.hd-personalizador-totales strong { font-size: var(--texto-titulo); font-variant-numeric: tabular-nums; overflow-wrap: anywhere; text-align: right; }
.hd-personalizador .hd-personalizador-confirmacion { display: flex; align-items: center; gap: var(--espacio-3); margin-top: var(--espacio-4); }
.hd-personalizador .hd-personalizador-confirmacion input { width: 16px; min-height: 16px; height: 16px; flex-shrink: 0; }
.hd-personalizador :is([data-personalizar-error],[data-personalizar-lista-avisos]) { white-space: pre-line; }
@media (max-width: 620px) {
  .hd-personalizador-cuerpo { padding: var(--espacio-5); gap: var(--espacio-5); }
  .hd-personalizador-totales { grid-template-columns: minmax(0,1fr); }
  .hd-personalizador-seccion { align-items: stretch; flex-direction: column; }
}

/* Clientes, productos y componentes: una sola lista y un solo estado de foco. */
.campo-autocompletar { position: relative; min-width: 0; }
.hd-selector-panel {
  position: fixed;
  inset: auto;
  z-index: 1400;
  display: flex;
  flex-direction: column;
  gap: var(--espacio-2);
  margin: 0;
  padding: var(--espacio-2);
  box-sizing: border-box;
  overflow: hidden;
  border: 1px solid var(--color-borde-panel);
  border-radius: var(--radio-control);
  color: var(--color-texto);
  background: var(--color-superficie);
  box-shadow: var(--sombra-elevada);
  font-family: inherit;
}
.hd-selector-panel[hidden], .hd-selector-opcion[hidden] { display: none; }
.hd-selector-opciones { display: grid; grid-auto-rows: max-content; align-content: start; gap: var(--espacio-1); min-height: 0; overflow-y: auto; overscroll-behavior: contain; }
.hd-selector-opcion {
  display: grid;
  gap: var(--espacio-1);
  flex-shrink: 0;
  width: 100%;
  min-height: var(--alto-control);
  padding: var(--espacio-4) var(--espacio-5);
  border: 1px solid transparent;
  border-radius: var(--radio-control);
  color: var(--color-texto);
  background: transparent;
  font: inherit;
  line-height: var(--interlineado-base);
  text-align: left;
  white-space: normal;
  overflow-wrap: anywhere;
  cursor: pointer;
}
.hd-selector-opcion:is(:hover,:focus-visible,[aria-selected="true"]) {
  border-color: var(--color-marca-azul);
  background: var(--color-fila-cebra);
  outline: 0;
}
.hd-selector-opcion strong { color: var(--color-texto-fuerte); font-size: var(--texto-cuerpo); font-weight: var(--peso-seminegrita); }
.hd-selector-opcion small { color: var(--color-texto-suave); font-size: var(--texto-auxiliar); line-height: var(--interlineado-base); }
.hd-selector-opcion small.costo-por-revisar { color: var(--color-advertencia); }
.hd-selector-titulo, .hd-selector-estado { flex-shrink: 0; margin: 0; padding: var(--espacio-2) var(--espacio-4); color: var(--color-texto-suave); font-size: var(--texto-auxiliar); line-height: var(--interlineado-base); }
.hd-selector-titulo { font-weight: var(--peso-seminegrita); }
.hd-selector-estado { border-top: 1px solid var(--color-borde); }

/* Comparación de una corrección: conserva los controles y colores compartidos. */
.hd-revision-edicion { margin: 0; display: grid; gap: var(--espacio-4); }
.hd-revision-edicion[hidden], .popup-editar-pago [hidden], [data-popup-cuenta] [hidden], [data-proteccion-cotizacion] [hidden] { display: none; }
.hd-revision-edicion :is(h3,p) { margin: 0; }
.hd-revision-edicion table { width: 100%; min-width: 460px; table-layout: fixed; }
.hd-revision-edicion :is(th,td) { overflow-wrap: anywhere; }
.hd-revision-edicion label { display: flex; align-items: flex-start; gap: var(--espacio-3); }
.hd-revision-edicion input[type="checkbox"] { flex: 0 0 auto; }

.hd-revision-edicion tbody td { white-space: pre-line; }
.hd-edicion-campos { min-width: 0; margin: 0; border: 0; }
.hd-edicion-avisos { display: grid; gap: var(--espacio-4); padding: var(--espacio-9) var(--espacio-9) 0; background: var(--color-superficie-secundaria); }

.hd-estado-edicion { margin: 0; }
/* Edición rápida: conservar la altura compacta y aprovechar el ancho disponible. */
dialog.popup-cuenta[data-popup-cuenta], dialog.popup-cuenta[data-popup-nuevo-movimiento] {
  width: calc(100vw - 32px);
  max-width: calc(100vw - 32px);
  box-sizing: border-box;
}
dialog.popup-cuenta[data-popup-cuenta] .hd-edicion-avisos { padding: var(--espacio-5) var(--espacio-7) 0; }
dialog.popup-cuenta[data-popup-cuenta] .hd-edicion-avisos:not(:has(> :not([hidden]))) { display: none; }
.hd-detalle-comercial label.hd-calcular-items { display: flex; align-items: center; gap: var(--espacio-3); }
.hd-calcular-items input[type="checkbox"] { flex: 0 0 auto; width: auto; margin: 0; }
.hd-uso-medida { display: grid; gap: var(--espacio-2); margin-top: var(--espacio-2); }
.hd-uso-medida > span { font-size: var(--texto-auxiliar); color: var(--color-texto-suave); }
.hd-uso-medida select { width: 100%; min-width: 0; }
.hd-tabla-comercial [data-comercial-base] { display: block; color: var(--color-texto-suave); font-size: var(--texto-auxiliar); }
.hd-cotizador [data-proteccion-cotizacion] { display: grid; gap: var(--espacio-4); }

/* Editor de JPGs: ventana, controles y acciones del sistema compartido. */
.hd-ajustes-jpg > section { display: flex; flex-direction: column; max-height: calc(100dvh - 34px); }
.hd-ajustes-jpg > section > :is(header,footer) { flex-shrink: 0; }
.hd-ajustes-jpg-cuerpo { flex: 1 1 auto; display: grid; grid-template-columns: minmax(240px, 290px) minmax(0, 1fr); grid-template-rows: minmax(0, 1fr); gap: var(--espacio-7); padding: var(--espacio-7); min-height: 0; overflow: hidden; }
.hd-ajustes-jpg-controles { display: grid; align-content: start; gap: var(--espacio-5); min-width: 0; min-height: 0; overflow-y: auto; }
.hd-ajustes-jpg-controles > p { margin: 0; }
.hd-ajustes-jpg-campos { display: grid; gap: var(--espacio-4); }
.hd-ajustes-jpg-campo { display: grid; gap: var(--espacio-2); }
.hd-ajustes-jpg-campo > label { font-size: var(--texto-auxiliar); font-weight: var(--peso-seminegrita); }
.hd-ajustes-jpg-entrada { display: grid; grid-template-columns: minmax(0, 1fr) 82px auto; align-items: center; gap: var(--espacio-3); }
.hd-ajustes-jpg-entrada input[type="range"] { padding: 0; border: 0; background: transparent; box-shadow: none; accent-color: var(--color-marca-azul); min-width: 0; }
.hd-ajustes-jpg-entrada input[type="number"] { text-align: center; }
.hd-ajustes-jpg-entrada > span { color: var(--color-texto-suave); font-size: var(--texto-auxiliar); }
.hd-ajustes-jpg-descripcion { padding: var(--espacio-4); background: var(--color-fila-cebra); border: 1px solid var(--color-borde); border-radius: var(--radio-control); font-size: var(--texto-auxiliar); font-weight: var(--peso-seminegrita); }
.hd-ajustes-jpg-opcion { display: flex; align-items: center; gap: var(--espacio-3); }
.hd-ajustes-jpg-opcion input[type="checkbox"] { width: auto; flex: 0 0 auto; }
.hd-ajustes-jpg-vista { min-width: 0; min-height: 0; overflow: auto; padding: var(--espacio-4); border: 1px solid var(--color-borde); border-radius: var(--radio-panel); background: var(--color-fondo); }
.hd-ajustes-jpg-vista:empty { min-height: 240px; }
.hd-ajustes-jpg-vista canvas { display: block; width: 100%; height: auto; max-width: none; background: var(--color-superficie); }
.hd-ajustes-jpg-estado { flex: 1 1 240px; margin: 0; font-size: var(--texto-auxiliar); color: var(--color-texto-suave); }
.hd-ajustes-jpg-estado.hd-error-campo { color: var(--color-peligro); }
@media (max-width: 800px) {
  .hd-ajustes-jpg-cuerpo { grid-template-columns: minmax(0, 1fr); grid-template-rows: auto; overflow: auto; }
  .hd-ajustes-jpg-controles { overflow-y: visible; }
  .hd-ajustes-jpg-estado { flex-basis: auto; }
}

/* v5.5: captura comercial corta; costos y ajustes en un detalle por ítem. */
.hd-cotizador-total { grid-template-columns: minmax(0, 1fr); }
.hd-cotizador-adaptable { container-type: inline-size; min-width: 0; overflow: visible; }
.hd-tabla-comercial.hd-cotizador-tabla--simple,
.hd-cotizador-tabla.hd-cotizador-tabla--simple,
.cotizador-solo-lectura .hd-cotizador-tabla.hd-cotizador-tabla--simple { width: 100%; min-width: 0; }
.hd-cotizador-tabla--simple .col-item { width: 5%; }
.hd-cotizador-tabla--simple .col-descripcion { width: auto; }
.hd-cotizador-tabla--simple .col-unidad { width: 9%; }
.hd-cotizador-tabla--simple .columna-medida { width: 18%; }
.hd-cotizador-tabla--simple .col-cantidad { width: 7%; }
.hd-cotizador-tabla--simple .col-precio { width: 13%; }
.hd-cotizador-tabla--simple .col-total { width: 12%; }
.hd-cotizador-tabla--simple .col-acciones { width: 8%; }
.hd-cotizador-tabla--simple .col-medidas { width: 18%; }
.hd-tabla-comercial.hd-cotizador-tabla--simple thead th { white-space: normal; }
.hd-tabla-comercial.hd-cotizador-tabla--simple td.identificador-item { display: table-cell; text-align: center; vertical-align: middle; }
.hd-cotizador-tabla--simple :is(th,td,input,textarea,select) { min-width: 0; max-width: 100%; box-sizing: border-box; }
.hd-cotizador-tabla--simple :is(td,strong,small) { white-space: normal; overflow-wrap: anywhere; }
.hd-cotizador-tabla--simple :is(input,textarea,select) { width: 100%; }
.hd-cotizador-tabla--simple .hd-medidas { min-width: 0; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.hd-cotizador-tabla--simple .hd-medidas label { min-width: 0; }
.hd-cotizador-tabla--simple .acciones-item-cotizacion { min-width: 0; flex-wrap: wrap; gap: var(--espacio-2); }
.hd-base-precio, .hd-venta-aplicada { display: block; margin-top: var(--espacio-2); color: var(--color-texto-suave); font-size: var(--texto-auxiliar); }
.hd-cotizador [hidden] { display: none; }
.hd-detalles-precio-item { margin-top: var(--espacio-3); min-width: 0; }
.hd-detalles-precio-item > summary,
.hd-detalles-precio-cotizacion > summary { cursor: pointer; color: var(--hd-azul-700); font-weight: var(--peso-seminegrita); overflow-wrap: anywhere; }
.hd-detalles-precio-item > summary { font-size: var(--texto-auxiliar); }
.hd-detalles-precio-item > summary small { display: block; color: var(--color-texto-suave); margin-top: var(--espacio-1); }
.hd-detalles-precio-item__contenido { display: grid; gap: var(--espacio-4); padding-top: var(--espacio-4); }
.hd-detalles-precio-item__valores { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--espacio-4); }
.hd-detalles-precio-item__valores > div { min-width: 0; display: grid; align-content: start; gap: var(--espacio-2); }
.hd-detalles-precio-item__valores small { color: var(--color-texto-suave); }
.hd-cotizador-tabla--simple .hd-detalles-precio-item :is([data-costo-fijo],.estado-costo-item) { white-space: normal; }
.hd-detalles-precio-item__acciones { display: flex; flex-wrap: wrap; gap: var(--espacio-3); }
.hd-detalles-precio-item__acciones .accion-icono { width: auto; height: auto; min-height: 32px; max-width: 100%; padding: var(--espacio-2); gap: var(--espacio-2); font-size: var(--texto-auxiliar); }
.hd-detalles-precio-item__acciones .accion-icono svg { flex: 0 0 16px; width: 16px; height: 16px; }
.cotizador-solo-lectura .hd-detalles-precio-item__acciones { display: none; }
.hd-resumen-cotizacion.hd-resumen-cotizacion--simple { grid-template-columns: repeat(3, minmax(0, 1fr)) minmax(0, 2fr); }
.hd-detalles-precio-cotizacion > summary { display: flex; flex-wrap: wrap; justify-content: space-between; gap: var(--espacio-3); padding: var(--espacio-6); }
.hd-detalles-precio-cotizacion > summary::before { content: '+'; }
.hd-detalles-precio-cotizacion[open] > summary::before { content: '−'; }
.hd-detalles-precio-cotizacion > summary > span { flex: 1 1 220px; }
.hd-detalles-precio-cotizacion__contenido { display: grid; gap: var(--espacio-6); padding: 0 var(--espacio-6) var(--espacio-6); min-width: 0; }
.hd-detalles-precio-cotizacion .hd-indicadores--tres { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.hd-detalles-precio-cotizacion :is(.panel-otros-gastos-cotizacion,.contenido-otros-gastos,.lista-otros-gastos,.fila-otro-gasto) { min-width: 0; }
.hd-detalles-precio-cotizacion .hd-panel__encabezado { flex-wrap: wrap; }

@container (max-width: 1000px) {
  .hd-cotizador-tabla--simple { display: block; }
  .hd-cotizador-tabla--simple :is(colgroup,thead) { display: none; }
  .hd-cotizador-tabla--simple :is(tbody,tfoot) { display: block; width: 100%; }
  .hd-cotizador-tabla--simple tbody > tr:is([data-item-cotizacion],[data-detalle-comercial-fila]) {
    display: grid; grid-template-columns: repeat(2, minmax(0, 1fr));
    grid-template-areas: 'identificador acciones' 'descripcion descripcion' 'unidad cantidad' 'medidas medidas' 'precio total';
    gap: var(--espacio-4); padding: var(--espacio-5); border-bottom: 1px solid var(--color-borde); background: var(--color-superficie);
  }
  .hd-cotizador-tabla--simple tbody > tr[data-cebra="azul"] { background: var(--color-fila-cebra); }
  .hd-cotizador-tabla--simple tbody > tr:is([data-item-cotizacion],[data-detalle-comercial-fila]) > td { display: block; width: auto; height: auto; min-height: 0; padding: 0; border: 0; background: transparent; }
  .hd-cotizador-tabla--simple [data-etiqueta]::before { content: attr(data-etiqueta); display: block; color: var(--color-texto-suave); font-size: var(--texto-auxiliar); font-weight: var(--peso-seminegrita); margin-bottom: var(--espacio-2); }
  .hd-cotizador-tabla--simple .identificador-item { grid-area: identificador; }
  .hd-tabla-comercial.hd-cotizador-tabla--simple td.identificador-item { display: block; align-self: center; }
  .hd-cotizador-tabla--simple [data-etiqueta="Descripción"] { grid-area: descripcion; }
  .hd-cotizador-tabla--simple [data-etiqueta="Unidad"] { grid-area: unidad; }
  .hd-cotizador-tabla--simple [data-etiqueta="Cantidad"] { grid-area: cantidad; }
  .hd-cotizador-tabla--simple [data-etiqueta="Medidas"] { grid-area: medidas; }
  .hd-cotizador-tabla--simple [data-etiqueta="Precio"] { grid-area: precio; }
  .hd-cotizador-tabla--simple [data-etiqueta="Total"] { grid-area: total; }
  .hd-cotizador-tabla--simple [data-etiqueta="Acciones"] { grid-area: acciones; justify-self: end; }
  .hd-cotizador-tabla--simple [data-etiqueta="Acciones"]::before { display: none; }
  .hd-cotizador-tabla--simple .fila-grupo-cotizacion { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; }
  .hd-cotizador-tabla--simple .fila-grupo-cotizacion > td { display: block; width: auto; min-width: 0; }
  .hd-cotizador-tabla--simple :is(.fila-subtotal-grupo-cotizacion,tfoot tr) { display: block; }
  .hd-cotizador-tabla--simple :is(.fila-subtotal-grupo-cotizacion > td,tfoot th,tfoot td) { display: block; width: auto; min-width: 0; }
  .hd-cotizador-tabla--simple .hd-resumen-cotizacion--simple { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 700px) {
  .hd-detalles-precio-cotizacion .hd-indicadores--tres { grid-template-columns: minmax(0, 1fr); }
}
@container (max-width: 420px) {
  .hd-cotizador-tabla--simple tbody > tr:is([data-item-cotizacion],[data-detalle-comercial-fila]) { grid-template-areas: 'identificador acciones' 'descripcion descripcion' 'unidad unidad' 'cantidad cantidad' 'medidas medidas' 'precio precio' 'total total'; }
  .hd-cotizador-tabla--simple .fila-grupo-cotizacion { grid-template-columns: auto minmax(0, 1fr); }
  .hd-cotizador-tabla--simple .fila-grupo-cotizacion > td.tabla-accion { grid-column: 1 / -1; }
}

/* v5.7: una tabla por cliente; orígenes y variantes con la jerarquía del cotizador. */
.hd-bloques-cuentas { min-width: 0; width: 100%; }
.hd-bloques-cuentas > .hd-tabla-contenedor { margin: 0; }

/* Una barra común de vistas y filtros; los saldos usan el resumen de la ficha. */
.hd-resumen-finanzas { margin-bottom: var(--espacio-7); }
.hd-resumen-listado { container-type: inline-size; min-width: 0; margin-bottom: var(--espacio-7); }
.hd-resumen-listado__alcance { margin: 0 0 var(--espacio-3); color: var(--hd-texto-suave); font-size: var(--texto-auxiliar); overflow-wrap: anywhere; }
.hd-panel[data-panel-listado-comercial] { container-type: inline-size; }
@container (max-width: 1000px) {
  .hd-resumen-listado .hd-resumen-importes-trabajo[data-columnas="5"] { grid-template-columns: minmax(0,1fr); }
  .hd-resumen-listado .hd-resumen-importes-trabajo[data-columnas="5"] > div { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,.5fr); gap: var(--espacio-3); align-items: center; }
  .hd-resumen-listado .hd-resumen-importes-trabajo[data-columnas="5"] > div + div { border-left: 0; border-top: 1px solid var(--hd-borde); }
  .hd-resumen-listado .hd-resumen-importes-trabajo[data-columnas="5"] dd { margin-top: 0; text-align: right; }
}
.panel-finanzas-listado { container-type: inline-size; }
.panel-finanzas-por-nombre > .hd-filtros-finanzas {
  margin-bottom: var(--espacio-7);
}
.hd-filtros-finanzas,
.hd-filtros-comerciales {
  grid-template-columns: minmax(160px,220px) minmax(0,1fr) auto;
  grid-template-areas: "vista busqueda acciones";
}
.hd-filtros-comerciales { grid-template-columns: minmax(220px,280px) minmax(0,1fr) auto; }
:is(.hd-filtros-finanzas,.hd-filtros-comerciales)[data-con-filtro-adicional="true"] {
  grid-template-columns: minmax(160px,200px) minmax(0,1fr) minmax(160px,210px) auto;
  grid-template-areas: "vista busqueda adicional acciones";
}
:is(.hd-filtros-finanzas,.hd-filtros-comerciales) .hd-filtro-vista { grid-area: vista; }
:is(.hd-filtros-finanzas,.hd-filtros-comerciales) .hd-filtro-busqueda { grid-area: busqueda; }
:is(.hd-filtros-finanzas,.hd-filtros-comerciales) .hd-filtro-adicional { grid-area: adicional; }
:is(.hd-filtros-finanzas,.hd-filtros-comerciales) .campo-busqueda { min-width: 0; }
:is(.hd-filtros-finanzas,.hd-filtros-comerciales) .campo-busqueda > svg { position: absolute; left: var(--espacio-4); top: 50%; transform: translateY(-50%); width: var(--tamano-svg-icono-accion); height: var(--tamano-svg-icono-accion); color: var(--hd-azul-700); pointer-events: none; }
:is(.hd-filtros-finanzas,.hd-filtros-comerciales) .campo-busqueda input { padding-left: 40px; }
:is(.hd-filtros-finanzas__acciones,.hd-filtros-comerciales__acciones) { grid-area: acciones; min-width: 0; max-width: 100%; flex-wrap: wrap; }
:is(.hd-filtros-finanzas__acciones,.hd-filtros-comerciales__acciones) .boton { min-height: var(--hd-alto-control); max-width: 100%; white-space: normal; overflow-wrap: anywhere; }
:is(.hd-filtros-finanzas__acciones,.hd-filtros-comerciales__acciones) .boton[hidden] { display: none; }
@media (max-width: 900px) {
  :is(.hd-filtros-finanzas,.hd-filtros-comerciales)[data-con-filtro-adicional="true"] { grid-template-columns: repeat(2,minmax(0,1fr)); grid-template-areas: "vista adicional" "busqueda busqueda" "acciones acciones"; }
}
@media (max-width: 620px) {
  .hd-filtros-finanzas,
  .hd-filtros-comerciales,
  :is(.hd-filtros-finanzas,.hd-filtros-comerciales)[data-con-filtro-adicional="true"] { grid-template-columns: minmax(0,1fr); grid-template-areas: "vista" "busqueda" "adicional" "acciones"; }
}
@container (max-width: 900px) {
  :is(.hd-filtros-finanzas,.hd-filtros-comerciales)[data-con-filtro-adicional="true"] { grid-template-columns: repeat(2,minmax(0,1fr)); grid-template-areas: "vista adicional" "busqueda busqueda" "acciones acciones"; }
}
@container (max-width: 620px) {
  .hd-filtros-finanzas,
  .hd-filtros-comerciales,
  :is(.hd-filtros-finanzas,.hd-filtros-comerciales)[data-con-filtro-adicional="true"] { grid-template-columns: minmax(0,1fr); grid-template-areas: "vista" "busqueda" "adicional" "acciones"; }
}
.hd-titulo-origen { min-width: 0; color: var(--hd-azul-900); font-size: var(--texto-cuerpo); overflow-wrap: anywhere; }
.hd-titulo-origen a { font-weight: var(--peso-negrita); }
.hd-titulo-origen > span { color: var(--color-texto-suave); font-size: var(--texto-auxiliar); }
.hd-cuentas-comerciales [data-bloque-origen][hidden],
.hd-cuentas-comerciales tr[hidden] { display: none; }
.modulo-finanzas .hd-cuentas-comerciales { min-width: 0; width: 100%; }
.modulo-finanzas .hd-cuentas-comerciales .col-item { width: 5%; }
.modulo-finanzas .hd-cuentas-comerciales .col-descripcion { width: 28%; }
.modulo-finanzas .hd-cuentas-comerciales .col-medidas { width: 10%; }
.modulo-finanzas .hd-cuentas-comerciales .col-cantidad { width: 6%; }
.modulo-finanzas .hd-cuentas-comerciales .col-fecha { width: 16%; }
.modulo-finanzas .hd-cuentas-comerciales .col-importe { width: 8%; }
.modulo-finanzas .hd-cuentas-comerciales .col-acciones { width: 11%; }
.modulo-finanzas .hd-cuentas-comerciales :is(td,th) { min-width: 0; padding-inline: var(--espacio-3); overflow-wrap: anywhere; }
.modulo-finanzas .hd-cuentas-comerciales .acciones-registro { min-width: 0; flex-wrap: wrap; gap: var(--espacio-2); }
.modulo-finanzas .hd-cuentas-comerciales .celda-dinero { white-space: normal; }
.modulo-finanzas .hd-cuentas-comerciales :is(.identificador-item,thead th:first-child) { text-align: center; vertical-align: middle; color: var(--hd-azul-900); }
.modulo-finanzas .hd-cuentas-comerciales thead th:first-child { color: var(--color-texto-inverso); }
.modulo-finanzas .hd-cuentas-comerciales thead th:first-child .tabla-ordenable { justify-content: center; }
.hd-cuentas-comerciales .hd-fila-principal-comercial > td { background: var(--hd-azul-100); }
.hd-cuentas-comerciales .fila-variante-cotizacion > td { font-size: var(--texto-auxiliar); }
.hd-cuentas-comerciales .fila-grupo-cotizacion > td { border-inline: 0; border-radius: 0; }
.hd-cuentas-comerciales .fila-subtotal-grupo-cotizacion > td { border: 0; border-bottom: 2px solid var(--color-marca-azul-oscuro); border-radius: 0; background: var(--hd-superficie); }
.hd-cuentas-comerciales .fila-subtotal-grupo-cotizacion :is(b,strong) { color: var(--hd-azul-900); }
.hd-cuentas-comerciales .hd-subtotal-origen-etiqueta { text-align: right; color: var(--hd-texto-suave); }
.hd-cuentas-comerciales [data-etiqueta="Solicitud"] > small { display: block; margin-top: var(--espacio-2); }
.hd-acceso-version { display: block; margin-top: var(--espacio-2); font-size: var(--texto-auxiliar); white-space: normal; }
.panel-vencidos-planeacion { margin-bottom: 20px; }
@container (max-width: 1180px) {
  .modulo-finanzas .hd-cuentas-comerciales { display: block; min-width: 0; table-layout: auto; }
  .modulo-finanzas .hd-cuentas-comerciales :is(colgroup,thead) { display: none; }
  .modulo-finanzas .hd-cuentas-comerciales tbody { display: block; }
  .modulo-finanzas .hd-cuentas-comerciales tbody tr { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: var(--espacio-4); padding: var(--espacio-5); }
  .modulo-finanzas .hd-cuentas-comerciales tbody td { display: block; width: auto; min-width: 0; height: auto; min-height: 0; padding: 0; border: 0; white-space: normal; text-align: left; }
  .modulo-finanzas .hd-cuentas-comerciales tbody td[data-etiqueta]::before { content: attr(data-etiqueta); display: block; margin-bottom: var(--espacio-2); color: var(--color-texto-suave); font-size: var(--texto-auxiliar); font-weight: var(--peso-seminegrita); }
  .modulo-finanzas .hd-cuentas-comerciales :is([data-etiqueta="Descripción"],[data-etiqueta="Acciones"],[colspan]) { grid-column: 1 / -1; }
  .modulo-finanzas .hd-cuentas-comerciales [colspan]::before { display: none; }
  .modulo-finanzas .hd-cuentas-comerciales .fila-grupo-cotizacion { display: block; }
  .modulo-finanzas .hd-cuentas-comerciales .fila-subtotal-grupo-cotizacion { grid-template-columns: repeat(3,minmax(0,1fr)); }
  .modulo-finanzas .hd-cuentas-comerciales .fila-subtotal-grupo-cotizacion > td:empty { display: none; }
  .modulo-finanzas .hd-cuentas-comerciales .fila-subtotal-grupo-cotizacion [data-etiqueta] { text-align: right; }
  .modulo-finanzas .hd-cuentas-comerciales .identificador-item { text-align: center; align-self: center; }
  .modulo-finanzas .hd-cuentas-comerciales .fila-grupo-cotizacion { background: var(--hd-azul-100); border-top: 2px solid var(--color-marca-azul-oscuro); }
  .modulo-finanzas .hd-cuentas-comerciales .fila-subtotal-grupo-cotizacion { border-bottom: 2px solid var(--color-marca-azul-oscuro); }
  .modulo-finanzas .hd-cuentas-comerciales .hd-fila-principal-comercial { background: var(--hd-azul-100); }
  .modulo-finanzas .hd-cuentas-comerciales .acciones-registro { justify-content: flex-start; }
  .modulo-finanzas .hd-cuentas-comerciales [data-fila-complementaria] > td:empty { display: none; }
}
@container (max-width: 460px) {
  .modulo-finanzas .hd-cuentas-comerciales tbody tr { grid-template-columns: minmax(0,1fr); }
}

/* Informe y Planeación: importes compartidos y detalle bajo demanda. */
.hd-informe-mensual > :is(.hd-panel,.hd-acordeon,.hd-filtros),
.hd-planeacion > :is(.hd-panel,.hd-acordeon,.hd-resumen-listado) { margin-block: 0 var(--espacio-7); }
.hd-filtros-informe { display: flex; flex-wrap: wrap; align-items: end; gap: var(--espacio-5); }
.hd-filtros-informe > label { display: grid; gap: var(--espacio-3); width: min(100%,320px); min-width: 0; }
.hd-filtros-informe > label > span { font-size: var(--texto-auxiliar); font-weight: var(--peso-seminegrita); }
.hd-filtros-informe select { width: 100%; min-width: 0; }
.hd-informe-mensual__resumen > .hd-resumen-importes-trabajo,
.hd-informe-mensual__detalle > .hd-resumen-importes-trabajo,
.hd-planeacion .mes-planeacion > .hd-resumen-importes-trabajo { border: 0; border-radius: 0; }
.hd-informe-mensual__detalle > summary,
.hd-planeacion :is(.hd-planeacion__calculo,.hd-planeacion__promedios) > summary { display: flex; flex-wrap: wrap; gap: var(--espacio-5); }
:is(.hd-informe-mensual,.hd-planeacion) .hd-acordeon__indicador { margin-left: auto; }
.hd-planeacion__promedios { border-radius: 0; border-inline: 0; box-shadow: none; }
.hd-planeacion__promedios > .hd-resumen-importes-trabajo { border: 0; border-radius: 0; }
.hd-planeacion__promedios h3 { margin: 0; color: inherit; font-size: var(--texto-cuerpo); }
.hd-planeacion__formulas { margin: 0; padding: var(--espacio-6) var(--espacio-7); }
.hd-planeacion__formulas > div { display: grid; grid-template-columns: minmax(0,.4fr) minmax(0,1fr); gap: var(--espacio-4); }
.hd-planeacion__formulas :is(dt,dd) { min-width: 0; white-space: normal; overflow-wrap: anywhere; }
.hd-planeacion__resumen { container-type: inline-size; }
.hd-planeacion__resumen .hd-resumen-importes-trabajo[data-columnas="6"] { grid-template-columns: repeat(6,minmax(0,1fr)); }
.hd-planeacion :is(.cuenta-planeacion:not(.cuenta-planeacion-edicion),.encabezado-columnas-cuentas) { grid-template-columns: minmax(0,46fr) minmax(0,17fr) minmax(0,25fr) minmax(0,12fr); gap: var(--espacio-3); }
.hd-planeacion .cuenta-planeacion { min-width: 0; background: var(--hd-superficie); }
.hd-planeacion .cuenta-planeacion:nth-child(even) { background: var(--color-fila-cebra); }
.hd-planeacion .cuenta-planeacion-resumen strong { white-space: normal; overflow: visible; text-overflow: clip; overflow-wrap: anywhere; }
.hd-planeacion :is(.saldo-cuenta-planeacion,.estado-cobertura-cuenta) { min-width: 0; max-width: 100%; white-space: normal; overflow-wrap: anywhere; }
.hd-planeacion .acciones-cuenta-planeacion { display: flex; min-width: 0; flex-wrap: wrap; justify-content: end; }
:is(.hd-tabla--informe,.hd-tabla--planeacion,.hd-tabla--liquidaciones) { width: 100%; min-width: 0; table-layout: fixed; }
:is(.hd-tabla--informe,.hd-tabla--planeacion,.hd-tabla--liquidaciones) :is(th,td) { min-width: 0; white-space: normal; overflow-wrap: anywhere; padding-inline: var(--espacio-3); }
.hd-tabla:is(.hd-tabla--informe,.hd-tabla--planeacion,.hd-tabla--liquidaciones) .celda-dinero { white-space: normal; overflow-wrap: anywhere; }
:is(.hd-tabla--informe,.hd-tabla--planeacion,.hd-tabla--liquidaciones) .hd-estado { max-width: 100%; white-space: normal; }
:is(.hd-tabla--planeacion,.hd-tabla--liquidaciones) .acciones-registro { min-width: 0; flex-wrap: wrap; }
:is(.hd-tabla--planeacion,.hd-tabla--liquidaciones) th.tabla-accion { min-width: 0; }
.hd-tabla--informe .col-informe-nombre { width: 22%; }
.hd-tabla--informe .col-informe-descripcion { width: 39%; }
.hd-tabla--informe .col-informe-tipo { width: 12%; }
.hd-tabla--informe .col-informe-solicitud { width: 16%; }
.hd-tabla--informe .col-informe-saldo { width: 11%; }
.hd-tabla--planeacion .col-planeacion-fecha { width: 15%; }
.hd-tabla--planeacion .col-planeacion-nombre { width: 44%; }
.hd-tabla--planeacion .col-planeacion-valor { width: 14%; }
.hd-tabla--planeacion .col-planeacion-saldo { width: 17%; }
.hd-tabla--planeacion .col-planeacion-acciones { width: 10%; }
.hd-tabla--liquidaciones .col-liquidacion-nombre { width: 49%; }
.hd-tabla--liquidaciones .col-liquidacion-valor { width: 17%; }
.hd-tabla--liquidaciones .col-liquidacion-estado { width: 22%; }
.hd-tabla--liquidaciones .col-liquidacion-acciones { width: 12%; }
.hd-tabla--planeacion .nombre-proximo { display: flex; align-items: center; gap: var(--espacio-3); white-space: normal; overflow: visible; }
.hd-tabla--planeacion .indicador-cobertura-hd { flex: 0 0 auto; }
.hd-tabla--planeacion [data-etiqueta="Saldo proyectado"] strong,
.hd-tabla--informe [data-etiqueta="Saldo"] strong { color: var(--hd-azul-900); }
.hd-tabla--planeacion [data-etiqueta="Saldo proyectado"] strong.hd-valor--negativo,
.hd-tabla--informe [data-etiqueta="Saldo"] strong.hd-valor--negativo { color: var(--color-texto-negativo); }
@container (max-width: 1100px) {
  .hd-planeacion__resumen .hd-resumen-importes-trabajo[data-columnas="6"] { grid-template-columns: repeat(3,minmax(0,1fr)); }
  .hd-planeacion__resumen .hd-resumen-importes-trabajo > div:nth-child(3n+1) { border-left: 0; }
  .hd-planeacion__resumen .hd-resumen-importes-trabajo > div:nth-child(n+4) { border-top: 1px solid var(--hd-borde); }
  .hd-listado-adaptable > .hd-tabla--informe [data-etiqueta="Nombre"] { grid-column: 1 / -1; }
}
@media (max-width: 860px) {
  .hd-planeacion :is(.cuenta-planeacion:not(.cuenta-planeacion-edicion),.encabezado-columnas-cuentas) { grid-template-columns: minmax(0,1fr); }
  .hd-planeacion .encabezado-columnas-cuentas { display: none; }
  .hd-planeacion .cuenta-planeacion:not(.cuenta-planeacion-edicion) > [data-etiqueta] { grid-column: auto; grid-row: auto; justify-self: stretch; }
  .hd-planeacion .cuenta-planeacion:not(.cuenta-planeacion-edicion) > [data-etiqueta]::before { content: attr(data-etiqueta); display: block; margin-bottom: var(--espacio-2); color: var(--hd-texto-suave); font-size: var(--texto-auxiliar); }
  .hd-planeacion .acciones-cuenta-planeacion { justify-content: start; }
  .hd-planeacion__formulas > div { grid-template-columns: minmax(0,1fr); }
}
@container (max-width: 460px) {
  .hd-planeacion__resumen .hd-resumen-importes-trabajo[data-columnas="6"] { grid-template-columns: minmax(0,1fr); }
  .hd-planeacion__resumen .hd-resumen-importes-trabajo > div + div { border-left: 0; border-top: 1px solid var(--hd-borde); }
}

/* Medidas visibles del cliente y solicitud junto al tipo de movimiento. */
.hd-tabla--medidas-cliente .col-cliente-trabajo { width: 22%; }
.hd-tabla--medidas-cliente .col-cliente-unidad { width: 8%; }
.hd-tabla--medidas-cliente .col-cliente-medida { width: 7%; }
.hd-tabla--medidas-cliente .col-cliente-cantidad { width: 9%; }
.hd-tabla--medidas-cliente .col-cliente-fecha { width: 13%; }
.hd-tabla--medidas-cliente .col-cliente-importe { width: 8%; }
.hd-tabla--medidas-cliente .col-cliente-acciones { width: 10%; }
.hd-tabla--medidas-cliente.hd-tabla--cliente-comercial .col-cliente-trabajo { width: 47%; }
.hd-tabla.hd-tabla--medidas-cliente :is(th,td) { padding-inline: var(--espacio-3); min-width: 0; white-space: normal; overflow-wrap: anywhere; vertical-align: middle; }
.hd-tabla--medidas-cliente .tabla-accion,
.hd-tabla--medidas-cliente .acciones-registro { min-width: 0; max-width: 100%; }
.hd-tabla--medidas-cliente .tabla-ordenable { flex-wrap: wrap; gap: var(--espacio-1); }
.hd-tabla--medidas-cliente .tabla-ordenable > span:first-child { white-space: nowrap; }
.hd-tabla--medidas-cliente .hd-cliente-estado { display: flex; align-items: center; flex-wrap: wrap; gap: var(--espacio-2); margin-top: var(--espacio-2); }
.hd-cliente-item-descripcion { display: block; margin-top: var(--espacio-2); }
.hd-informe-mensual .hd-resumen-importes-trabajo__saldo dd:not(.hd-valor--negativo) { color: var(--hd-azul-900); }
.hd-tabla--medidas-cliente [data-trabajo-cliente]:not(:first-child) > td { border-top: 1px solid var(--hd-borde); }
.hd-tabla--medidas-cliente [data-fila-complementaria] > td { padding-block: var(--espacio-3); }
.hd-naturaleza-solicitud { display: grid; grid-template-columns: minmax(0,2fr) minmax(0,1fr); gap: var(--espacio-5); align-items: end; min-width: 0; }
.hd-formulario .hd-campos-movimiento .hd-naturaleza-solicitud > .campo-fecha-flatpickr { grid-column: auto; min-width: 0; margin: 0; }
.hd-naturaleza-solicitud .selector-naturaleza-movimiento { min-width: 0; }
.hd-naturaleza-solicitud .selector-naturaleza-movimiento label { min-width: 0; }
@container (max-width: 1100px) {
  .hd-listado-adaptable .hd-tabla--medidas-cliente [data-etiqueta="Trabajo"] { grid-column: 1 / -1; }
  .hd-listado-adaptable .hd-tabla--medidas-cliente [data-fila-complementaria] > td:empty { display: none; }
}
@media (max-width: 760px) {
  .hd-naturaleza-solicitud { grid-template-columns: minmax(0,1fr); }
}

/* Una reserva por columna: botones visibles, separación y margen de la tabla. */
.hd-tabla[data-acciones-ajustadas] [data-columna-acciones] :is(.acciones-registro,.acciones-tabla,.acciones-item-cotizacion,.hd-acciones-items-cliente,.hd-acciones) {
  flex-wrap: nowrap;
  min-width: max-content;
}
.hd-tabla[data-acciones-ajustadas] [data-columna-acciones] :is(.accion-icono,form) { flex-shrink: 0; }
.hd-tabla[data-acciones-ajustadas] [data-columna-acciones] :is(form,.acciones-item-cotizacion) { margin-block: 0; }

/* Si el contenido y las acciones no caben juntos, se muestra el registro completo. */
.hd-tabla[data-acciones-compactas] { display: block; min-width: 0; width: 100%; table-layout: auto; }
.hd-tabla[data-acciones-compactas] > :is(colgroup,thead) { display: none; }
.hd-tabla[data-acciones-compactas] > :is(tbody,tfoot) { display: block; }
.hd-tabla[data-acciones-compactas] > :is(tbody,tfoot) > tr { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: var(--espacio-5); padding: var(--espacio-6); }
.hd-tabla[data-acciones-compactas] > :is(tbody,tfoot) > tr > :is(td,th) { display: block; width: auto; min-width: 0; height: auto; min-height: 0; padding: 0; border: 0; white-space: normal; text-align: left; }
.hd-tabla[data-acciones-compactas] > :is(tbody,tfoot) > tr > [data-etiqueta]::before { content: attr(data-etiqueta); display: block; margin-bottom: var(--espacio-2); color: var(--color-texto-suave); font-size: var(--texto-auxiliar); font-weight: var(--peso-seminegrita); }
.hd-tabla[data-acciones-compactas] > :is(tbody,tfoot) > tr > :is([data-columna-acciones],[data-etiqueta="Nombre"],[data-etiqueta="Trabajo"],[data-etiqueta="Descripción"],[colspan]) { grid-column: 1 / -1; }
.hd-tabla[data-acciones-compactas] > :is(tbody,tfoot) > tr > [colspan]::before { display: none; }
.hd-tabla[data-acciones-compactas] [data-columna-acciones] :is(.acciones-registro,.hd-acciones) { justify-content: flex-start; }
@media (max-width: 460px) {
  .hd-tabla[data-acciones-compactas] > :is(tbody,tfoot) > tr { grid-template-columns: minmax(0,1fr); }
}

/* Alta, recuperación y edición: una composición para los tres accesos. */
.hd-formulario .hd-campos-movimiento,
.popup-cuenta:not(.popup-nuevo-movimiento):not(.popup-abono-tercero) .hd-campos-movimiento {
  min-width: 0;
  grid-template-columns: repeat(2,minmax(0,1fr));
  gap: var(--espacio-5);
  padding: var(--espacio-7);
  background: var(--hd-superficie);
}
.hd-formulario .hd-campos-movimiento > .campo-mitad { grid-column: auto; }
.hd-formulario .hd-campos-movimiento > .campo-amplio { grid-column: 1 / -1; }
.hd-campos-movimiento :is([name="tercero_nombre_visual"],[name="contacto_visual"])[readonly] { color: var(--color-texto-suave); background: var(--color-superficie); font-weight: var(--peso-regular); }
@media (max-width: 760px) {
  .hd-formulario .hd-campos-movimiento,
  .popup-cuenta:not(.popup-nuevo-movimiento):not(.popup-abono-tercero) .hd-campos-movimiento { grid-template-columns: minmax(0,1fr); }
}

/* Agenda propia: formulario y revisión sobre los componentes compartidos. */
.hd-agenda-campos { display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--espacio-5,16px);padding:var(--espacio-7,24px); }
.hd-agenda-campos label {min-width:0;}
.hd-agenda-nombre {grid-column:span 2;}
.hd-agenda-pie {display:flex;align-items:center;justify-content:space-between;gap:16px;padding:0 24px 24px;flex-wrap:wrap;}
.hd-agenda-pie .hd-nota {margin:0;flex:1 1 260px;}
.hd-agenda-revision__lista {padding:0 24px 16px;}
.hd-agenda-revision__lista article {display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 0;border-top:1px solid var(--borde,#d0e0ef);}
.hd-agenda-revision__lista article>div {min-width:0;overflow-wrap:anywhere;}
.hd-agenda-revision__lista p {margin:4px 0 0;}
.hd-agenda-campos [hidden] {display:none!important;}
@media(max-width:768px){.hd-agenda-campos{grid-template-columns:repeat(2,minmax(0,1fr));}.hd-agenda-nombre{grid-column:span 2;}}
@media(max-width:480px){.hd-agenda-campos{grid-template-columns:minmax(0,1fr);padding:16px;}.hd-agenda-nombre{grid-column:auto;}.hd-agenda-pie{padding:0 16px 16px;}.hd-agenda-preparar .hd-panel__encabezado{flex-wrap:wrap;}}

/* Registro de agenda: reutiliza panel, importes y formulario compartidos. */
.hd-agenda-registro__resumen {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--espacio-5);padding:var(--espacio-7);}
.hd-agenda-registro__resumen>span {display:flex;flex-direction:column;gap:var(--espacio-2);min-width:0;overflow-wrap:anywhere;}
.hd-agenda-registro__resumen small {color:var(--hd-texto-suave);font-size:var(--texto-auxiliar);font-weight:var(--peso-regular);}
.hd-agenda-registro__referencia {margin:0;padding:0 var(--espacio-7) var(--espacio-5);overflow-wrap:anywhere;}
.hd-agenda-registro__cuenta {margin:0 var(--espacio-7) var(--espacio-5);min-width:0;}
.hd-agenda-registro__cuenta summary {cursor:pointer;color:var(--hd-azul-700);}
.hd-agenda-registro__cuenta form {display:flex;flex-wrap:wrap;gap:var(--espacio-4);align-items:end;padding-top:var(--espacio-4);}
.hd-agenda-registro__cuenta label {flex:1 1 260px;min-width:0;}
.hd-agenda-registro__cuenta select {width:100%;min-width:0;}
.hd-agenda-registro__campos [hidden] {display:none!important;}
@media(max-width:480px){.hd-agenda-registro__resumen{padding:var(--espacio-5);gap:var(--espacio-3);}.hd-agenda-registro__referencia{padding:0 var(--espacio-5) var(--espacio-5);}.hd-agenda-registro__cuenta{margin-inline:var(--espacio-5);}}

/* Agenda visual: componentes y colores compartidos, columnas que caben en el panel. */
.hd-agenda-vistas {display:flex;gap:var(--espacio-3);flex-wrap:wrap;min-width:0;}
.hd-agenda-vistas .hd-agenda-vista-activa {background:var(--hd-azul-700);color:var(--hd-superficie);border-color:var(--hd-azul-700);}
.hd-agenda-distribucion {display:grid;grid-template-columns:minmax(0,1fr) minmax(220px,270px);gap:var(--espacio-5);align-items:start;min-width:0;max-width:100%;}
.hd-agenda-distribucion>* {min-width:0;max-width:100%;}
.hd-calendario {--alto-hora:64px;overflow:hidden;}
.hd-calendario .hd-panel__encabezado {flex-wrap:wrap;}
.hd-calendario__controles {padding:var(--espacio-5);display:flex;gap:var(--espacio-5);align-items:start;flex-wrap:wrap;min-width:0;}
.hd-calendario__filtros {flex:1 1 200px;min-width:0;}
.hd-calendario__filtros summary {cursor:pointer;color:var(--hd-azul-700);padding-block:var(--espacio-3);}
.hd-calendario__filtro-form {display:flex;flex-wrap:wrap;gap:var(--espacio-4);align-items:end;padding-top:var(--espacio-4);}
.hd-calendario__filtro-form label {flex:1 1 140px;min-width:0;}
.hd-calendario__filtro-form input,.hd-calendario__filtro-form select {width:100%;min-width:0;}
.hd-calendario__filtro-form .hd-calendario__buscar {flex-basis:240px;}
.hd-calendario__filtro-form .hd-calendario__check {display:flex;align-items:center;gap:var(--espacio-3);flex-basis:200px;}
.hd-calendario__check input {width:auto;}
.hd-calendario__vacio,.hd-calendario__ayuda {margin:0;padding:var(--espacio-4) var(--espacio-5);}
.hd-calendario__horario {overflow-y:auto;overflow-x:hidden;max-height:660px;scrollbar-gutter:stable;min-width:0;border-top:1px solid var(--hd-borde);}
.hd-calendario__encabezados,.hd-calendario__sin-hora,.hd-calendario__rejilla {display:grid;grid-template-columns:52px repeat(var(--dias),minmax(0,1fr));min-width:0;}
.hd-calendario__encabezados {position:sticky;top:0;z-index:3;background:var(--hd-superficie);border-bottom:1px solid var(--hd-borde);}
.hd-calendario__encabezados>a {display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;padding:var(--espacio-3);color:var(--hd-azul-700);text-decoration:none;border-right:1px solid var(--hd-borde);min-width:0;}
.hd-calendario__encabezados time {font-size:var(--texto-cuerpo);font-weight:var(--peso-seminegrita);}
.hd-calendario__sin-hora {min-height:50px;border-bottom:1px solid var(--hd-borde);}
.hd-calendario__sin-hora>div {padding:3px;border-right:1px solid var(--hd-borde);min-width:0;}
.hd-calendario__eje-label {align-self:center;text-align:center;font-size:var(--texto-auxiliar);color:var(--hd-texto-suave);overflow-wrap:anywhere;padding:4px;}
.hd-calendario__horas {min-width:0;}
.hd-calendario__horas>span {height:var(--alto-hora);display:block;padding:5px 4px 0;text-align:center;color:var(--hd-texto-suave);font-size:var(--texto-auxiliar);border-top:1px solid var(--hd-borde);}
.hd-calendario__columna {position:relative;min-width:0;height:calc(var(--horas)*var(--alto-hora));border-right:1px solid var(--hd-borde);}
.hd-calendario__lineas {position:absolute;inset:0;pointer-events:none;}
.hd-calendario__lineas>span {height:var(--alto-hora);display:block;border-top:1px solid var(--hd-borde);}
.hd-calendario__columna-hoy {background:var(--hd-azul-100);}
.hd-calendario__hoy {background:var(--hd-azul-100);}
.hd-calendario__evento {display:flex;flex-direction:column;gap:2px;padding:5px 6px;margin:3px 0;border:1px solid var(--hd-borde);border-left:3px solid var(--hd-azul-700);border-radius:var(--hd-radio-control);background:var(--hd-azul-100);color:var(--hd-azul-700);text-decoration:none;min-width:0;max-width:100%;overflow:hidden;font-size:var(--texto-auxiliar);line-height:1.35;}
.hd-calendario__evento>span,.hd-calendario__evento>small {min-width:0;overflow:hidden;text-overflow:ellipsis;}
.hd-calendario__evento>span {display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow-wrap:anywhere;}
.hd-calendario__evento>small {font-size:var(--texto-auxiliar);white-space:nowrap;}
.hd-calendario__evento--egreso {background:var(--hd-egreso-fondo);color:var(--hd-egreso);border-left-color:var(--hd-egreso);}
.hd-calendario__evento--ingreso {background:var(--hd-ingreso-fondo);color:var(--hd-ingreso);border-left-color:var(--hd-ingreso);}
.hd-calendario__bloque {position:absolute;top:calc(var(--minuto)*var(--alto-hora)/60);left:calc(var(--columna)*100%/var(--columnas) + 2px);width:calc(100%/var(--columnas) - 4px);height:calc(var(--duracion)*var(--alto-hora)/60 - 2px);margin:0;z-index:1;}
.hd-calendario__resuelta {opacity:.7;}
.hd-calendario__resuelta>span {text-decoration:line-through;}
.hd-calendario__mes {display:grid;grid-template-columns:repeat(7,minmax(0,1fr));border-top:1px solid var(--hd-borde);min-width:0;}
.hd-calendario__dia-semana {text-align:center;padding:var(--espacio-3);color:var(--hd-azul-700);background:var(--hd-azul-100);font-size:var(--texto-auxiliar);}
.hd-calendario__celda {min-width:0;min-height:142px;padding:var(--espacio-3);border-right:1px solid var(--hd-borde);border-bottom:1px solid var(--hd-borde);}
.hd-calendario__numero {display:inline-flex;min-width:30px;min-height:30px;align-items:center;justify-content:center;border-radius:var(--hd-radio-control);color:var(--hd-azul-700);text-decoration:none;}
.hd-calendario__fuera-mes {background:var(--hd-fondo);}
.hd-calendario__fuera-mes .hd-calendario__numero {color:var(--hd-texto-suave);}
.hd-calendario__mas {display:block;padding:4px;color:var(--hd-azul-700);font-size:var(--texto-auxiliar);text-decoration:underline;overflow-wrap:anywhere;}
.hd-calendario__tareas>summary {cursor:pointer;list-style:none;}
.hd-calendario__tareas>summary::-webkit-details-marker {display:none;}
.hd-calendario__tareas h2 {display:flex;align-items:center;gap:var(--espacio-3);}
.hd-calendario__lista-tareas {padding:var(--espacio-5);}
.hd-calendario__lista-tareas>.boton {width:100%;white-space:normal;}
.hd-calendario__tarea {display:flex;align-items:center;gap:var(--espacio-3);padding:var(--espacio-4) 0;border-bottom:1px solid var(--hd-borde);min-width:0;}
.hd-calendario__tarea>div {flex:1;min-width:0;}
.hd-calendario__tarea a {color:var(--hd-texto);text-decoration:none;overflow-wrap:anywhere;}
.hd-calendario__tarea small {display:block;color:var(--hd-texto-suave);font-size:var(--texto-auxiliar);}
.hd-calendario__tarea form {margin:0;flex-shrink:0;}
@media(max-width:1100px){.hd-agenda-distribucion{grid-template-columns:minmax(0,1fr);}.hd-calendario__tarea{padding-block:var(--espacio-3);}.hd-calendario__celda{padding:4px;}.hd-calendario__horario{max-height:560px;}}
@media(max-width:600px){.hd-calendario__controles{padding:var(--espacio-4);}.hd-calendario__horario{max-height:520px;}.hd-calendario__mes{grid-template-columns:repeat(7,minmax(0,1fr));}.hd-calendario__celda{min-height:92px;padding:2px;}.hd-calendario__celda .hd-calendario__evento{padding:3px 2px;border-left-width:2px;}.hd-calendario__celda .hd-calendario__evento>small{display:none;}.hd-calendario__celda .hd-calendario__evento>span{-webkit-line-clamp:2;font-size:var(--texto-auxiliar);}.hd-calendario__dia-semana{padding:6px 0;}.hd-calendario__numero{min-width:26px;min-height:28px;}.hd-calendario__mas{font-size:var(--texto-auxiliar);padding:2px;}}

.hd-calendario__semana-movil {display:none;}
@media(max-width:600px){.hd-agenda-distribucion[data-vista="semana"] .hd-calendario__horario{display:none;}.hd-calendario__semana-movil{display:block;padding:var(--espacio-4);}.hd-calendario__semana-movil section{padding-block:var(--espacio-3);border-top:1px solid var(--hd-borde);}.hd-calendario__semana-movil h3{font-size:var(--texto-cuerpo);margin:0 0 var(--espacio-3);}.hd-calendario__semana-movil h3 a{color:var(--hd-azul-700);}.hd-calendario__semana-movil section>small{color:var(--hd-texto-suave);}}
/* Prueba de avisos: los mismos controles, radios y colores de Agenda. */
.hd-avisos{margin-block:var(--espacio-4)}
.hd-avisos>summary{cursor:pointer;list-style:none}
.hd-avisos__contenido{padding:1rem;min-width:0;overflow-wrap:anywhere}
.hd-avisos__contenido p{margin-block:0 1rem}
.hd-avisos .hd-texto-auxiliar{color:var(--hd-texto-suave);font-size:var(--texto-auxiliar)}
.hd-avisos__prueba{display:flex;flex-wrap:wrap;gap:.75rem;align-items:flex-end;margin-block:1rem}
.hd-avisos__prueba label{flex:1 1 18rem;min-width:0;display:grid;gap:.4rem}
.hd-avisos__prueba select{width:100%;max-width:100%;min-width:0}
.hd-avisos__fila{display:flex;flex-wrap:wrap;gap:.75rem;align-items:center;justify-content:space-between;padding-block:.6rem;border-top:1px solid var(--hd-borde)}
.hd-avisos__fila span{flex:1 1 16rem;min-width:0}
.hd-avisos__historial{margin-bottom:1rem}

/* v5.35: el espacio libre pertenece a la descripción, no a los campos cortos. */
.hd-tabla-comercial.hd-cotizador-tabla--simple col.col-item { width: 52px; }
.hd-tabla-comercial.hd-cotizador-tabla--simple col.col-descripcion { width: auto; }
.hd-tabla-comercial.hd-cotizador-tabla--simple col.col-unidad { width: 88px; }
.hd-tabla-comercial.hd-cotizador-tabla--simple col.columna-medida { width: 210px; }
.hd-tabla-comercial.hd-cotizador-tabla--simple col.col-cantidad { width: 92px; }
.hd-tabla-comercial.hd-cotizador-tabla--simple col.col-precio { width: 138px; }
.hd-tabla-comercial.hd-cotizador-tabla--simple col.col-total { width: 120px; }
.hd-tabla-comercial.hd-cotizador-tabla--simple col.col-acciones { width: 110px; }
.hd-cotizador-tabla--simple .hd-uso-medida { margin-top: 0; margin-bottom: var(--espacio-3); }
.hd-tabla-comercial [data-comercial-descripcion] { min-height: 42px; resize: none; overflow-y: hidden; }

/* Elecciones breves compartidas: botones y campo nativo sin duplicar contratos. */
.hd-opciones-botones{display:block;min-width:0}
.hd-opciones-botones__barra{display:flex;flex-wrap:wrap;gap:var(--gf-separacion,12px);align-items:center}
.hd-opciones-botones__barra[hidden],.hd-opciones-botones>select[hidden]{display:none!important}
.hd-opciones-botones__barra .boton{width:auto;min-width:0;white-space:normal;text-align:center;flex:0 1 auto}
.hd-opciones-botones__barra .boton:focus-visible{outline:2px solid var(--color-marca-azul,#0878b2);outline-offset:3px}

.hd-opciones-botones__fijo{display:flex;align-items:center;min-height:42px;font-weight:400}

/* Ayuda del cálculo: misma presentación en el cotizador y en Finanzas. */
.hd-resumen-calculo { display: block; margin-top: var(--espacio-2); color: var(--color-texto-suave); font-size: var(--texto-auxiliar); font-weight: 400; line-height: 1.5; overflow-wrap: anywhere; text-align: left; }
.hd-resumen-calculo[hidden] { display: none !important; }

/* Versiones comerciales dentro de la identidad de la ficha. */
.hd-versiones-cotizacion { display: flex; flex-wrap: wrap; align-items: center; gap: var(--espacio-2); margin-top: var(--espacio-3); min-width: 0; max-width: 100%; }
.hd-versiones-cotizacion a { text-decoration: underline; text-underline-offset: 3px; }
.hd-versiones-cotizacion [aria-current="page"] { font-weight: 700; }
.hd-versiones-cotizacion a:focus-visible { outline: 2px solid var(--hd-azul-700); outline-offset: 3px; }

/* El destino se reconoce sin cambiar medidas, importes ni el orden de las filas. */
[data-ficha-produccion] [data-produccion-item] { scroll-margin-block: var(--espacio-7); }
[data-ficha-produccion] [data-produccion-item]:target > :is(th,td) { background-color: var(--hd-azul-100); }
[data-ficha-produccion] [data-produccion-item]:focus-visible { outline: 2px solid var(--hd-azul-700); outline-offset: -2px; }

/* Acciones interactivas: mismos colores corporativos, con independencia de la página. */
body .accion-icono[data-accion-interfaz] {
  background: var(--hd-azul-100) !important;
  color: var(--hd-azul-900) !important;
  border-color: var(--hd-borde);
  border-radius: var(--hd-radio-control);
  box-shadow: none;
}
body .accion-icono:is([data-accion-interfaz="pagar"],[data-accion-interfaz="liquidar"],[data-accion-interfaz="restaurar"]) {
  background: var(--hd-ingreso-fondo) !important;
  color: var(--hd-ingreso) !important;
  border-color: var(--hd-ingreso-borde);
}
body .accion-icono[data-accion-interfaz="eliminar"] {
  background: var(--hd-egreso-fondo) !important;
  color: var(--hd-egreso) !important;
  border-color: var(--hd-egreso-borde);
}
body :is(.tabla,.hd-tabla) .accion-icono[data-accion-interfaz] {
  box-sizing: border-box;
  flex: 0 0 var(--tamano-icono-accion);
  width: var(--tamano-icono-accion);
  min-width: var(--tamano-icono-accion);
  height: var(--tamano-icono-accion);
  padding: var(--espacio-2);
  align-items: center;
  justify-content: center;
}
body .accion-icono[data-accion-interfaz]:focus-visible { outline: 2px solid var(--hd-azul-700); outline-offset: 3px; }
/* En la ficha estrecha, una línea adicional evita que un grupo muy grande desborde. */
body .hd-tabla[data-acciones-compactas] [data-columna-acciones] :is(.acciones-registro,.acciones-tabla,.acciones-item-cotizacion,.hd-acciones-items-cliente,.hd-acciones) {
  min-width: 0;
  max-width: 100%;
  flex-wrap: wrap;
}
