body {
  /* Valores comunes para extender la identidad sin copiar constantes. */
  --gf-familia-texto: Poppins,sans-serif;
  --gf-texto-cuerpo: 14px;
  --gf-texto-secundario: 12px;
  --gf-foco-borde: #19a0dc;
  --gf-foco-anillo: #bde4f7;
  --gf-campo-hover-borde: #afc6dd;
  --gf-radio: 10px;
  --gf-icono: var(--tamano-svg-icono-accion);
  --gf-icono-trazo: 1.8;
  --gf-margen: 24px;
  --gf-encabezado-y: 20px;
  --gf-separacion: 16px;
  --gf-acciones: 12px;
  --gf-control: 42px;
  --gf-celda: 6px;
  --gf-dinero-interno: 7px;
  --gf-borde-color: #c7d8ee;
  --gf-gradiente-tabla: linear-gradient(180deg,#f6faff,#e8f1fb);
  --gf-gradiente-totales: linear-gradient(180deg,#e6f0fc,#f5f9ff);
  --gf-borde: 1px solid var(--gf-borde-color);
  --gf-espacio: var(--gf-separacion);
  --gf-gradiente-fondo: linear-gradient(135deg, #deebfc, #c4d8f0 65%, #d5e5f8);
  --gf-gradiente-panel: linear-gradient(150deg, #fff 15%, #f5f9ff);
  --gf-gradiente-azul: linear-gradient(145deg, #0878b2, #0a78be 55%, #0f58a7);
  --gf-gradiente-neutro: linear-gradient(145deg, #fff, #eef5fc);
  --gf-sombra: 0 12px 28px rgba(15,65,150,.10), 0 3px 8px rgba(15,65,150,.06), inset 0 1px 0 rgba(255,255,255,.9);
  --gf-sombra-boton: 0 3px 6px rgba(15,65,150,.10), inset 0 1px 0 rgba(255,255,255,.65);
  color-scheme: light;

}
:is(.modulo-finanzas,body.hd-area-financiera,body:has(.hd-ficha-trabajo),body:has(.hd-nuevo-movimiento),body.hd-pagina-acceso) :where(.boton,.accion-icono,.hd-gestor-vistas a) {
  border-radius: var(--gf-radio);
  box-shadow: var(--gf-sombra-boton);
  background-image: var(--gf-gradiente-neutro);
  color: var(--color-marca-azul-oscuro);
  border: var(--gf-borde);
  font-weight: 700;
  transition: box-shadow .15s, transform .15s;
}
:is(.modulo-finanzas,body.hd-area-financiera,body:has(.hd-ficha-trabajo),body:has(.hd-nuevo-movimiento),body.hd-pagina-acceso) :where(.boton,.accion-icono,.hd-gestor-vistas a):hover { box-shadow: 0 5px 10px rgba(15,65,150,.13), inset 0 1px 0 #fff; }
:is(.modulo-finanzas,body.hd-area-financiera,body:has(.hd-ficha-trabajo),body:has(.hd-nuevo-movimiento),body.hd-pagina-acceso) :where(.boton,.accion-icono,.hd-gestor-vistas a):active { transform: translateY(1px); }
:is(.modulo-finanzas,body.hd-area-financiera,body:has(.hd-ficha-trabajo),body:has(.hd-nuevo-movimiento),body.hd-pagina-acceso) .boton-primario { background-image: var(--gf-gradiente-azul); color: #fff; border-color: var(--color-marca-azul); }
:is(.modulo-finanzas,body.hd-area-financiera,body:has(.hd-ficha-trabajo),body:has(.hd-nuevo-movimiento),body.hd-pagina-acceso) .boton-secundario { color: var(--color-marca-azul-oscuro); }
:is(.modulo-finanzas,body.hd-area-financiera,body:has(.hd-ficha-trabajo),body:has(.hd-nuevo-movimiento),body.hd-pagina-acceso) .accion-icono,
:is(.modulo-finanzas,body.hd-area-financiera,body:has(.hd-ficha-trabajo),body:has(.hd-nuevo-movimiento),body.hd-pagina-acceso) .tabla td a.accion-icono {
  background:var(--gf-gradiente-neutro);color:var(--color-marca-azul);border:var(--gf-borde);
  border-radius:var(--gf-radio);box-shadow:var(--gf-sombra-boton);flex:0 1 auto;
}
:is(.modulo-finanzas,body.hd-area-financiera,body:has(.hd-ficha-trabajo),body:has(.hd-nuevo-movimiento),body.hd-pagina-acceso) :is(.accion-abonar,.accion-liquidar) { background-image: linear-gradient(145deg,#f0fcf6,#dff3e8); color: var(--color-exito); border-color: var(--color-exito-borde); }
:is(.modulo-finanzas,body.hd-area-financiera,body:has(.hd-ficha-trabajo),body:has(.hd-nuevo-movimiento),body.hd-pagina-acceso) :is(.accion-anular,.accion-eliminar,.boton-peligro,.hd-boton-descartar) { background-image: linear-gradient(145deg,#fff7f8,#ffe7ec); color: var(--color-peligro); border-color: var(--color-peligro-borde); }
:is(.modulo-finanzas,body.hd-area-financiera,body:has(.hd-ficha-trabajo),body:has(.hd-nuevo-movimiento),body.hd-pagina-acceso) .barra-lateral { background: var(--gf-gradiente-panel); color: var(--color-marca-azul-oscuro); box-shadow: var(--gf-sombra); border-right: var(--gf-borde); }
:is(.modulo-finanzas,body.hd-area-financiera,body:has(.hd-ficha-trabajo),body:has(.hd-nuevo-movimiento),body.hd-pagina-acceso) .barra-lateral :is(.navegacion-principal,.navegacion-submenu a,.control-lateral,.marca,.marca small,.marca-version,.perfil-datos) { color: var(--color-marca-azul-oscuro); }
:is(.modulo-finanzas,body.hd-area-financiera,body:has(.hd-ficha-trabajo),body:has(.hd-nuevo-movimiento),body.hd-pagina-acceso) .barra-lateral :is(.navegacion-principal.activo,.navegacion-principal:hover) { background: var(--color-superficie-terciaria); color: var(--color-marca-azul); }
:is(.modulo-finanzas,body.hd-area-financiera,body:has(.hd-ficha-trabajo),body:has(.hd-nuevo-movimiento),body.hd-pagina-acceso) .marca-logo { background: var(--gf-gradiente-azul); border-radius: var(--gf-radio); padding: 4px; }
:is(.modulo-finanzas,body.hd-area-financiera,body:has(.hd-ficha-trabajo),body:has(.hd-nuevo-movimiento),body.hd-pagina-acceso) { background: var(--gf-gradiente-fondo); }
/* Navegación y acciones comparten el mismo tamaño y trazo de SVG. */
:is(.modulo-finanzas,body.hd-area-financiera,body:has(.hd-ficha-trabajo),body:has(.hd-nuevo-movimiento),body.hd-pagina-acceso) :is(.boton,.accion-icono,.navegacion-icono,.control-icono) > svg { width: var(--gf-icono); height: var(--gf-icono); flex: 0 0 var(--gf-icono); fill: none; stroke: currentColor; stroke-width: var(--gf-icono-trazo); stroke-linecap: round; stroke-linejoin: round; }
:is(.modulo-finanzas,body.hd-area-financiera,body:has(.hd-ficha-trabajo),body:has(.hd-nuevo-movimiento),body.hd-pagina-acceso) .barra-lateral :is(.navegacion-icono,.control-icono) { background: var(--gf-gradiente-neutro); color: var(--color-marca-azul); border: var(--gf-borde); box-shadow: var(--gf-sombra-boton); width: var(--tamano-icono-accion); height: var(--tamano-icono-accion); border-radius: var(--gf-radio); }
:is(.modulo-finanzas,body.hd-area-financiera,body:has(.hd-ficha-trabajo),body:has(.hd-nuevo-movimiento),body.hd-pagina-acceso) .barra-lateral .navegacion-principal.activo .navegacion-icono { background: var(--gf-gradiente-azul); color: #fff; border-color: var(--color-marca-azul); }
/* Ficha: utiliza los mismos tokens y controles que el Gestor. */
.hd-encabezado-pagina.hd-ficha-trabajo { padding: var(--gf-margen); border: var(--gf-borde); border-radius: var(--gf-radio); background: var(--gf-gradiente-panel); box-shadow: var(--gf-sombra); gap: var(--gf-separacion); margin-bottom: 20px; }
.hd-ficha-trabajo h1 { color: var(--color-marca-azul-oscuro); margin: 0 0 12px; font-size: var(--texto-destacado); font-weight: 700; line-height: 1.35; }
.hd-ficha-trabajo .hd-ficha-trabajo__referencia { margin: 0 0 8px; padding: 0; border: 0; color: var(--color-marca-azul-oscuro); font-size: var(--texto-auxiliar); font-weight: 700; }
.hd-ficha-trabajo__etiqueta { color: var(--color-texto-suave); font-weight: 400; }
.hd-ficha-trabajo__cliente a { color: var(--hd-azul-700); font-weight: 700; text-decoration: none; }
.hd-ficha-trabajo__cliente a:is(:hover,:focus-visible) { text-decoration: underline; text-underline-offset: 3px; }
.hd-ficha-trabajo .hd-ficha-trabajo__acciones { display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-end; gap: 8px; }
.hd-ficha-trabajo .hd-ficha-trabajo__acciones .boton { min-height: var(--gf-control); display: inline-flex; align-items: center; justify-content: center; gap: 8px; margin: 0; }
.hd-ficha-trabajo .hd-ficha-trabajo__acciones form { margin: 0; }
.hd-ficha-trabajo__contexto { gap: 8px 16px; }
.hd-ficha-trabajo__secciones { border: 0; gap: 8px; padding-top: 16px; margin-top: 8px; border-top: var(--gf-borde); }
.hd-ficha-trabajo .hd-ficha-trabajo__seccion { border: var(--gf-borde); border-radius: var(--gf-radio); padding: 8px 12px; background: var(--gf-gradiente-neutro); color: var(--color-marca-azul-oscuro); font-size: var(--gf-texto-cuerpo); font-weight: 700; }
.hd-ficha-trabajo .hd-ficha-trabajo__seccion[aria-current] { background: var(--gf-gradiente-azul); color: #fff; border-color: var(--color-marca-azul); }
.hd-ficha-trabajo .hd-ficha-trabajo__seccion[aria-current] small { color: inherit; }
body:has(.hd-ficha-trabajo) .hd-ficha-trabajo__contenido { gap: 20px; }
body:has(.hd-ficha-trabajo) .hd-ficha-trabajo__contenido > :is(.hd-panel,.hd-acordeon) { background: var(--gf-gradiente-panel); border: var(--gf-borde); border-radius: var(--gf-radio); box-shadow: var(--gf-sombra); }
body:has(.hd-ficha-trabajo) .hd-panel__encabezado { padding: 16px; border-bottom: var(--gf-borde); }
body:has(.hd-ficha-trabajo) .hd-panel__encabezado :is(h2,h3) { color: var(--color-marca-azul-oscuro); }
body:has(.hd-ficha-trabajo) .hd-panel__contenido { padding: 16px; }
body:has(.hd-ficha-trabajo) .hd-resumen-importes-trabajo { display: grid; gap: var(--gf-separacion); border: 0; background: transparent; }
body:has(.hd-ficha-trabajo) .hd-resumen-importes-trabajo > div { border: var(--gf-borde); border-radius: var(--gf-radio); padding: 20px; background: var(--gf-gradiente-panel); box-shadow: var(--gf-sombra); }
body:has(.hd-ficha-trabajo) .hd-resumen-importes-trabajo dd { text-align: right; }
body:has(.hd-ficha-trabajo) :is(input,select,textarea) { border-radius: var(--gf-radio); border-color: var(--gf-borde-color); }

/* Nuevo y editar movimiento: grupos visibles y composición compartida. */
.hd-nuevo-movimiento__encabezado { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; padding: 20px 24px; border: var(--gf-borde); border-radius: var(--gf-radio); background: var(--gf-gradiente-panel); box-shadow: var(--gf-sombra); margin-bottom: 20px; gap: var(--gf-separacion); }
.hd-nuevo-movimiento__encabezado h1 { color: var(--color-marca-azul-oscuro); margin: 4px 0 8px; }
.hd-nuevo-movimiento__encabezado p { margin: 0; }
.hd-nuevo-movimiento__encabezado .hd-acciones, .hd-nuevo-movimiento__pie .hd-acciones { gap: 8px; align-items: center; }
:is(.hd-nuevo-movimiento__encabezado,.hd-nuevo-movimiento__pie) .boton { min-height: var(--gf-control); }
.hd-nuevo-movimiento .hd-campos-movimiento, .popup-cuenta .hd-formulario.hd-nuevo-movimiento .hd-campos-movimiento { display: grid; grid-template-columns: minmax(0,1fr); gap: var(--gf-margen); padding: 0; background: transparent; }
.hd-nuevo-movimiento .hd-movimiento-grupo { grid-column: 1 / -1; display: grid; grid-template-columns: repeat(12,minmax(0,1fr)); gap: var(--gf-separacion); min-width: 0; box-sizing: border-box; margin: 0; padding: var(--gf-margen); border: var(--gf-borde); border-radius: var(--gf-radio); background: var(--gf-gradiente-panel); box-shadow: var(--gf-sombra); }
.hd-nuevo-movimiento .hd-movimiento-grupo > :is(header,.hd-movimiento-subencabezado) { grid-column: 1 / -1; display: flex; align-items: center; gap: var(--gf-acciones); }
.hd-nuevo-movimiento .hd-movimiento-grupo > header { padding-bottom: var(--gf-separacion); border-bottom: var(--gf-borde); }
.hd-nuevo-movimiento .hd-movimiento-grupo > :is(header,.hd-movimiento-subencabezado) h2 { margin: 0 0 4px; color: var(--color-marca-azul-oscuro); font-size: 18px; font-weight: 700; }
.hd-nuevo-movimiento .hd-movimiento-grupo > :is(header,.hd-movimiento-subencabezado) p { margin: 0; color: var(--color-texto-suave); font-size: var(--gf-texto-secundario); }
.hd-movimiento-paso { display: inline-flex; align-items: center; justify-content: center; flex: 0 0 36px; height: 36px; border-radius: var(--gf-radio); background: var(--gf-gradiente-azul); color: #fff; font-weight: 700; }
.hd-nuevo-movimiento .hd-movimiento-grupo > .campo-amplio { grid-column: 1 / -1; }
.hd-nuevo-movimiento .hd-movimiento-grupo > .campo-mitad { grid-column: span 6; }
body .hd-nuevo-movimiento .hd-naturaleza-solicitud { display: flex; gap: var(--gf-separacion); align-items: flex-start; }
.hd-nuevo-movimiento .hd-naturaleza-solicitud > .campo-fecha-flatpickr { grid-column: auto; }
.hd-nuevo-movimiento :is(input,select,textarea) { border-radius: var(--gf-radio); border-color: var(--gf-borde-color); font-size: var(--gf-texto-cuerpo); }
.hd-nuevo-movimiento :is(input:not([type="checkbox"]):not([type="radio"]),select) { min-height: var(--gf-control); }
.hd-nuevo-movimiento input[readonly] { background: #edf4fc; color: var(--color-texto); }
.hd-nuevo-movimiento input[data-moneda], .hd-nuevo-movimiento input[data-saldo-nuevo-movimiento] { text-align: right; }
.hd-nuevo-movimiento .selector-naturaleza-movimiento .opcion-movimiento { border: var(--gf-borde); border-radius: var(--gf-radio); background: var(--gf-gradiente-neutro); color: var(--color-marca-azul-oscuro); box-shadow: var(--gf-sombra-boton); }

.hd-nuevo-movimiento .selector-naturaleza-movimiento input:checked + .opcion-movimiento :is(b,small,svg) { color: inherit; }
.hd-nuevo-movimiento .fila-valores-financieros { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)) minmax(180px,.8fr); gap: var(--gf-separacion); margin: 0; padding: 0; background: transparent; }
.hd-nuevo-movimiento .fila-valores-financieros > label { grid-column: auto; min-width: 0; }
.hd-nuevo-movimiento .fila-valores-financieros .control-factura-financiera { grid-column: auto; align-self: end; min-height: var(--gf-control); padding-top: 0; }
.hd-nuevo-movimiento__pie { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: var(--gf-separacion); padding: 20px 24px; border: var(--gf-borde); border-radius: var(--gf-radio); background: var(--gf-gradiente-panel); margin-top: 20px; }
.hd-nuevo-movimiento__pie p { margin: 0; color: var(--color-texto-suave); font-size: var(--gf-texto-secundario); }

/* La ventana y la página comparten el mismo formulario agrupado. */
body .popup-cuenta:has(.hd-nuevo-movimiento) { background: var(--gf-gradiente-fondo); border: var(--gf-borde); border-radius: var(--gf-radio); }
body .popup-cuenta:has(.hd-nuevo-movimiento) .hd-nuevo-movimiento > header:not(.hd-cabecera-dialogo) { background: var(--gf-gradiente-panel); color: var(--color-marca-azul-oscuro); border-bottom: var(--gf-borde); box-shadow: none; padding: 20px 24px; }
body .popup-cuenta:has(.hd-nuevo-movimiento) .hd-nuevo-movimiento > header:not(.hd-cabecera-dialogo) h2 { color: var(--color-marca-azul-oscuro); font-size: 24px; font-weight: 700; }
body .popup-cuenta:has(.hd-nuevo-movimiento) .hd-nuevo-movimiento > header:not(.hd-cabecera-dialogo) .sobrelinea { color: var(--color-texto-suave); font-size: var(--gf-texto-secundario); font-weight: 400; }
body .popup-cuenta:has(.hd-nuevo-movimiento) .cerrar-popup { color: var(--color-marca-azul-oscuro); background: var(--gf-gradiente-neutro); border: var(--gf-borde); border-radius: var(--gf-radio); }
body .popup-cuenta:has(.hd-nuevo-movimiento) .hd-campos-movimiento { padding: 20px 24px; }
body .popup-cuenta:has(.hd-nuevo-movimiento) .hd-nuevo-movimiento > footer { margin: 0; padding: 20px 24px; background: var(--gf-gradiente-panel); border-top: var(--gf-borde); }
body .hd-nuevo-movimiento label > span:not(.opcion-movimiento):not(.control-flatpickr):not(.campo-autocompletar) { color: var(--color-texto-suave); }
body .hd-nuevo-movimiento input::placeholder, body .hd-nuevo-movimiento textarea::placeholder { color: var(--color-texto-suave); opacity: 1; }
body .hd-nuevo-movimiento textarea { resize: none !important; overflow-y: hidden; min-height: var(--gf-control); }
body .hd-nuevo-movimiento .hd-tabla thead th { background: var(--gf-gradiente-tabla); color: var(--color-marca-azul-oscuro); font-size: var(--gf-texto-cuerpo); text-transform: none; }
body .hd-nuevo-movimiento .hd-tabla-contenedor { border: var(--gf-borde); border-radius: var(--gf-radio); overflow: auto; }
body .hd-nuevo-movimiento .hd-tabla { table-layout: fixed; width: 100%; border: 0; margin: 0; box-shadow: none; }

body .hd-nuevo-movimiento .hd-ayuda-campo { color: var(--color-texto-suave); font-size: var(--gf-texto-secundario); }

body .hd-nuevo-movimiento .hd-tabla textarea { margin: 0; }
body .hd-nuevo-movimiento .hd-base-precio { color: var(--color-texto-suave); font-size: var(--gf-texto-secundario); }
body .hd-nuevo-movimiento .hd-calcular-items[hidden] { display: none !important; }
body .hd-unidades-ventana { border-radius: var(--gf-radio); border: var(--gf-borde); background: var(--gf-gradiente-panel); }
body .hd-unidades-ventana header { background: var(--gf-gradiente-panel); color: var(--color-marca-azul-oscuro); box-shadow: none; border-bottom: var(--gf-borde); }
body .hd-unidades-ventana header :is(h2,p) { color: inherit; }
body .hd-unidades-ventana :is(button,input) { border-radius: var(--gf-radio); }
body .hd-unidades-ventana small { color: var(--color-texto-suave); }

body .hd-unidades-opciones { grid-template-columns: repeat(auto-fill,minmax(210px,1fr)); gap: var(--gf-acciones); }
body .hd-unidades-opcion { padding: 16px 20px; }
body .hd-unidades-ventana .cerrar-popup { color: var(--color-marca-azul-oscuro); background: var(--gf-gradiente-neutro); border: var(--gf-borde); }

body .hd-nuevo-movimiento .hd-uso-medida > span { display: none; }
body .hd-nuevo-movimiento .fila-valores-financieros .control-factura-financiera { display: flex; flex-direction: column-reverse; align-items: center; justify-content: space-between; gap: 8px; }

/* Los datos se adaptan al ancho real del diálogo, sin alterar su detalle. */
.hd-nuevo-movimiento .hd-movimiento-datos-contenedor{grid-column:1 / -1;min-width:0;container-type:inline-size;container-name:hd-datos-movimiento;}
.hd-nuevo-movimiento .hd-movimiento-datos{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:var(--gf-separacion);min-width:0;}
.hd-nuevo-movimiento .hd-movimiento-datos > *{min-width:0;max-width:100%;grid-column:auto;}
.hd-nuevo-movimiento .hd-movimiento-datos > .campo-amplio{grid-column:1 / -1;}
.hd-nuevo-movimiento .hd-movimiento-datos > :is(.hd-naturaleza-solicitud,.campo-fecha-flatpickr){grid-column:auto;}
.hd-nuevo-movimiento .hd-movimiento-datos > [data-grupo-alta]{max-width:none;}
body .hd-nuevo-movimiento .hd-movimiento-datos .hd-naturaleza-solicitud{display:grid;grid-template-columns:minmax(0,1fr) 72px;gap:var(--gf-acciones);}
body .hd-nuevo-movimiento .hd-movimiento-datos .selector-naturaleza-movimiento{min-width:0;gap:var(--gf-acciones);}
body .hd-nuevo-movimiento .hd-movimiento-datos .opcion-movimiento{min-height:var(--gf-control);box-sizing:border-box;grid-template-columns:20px minmax(0,1fr);grid-template-rows:auto;gap:6px;padding:9px 10px;transform:none;}
body .hd-nuevo-movimiento .hd-movimiento-datos .opcion-movimiento svg{width:18px;height:18px;grid-row:1;}
body .hd-nuevo-movimiento .hd-movimiento-datos .opcion-movimiento b{align-self:center;}
body .hd-nuevo-movimiento .hd-movimiento-datos .opcion-movimiento small{display:none;}
body .hd-nuevo-movimiento .hd-movimiento-datos .control-factura-financiera:not([hidden]){display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:auto var(--gf-control);gap:8px;align-items:center;justify-items:center;justify-content:stretch!important;}
body .hd-nuevo-movimiento .hd-movimiento-datos .control-factura-financiera > span{grid-row:1;white-space:nowrap;}
body .hd-nuevo-movimiento .hd-movimiento-datos .control-factura-financiera input{grid-row:2;align-self:center;margin:0;}
body .hd-nuevo-movimiento .hd-movimiento-datos .campo-fecha-flatpickr input{font-weight:var(--peso-regular);}
@container hd-datos-movimiento (min-width:1280px){
  .hd-nuevo-movimiento .hd-movimiento-datos{grid-template-columns:minmax(330px,1.5fr) minmax(265px,1.1fr) repeat(3,minmax(0,1fr));}
  .hd-nuevo-movimiento .hd-movimiento-datos > [data-grupo-alta]{grid-column:auto;}
}
@container hd-datos-movimiento (max-width:640px){
  .hd-nuevo-movimiento .hd-movimiento-datos{grid-template-columns:minmax(0,1fr);}
}
@container hd-datos-movimiento (max-width:320px){
  body .hd-nuevo-movimiento .hd-movimiento-datos .hd-naturaleza-solicitud{grid-template-columns:minmax(0,1fr);}
  body .hd-nuevo-movimiento .hd-movimiento-datos .control-factura-financiera:not([hidden]){grid-template-columns:18px minmax(0,1fr);grid-template-rows:var(--gf-control);justify-items:start;}
  body .hd-nuevo-movimiento .hd-movimiento-datos .control-factura-financiera input{grid-row:1;grid-column:1;}
  body .hd-nuevo-movimiento .hd-movimiento-datos .control-factura-financiera > span{grid-row:1;grid-column:2;text-align:left;}
}
@media(max-width:700px){.hd-nuevo-movimiento .hd-movimiento-datos{grid-template-columns:minmax(0,1fr);}}
body .hd-nuevo-movimiento .selector-naturaleza-movimiento legend { color: var(--color-texto-suave); font-size: var(--gf-texto-secundario); padding: 0; margin-bottom: 8px; }
body .hd-nuevo-movimiento .selector-naturaleza-movimiento .opcion-movimiento-ingreso { background: var(--color-exito-suave); color: var(--color-exito); border-color: var(--color-exito-borde); }
body .hd-nuevo-movimiento .selector-naturaleza-movimiento .opcion-movimiento-egreso { background: var(--color-peligro-suave); color: var(--color-peligro); border-color: var(--color-peligro-borde); }
body .hd-nuevo-movimiento .opcion-movimiento:hover { filter: brightness(1.08); box-shadow: 0 4px 12px #0f419633; }
body .hd-nuevo-movimiento .hd-tabla .identificador-item { text-align: center !important; padding-left: 4px; padding-right: 4px; }
body .hd-nuevo-movimiento .hd-tabla small, body .hd-nuevo-movimiento .hd-medidas label > span { display: block; margin: 6px 0 0; font-size: var(--gf-texto-secundario); line-height: 1.4; font-weight: 400; color: var(--color-texto-suave); text-align: center; }
body .hd-nuevo-movimiento .hd-medidas label { display: flex; flex-direction: column-reverse; gap: 0; }
body .hd-nuevo-movimiento .hd-medidas .medida-no-aplica, body .hd-nuevo-movimiento .hd-medidas--inactivas > label { display: none !important; }
body .hd-nuevo-movimiento .hd-tabla tbody td { vertical-align: top; padding-top: 12px !important; }

/* Los resultados ocupan la misma altura que los campos de importe. */
body .hd-nuevo-movimiento .hd-tabla [data-comercial-total] { display: flex; align-items: center; justify-content: flex-end; min-height: var(--gf-control); margin: 0; text-align: right !important; }
body:has(.hd-nuevo-movimiento) .flatpickr-calendar { font-family: var(--gf-familia-texto); background: var(--gf-gradiente-panel); border: var(--gf-borde); border-radius: var(--gf-radio); box-shadow: var(--gf-sombra); color: var(--color-texto); }
body:has(.hd-nuevo-movimiento) .flatpickr-months, body:has(.hd-nuevo-movimiento) .flatpickr-weekdays { background: #e6f0fc; border-radius: var(--gf-radio) var(--gf-radio) 0 0; }
body:has(.hd-nuevo-movimiento) :is(.flatpickr-current-month,.flatpickr-weekday) { color: var(--color-marca-azul-oscuro); font-weight: 700; background: transparent; }
body:has(.hd-nuevo-movimiento) .flatpickr-day { border-radius: var(--gf-radio); font-weight: 400; }
body:has(.hd-nuevo-movimiento) .flatpickr-day:hover { background: #e6f0fc; border-color: var(--gf-borde-color); }
body:has(.hd-nuevo-movimiento) .flatpickr-day.selected { background: var(--gf-gradiente-azul); color: #fff; border-color: var(--color-marca-azul); }
body:has(.hd-nuevo-movimiento) .flatpickr-time { border-top: var(--gf-borde); background: #f5f9ff; }
body:has(.hd-nuevo-movimiento) .flatpickr-time input { font-family: inherit; font-weight: 700; color: var(--color-marca-azul-oscuro); }

body .hd-nuevo-movimiento .control-factura-financiera { align-self: stretch !important; display: flex; flex-direction: column-reverse; align-items: center; justify-content: flex-end !important; }
body .hd-nuevo-movimiento .control-factura-financiera > span { align-self: stretch; text-align: center; font-size: var(--gf-texto-secundario); font-weight: 700; color: var(--color-texto-suave); line-height: 1.4; margin: 0; }
body .hd-nuevo-movimiento .control-factura-financiera input { margin: 0; align-self: center; margin-top: 10px; }
body .hd-nuevo-movimiento :is([data-comercial-cantidad],[data-total-items-cantidad]) { text-align: center !important; }
body .hd-nuevo-movimiento :is([data-total-items-costo],[data-total-items-precio],[data-total-items-ganancia]) { text-align: right !important; }

/* Importes y referencias por unidad alineados a la derecha. */
body .hd-nuevo-movimiento [data-comercial-campo="precio"] small { text-align: right; }
body .hd-nuevo-movimiento [data-comercial-ganancia] { display: none; }

/* Importes por columna: mismo eje en filas y totales. */
body .hd-nuevo-movimiento .hd-tabla :is([data-comercial-campo="precio"],[data-etiqueta="Costo"],[data-etiqueta="Total"]) { text-align: right !important; }
body .hd-nuevo-movimiento .hd-tabla :is([data-comercial-base],[data-costo-base],[data-costo-total],[data-ganancia-base]) { text-align: right !important; }

body .hd-nuevo-movimiento .hd-tabla :is([data-total-items-importe],[data-ganancia-total-cliente],[data-abono-item-visual]) { text-align: right !important; }
body .hd-nuevo-movimiento .hd-tabla td[data-total-items-cantidad] { text-align: center !important; }
body .hd-nuevo-movimiento .hd-tabla td:has([data-total-items-importe]) { text-align: right !important; }
body .hd-nuevo-movimiento .hd-tabla strong { font-weight: 700; }

body .hd-nuevo-movimiento .hd-detalle-comercial__encabezado { justify-content: flex-end; }
body .hd-nuevo-movimiento .hd-detalle-comercial__encabezado > strong { margin-right: auto; }
body .hd-nuevo-movimiento [data-importes-compactos][hidden] { display: none !important; }
.hd-dialogo-movimiento { font-family: var(--gf-familia-texto); color: var(--color-texto); background: var(--gf-gradiente-panel); border: var(--gf-borde); border-radius: var(--gf-radio); padding: var(--gf-margen); width: min(560px,calc(100vw - 32px)); box-sizing:border-box; max-height: 85vh; max-height:85dvh; overflow: auto; box-shadow: var(--gf-sombra); }
.hd-dialogo-movimiento::backdrop { background: #0f254b70; }
.hd-dialogo-movimiento h2 { color: var(--color-marca-azul-oscuro); font-size: 18px; margin: 8px 0 16px; font-weight: 700; }
.hd-dialogo-marca { font-size: var(--gf-texto-secundario); color: var(--color-marca-azul-oscuro); font-weight: 700; }
.hd-dialogo-movimiento p { margin: 0 0 var(--gf-separacion); font-size: var(--gf-texto-cuerpo); color: var(--color-texto-suave); line-height: 1.6; }
.hd-dialogo-movimiento label { display: flex; flex-direction: column; gap: 8px; font-size: var(--gf-texto-cuerpo); }
.hd-dialogo-movimiento input { min-height: var(--gf-control); background: white; border: var(--gf-borde); border-radius: var(--gf-radio); padding: 10px 16px; text-align: left; font: inherit; }
.hd-dialogo-movimiento [data-moneda] { text-align: right; }
.hd-dialogo-movimiento :is(input,select,textarea)[aria-invalid="true"] { border-color: var(--hd-color-negativo); }
.hd-dialogo-movimiento footer { display: flex; flex-wrap: wrap; gap: var(--gf-acciones); justify-content: flex-end; margin-top: var(--gf-margen); }
.hd-dialogo-movimiento [data-error] { margin: var(--gf-separacion) 0; }
.hd-dialogo-movimiento :is(h2,p,label,footer){min-width:0;overflow-wrap:anywhere;}
.hd-dialogo-movimiento :is(input,select,textarea){max-width:100%;box-sizing:border-box;}
body .hd-grupos-alta-panel{border:var(--gf-borde);border-radius:var(--gf-radio);box-shadow:var(--gf-sombra);font:400 var(--gf-texto-cuerpo)/1.5 var(--gf-familia-texto);}
body .hd-grupos-alta-panel .hd-grupo-opcion{min-width:0;min-height:var(--gf-control);border-radius:var(--gf-radio);overflow-wrap:anywhere;gap:4px;}
body .hd-grupos-alta-panel .hd-grupo-opcion--ingreso{background:var(--color-exito-suave);border-color:var(--color-exito-borde);color:var(--color-exito);}
body .hd-grupos-alta-panel .hd-grupo-opcion--egreso{background:var(--color-peligro-suave);border-color:var(--color-peligro-borde);color:var(--color-peligro);}
body .hd-grupos-alta-panel .hd-grupo-opcion :is(strong,small){color:inherit;}
body .hd-grupos-alta-panel .hd-grupo-opcion strong{font-weight:700;}
body .hd-grupos-alta-panel .hd-grupo-opcion small{font:400 var(--gf-texto-secundario)/1.5 var(--gf-familia-texto);}
body .hd-grupos-alta-panel .hd-grupo-opcion[aria-selected="true"]{outline:2px solid var(--gf-foco-borde);outline-offset:-2px;}
body .hd-nuevo-movimiento [data-grupo-alta-nombre][data-grupo-alta-tipo="ingreso"]{background:var(--color-exito-suave);border-color:var(--color-exito-borde);}
body .hd-nuevo-movimiento [data-grupo-alta-nombre][data-grupo-alta-tipo="egreso"]{background:var(--color-peligro-suave);border-color:var(--color-peligro-borde);}
@media(max-width:600px){.hd-dialogo-movimiento{--gf-margen:16px;} .hd-dialogo-movimiento footer .boton{flex:1 1 140px;}}
.hd-abono-preview { max-height: 240px; overflow: auto; }
.hd-abono-preview p { display: flex; justify-content: space-between; border-bottom: 1px solid #c7d8ee; padding-bottom: 8px; }

body .hd-nuevo-movimiento .hd-tabla td:has([data-total-items-costo]), body .hd-nuevo-movimiento .hd-tabla td:has([data-total-items-ganancia]) { text-align: right !important; }

/* Gastos privados e importes en dos espacios contiguos. */
.hd-gastos-importes { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: var(--gf-margen); align-items: stretch; margin-top: 24px; min-width: 0; }
.hd-gastos-importes:has(> .hd-gastos-internos[hidden]), .hd-gastos-importes:has(> [data-importes-compactos][hidden]) { grid-template-columns: minmax(0,1fr); }
.hd-gastos-importes:has(> .hd-gastos-internos[hidden]):has(> [data-importes-compactos][hidden]) { display: none; }
body .hd-nuevo-movimiento .hd-gastos-importes > .fila-valores-financieros { grid-column: auto; display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); align-content: center; align-items: end; gap: var(--gf-separacion); margin: 0; padding: 0; min-width: 0; border: 0; border-radius: 0; background: transparent; }
body .hd-nuevo-movimiento .hd-gastos-importes .hd-acciones-en-importes { grid-column: auto; }
.hd-gastos-internos { min-width: 0; box-sizing: border-box; margin: 0; padding: var(--gf-margen); border: 1px solid var(--color-peligro-borde); border-radius: var(--gf-radio); background: var(--color-peligro-suave); }
.hd-gastos-internos[hidden] { display: none !important; }
.hd-gastos-internos header { display: flex; flex-wrap: wrap; gap: 8px 16px; align-items: center; margin-bottom: 16px; }
.hd-gastos-internos h3 { color: var(--hd-color-negativo); font-size: var(--gf-texto-cuerpo); margin: 0; }
.hd-gastos-internos header span { color: #703b45; font-size: var(--gf-texto-secundario); }
.hd-gasto-fila { display: grid; grid-template-columns: minmax(0,1fr) minmax(120px,150px) 88px; gap: var(--gf-separacion); align-items: end; margin-bottom: 16px; min-width: 0; }
.hd-gasto-fila label { min-width: 0; display: flex; flex-direction: column; gap: 8px; font-size: var(--gf-texto-secundario); color: #703b45; }
.hd-gasto-fila input { width: 100%; min-width: 0; box-sizing: border-box; min-height: var(--gf-control); border: 1px solid var(--color-peligro-borde); border-radius: var(--gf-radio); padding: 10px 16px; background: white; }
body .hd-nuevo-movimiento .hd-boton-gasto { color: var(--hd-color-negativo); border-color: var(--color-peligro-borde); background: var(--color-peligro-suave); }
.hd-item-arrastrando { opacity: .5; outline: 2px solid var(--gf-foco-borde); }
body .hd-nuevo-movimiento [data-comercial-grupo] { font-size: var(--gf-texto-secundario); min-height: 30px; margin-bottom: 6px; color: var(--color-marca-azul-oscuro); font-weight: 700; }
body .hd-nuevo-movimiento [data-comercial-grupo]:has(option:only-child) { display: none; }

/* Una única distribución de columnas, sumada al 100 %. */
body .hd-nuevo-movimiento .hd-tabla col.col-item { width: 3%; }
body .hd-nuevo-movimiento .hd-tabla col.col-descripcion { width: 27%; }
body .hd-nuevo-movimiento .hd-tabla col.col-unidad { width: 5%; }
body .hd-nuevo-movimiento .hd-tabla col.col-uso { width: 8%; }
body .hd-nuevo-movimiento .hd-tabla col.columna-medida { width: 9%; }
body .hd-nuevo-movimiento .hd-tabla col.col-cantidad { width: 4%; }
body .hd-nuevo-movimiento .hd-tabla col.col-costo, body .hd-nuevo-movimiento .hd-tabla col.col-precio, body .hd-nuevo-movimiento .hd-tabla col.col-ganancia, body .hd-nuevo-movimiento .hd-tabla col.col-total { width: 9%; }
body .hd-nuevo-movimiento .hd-tabla col.col-acciones { width: 8%; }
body .hd-nuevo-movimiento .hd-tabla :is(th,td) { min-width: 0; padding-inline: var(--gf-celda) !important; overflow-wrap: anywhere; }
body .hd-nuevo-movimiento .hd-tabla :is(input,select,textarea) { width: 100%; min-width: 0 !important; max-width: 100%; padding-inline: var(--gf-celda); }
body .hd-nuevo-movimiento .hd-medidas { min-width: 0; gap: 4px; }

.hd-acciones-gasto { display: flex; justify-content: center; gap: 8px; align-items: center; min-height: var(--gf-control); }
body .hd-nuevo-movimiento :is([data-total-items-gastos],[data-total-items-costo],[data-costo-total]), .hd-gastos-internos [data-gasto-valor] { color: var(--hd-color-negativo) !important; }

body .hd-nuevo-movimiento .acciones-item-cotizacion { min-width: 0; display: flex; flex-wrap: wrap; justify-content: center; gap: 4px; }
body .hd-nuevo-movimiento .acciones-item-cotizacion .accion-icono { min-width: 30px; width: 30px; height: 30px; padding: 5px; }

body .hd-nuevo-movimiento :is([data-total-items-gastos],[data-total-items-costo],[data-costo-total])[data-tono-importe="cero"] { color: var(--color-texto) !important; }

:is(.modulo-finanzas,body.hd-area-financiera,body:has(.hd-ficha-trabajo),body:has(.hd-nuevo-movimiento),body.hd-pagina-acceso) .hd-boton-abono { background: var(--color-exito-suave); color: var(--hd-color-positivo); border-color: var(--color-exito-borde); }
:is(.modulo-finanzas,body.hd-area-financiera,body:has(.hd-ficha-trabajo),body:has(.hd-nuevo-movimiento),body.hd-pagina-acceso) .hd-boton-abono:hover { background: #d2ebdd; color: #107349; }
body .hd-nuevo-movimiento .selector-naturaleza-movimiento input:checked + .opcion-movimiento-ingreso { background: var(--hd-color-positivo); color: #fff; border-color: var(--hd-color-positivo); }
body .hd-nuevo-movimiento .selector-naturaleza-movimiento input:checked + .opcion-movimiento-ingreso small { color: #fff; }
body .hd-nuevo-movimiento :is([data-costo-total],[data-ganancia-base]) { font-weight: 700; }
body .hd-nuevo-movimiento [data-moneda-gasto] { color: var(--hd-color-negativo); font-weight: 700; text-align: right; }

.hd-descripcion-acciones { display: flex; flex-wrap:wrap; align-items: flex-end; gap: var(--gf-separacion); grid-column: 1 / -1; min-width: 0; margin-bottom: var(--gf-separacion); }
.hd-descripcion-acciones > label { flex: 1 1 360px; min-width: 0; max-width:100%; }
body .hd-nuevo-movimiento .hd-descripcion-acciones > .hd-detalle-comercial__encabezado{flex:0 1 auto;min-width:0;max-width:100%;}
body .hd-nuevo-movimiento .hd-descripcion-acciones .hd-detalle-comercial__encabezado { display: flex; gap: var(--gf-acciones); margin: 0; flex-wrap: wrap; justify-content: flex-end; }
body .hd-nuevo-movimiento [data-costo-total] strong { display: block; font-size: var(--gf-texto-cuerpo); font-weight: 700; }
body .hd-nuevo-movimiento .hd-tabla th { white-space: normal; overflow-wrap: normal; }

/* Espaciado compartido de acciones en las vistas aprobadas. */
:is(.modulo-finanzas,body.hd-area-financiera,body:has(.hd-ficha-trabajo),body:has(.hd-nuevo-movimiento),body.hd-pagina-acceso) .hd-acciones { gap: var(--gf-acciones); }
body .hd-nuevo-movimiento :is(.hd-detalle-comercial__encabezado,.hd-acciones-en-importes) .boton { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: var(--gf-control); padding: 10px 16px; margin: 0; border-radius: var(--gf-radio); font-size: var(--gf-texto-cuerpo); font-weight: 700; white-space: nowrap; }
body .hd-nuevo-movimiento .hd-detalle-costo { text-align: right; color: var(--color-texto-suave); }
body .hd-nuevo-movimiento .hd-detalle-costo > small { display: inline; }
body .hd-nuevo-movimiento .hd-detalle-costo [data-costo-base] { color: var(--hd-color-negativo); }

body .hd-nuevo-movimiento .selector-naturaleza-movimiento { gap: var(--gf-separacion); }

/* Misma base, tamaño y alineación para importes de filas y totales. */
body .hd-nuevo-movimiento .hd-tabla :is([data-comercial-total],[data-ganancia-total-cliente],[data-abono-item-visual]) { display: flex; min-height: var(--gf-control); align-items: center; justify-content: flex-end; font-size: var(--gf-texto-cuerpo); }
body .hd-nuevo-movimiento .hd-tabla .celda-dinero { text-align: right !important; font-size: var(--gf-texto-cuerpo); }
body .hd-nuevo-movimiento .hd-tabla .celda-dinero small { font-size: var(--gf-texto-secundario); line-height: 1.4; }
body .hd-nuevo-movimiento [data-ganancia-base] strong { font-size: var(--gf-texto-cuerpo); color: inherit !important; white-space: nowrap; }
body .hd-nuevo-movimiento .selector-naturaleza-movimiento input:checked + .opcion-movimiento-egreso { background: var(--hd-color-negativo); color: white; border-color: var(--hd-color-negativo); }

body .hd-nuevo-movimiento .hd-tabla :is([data-comercial-total],[data-ganancia-total-cliente],[data-abono-item-visual],[data-costo-total] strong,[data-ganancia-base] strong) { padding-right: var(--gf-dinero-interno); }

/* Avisos compartidos: misma tipografía, bordes y separación. */
:is(.modulo-finanzas,body.hd-area-financiera,body:has(.hd-ficha-trabajo),body:has(.hd-nuevo-movimiento),body.hd-pagina-acceso) .hd-alerta { box-sizing: border-box; min-width: 0; max-width: 100%; margin: 0 0 var(--gf-margen); padding: 16px var(--gf-margen); border: var(--gf-borde); border-radius: var(--gf-radio); font: 400 var(--gf-texto-cuerpo)/1.6 var(--gf-familia-texto); overflow-wrap: anywhere; }
:is(.modulo-finanzas,body.hd-area-financiera,body:has(.hd-ficha-trabajo),body:has(.hd-nuevo-movimiento),body.hd-pagina-acceso) .hd-alerta--neutral { color: var(--color-texto-suave); background: #f3f8ff; }
:is(.modulo-finanzas,body.hd-area-financiera,body:has(.hd-ficha-trabajo),body:has(.hd-nuevo-movimiento),body.hd-pagina-acceso) .hd-alerta--positivo { color: #106847; border-color: var(--color-exito-borde); background: var(--color-exito-suave); }
:is(.modulo-finanzas,body.hd-area-financiera,body:has(.hd-ficha-trabajo),body:has(.hd-nuevo-movimiento),body.hd-pagina-acceso) .hd-alerta--negativo { color: var(--hd-color-negativo); border-color: var(--color-peligro-borde); background: var(--color-peligro-suave); }
:is(.modulo-finanzas,body.hd-area-financiera,body:has(.hd-ficha-trabajo),body:has(.hd-nuevo-movimiento),body.hd-pagina-acceso) .hd-alerta--advertencia { color: var(--color-advertencia); border-color: var(--color-advertencia-borde); background: var(--color-advertencia-suave); }
:is(.modulo-finanzas,body.hd-area-financiera,body:has(.hd-ficha-trabajo),body:has(.hd-nuevo-movimiento),body.hd-pagina-acceso) .hd-alerta[hidden] { display: none !important; }
:is(.modulo-finanzas,body.hd-area-financiera,body:has(.hd-ficha-trabajo),body:has(.hd-nuevo-movimiento),body.hd-pagina-acceso) :is(.campo-error,.hd-error-campo) { margin-top: 6px; font: 400 var(--gf-texto-secundario)/1.5 var(--gf-familia-texto); color: var(--hd-color-negativo); white-space: normal; overflow-wrap: anywhere; }
:is(.modulo-finanzas,body.hd-area-financiera,body:has(.hd-ficha-trabajo),body:has(.hd-nuevo-movimiento),body.hd-pagina-acceso) :is(input,select,textarea)[aria-invalid="true"] { border-color: var(--hd-color-negativo); }
:is(.modulo-finanzas,body.hd-area-financiera,body:has(.hd-ficha-trabajo),body:has(.hd-nuevo-movimiento),body.hd-pagina-acceso) :is(.boton,.accion-icono):focus-visible { outline: 3px solid var(--color-marca-azul-claro); outline-offset: 3px; }
/* Avisos dentro del ancho útil y con el mismo margen de las secciones. */
.hd-nuevo-movimiento > .hd-resumen-validacion { box-sizing: border-box; width: auto; max-width: 100%; min-width: 0; margin: 0 0 var(--gf-margen); overflow-wrap: anywhere; }
body .popup-cuenta:has(.hd-nuevo-movimiento) .hd-nuevo-movimiento > .hd-resumen-validacion { margin-inline: var(--gf-margen); }
.hd-nuevo-movimiento .hd-resumen-validacion :is(ul,li,a,p) { max-width: 100%; white-space: normal; overflow-wrap: anywhere; }
.hd-nuevo-movimiento .hd-resumen-validacion > strong { display: block; font-size: var(--gf-texto-cuerpo); font-weight: 700; }
.hd-nuevo-movimiento .hd-resumen-validacion > p { margin: 8px 0 0; }
.hd-nuevo-movimiento .hd-resumen-validacion > ul { display: grid; gap: 8px; margin: 12px 0 0; padding-left: 20px; }
.hd-nuevo-movimiento .hd-resumen-validacion a { color: var(--color-marca-azul); font-weight: 700; }
.hd-nuevo-movimiento .hd-resumen-validacion a:focus-visible { outline: 3px solid var(--color-marca-azul-claro); outline-offset: 3px; border-radius: 4px; }
.hd-nuevo-movimiento .hd-error-campo { display: block; }


[data-popup-cuenta]:has(.hd-editar-movimiento) { width: min(1800px,calc(100vw - 48px)); max-width: calc(100vw - 48px); }
.hd-editar-movimiento .hd-edicion-campos { border: 0; margin: 0; padding: 0; min-width: 0; }
.hd-editar-movimiento .hd-calcular-items { display: flex; gap: 8px; align-items: center; margin: 0 0 16px; font-size: var(--gf-texto-secundario); color: var(--color-texto-suave); }

/* Las acciones de edición aprovechan la franja de importes. */
body .hd-editar-movimiento .hd-gastos-importes > .fila-valores-financieros { grid-column: 1 / -1; grid-template-columns: repeat(3,minmax(120px,1fr)) max-content; align-content: start; align-items: end; }
body .hd-editar-movimiento .hd-acciones-en-importes { display: flex; flex-wrap: wrap; justify-content: flex-end; align-items: center; gap: var(--gf-acciones); min-width: 0; margin: 0; padding: 0; border: 0; background: transparent; box-shadow: none; }
body .hd-editar-movimiento .hd-acciones-en-importes .acciones-popup-cuenta { display: flex; flex-wrap: nowrap; gap: var(--gf-acciones); margin: 0; }

body .hd-editar-movimiento .hd-detalle-comercial { box-sizing: border-box; max-width: 100%; padding: 0; }

body .hd-editar-movimiento [data-saldo-cuenta] { text-align: right; }
body :is([data-saldo-cuenta],[data-saldo-nuevo-movimiento],[data-total-items-saldo],.celda-dinero[data-etiqueta="Saldo"],.celda-dinero[data-etiqueta="Por cobrar"],.celda-dinero[data-etiqueta="Por pagar"]) { font-weight: 700; }

/* Un botón estándar y un panel horizontal compartido por esquema de tabla. */
.hd-ajustes-columnas[hidden] { display: none !important; }
.hd-ajustes-columnas { box-sizing: border-box; min-width: 0; padding: var(--gf-margen); }
.hd-columnas-control { padding: var(--gf-separacion); border: var(--gf-borde); border-radius: var(--gf-radio); background: #f3f8ff; }
.hd-columnas-control + .hd-columnas-control { margin-top: var(--gf-espacio); }
.hd-columnas-panel { display: grid; grid-template-columns: repeat(auto-fit,minmax(150px,1fr)); gap: var(--gf-acciones); width: 100%; }
.hd-columnas-opcion { display: grid; grid-template-columns: 20px minmax(0,1fr) 20px; grid-template-rows: minmax(42px,auto) 38px; align-items: center; gap: 6px; }
.hd-columnas-titulo { grid-column: 1 / 4; display: flex; align-items: center; justify-content: center; gap: 8px; text-align: center; font-weight: 700; color: var(--color-marca-azul-oscuro); }
.hd-columnas-opcion input[type=checkbox] { width: 18px; min-height: 18px; margin: 0; }
.hd-columnas-opcion input[type=number] { grid-column: 1 / 3; width: 100%; min-height: 38px; border: var(--gf-borde); box-sizing: border-box; border-radius: var(--gf-radio); font: inherit; font-size: var(--gf-texto-cuerpo); padding: 6px 10px; background: #fff; color: var(--color-marca-azul-oscuro); }
.hd-columnas-pie { display: flex; align-items: center; flex-wrap: wrap; gap: var(--gf-separacion); margin-top: var(--gf-separacion); }
.hd-columnas-control .hd-columnas-estado { margin: var(--gf-separacion) 0 0; }
.hd-columnas-opcion input[aria-invalid="true"] { border-color: var(--hd-color-negativo); }
.hd-columnas-pie p { margin: 0; color: var(--color-texto-suave); font-size: var(--gf-texto-secundario); }

/* Medidas compartidas por gestor, cliente y formularios financieros. */

.hd-area-financiera .espacio-trabajo { padding: 0; box-sizing: border-box; }
.hd-area-financiera .pagina { padding: var(--gf-margen); box-sizing: border-box; }
:is(.modulo-finanzas,body.hd-area-financiera,body:has(.hd-ficha-trabajo),body:has(.hd-nuevo-movimiento),body.hd-pagina-acceso) :is(.boton,.hd-gestor-vistas a) { box-sizing: border-box; min-height: var(--gf-control); padding: 10px 16px; display: inline-flex; align-items: center; justify-content: center; gap: 8px; margin: 0; border-radius: var(--gf-radio); font-family: var(--gf-familia-texto); font-size: var(--gf-texto-cuerpo); font-weight: 700; line-height: 20px; text-decoration: none; }
.hd-area-financiera :is(.hd-acciones,.hd-ficha-trabajo__acciones,.hd-gestor-vistas) { gap: var(--gf-acciones); align-items: center; }
/* Perfil legible sobre la barra lateral clara. */
:is(.modulo-finanzas,body.hd-area-financiera,body:has(.hd-ficha-trabajo),body:has(.hd-nuevo-movimiento),body.hd-pagina-acceso) .barra-lateral .perfil-datos { text-align: right; justify-items: end; }
:is(.modulo-finanzas,body.hd-area-financiera,body:has(.hd-ficha-trabajo),body:has(.hd-nuevo-movimiento),body.hd-pagina-acceso) .barra-lateral .perfil-datos strong { color: var(--color-marca-azul-oscuro); font: 700 var(--gf-texto-secundario)/1.5 var(--gf-familia-texto); }
:is(.modulo-finanzas,body.hd-area-financiera,body:has(.hd-ficha-trabajo),body:has(.hd-nuevo-movimiento),body.hd-pagina-acceso) .barra-lateral .perfil-datos small { color: var(--color-texto-suave); font: 400 var(--gf-texto-secundario)/1.5 var(--gf-familia-texto); }
:is(.modulo-finanzas,body.hd-area-financiera,body:has(.hd-ficha-trabajo),body:has(.hd-nuevo-movimiento),body.hd-pagina-acceso) .barra-lateral .navegacion-titulo { color: var(--color-texto-suave); }
:is(.modulo-finanzas,body.hd-area-financiera,body:has(.hd-ficha-trabajo),body:has(.hd-nuevo-movimiento),body.hd-pagina-acceso) .barra-lateral .formulario-salir button { color: var(--color-marca-azul-oscuro); font: 700 var(--gf-texto-secundario) var(--gf-familia-texto); }
.hd-area-financiera .encabezado-finanzas { position: sticky; top: 0; z-index: 40; background: #d4e3f7; box-shadow: var(--gf-sombra); border-radius: 0 0 var(--gf-radio) var(--gf-radio); display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; min-height: 84px; margin: 0 0 24px; padding: 16px var(--gf-margen); gap: var(--gf-separacion); }
.hd-area-financiera .encabezado-finanzas > .hd-acciones { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: var(--gf-acciones); }
.hd-area-financiera .encabezado-finanzas .boton-primario { background: var(--gf-gradiente-azul); border-color: var(--color-marca-azul); box-shadow: var(--gf-sombra-boton); color: #fff; }
.hd-area-financiera .encabezado-finanzas p { margin: 0; font: 400 var(--gf-texto-cuerpo)/1.5 var(--gf-familia-texto); color: var(--color-texto-suave); }
.hd-area-financiera .encabezado-finanzas h1 { margin: 0; color: var(--color-marca-azul-oscuro); font-family: var(--gf-familia-texto); font-size: 24px; font-weight: 700; line-height: 1.35; letter-spacing: -.6px; }
.hd-area-financiera .hd-barra-gestor :is(input[type="search"],select) { box-sizing: border-box; height: var(--gf-control); min-height: var(--gf-control); font: 400 var(--gf-texto-cuerpo) var(--gf-familia-texto); border: var(--gf-borde); border-radius: var(--gf-radio); }
.hd-area-financiera .hd-columnas-titulo { font: 700 var(--gf-texto-cuerpo) var(--gf-familia-texto); }
.hd-area-financiera .hd-columnas-opcion input[type="number"] { height: 38px; min-height: 38px; font: 400 var(--gf-texto-cuerpo) var(--gf-familia-texto); }
.hd-area-financiera .hd-ajustes-columnas { padding: var(--gf-margen); gap: var(--gf-separacion); margin: 0; }
/* Una superficie y un respaldo para todos los paneles financieros. */
.hd-area-financiera :is(.hd-panel,.panel-finanzas-listado,.hd-acordeon) { border: var(--gf-borde); border-radius: var(--gf-radio); background: var(--gf-gradiente-panel); box-shadow: var(--gf-sombra); background-clip: padding-box; }
.hd-area-financiera .hd-panel.hd-resumen-finanzas { margin: 0 0 var(--gf-margen); padding: 0; border: 0; background: transparent; box-shadow: none; overflow: visible; }
.hd-area-financiera .panel-finanzas-listado .hd-panel { border: 0; box-shadow: none; background: transparent; }
.hd-area-financiera .hd-resumen-importes-trabajo { gap: var(--gf-separacion); margin: 0; border: 0; border-radius: 0; background: transparent; overflow: visible; }
.hd-area-financiera .hd-resumen-importes-trabajo > div { min-width: 0; padding: var(--gf-margen); border: var(--gf-borde); border-radius: var(--gf-radio); background: var(--gf-gradiente-panel); box-shadow: var(--gf-sombra); }
.hd-area-financiera .hd-resumen-importes-trabajo dt { color: var(--color-texto-suave); font: 400 var(--gf-texto-cuerpo)/1.5 var(--gf-familia-texto); }
.hd-area-financiera .hd-resumen-importes-trabajo dd { font: 700 24px/1.3 var(--gf-familia-texto); text-align: right; }
.hd-area-financiera .hd-resumen-importes-trabajo dd small { color: var(--color-texto-suave); font: 400 var(--gf-texto-secundario)/1.5 var(--gf-familia-texto); }
.hd-area-financiera .encabezado-finanzas .sobrelinea { display: none; }
.hd-area-financiera :is(.hd-panel,.panel-finanzas-listado) > .hd-panel__encabezado { --hd-texto-encabezado: var(--color-marca-azul-oscuro); --hd-texto-encabezado-suave: var(--color-texto-suave); padding: var(--gf-encabezado-y) var(--gf-margen); border-bottom: var(--gf-borde); border-radius: var(--gf-radio) var(--gf-radio) 0 0; background: var(--gf-gradiente-panel); color: var(--color-marca-azul-oscuro); }
.hd-area-financiera .hd-panel__encabezado :is(h2,h3) { color: var(--color-marca-azul-oscuro); }
.hd-area-financiera .contador-resultados-panel { color: var(--color-marca-azul-oscuro); background: #e6f0fc; border: var(--gf-borde); border-radius: var(--gf-radio); padding: 5px 10px; font-weight: 700; }

.hd-area-financiera .hd-panel__encabezado p { color: var(--color-texto-suave); }
.hd-area-financiera .hd-tabla thead th { background: var(--gf-gradiente-tabla); font-family: var(--gf-familia-texto); font-size: var(--gf-texto-cuerpo); font-weight: 700; color: var(--color-marca-azul-oscuro); text-transform: none; text-align: center; vertical-align: middle; }

/* Informe mensual e históricos conservan sus filtros y resultados. */
.hd-area-financiera .hd-informe-mensual > :is(.hd-panel,.hd-acordeon) { margin: 0 0 var(--gf-margen); }
.hd-area-financiera .hd-informe-mensual :is(.hd-informe-mensual__resumen,.hd-informe-mensual__detalle) > .hd-resumen-importes-trabajo { padding: var(--gf-margen); }
.hd-area-financiera .hd-acordeon:not([open]) > summary { border-bottom: 0; border-radius: var(--gf-radio); }
.hd-area-financiera .encabezado-finanzas .hd-filtros-informe { margin: 0; padding: 0; display: flex; gap: var(--gf-acciones); }
.hd-area-financiera .encabezado-finanzas .hd-filtros-informe > label { width: 220px; }
.hd-area-financiera .encabezado-finanzas .hd-filtros-informe > label > span { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
.hd-area-financiera .hd-filtros-informe select { height: var(--gf-control); border: var(--gf-borde); border-radius: var(--gf-radio); font: 400 var(--gf-texto-cuerpo) var(--gf-familia-texto); color: var(--color-texto); background: white; }
.hd-area-financiera .hd-panel--historicos .hd-filtros-finanzas { display: flex; flex-wrap: wrap; align-items: end; gap: var(--gf-separacion); margin: 0; padding: var(--gf-margen); border-bottom: var(--gf-borde); background: transparent; }
.hd-area-financiera .hd-panel--historicos .hd-filtro-vista { flex: 0 1 240px; }
.hd-area-financiera .hd-panel--historicos .hd-filtro-busqueda { flex: 1 1 300px; }
.hd-area-financiera .hd-panel--historicos .hd-filtro-adicional { flex: 0 1 180px; }
.hd-area-financiera .hd-panel--historicos .hd-filtros-finanzas label > span:first-child:not(.campo-busqueda) { font: 700 var(--gf-texto-secundario) var(--gf-familia-texto); color: var(--color-texto-suave); }
.hd-area-financiera .hd-panel--historicos .hd-filtros-finanzas :is(input[type="search"],select) { min-height: var(--gf-control); height: var(--gf-control); border: var(--gf-borde); border-radius: var(--gf-radio); font: 400 var(--gf-texto-cuerpo) var(--gf-familia-texto); }
.hd-area-financiera .hd-panel--historicos > :is(.hd-alerta,.hd-estado-vacio) { margin: var(--gf-margen); }
.hd-area-financiera :is(.panel-finanzas-listado,.hd-panel) .hd-tabla-contenedor { border-radius: 0 0 var(--gf-radio) var(--gf-radio); }

/* El cliente utiliza los mismos campos y tablas que Nuevo/Editar movimiento. */
.hd-editor-cliente__movimientos { display: grid; gap: var(--gf-margen); min-width: 0; }
body .hd-editor-cuenta { margin: 0; padding: 0; min-width: 0; overflow: visible; background: transparent; border: 0; border-radius: 0; box-shadow: none; }
body .hd-editor-cuenta > .hd-formulario { width: 100%; max-width: none; min-width: 0; box-sizing: border-box; margin: 0; padding: 0; border: 0; background: transparent; box-shadow: none; }
body .hd-editor-cuenta .hd-edicion-avisos { margin: 0 0 24px; padding: 0; background: transparent; }
body .hd-nuevo-movimiento .hd-edicion-avisos { gap: var(--gf-separacion); background: transparent; }
body .hd-nuevo-movimiento .hd-edicion-avisos > .hd-alerta { margin: 0; }
body .hd-editor-cuenta .hd-edicion-avisos:has(> [hidden]):not(:has(> :not([hidden]))) { margin: 0; }
body .hd-editor-cuenta .hd-campos-movimiento { padding: 0; background: transparent; }
body .hd-editor-cuenta .hd-movimiento-grupo > header { justify-content: space-between; }
.hd-editor-cuenta__estado { margin-left: auto; font: 700 var(--gf-texto-secundario) var(--gf-familia-texto); color: var(--color-texto-suave); }
.hd-editor-cliente__totales { margin-top: 24px; }
[data-editor-cliente] .hd-tabla thead th { padding: 16px; }
[data-editor-cuenta-pagina] { scroll-margin-top: 130px; }

/* Columnas porcentuales compartidas por gestor y todos los editores. */
.hd-area-financiera .hd-columnas-ajustables { display: table !important; table-layout: fixed !important; width: 100% !important; min-width: 0 !important; }
.hd-area-financiera .hd-columnas-ajustables :is(th,td) { min-width: 0 !important; width: auto !important; overflow-wrap: anywhere; }
.hd-area-financiera .hd-columnas-ajustables thead { display: table-header-group !important; }
.hd-area-financiera .hd-columnas-ajustables tbody { display: table-row-group !important; }
.hd-area-financiera .hd-columnas-ajustables tr { display: table-row !important; }
.hd-area-financiera .hd-columnas-ajustables :is(th,td):not([hidden]) { display: table-cell !important; }
.hd-area-financiera .hd-columnas-ajustables [hidden] { display: none !important; }
.hd-area-financiera .hd-columnas-ajustables td::before { display: none !important; }
.hd-area-financiera .hd-columnas-ajustables th { position: relative; padding-right: 12px; }
.hd-area-financiera .hd-columnas-ajustables td.celda-dinero { white-space: normal; }
.hd-area-financiera .hd-columnas-ajustables .acciones-registro { flex-wrap: wrap; justify-content: center; }

/* Los controles inactivos conservan un texto legible sin opacidad general. */
:is(.modulo-finanzas,body.hd-area-financiera,body:has(.hd-ficha-trabajo),body:has(.hd-nuevo-movimiento),body.hd-pagina-acceso) .boton:disabled { opacity: 1; background: #e8edf4; color: var(--color-texto-suave); border: var(--gf-borde); box-shadow: none; transform: none; cursor: not-allowed; }

.hd-grupo-movimiento-campo { max-width: 560px; }
.hd-grupo-movimiento-campo small { font-size: var(--gf-texto-secundario); color: var(--color-texto-suave); }

.hd-cotizaciones-cliente { display: grid; gap: var(--gf-margen); min-width: 0; margin-top: var(--gf-margen); }
.hd-cotizaciones-cliente > header h2 { font-size: 18px; font-weight: 700; color: var(--color-marca-azul-oscuro); margin: 0 0 8px; }
.hd-cotizaciones-cliente > header p { font-size: var(--gf-texto-secundario); color: var(--color-texto-suave); margin: 0; }
.hd-tabla-consulta-cliente :is(th,td) { padding: 12px 16px; }
.hd-tabla-consulta-cliente th { font-size: var(--gf-texto-cuerpo); font-weight: 700; text-align: center; vertical-align: middle; }
.hd-tabla-consulta-cliente :is(th,td):nth-child(4) { text-align: center; }

/* Una tabla por grupo: las cuentas originales se editan en el formulario compartido. */
.hd-editor-cliente__fuentes[hidden] { display: none !important; }
.hd-listado-items-grupo { min-width: 0; overflow: hidden; }
.hd-listado-items-grupo > .hd-panel__encabezado { display: flex; align-items: center; justify-content: space-between; gap: var(--gf-separacion); padding: var(--gf-margen); }
.hd-listado-items-grupo h2 { margin: 0; font: 700 18px var(--gf-familia-texto); color: var(--color-marca-azul-oscuro); }
[data-editor-cliente] .hd-tabla-items-cliente :is(th,td) { padding: 10px 6px; vertical-align: middle; }
[data-editor-cliente] .hd-tabla-items-cliente th { font: 700 var(--gf-texto-cuerpo) var(--gf-familia-texto); text-align: center; }
.hd-tabla-items-cliente .hd-celda-centrada { text-align: center; }
.hd-tabla-items-cliente td.celda-dinero { text-align: right; }
.hd-tabla-items-cliente td.celda-dinero :is(strong,small) { display: block; font-size: var(--gf-texto-cuerpo); }
.hd-tabla-items-cliente td.celda-dinero small { font-size: var(--gf-texto-secundario); color: var(--color-texto-suave); margin-top: 4px; line-height: 18px; }
.hd-tabla-items-cliente td:nth-child(2) { padding-left: 16px; }
.hd-tabla-items-cliente .hd-item-cliente-subitem td:nth-child(2) { padding-left: 32px; }
.hd-tabla-items-cliente .hd-item-cliente-principal { background: #eaf5fb; }
.hd-tabla-items-cliente .hd-nombre-item-cliente { width: 100%; min-width: 0; box-sizing: border-box; min-height: 42px; padding: 8px; border: 1px solid transparent; border-radius: var(--gf-radio); background: transparent; color: var(--color-texto); font: 700 var(--gf-texto-cuerpo) var(--gf-familia-texto); }
.hd-tabla-items-cliente .hd-nombre-item-cliente:hover { border-color: var(--gf-campo-hover-borde); }
.hd-tabla-items-cliente .hd-nombre-item-cliente:focus { border-color: var(--gf-foco-borde); background: white; outline: 2px solid var(--gf-foco-anillo); }
.hd-tabla-items-cliente .hd-nombre-item-cliente:disabled { opacity: 1; color: var(--color-texto-suave); }
.hd-meta-item-cliente { display: block; padding: 0 8px; margin-top: 4px; color: var(--color-texto-suave); font: 400 var(--gf-texto-secundario)/18px var(--gf-familia-texto); }
.hd-arrastrar-item { cursor: grab; color: var(--color-marca-azul-oscuro); border: 0; border-radius: var(--gf-radio); background: transparent; padding: 6px 2px; display: block; margin: 0 auto; min-width: 30px; font: 700 var(--gf-texto-cuerpo) var(--gf-familia-texto); }
.hd-item-cliente-subitem .hd-arrastrar-item { color: var(--color-texto); cursor: pointer; }
.hd-arrastrar-item:hover { background: #cce9f7; }
.hd-arrastrar-item:focus-visible { outline: 2px solid var(--gf-foco-borde); }
.hd-acciones-items-cliente { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px; }
.hd-acciones-items-cliente .boton { min-width: 32px; min-height: 32px; padding: 6px; margin: 0; }
.hd-acciones-items-cliente .boton span:empty { display: none; }
body .hd-dialogo-item-cliente { width: min(1800px,calc(100vw - 48px)); max-width: none; max-height: calc(100vh - 48px); box-sizing: border-box; padding: var(--gf-margen); overflow: auto; border-radius: var(--gf-radio); }
.hd-dialogo-item-cliente__encabezado { display: flex; justify-content: space-between; align-items: center; gap: var(--gf-separacion); padding-bottom: var(--gf-margen); margin-bottom: var(--gf-margen); border-bottom: var(--gf-borde); }
.hd-dialogo-item-cliente__encabezado h2 { font: 700 18px var(--gf-familia-texto); margin: 0; color: var(--color-marca-azul-oscuro); }
.hd-dialogo-item-cliente__encabezado p { font: 400 var(--gf-texto-secundario) var(--gf-familia-texto); color: var(--color-texto-suave); margin: 6px 0 0; }
.hd-dialogo-item-cliente [data-contenido-item-cliente] { min-width: 0; }

/* Selección de cuentas existentes para crear grupos externos. */
.hd-dialogo-movimiento .hd-crear-grupo-items { min-width: 0; margin: 0; padding: 12px; border: var(--gf-borde); border-radius: var(--gf-radio); max-height: 320px; overflow-y: auto; }
.hd-dialogo-movimiento .hd-crear-grupo-items legend { font-weight: 700; padding: 0 6px; }
.hd-dialogo-movimiento .hd-crear-grupo-item { display: flex; flex-direction: row; text-align: left; align-items: center; gap: 12px; padding: 10px 8px; margin: 0; cursor: pointer; border-radius: var(--gf-radio); }
.hd-dialogo-movimiento .hd-crear-grupo-item:hover { background: #eaf5fb; }
.hd-dialogo-movimiento .hd-crear-grupo-item input[type="checkbox"] { flex: 0 0 18px; width: 18px; height: 18px; min-height: 0; padding: 0; margin: 0; }
.hd-dialogo-movimiento .hd-crear-grupo-item span { min-width: 0; overflow-wrap: anywhere; }
.hd-dialogo-movimiento .hd-crear-grupo-item :is(strong,small) { display: block; }
.hd-dialogo-movimiento .hd-crear-grupo-item small { color: var(--color-texto-suave); margin-top: 4px; }

/* Primera línea común; los detalles secundarios crecen debajo sin desplazar cifras. */
[data-editor-cliente] .hd-tabla-items-cliente tbody td { vertical-align: top; }
[data-editor-cliente] .hd-tabla-items-cliente tbody .hd-item-cliente-linea { display: flex; align-items: center; justify-content: center; min-height: var(--gf-control); line-height: 20px; }
[data-editor-cliente] .hd-tabla-items-cliente tbody td.celda-dinero strong { display: flex; align-items: center; justify-content: flex-end; min-height: var(--gf-control); margin: 0; line-height: 20px; }
[data-editor-cliente] .hd-tabla-items-cliente .hd-nombre-item-cliente { height: var(--gf-control); max-height: 62px; line-height: 20px; margin: 0; resize: none; overflow-y: auto; }
[data-editor-cliente] .hd-tabla-items-cliente :is(.hd-meta-item-cliente,td.celda-dinero small)[hidden] { display: none; }

body .hd-dialogo-movimiento.hd-dialogo-crear-grupo { width: min(960px,calc(100vw - 32px)); max-width: none; box-sizing: border-box; }
.hd-dialogo-crear-grupo .hd-crear-grupo-items { max-height: min(420px,45vh); }
.hd-dialogo-crear-grupo .hd-crear-grupo-item span { flex: 1 1 auto; }
.hd-dialogo-crear-grupo label[hidden] { display: none; }

/* Editor de ítems: menos encabezados repetidos y espacio antes de la tabla. */
body .hd-dialogo-item-cliente__encabezado { padding-bottom: 12px; margin-bottom: 12px; }
body .hd-dialogo-item-cliente .hd-movimiento-grupo { padding: 16px; }
body .hd-dialogo-item-cliente .hd-movimiento-grupo > header { padding-bottom: 8px; }
body .hd-dialogo-item-cliente .hd-movimiento-grupo > header h2 { font-size: 16px; margin: 0; }
body .hd-dialogo-item-cliente .hd-movimiento-grupo > header p,
body .hd-dialogo-item-cliente .hd-grupo-movimiento-campo > small,
body .hd-dialogo-item-cliente .selector-naturaleza-movimiento small { display: none; }
body .hd-dialogo-item-cliente .hd-movimiento-subencabezado[hidden] { display: none; }
body .hd-dialogo-item-cliente .selector-naturaleza-movimiento :is(.opcion-movimiento-ingreso,.opcion-movimiento-egreso) { min-height: 42px; padding-block: 10px; box-sizing: border-box; }
body .hd-dialogo-item-cliente .hd-descripcion-acciones { margin-bottom: 12px; }
body .hd-nuevo-movimiento :is([data-comercial-base],[data-costo-base],[data-costo-total],[data-ganancia-base])[hidden] { display: none !important; }

[data-editor-cliente] .hd-nombre-grupo-cliente { width: 100%; min-width: 0; box-sizing: border-box; min-height: 42px; padding: 6px 8px; margin: 0; border: 1px solid transparent; border-radius: var(--gf-radio); background: transparent; color: var(--color-marca-azul-oscuro); font: 700 18px/24px var(--gf-familia-texto); }
[data-editor-cliente] .hd-nombre-grupo-cliente:hover { border-color: var(--gf-campo-hover-borde); }
[data-editor-cliente] .hd-nombre-grupo-cliente:focus { border-color: var(--gf-foco-borde); outline: 2px solid var(--gf-foco-anillo); background: white; }
[data-editor-cliente] .hd-listado-items-grupo > header > div:first-child { flex: 1 1 auto; min-width: 160px; }
[data-editor-cliente] .hd-nombre-grupo-cliente:disabled { opacity: 1; }

[data-editor-cliente] .hd-tabla-items-cliente .hd-acciones-items-cliente { align-items: center; min-height: var(--gf-control); gap: 4px; }
[data-editor-cliente] .hd-tabla-items-cliente .hd-acciones-items-cliente .boton { width: 30px; min-width: 30px; min-height: 30px; height: 30px; padding: 4px; }
body .hd-nuevo-movimiento .hd-tabla th[data-columnas-nombre="Cantidad"], [data-editor-cliente] .hd-tabla-items-cliente th[data-columnas-nombre="Cantidad"] { white-space: nowrap; }

/* Controles únicos para todas las tablas de la sección de ítems. */
[data-editor-cliente] > .hd-ajustes-columnas{margin-bottom:1rem;}

/* El nombre sustituye al botón Contacto y mantiene el estilo del encabezado. */
.hd-encabezado-editor-cliente .hd-nombre-cliente-enlace{color:inherit;text-decoration:none;}
.hd-encabezado-editor-cliente .hd-nombre-cliente-enlace:hover{text-decoration:underline;text-underline-offset:4px;}
.hd-encabezado-editor-cliente .hd-nombre-cliente-enlace:focus-visible{outline:2px solid currentColor;outline-offset:4px;border-radius:3px;}

/* Una sola sección pendiente no necesita controles de orden. */

/* El arrastre distingue el ítem de origen y un destino válido. */
.hd-listado-items-grupo.hd-grupo-destino-arrastre{outline:2px solid var(--gf-foco-borde);outline-offset:2px;}
.hd-listado-items-grupo.hd-grupo-destino-arrastre > header{background:#e7f5fc;}

/* Búsqueda local y grupos plegables sin interferir con el nombre editable. */
.hd-busqueda-items{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin:12px 0;}
.hd-busqueda-items input{width:min(100%,380px);min-height:42px;box-sizing:border-box;margin:0;padding:10px 14px;border:var(--gf-borde);border-radius:var(--gf-radio);background:white;color:var(--color-texto);font:400 var(--gf-texto-cuerpo)/20px var(--gf-familia-texto);}
.hd-busqueda-items input:focus{border-color:var(--gf-foco-borde);outline:2px solid var(--gf-foco-anillo);}
.hd-busqueda-items input::placeholder{color:var(--color-texto-suave);}
.hd-listado-items-grupo header h2{display:flex;align-items:center;gap:6px;}
.hd-plegar-grupo{flex:0 0 30px;width:30px;height:34px;padding:0;border:0;border-radius:6px;background:transparent;color:var(--color-marca-azul-oscuro);font-size:22px;cursor:pointer;}
.hd-plegar-grupo:hover{background:#e7f5fc;}
.hd-plegar-grupo:focus-visible{outline:2px solid var(--gf-foco-borde);outline-offset:2px;}
.hd-plegar-grupo:disabled{opacity:.5;cursor:default;}
.hd-listado-items-grupo[hidden],.hd-tabla-items-cliente tr[hidden], .hd-listado-items-grupo .hd-acciones[hidden], .hd-listado-items-grupo .hd-tabla-contenedor[hidden] { display:none!important; }

/* Espaciado compartido para extender el diseño compacto a otras vistas. */
.hd-vista-compacta { --gf-margen: 16px; --gf-separacion: 12px; --gf-acciones: 8px; }
.hd-vista-compacta .hd-editor-cliente__totales { margin-top: var(--gf-margen); }
.hd-columnas-vista { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; margin: 0 0 var(--gf-separacion); font-weight: 700; color: var(--color-marca-azul-oscuro); }
.hd-columnas-vista select { width: min(100%,240px); min-height: 42px; margin: 0; padding: 8px 12px; border: var(--gf-borde); border-radius: var(--gf-radio); background: white; color: var(--color-texto); font: 400 var(--gf-texto-cuerpo) var(--gf-familia-texto); }

/* Las confirmaciones salen suavemente; las advertencias conservan su espacio. */
.hd-alerta--saliendo, .notificacion-tenue.saliendo { overflow: hidden; animation: hd-aviso-salida .3s ease forwards; }
@keyframes hd-aviso-salida { from { opacity: 1; max-height: var(--hd-aviso-alto,200px); } to { opacity: 0; max-height: 0; padding-block: 0; margin-block: 0; transform: translateY(-4px); } }
@media (prefers-reduced-motion: reduce) { .hd-alerta--saliendo, .notificacion-tenue.saliendo { animation: none; opacity: 0; } }

/* El destino indica dónde se inserta el bloque completo del ítem. */
.hd-tabla-items-cliente .hd-item-destino-antes > td { box-shadow: inset 0 2px var(--gf-foco-borde); }
.hd-tabla-items-cliente .hd-item-destino-despues > td { box-shadow: inset 0 -2px var(--gf-foco-borde); }

/* Los enlaces de acción tienen la misma prioridad que los controles del Gestor. */
:is(.modulo-finanzas,body.hd-area-financiera) .tabla td a:is(.accion-abonar,.accion-liquidar){background:linear-gradient(145deg,#f0fcf6,#dff3e8);color:var(--color-exito);border-color:var(--color-exito-borde)}
:is(.modulo-finanzas,body.hd-area-financiera) .tabla td a:is(.accion-anular,.accion-eliminar){background:linear-gradient(145deg,#fff7f8,#ffe7ec);color:var(--color-peligro);border-color:var(--color-peligro-borde)}

/* Una cabecera para las ventanas financieras del Gestor y Planeación. */
body :is(.hd-dialogo,.hd-dialogo-financiero) header.hd-cabecera-dialogo{display:flex;flex-direction:row;flex-wrap:nowrap;align-items:center;justify-content:space-between;gap:var(--gf-separacion);min-height:0;padding:var(--gf-encabezado-y) var(--gf-margen);border-bottom:var(--gf-borde);background:var(--gf-gradiente-panel);color:var(--color-marca-azul-oscuro);box-shadow:none}
body .hd-cabecera-dialogo>div{min-width:0;flex:1}
body :is(.hd-dialogo,.hd-dialogo-financiero) .hd-cabecera-dialogo h2{margin:0;font:700 24px/1.4 var(--gf-familia-texto);color:var(--color-marca-azul-oscuro);overflow-wrap:anywhere}
body :is(.hd-dialogo,.hd-dialogo-financiero) .hd-cabecera-dialogo p{margin:6px 0 0;font:400 var(--gf-texto-secundario)/1.5 var(--gf-familia-texto);color:var(--color-texto-suave);overflow-wrap:anywhere}
body :is(.hd-dialogo,.hd-dialogo-financiero) .hd-cabecera-dialogo .sobrelinea{margin:0 0 4px;color:var(--color-texto-suave)}
body .hd-cabecera-dialogo>.accion-icono{flex:0 0 34px;width:34px;height:34px;min-width:34px;padding:6px}

/* Abonos e historial alinean contenido y acciones con su cabecera común. */
body .hd-dialogo-abonos :is(.contenido-abono-tercero,.contenido-editar-pago,.hd-historial-abono__contenido){padding:var(--gf-margen);min-width:0}
body .hd-dialogo-abonos>:is(form,section)>footer{margin:0;padding:20px var(--gf-margen);gap:var(--gf-acciones);border-top:var(--gf-borde);background:var(--gf-gradiente-panel)}

/* El abono general comparte el margen de su cabecera y de sus acciones. */
body .hd-dialogo-abonos .hd-abono-cliente__contenido{padding:var(--gf-margen);min-width:0;box-sizing:border-box;background:transparent}
body .hd-abono-cliente__contenido .hd-abono-cliente__campos{display:grid;grid-template-columns:minmax(180px,1fr) minmax(150px,.7fr) minmax(240px,1fr) minmax(200px,.7fr) max-content;align-items:end;gap:var(--gf-separacion);padding:0;margin:0 0 var(--gf-margen);background:transparent}
body .hd-abono-cliente__campos>label{min-width:0}
body .hd-abono-cliente__campos [data-abono-tipo-campo]{grid-column:1 / -1}
body .hd-abono-cliente__campos .hd-abono-cliente__acciones{display:flex;flex-wrap:nowrap;justify-content:flex-end;gap:var(--gf-acciones);margin:0;padding:0}
body .hd-abono-cliente__campos input.entrada-fecha-flatpickr{font-weight:400}
body .hd-abono-cliente__contenido .hd-tabla-contenedor{margin:0;max-width:100%;overflow:auto;border:var(--gf-borde);border-radius:var(--gf-radio)}
body .hd-abono-cliente__contenido table{width:100%;min-width:960px;table-layout:fixed;margin:0}
body .hd-abono-cliente__contenido col{width:170px}
body .hd-abono-cliente__contenido .hd-abono-col-item{width:auto}
body .hd-abono-cliente__contenido .hd-abono-col-fecha{width:200px}
body .hd-abono-cliente__contenido :is(th,td){padding:12px 16px;vertical-align:middle}
body .hd-abono-cliente__contenido th:first-child{text-align:left}
body .hd-abono-cliente__contenido tbody td:first-child{overflow-wrap:anywhere}
body .hd-abono-cliente__contenido :is(th,td):nth-child(2){white-space:nowrap}
body .hd-abono-cliente__contenido .celda-dinero{text-align:right;white-space:nowrap}
body .hd-abono-cliente__contenido tfoot :is(th,td){border-top:var(--gf-borde);background:var(--gf-gradiente-panel);color:var(--color-marca-azul-oscuro);font-weight:700}
@media(max-width:1250px){body .hd-abono-cliente__contenido .hd-abono-cliente__campos{grid-template-columns:repeat(2,minmax(0,1fr))}body .hd-abono-cliente__campos .hd-abono-cliente__acciones{grid-column:1 / -1}}
@media(max-width:600px){body .hd-abono-cliente__contenido .hd-abono-cliente__campos{grid-template-columns:minmax(0,1fr)}body .hd-abono-cliente__campos .hd-abono-cliente__acciones{flex-wrap:wrap}}

/* Portada de acceso: composición de marca con valores compartidos. */
body.hd-pagina-acceso { margin:0; min-height:100vh; min-height:100svh; display:grid; place-items:center; padding:clamp(16px,4vw,56px); box-sizing:border-box; background:var(--gf-gradiente-fondo); color:var(--color-texto); font-family:var(--gf-familia-texto); }
.hd-acceso { box-sizing:border-box; width:min(1120px,100%); display:grid; grid-template-columns:minmax(0,1.08fr) minmax(0,1fr); border:var(--gf-borde); border-radius:var(--gf-radio); background:var(--gf-gradiente-panel); box-shadow:var(--gf-sombra); }
.hd-acceso > * { min-width:0; }
.hd-acceso__presentacion { position:relative; isolation:isolate; overflow:hidden; display:grid; grid-template-rows:auto 1fr auto auto; gap:32px; padding:clamp(28px,4vw,48px); border-radius:var(--gf-radio) 0 0 var(--gf-radio); background:var(--gf-gradiente-azul); color:#fff; }
.hd-acceso__presentacion::after { content:""; position:absolute; z-index:-1; width:300px; height:300px; top:-65px; right:-100px; background:url('../imagenes/isotipo-hd-blanco.svg') center/contain no-repeat; opacity:.075; pointer-events:none; }
.hd-acceso__marca { display:flex; align-items:center; gap:var(--gf-acciones); }
.hd-acceso__isotipo { display:grid; place-items:center; flex:0 0 52px; height:52px; border:1px solid rgba(255,255,255,.25); border-radius:var(--gf-radio); background:rgba(255,255,255,.08); }
.hd-acceso__isotipo img { display:block; width:36px; height:36px; }
.hd-acceso__marca > div { display:grid; gap:3px; }
.hd-acceso__marca strong { font-size:24px; line-height:1.2; }
.hd-acceso__marca span:not(.hd-acceso__isotipo) { font-size:var(--gf-texto-secundario); color:#d5ebf8; }
.hd-acceso__mensaje { align-self:center; display:grid; gap:var(--gf-separacion); padding-block:12px; }
.hd-acceso :is(h1,h2,p) { margin:0; }
.hd-acceso .sobrelinea { font-size:var(--gf-texto-secundario); font-weight:700; color:var(--color-marca-azul); letter-spacing:.08em; }
.hd-acceso__presentacion .sobrelinea { color:#c4eaff; }
body.hd-pagina-acceso .hd-acceso__mensaje h1 { font-size:clamp(32px,3.7vw,46px); line-height:1.2; letter-spacing:-.035em; color:#fff; font-weight:700; }
.hd-acceso__mensaje h1 span { color:#bdeaff; }
.hd-acceso__mensaje > p:last-child { max-width:38ch; font-size:var(--gf-texto-cuerpo); line-height:1.7; color:#e0effa; }
.hd-acceso__beneficios { display:grid; gap:var(--gf-separacion); list-style:none; margin:0; padding:24px 0 0; border-top:1px solid rgba(255,255,255,.2); }
.hd-acceso__beneficios li { display:flex; align-items:center; gap:var(--gf-acciones); }
.hd-acceso__beneficio-icono { display:grid; place-items:center; flex:0 0 40px; height:40px; border-radius:var(--gf-radio); background:rgba(255,255,255,.1); color:#d4efff; }
.hd-acceso__beneficio-icono svg { width:22px; height:22px; }
.hd-acceso__beneficios li > div { display:grid; gap:2px; min-width:0; }
.hd-acceso__beneficios strong { font-size:var(--gf-texto-cuerpo); font-weight:700; }
.hd-acceso__beneficios li > div > span,.hd-acceso__pie { font-size:var(--gf-texto-secundario); color:#d5ebf8; }
.hd-acceso__tarjeta { box-sizing:border-box; align-self:center; display:grid; gap:var(--gf-margen); padding:clamp(28px,4vw,48px); }
.hd-acceso__encabezado { display:grid; gap:10px; }
.hd-acceso__acceso-icono { display:grid; place-items:center; width:48px; height:48px; margin-bottom:10px; border:var(--gf-borde); border-radius:var(--gf-radio); background:var(--gf-gradiente-neutro); color:var(--color-marca-azul); }
body.hd-pagina-acceso .hd-acceso__encabezado h2 { font-size:30px; line-height:1.3; color:var(--color-marca-azul-oscuro); }
.hd-acceso__encabezado > p:last-child { font-size:var(--gf-texto-cuerpo); line-height:1.7; color:var(--color-texto-suave); }
.hd-acceso__formulario { display:grid; grid-template-columns:minmax(0,1fr); gap:20px; padding:0; margin:0; border:0; background:transparent; }
.hd-acceso__formulario label { display:grid; min-width:0; gap:8px; font-size:var(--gf-texto-cuerpo); font-weight:400; }
.hd-acceso__formulario input:not([type="hidden"]) { box-sizing:border-box; width:100%; min-width:0; min-height:48px; margin:0; padding:12px 14px; border:var(--gf-borde); border-radius:var(--gf-radio); background:#fff; color:var(--color-texto); font:400 var(--gf-texto-cuerpo)/1.5 var(--gf-familia-texto); }
.hd-acceso__formulario input:not([type="hidden"]):hover { border-color:var(--gf-campo-hover-borde); }
.hd-acceso__formulario input:not([type="hidden"]):focus { border-color:var(--gf-foco-borde); outline:2px solid var(--gf-foco-anillo); outline-offset:0; }
.hd-acceso__boton { width:100%; min-height:48px; margin-top:4px; font-family:var(--gf-familia-texto); }
.hd-acceso__boton:focus-visible { outline:2px solid var(--gf-foco-borde); outline-offset:3px; }
.hd-acceso__tarjeta .hd-alerta { margin:0; overflow-wrap:anywhere; }
.hd-acceso__ayuda { display:flex; justify-content:center; align-items:center; gap:8px; padding-top:var(--gf-margen); border-top:var(--gf-borde); font-size:var(--gf-texto-secundario); line-height:1.6; color:var(--color-texto-suave); }
.hd-acceso__ayuda svg { flex:0 0 16px; width:16px; height:16px; }
@media (max-width:760px) {
  .hd-acceso { max-width:480px; grid-template-columns:minmax(0,1fr); }
  .hd-acceso__presentacion { padding:var(--gf-margen); border-radius:var(--gf-radio) var(--gf-radio) 0 0; grid-template-rows:auto; }
  .hd-acceso__mensaje,.hd-acceso__beneficios,.hd-acceso__pie { display:none; }
  .hd-acceso__tarjeta { padding:var(--gf-margen); }
  .hd-acceso__acceso-icono { display:none; }
}

/* Historial de pagos: separa el estado del pago y el de la cuenta. */
body .hd-historial-abono__contenido [data-abono-detalle] { display:grid; gap:var(--gf-separacion); min-width:0; }
body .hd-historial-abono__contenido [data-abono-detalle][hidden] { display:none; }
body .hd-historial-abono__contenido [data-abono-detalle] > :is(p,.hd-alerta,.hd-resumen-importes-trabajo) { margin:0; }
body .hd-historial-abono__contenido .hd-listado-adaptable.hd-tabla-contenedor { max-width:100%; overflow-x:auto; border:var(--gf-borde); border-radius:var(--gf-radio); }
body .hd-historial-abono__contenido .tabla-aplicaciones-abono { min-width:1180px; table-layout:fixed; margin:0; }
body .hd-historial-abono__contenido .tabla-aplicaciones-abono .col-fecha { width:14%; }
body .hd-historial-abono__contenido .tabla-aplicaciones-abono .col-descripcion { width:27%; }
body .hd-historial-abono__contenido .tabla-aplicaciones-abono .col-medidas { width:10%; }
body .hd-historial-abono__contenido .tabla-aplicaciones-abono .col-cantidad { width:6%; }
body .hd-historial-abono__contenido .tabla-aplicaciones-abono .col-unitario { width:11%; }
body .hd-historial-abono__contenido .tabla-aplicaciones-abono .col-importe { width:11%; }
body .hd-historial-abono__contenido .tabla-aplicaciones-abono .col-estado { width:11%; }
body .hd-historial-abono__contenido .tabla-aplicaciones-abono .col-acciones { width:10%; }
body .tabla-aplicaciones-abono td.celda-dinero { white-space:nowrap; text-align:right; }
body .tabla-aplicaciones-abono .hd-acciones { gap:8px; }
body .tabla-aplicaciones-abono .boton { min-height:var(--gf-control); }
body .hd-historial-abono__contenido .tabla-aplicaciones-abono :is(th,td) { padding:12px; }
@media(max-width:760px) {
  body .hd-historial-abono__contenido .hd-resumen-importes-trabajo { display:grid; grid-template-columns:minmax(0,1fr); }
  body .hd-historial-abono__contenido .hd-resumen-importes-trabajo > div { display:block; }
  body .hd-historial-abono__contenido .hd-resumen-importes-trabajo dd { white-space:nowrap; }
}

body .hd-historial-abono__contenido .tabla-aplicaciones-abono { display:table; }
body .hd-historial-abono__contenido .tabla-aplicaciones-abono colgroup { display:table-column-group; }
body .hd-historial-abono__contenido .tabla-aplicaciones-abono thead { display:table-header-group; }
body .hd-historial-abono__contenido .tabla-aplicaciones-abono tbody { display:table-row-group; }
body .hd-historial-abono__contenido .tabla-aplicaciones-abono tr { display:table-row; }
body .hd-historial-abono__contenido .tabla-aplicaciones-abono td { display:table-cell; }
body .hd-historial-abono__contenido .tabla-aplicaciones-abono td::before { display:none; }
.hd-detalle-facturacion { margin-top:8px; }
.hd-detalle-facturacion summary { cursor:pointer; color:var(--color-marca-azul); }
.hd-detalle-facturacion ol { padding-left:20px; margin:8px 0; }
.hd-detalle-facturacion li + li { margin-top:8px; }

/* Confirmaciones generales: misma cabecera y márgenes que los editores. */
body .hd-dialogo-confirmacion { width:min(520px,calc(100vw - 32px)); padding:0; border:var(--gf-borde); border-radius:var(--gf-radio); background:var(--gf-gradiente-panel); box-shadow:var(--gf-sombra); font:400 var(--gf-texto-cuerpo)/1.6 var(--gf-familia-texto); }
body :is(.hd-dialogo-confirmacion,.popup-anulacion) :is(.popup-confirmacion-contenido,.popup-anulacion-contenido) { padding:var(--gf-margen); background:var(--gf-gradiente-panel); }
body .hd-dialogo-confirmacion .popup-confirmacion-contenido p { margin:0; color:var(--color-texto-suave); font:inherit; }
body .hd-dialogo-confirmacion > section > footer { margin:0; padding:var(--gf-encabezado-y) var(--gf-margen); min-height:0; gap:var(--gf-acciones); border-top:var(--gf-borde); background:var(--gf-gradiente-panel); }
body .hd-dialogo-confirmacion .boton { min-height:var(--gf-control); border-radius:var(--gf-radio); border:var(--gf-borde); background:var(--gf-gradiente-neutro); box-shadow:var(--gf-sombra-boton); color:var(--color-marca-azul-oscuro); font:700 var(--gf-texto-cuerpo)/1.4 var(--gf-familia-texto); }
body .hd-dialogo-confirmacion .boton-primario { background:var(--gf-gradiente-azul); color:#fff; border-color:var(--color-marca-azul); }
body .hd-dialogo-confirmacion .boton-peligro { background:linear-gradient(145deg,#fff7f8,#ffe7ec); color:var(--color-peligro); border-color:var(--color-peligro-borde); }
body .hd-dialogo-confirmacion .accion-icono { border:var(--gf-borde); border-radius:var(--gf-radio); background:var(--gf-gradiente-neutro); color:var(--color-marca-azul); box-shadow:var(--gf-sombra-boton); }
@media(max-width:600px) { body .hd-dialogo-confirmacion { --gf-margen:16px; --gf-encabezado-y:16px; } body .hd-dialogo-confirmacion > section > footer { flex-direction:row; } body .hd-dialogo-confirmacion > section > footer .boton { width:auto; flex:1; } }

body .popup-anulacion .popup-anulacion-contenido { display:grid; gap:var(--gf-separacion); font:400 var(--gf-texto-cuerpo)/1.6 var(--gf-familia-texto); }
body .popup-anulacion .popup-anulacion-contenido p { margin:0; color:var(--color-texto-suave); }
body .popup-anulacion > form > footer { padding:var(--gf-encabezado-y) var(--gf-margen); gap:var(--gf-acciones); border-top:var(--gf-borde); background:var(--gf-gradiente-panel); }

/* Programación recibida de TickTick: consulta sin controles de edición. */
.hd-pf-programacion-consulta { display:grid; gap:6px; min-width:0; font:400 var(--gf-texto-cuerpo)/1.5 var(--gf-familia-texto); }
.hd-pf-programacion-consulta > span { color:var(--color-texto-suave); font-size:var(--gf-texto-secundario); }
.hd-pf-programacion-consulta > p { margin:0; min-height:var(--gf-control); display:flex; align-items:center; color:var(--color-marca-azul-oscuro); overflow-wrap:anywhere; }
