.menu-root > .menu-item > .menu-link { display: flex; align-items: center; gap: 0.45rem; }
.menu-root > .menu-item > .menu-toggle::before,
.menu-root > .menu-item > .menu-link::before { width: 1.55rem; height: 1.55rem; flex-basis: 1.55rem; }
.menu-root > .menu-item > .menu-link::before { content: ""; display: block; background: center / contain no-repeat; }
.menu-root > .menu-item[data-menu-id="inicio"] > .menu-link::before { background-image: url("/static/img/menu/inicio.svg?v=3"); }
.menu-root > .menu-item[data-menu-id="conta"] > .menu-toggle::before { background-image: url("/static/img/menu/contabilidad.svg?v=3"); }
.menu-root > .menu-item[data-menu-id="proveedores"] > .menu-toggle::before { background-image: url("/static/img/menu/proveedores.svg?v=3"); }
.menu-root > .menu-item[data-menu-id="clientes"] > .menu-toggle::before { background-image: url("/static/img/menu/clientes.svg?v=3"); }
.menu-root > .menu-item[data-menu-id="tesoreria"] > .menu-toggle::before { background-image: url("/static/img/menu/tesoreria.svg?v=3"); }
.menu-root > .menu-item[data-menu-id="seguridad"] > .menu-toggle::before { background-image: url("/static/img/menu/seguridad.svg?v=4"); }
.menu-root > .menu-item[data-menu-id="configuracion"] > .menu-toggle::before { background-image: url("/static/img/menu/configuracion.svg?v=3"); }
.content:has(.page-parametros) { overflow-x: hidden; overflow-y: auto; }
.page.page-parametros { display: block; flex: 0 0 auto; min-height: auto; overflow: visible; }
.content:has(.page-perfil-acceso) {
  overflow: hidden;
}
.page.page-perfil-acceso {
  display: flex;
  flex-direction: column;
  flex: 1 1 auto;
  min-height: 0;
  overflow: hidden;
}
.page.page-perfil-acceso > .page-head {
  flex-shrink: 0;
}
.page.page-perfil-acceso .form-card.form-perfil-acceso {
  display: flex;
  flex-direction: column;
  flex: 1 1 auto;
  min-height: 0;
  margin-bottom: 0;
}
.page.page-perfil-acceso .form-perfil-acceso-intro {
  flex-shrink: 0;
}
.page.page-perfil-acceso .form-perfil-acceso-lead {
  margin: 0.35rem 0 0.65rem;
}
.page.page-perfil-acceso .perfil-access-tree {
  flex: 1 1 auto;
  min-height: 10rem;
  max-height: none;
}
.page.page-perfil-acceso .form-actions {
  flex-shrink: 0;
  margin-top: 0.85rem;
  padding-top: 0.85rem;
  border-top: 1px solid var(--line, #aaacb2);
  justify-content: flex-end;
}
#concepto-form .concepto-checks { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.45rem 1.4rem; margin: 0.35rem 0 0.7rem; }
#concepto-form .concepto-checks label { justify-content: flex-start; }
#concepto-form .concepto-checks input[type="checkbox"] { width: auto; flex: 0 0 auto; padding: 0; }
#proveedor-form .retenciones-op {
  margin-top: 0.85rem;
  padding: 0.7rem 0.9rem 0.8rem;
  border: 1px solid #d5e3ec;
  border-radius: 10px;
  background: #f7fafc;
}
#proveedor-form .retenciones-op h2 {
  margin: 0 0 0.55rem;
  font-size: 1rem;
  line-height: 1.3;
  color: #1f4e79;
}
#proveedor-form .retenciones-op-checks {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.4rem 1.4rem;
}
#proveedor-form .retenciones-op-condicion {
  margin-top: 0.55rem;
  padding-top: 0.55rem;
  border-top: 1px solid #d5e3ec;
}
#proveedor-form .retenciones-op-checks label {
  display: flex;
  flex-direction: row;
  align-items: center;
  justify-content: flex-start;
  gap: 0.45rem;
  margin: 0;
  font-size: 0.86rem;
}
#proveedor-form .retenciones-op-checks input[type="checkbox"] {
  width: 0.95rem;
  height: 0.95rem;
  flex: 0 0 auto;
  margin: 0;
  padding: 0;
  accent-color: #1f4e79;
}
#concepto-form #alicuota-field { max-width: 14rem; }
#concepto-form #alicuota-field input { width: 100%; }
/* Listados: el recuadro de la grilla llega al pie aunque haya pocas filas. */
.content:has(.qon-grid-pagination) {
  overflow: hidden;
}
.page.page-scroll:has(.qon-grid-pagination) {
  display: flex !important;
  flex-direction: column;
  flex: 1 1 auto !important;
  min-height: 0 !important;
  overflow: hidden !important;
}
.page:has(.qon-grid-pagination) > .page-head,
.page:has(.qon-grid-pagination) > .filter-card,
.page:has(.qon-grid-pagination) > .erp-flash {
  flex: 0 0 auto;
}
.page:has(.qon-grid-pagination) > .qon-grid-shell {
  flex: 1 1 auto;
  min-height: 0;
  height: auto;
  max-height: none;
}
.page:has(.qon-grid-pagination) > .qon-grid-shell > .table-wrap {
  flex: 1 1 auto;
  min-height: 0;
  align-self: stretch;
}
.content:has(.filter-block):has(.page-plan-cuentas) {
  overflow: hidden;
}
.page.page-plan-cuentas {
  flex: 1 1 auto;
  min-height: 0;
  overflow: hidden;
}
.page.page-plan-cuentas > .page-head,
.page.page-plan-cuentas > .filter-block,
.page.page-plan-cuentas > .filter-card,
.page.page-plan-cuentas > .erp-flash {
  flex: 0 0 auto;
}
.page.page-plan-cuentas > .table-wrap {
  flex: 1 1 auto;
  min-height: 0;
  overflow: auto;
}
.page-parametros .table-wrap { flex: none; min-height: auto; overflow: auto; }
.page-parametros .table-wrap:has(.select-search.is-open) { overflow: visible; }
.page-parametros tr:has(.select-search.is-open),
.page-parametros td:has(.select-search.is-open) { position: relative; z-index: 40; }
.erp-flash:not(#desbalance) { display: none !important; }
.erp-flash { margin: 0 0 1rem; padding: 0.85rem 1rem 0.85rem 0.95rem; border-radius: 10px; border: 1px solid transparent; border-left-width: 4px; line-height: 1.45; box-shadow: 0 6px 18px rgba(22, 50, 74, 0.06); }
.erp-flash-success { background: #eef8f2; color: #1f6b38; border-color: #cfe6d8; border-left-color: #2f8a52; }
.erp-flash-error { background: #fdf4f2; color: #8d2b22; border-color: #f0d2cc; border-left-color: #c4533e; }
.erp-flash-warning { background: #fffaf0; color: #6b4a00; border-color: #ead7ae; border-left-color: #c4842a; }
dialog.aviso-dialogo {
  border: 0;
  border-radius: 16px;
  padding: 1.6rem 1.7rem 1.35rem;
  width: min(28rem, calc(100vw - 2rem));
  text-align: center;
  box-shadow: 0 22px 60px rgba(20, 45, 70, 0.28);
}
dialog.aviso-dialogo::backdrop { background: rgba(16, 32, 44, 0.45); }
.aviso-dialogo-icono {
  width: 3rem;
  height: 3rem;
  margin: 0 auto 0.85rem;
  border-radius: 999px;
  background: #f8efd9;
  color: #9a6414;
  display: grid;
  place-items: center;
  font-size: 1.45rem;
  font-weight: 700;
}
.aviso-dialogo-texto { margin: 0 0 1.15rem; color: #334155; font-size: 1.05rem; line-height: 1.5; }
dialog.aviso-dialogo form { display: flex; justify-content: center; gap: 0.65rem; margin: 0; }
form.comprobante-lectura :is(input, select, textarea, button) { pointer-events: none; }
form.comprobante-lectura :is(input, select, textarea),
form.comprobante-lectura .select-search-input,
#comp-form.comprobante-lectura :is(input, select, textarea) {
  background-color: #c5ced6;
  color: #3e4c58;
  border-color: #8fa0ac;
  cursor: default;
}
button.is-disabled, a.btn.is-disabled { opacity: 0.45; cursor: not-allowed; }
.periodo-aviso { margin: 0.35rem 0 0.7rem; padding: 0.75rem 0.9rem; border-radius: 10px; border: 1px solid #ead7ae; border-left: 4px solid #c4842a; background: #fffaf0; color: #6b4a00; font-size: 0.92rem; line-height: 1.45; }
.estado-contable { display: inline-block; margin-left: 0.35rem; padding: 0.12rem 0.55rem; border-radius: 999px; font-size: 0.75rem; font-weight: 650; letter-spacing: 0.01em; vertical-align: middle; }
.estado-contable-pendiente { background: #e7f2f8; color: #1f4e79; }
.estado-contable-contabilizado { background: #eef1f3; color: #4d6272; }
.estado-gestion { display: inline-block; padding: 0.12rem 0.55rem; border-radius: 999px; font-size: 0.75rem; font-weight: 650; vertical-align: middle; }
.estado-gestion-alta { background: #e7f2f8; color: #1f4e79; }
.estado-gestion-asignado-a-op { background: #fff4e5; color: #8a5a00; }
.estado-gestion-pagado,
.estado-gestion-cobrado { background: #e7f6ec; color: #1d6b3a; }
.estado-gestion-aplicado { background: #e7f6ec; color: #1d6b3a; }
.estado-gestion-anulado { background: #f8e8e6; color: #8d2b22; }
.filter-card .form-grid.ejercicio-datos {
  grid-template-columns: max-content max-content minmax(12rem, 1fr) auto;
  align-items: center;
}
.filter-card .form-grid.ejercicio-datos > label { white-space: nowrap; }
.content:has(.page-ejercicio) { padding-top: 0.7rem; padding-bottom: 0.45rem; }
.page-ejercicio { gap: 0.3rem; }
.page-ejercicio > .page-head { align-items: center; gap: 0.6rem; }
.page-ejercicio h1 { margin: 0; font-size: 1.25rem; }
.page-ejercicio h2 { margin: 0; font-size: 1.02rem; line-height: 1.2; }
.page-ejercicio > .filter-card { padding: 0.35rem 0.7rem; margin-bottom: 0; }
.page-ejercicio > .filter-card + .page-head { margin-top: 1.05rem; }
.page-ejercicio > .page-head > .btn-outline { padding: 0.28rem 0.7rem; font-size: 0.82rem; border-radius: 8px; }
.page-ejercicio .table-wrap tbody td { padding-top: 0.02rem; padding-bottom: 0.02rem; }
.page-ejercicio .table-wrap tbody td button.btn-outline,
.page-ejercicio .table-wrap tbody td button.btn-danger {
  padding: 0 0.4rem !important;
  height: 1.15rem;
  min-height: 0;
  font-size: 0.7rem;
  line-height: 1.15rem;
  border-radius: 4px;
}
.ejercicio-estado-acciones { display: flex; align-items: center; gap: 0.5rem; }
.ejercicio-estado-acciones form { margin: 0; }
.ejercicio-estado-acciones .btn-danger { padding: 0.4rem 0.8rem; border-radius: 8px; }
.tree-code { font-variant-numeric: tabular-nums; white-space: nowrap; vertical-align: middle; }
table.plan-cuentas.plan-cuentas-anchos {
  table-layout: fixed;
  width: max-content;
  min-width: 100%;
  max-width: none;
}
table.plan-cuentas.plan-cuentas-anchos th,
table.plan-cuentas.plan-cuentas-anchos td {
  overflow: hidden;
  text-overflow: ellipsis;
}
table.plan-cuentas.plan-cuentas-anchos td.row-actions {
  overflow: visible;
  text-overflow: clip;
}
table.plan-cuentas.plan-cuentas-anchos .arbol-cuenta {
  display: flex;
  max-width: 100%;
  min-width: 0;
}
table.plan-cuentas.plan-cuentas-anchos .arbol-nombre {
  overflow: hidden;
  text-overflow: ellipsis;
  min-width: 0;
}
table.plan-cuentas thead th { padding-right: 0.7rem; }
.plan-cuentas td.row-actions button[type="submit"].btn-outline {
  padding: 0.15rem 0.5rem !important;
  font-size: 0.82rem !important;
  line-height: 1.2 !important;
  border-radius: 6px;
  background: #f6ddd9 !important;
  color: #8d2b22 !important;
  border: 1px solid #e4b7b1 !important;
  filter: none;
}
.plan-cuentas td.row-actions button[type="submit"].btn-outline:hover {
  background: #f0cdc7 !important;
  color: #8d2b22 !important;
  filter: none;
}
.tree-title { font-weight: 600; }
.arbol-cuenta { display: inline-flex; align-items: center; gap: 0.45rem; }
.arbol-codigo { flex: 0 0 auto; }
.arbol-nombre { font-variant-numeric: normal; }
.arbol-carpeta {
  display: inline-flex;
  align-items: center;
  gap: 0.28rem;
  height: 1.35rem;
  padding: 0 0.15rem 0 0;
  border: 0;
  background: transparent;
  cursor: pointer;
  flex: 0 0 auto;
}
.arbol-signo {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 0.95rem;
  height: 0.95rem;
  border: 1px solid #8aa4b5;
  border-radius: 3px;
  background: #fff;
  color: #1f4e79;
  font: 700 0.82rem/1 "Segoe UI", sans-serif;
  box-shadow: 0 1px 0 rgba(31, 78, 121, 0.08);
}
.arbol-signo::before { content: "+"; }
.arbol-carpeta.is-abierta .arbol-signo::before { content: "−"; }
.arbol-carpeta:hover .arbol-signo { border-color: #1f4e79; background: #e7f2f8; }
.arbol-icono { width: 1.15rem; height: 1.05rem; display: block; }
.arbol-carpeta .arbol-abierta { display: none; }
.arbol-carpeta.is-abierta .arbol-cerrada { display: none; }
.arbol-carpeta.is-abierta .arbol-abierta { display: block; }
.arbol-hoja {
  display: inline-flex;
  width: 0.95rem;
  margin-left: 1.23rem;
  flex: 0 0 auto;
  justify-content: center;
}
.arbol-hoja svg { width: 0.85rem; height: 0.95rem; display: block; }
tr.arbol-oculta { display: none; }
.flag-on { color: #1f6b38; font-weight: 600; }
.flag-off { color: #8aa; }
.row-actions form { display: inline; }
.table-wrap td.row-actions a.btn-edit,
.table-wrap td.row-actions button.btn-danger {
  border-radius: 8px;
  padding: 0.35rem 0.75rem;
  font-weight: inherit;
}
.page-movimientos-fondo .table-wrap td.mov-detalle-celda {
  max-width: 32rem;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.page-movimientos-fondo .table-wrap td.mov-detalle-celda .muted {
  white-space: nowrap;
}
td.row-actions a + a { margin-left: 0.35rem; }
.cuenta-tipo { font-size: 0.85rem; }
.grilla-concepto, .renglon-concepto { display: grid; grid-template-columns: minmax(12rem, 2.2fr) minmax(6.5rem, 0.8fr) 5.5rem 6.2rem 5.6rem; gap: 0.2rem 0.45rem; align-items: center; }
.grilla-concepto-venta, .renglon-concepto-venta { grid-template-columns: minmax(10rem, 1.25fr) minmax(14rem, 2.1fr) minmax(6.2rem, 0.7fr) 5.2rem 5.4rem 5.4rem; }
#comp-form .renglon-concepto .form-actions { justify-content: flex-end; }
.grilla-concepto > span:nth-child(3) { padding-left: 0.28rem; }
.renglon-concepto { margin-bottom: 0.22rem; }
.renglon-iibb { display: grid; grid-template-columns: minmax(16rem, 1.6fr) minmax(8rem, 0.7fr) auto; gap: 0.35rem 0.45rem; align-items: end; margin-bottom: 0.3rem; }
.grilla-percepcion, #comp-form .renglon-percepcion { display: grid; grid-template-columns: minmax(10rem, 1.1fr) 7rem 8.5rem minmax(10rem, 1.3fr) 5.6rem; gap: 0.2rem 0.45rem; align-items: center; }
#comp-form .renglon-percepcion { margin-bottom: 0.22rem; }
.grilla-encabezado { margin: 0 0 0.2rem; padding-bottom: 0.15rem; border-bottom: 1px solid #c5dbe6; font-size: 0.64rem; font-weight: 700; letter-spacing: 0.03em; text-transform: uppercase; color: #1f4e79; }
#comp-form .renglon-percepcion .form-actions { justify-content: flex-end; }
.percepcion-nombre { margin: 0; font-size: 0.74rem; font-weight: 600; }
.renglon-condicion { display: grid; grid-template-columns: minmax(12rem, 1.6fr) 7rem auto; gap: 0.35rem 0.45rem; align-items: end; margin-bottom: 0.3rem; }
#comp-form input[readonly] { background: #f4f7f9; color: #334; }
#comp-form.comprobante-lectura :is(input, select, textarea),
#comp-form.comprobante-lectura .select-search-input {
  background-color: #c5ced6;
  color: #3e4c58;
  border-color: #8fa0ac;
}
#comp-form.comprobante-lectura.comprobante-solo-concepto select.concepto-linea {
  pointer-events: auto;
  cursor: pointer;
  background-color: #fff;
  color: #243444;
  border-color: #c5dbe6;
}
#param-form .renglon-condicion label { flex-direction: column; align-items: stretch; gap: 0.08rem; font-size: 0.72rem; }
.cabecera-fila { display: grid; gap: 0.35rem 0.45rem; margin-bottom: 0.3rem; }
.cabecera-fila-1 { grid-template-columns: minmax(10rem, 2fr) minmax(7rem, 0.75fr) 4.2rem minmax(9rem, 1.2fr) minmax(6rem, 0.55fr) 7.2rem; }
.cabecera-fila-2 { grid-template-columns: 5.5rem 7rem minmax(8rem, 0.9fr) minmax(8rem, 1.1fr) minmax(8rem, 0.9fr); }
.cabecera-compra.cabecera-fila-1,
.cabecera-venta.cabecera-fila-1 { grid-template-columns: minmax(11rem, 2.1fr) minmax(7rem, 1fr) 4.2rem minmax(5.2rem, 0.7fr) minmax(6rem, 0.8fr); }
.cabecera-compra.cabecera-fila-2,
.cabecera-venta.cabecera-fila-2 { grid-template-columns: 9rem minmax(8rem, 1fr) minmax(8rem, 1.15fr) 9.4rem minmax(5.5rem, 0.7fr) 6.2rem minmax(9rem, 1.35fr); }
#param-form .campo-percepcion { display: flex; flex-direction: column; gap: 0.35rem; min-width: 0; }
#param-form .check-percepcion { font-weight: 600; color: #1f4e79; }
#param-form .check-percepcion > input[type="checkbox"] {
  flex: 0 0 auto;
  width: 0.95rem;
  height: 0.95rem;
  margin: 0;
  accent-color: #1f4e79;
}
.facturas-asociadas-lista { display: flex; flex-direction: column; gap: 0.35rem; max-height: 16rem; overflow: auto; }
.facturas-asociadas-lista label { display: flex; flex-direction: row; align-items: center; gap: 0.55rem; margin: 0; }
.facturas-asociadas-lista input[type="checkbox"] { width: 0.95rem; height: 0.95rem; flex: 0 0 auto; accent-color: #1f4e79; }
.iva-celda { margin: 0; font-size: 0.74rem; white-space: nowrap; }
.totales-control { display: grid; grid-template-columns: repeat(auto-fit, minmax(9rem, 1fr)); gap: 0.4rem; margin: 0.45rem 0; }
.total-caja { border: 2px solid #1f6b38; background: #f3faf6; border-radius: 6px; padding: 0.2rem 0.45rem; }
.total-caja span { display: block; font-size: 0.62rem; letter-spacing: 0.04em; text-transform: uppercase; color: #3d5c49; }
.total-caja strong { display: block; font-size: 0.98rem; margin-top: 0; }
.total-caja small { display: block; color: #3d5c49; font-size: 0.68rem; }
#totales-comprobante { position: sticky; bottom: 0; z-index: 5; margin-top: 0.35rem; padding: 0.45rem 0.15rem 0.2rem; background: #f7fbfd; }
#comp-form { background: transparent; border: 0; box-shadow: none; padding: 0; }
.page:has(#comp-form) h1 { font-size: 1.25rem; }
.page:has(#comp-form) .lead { font-size: 0.8rem; }
#comp-form .bloque-comp { background: #fff; border: 2px solid #5a90ab; border-radius: 10px; padding: 0 0.7rem 0.4rem; margin-bottom: 0.9rem; box-shadow: 0 2px 0 rgba(90, 144, 171, 0.18); }
#comp-form.sin-percepciones #bloque-percepciones,
#bloque-percepciones[hidden] { display: none !important; }
#comp-form h2 { margin: 0; font-size: 0.68rem; font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase; color: #1f4e79; }
#comp-form .muted { margin: 0 0 0.3rem; font-size: 0.68rem; line-height: 1.2; }
#comp-form label { flex-direction: column; align-items: stretch; gap: 0.04rem; font-size: 0.64rem; }
#comp-form input, #comp-form select { padding: 0.06rem 0.28rem; font-size: 0.74rem; line-height: 1.2; }
#comp-form .select-search-input { padding: 0.06rem 1.4rem 0.06rem 0.28rem; font-size: 0.74rem; line-height: 1.2; background-position: right 0.35rem center; }
#comp-form .select-search-option, #comp-form .select-search-empty { padding: 0.2rem 0.4rem; font-size: 0.74rem; }
#comp-form .seccion-linea { display: flex; align-items: center; justify-content: space-between; gap: 0.5rem; margin: 0 -0.7rem 0.55rem; padding: 0.2rem 0.7rem; background: #e8f3f8; border-bottom: 2px solid #5a90ab; border-radius: 8px 8px 0 0; }
#comp-form .btn, #comp-form .btn-outline, #comp-form .btn-agregar, #comp-form .btn-eliminar { padding: 0.12rem 0.48rem; font-size: 0.72rem; line-height: 1.15; }
#comp-form > .form-actions { margin-top: 0.35rem; justify-content: space-between; width: 100%; }
#comp-form .btn-agregar { background: linear-gradient(180deg, #7eb4cb 0%, #6AA0BB 55%, #5a90ab 100%); color: #fff; border: 0; border-radius: 6px; }
#op-form .orden-acciones { justify-content: space-between; width: 100%; }
#op-form .btn-eliminar,
#comp-form .btn-eliminar,
.page:has(#comp-form) .page-head-actions .btn-eliminar { background: #f6ddd9; color: #8d2b22; border: 1px solid #e4b7b1; }
#op-form .btn-eliminar:hover,
#comp-form .btn-eliminar:hover,
.page:has(#comp-form) .page-head-actions .btn-eliminar:hover { background: #f0cdc7; filter: none; }
.page:has(#comp-form) .page-head-actions,
.page:has(#param-form) .page-head-actions { display: flex; align-items: center; gap: 0.4rem; flex-wrap: wrap; }
.page:has(#param-form) .page-head { align-items: center; }
.page:has(#comp-form) .page-head-actions .btn,
.page:has(#comp-form) .page-head-actions .btn-outline,
.page:has(#comp-form) .page-head-actions .btn-eliminar,
.page:has(#param-form) .page-head-actions .btn,
.page:has(#param-form) .page-head-actions .btn-outline { padding: 0.28rem 0.7rem; font-size: 0.78rem; line-height: 1.2; font-weight: 600; }
#comp-form .btn-agregar:hover { filter: brightness(1.06); }
@media (max-width: 900px) {
  .cabecera-fila-1, .cabecera-fila-2, .cabecera-compra.cabecera-fila-1, .cabecera-compra.cabecera-fila-2, .cabecera-venta.cabecera-fila-1, .cabecera-venta.cabecera-fila-2, .grilla-concepto, .renglon-concepto, .grilla-concepto-venta, .renglon-concepto-venta, .grilla-percepcion, #comp-form .renglon-percepcion { grid-template-columns: 1fr 1fr; }
  .totales-control { grid-template-columns: 1fr 1fr; }
}
@media print {
  .sidebar, .topbar, .sidebar-backdrop, form.filter-card, .form-actions, .sidebar-toggle { display: none !important; }
  .app-shell, .main-col, .content { display: block !important; height: auto !important; overflow: visible !important; }
  body { background: white; }
}
#param-form { background: transparent; border: 0; box-shadow: none; padding: 0; }
#param-form .bloque-param,
.page-parametros form.bloque-param { background: #fff; border: 2px solid #5a90ab; border-radius: 10px; padding: 0 0.75rem 0.7rem; margin-bottom: 1rem; box-shadow: 0 2px 0 rgba(90, 144, 171, 0.22); }
#param-form .seccion-linea,
.page-parametros form.bloque-param > .seccion-linea { display: flex; align-items: center; margin: 0 -0.75rem 0.7rem; padding: 0.42rem 0.75rem; background: #e8f3f8; border-bottom: 2px solid #5a90ab; border-radius: 8px 8px 0 0; }
#param-form h2,
.page-parametros form.bloque-param h2 { margin: 0; font-size: 0.78rem; font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase; color: #1f4e79; }
#param-form .bloque-param > .muted { margin: 0 0 0.65rem; }
#param-form .bloque-param > .btn-outline { margin-top: 0.55rem; }
#param-form .muted { margin: 0.45rem 0 0; }
.content:has(.page-pago) { overflow-x: hidden; overflow-y: auto; }
.page.page-pago { display: block; flex: 0 0 auto; min-height: auto; overflow: visible; }
.page-pago .table-wrap { flex: none; min-height: auto; overflow: visible; }
.content:has(.page-conciliacion) { overflow-x: hidden; overflow-y: auto; }
.page.page-conciliacion { display: block; flex: 0 0 auto; min-height: auto; overflow: visible; }
.page-conciliacion .table-wrap { flex: none; min-height: auto; overflow: visible; }
.page-pago h2 { margin: 0.4rem 0 0; font-size: 1rem; }
#param-form .bloque-param > .btn-outline + .btn-outline { margin-left: 0.4rem; }
.page.home .home-page-head {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0.75rem 1rem;
}
.home-atajos-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(12.5rem, 1fr));
  gap: 1rem;
  max-width: 62rem;
  margin-top: 0.35rem;
}
.home-atajo-card {
  position: relative;
  display: flex;
  flex-direction: column;
  min-height: 6.25rem;
  border-radius: 14px;
  border: 2px solid #5a90ab;
  background: linear-gradient(165deg, #ffffff 0%, #eef6fa 48%, #e3f0f7 100%);
  box-shadow: 0 3px 0 rgba(90, 144, 171, 0.22);
  transition: transform 0.12s ease, box-shadow 0.12s ease, border-color 0.12s ease, opacity 0.12s ease;
}
.home-atajo-orden {
  position: absolute;
  top: 0.35rem;
  right: 0.35rem;
  z-index: 3;
  display: flex;
  flex-direction: row;
  gap: 0.15rem;
}
.home-atajo-mover {
  margin: 0;
  padding: 0.12rem 0.3rem;
  min-width: 1.45rem;
  border: 1px solid rgba(90, 144, 171, 0.45);
  border-radius: 6px;
  background: rgba(255, 255, 255, 0.92);
  color: #1f4e79;
  font-size: 0.72rem;
  line-height: 1.15;
  cursor: pointer;
}
.home-atajo-mover:hover:not(:disabled) {
  background: #fff;
  border-color: #3d7a96;
}
.home-atajo-mover:disabled {
  opacity: 0.35;
  cursor: default;
}
.home-atajo-link {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 0.4rem;
  flex: 1 1 auto;
  min-height: 6.25rem;
  padding: 1.15rem 1.25rem 1rem;
  padding-right: 2.85rem;
  border-radius: 12px;
  text-decoration: none !important;
  color: #16324a;
}
.home-atajo-link:hover {
  color: #0f2a40;
}
.home-atajo-card:hover {
  transform: translateY(-2px);
  border-color: #3d7a96;
  box-shadow: 0 6px 14px rgba(31, 78, 121, 0.16);
}
.home-atajo-modulo {
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.07em;
  text-transform: uppercase;
  color: #5d7384;
}
.home-atajo-titulo {
  font-size: 1.05rem;
  font-weight: 650;
  line-height: 1.25;
}
.home-atajos-vacio {
  margin-top: 1rem;
  padding: 1.5rem 1.25rem;
  max-width: 28rem;
  border: 1px dashed rgba(90, 144, 171, 0.55);
  border-radius: 12px;
  background: rgba(232, 243, 248, 0.45);
}
.home-atajos-vacio p { margin: 0 0 0.85rem; color: #4d6272; }
.home-atajos-contador { margin: 0 0 0.75rem; }
.home-atajos-grupo { margin-bottom: 1rem; }
.home-atajos-grupo h3 {
  margin: 0 0 0.45rem;
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: #1f4e79;
}
.home-atajos-opciones {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 0.35rem;
}
.home-atajo-opcion {
  display: flex;
  align-items: flex-start;
  gap: 0.55rem;
  padding: 0.45rem 0.55rem;
  border: 1px solid rgba(90, 144, 171, 0.25);
  border-radius: 8px;
  background: #fff;
  cursor: pointer;
}
.home-atajo-opcion input { margin-top: 0.2rem; flex-shrink: 0; }
.home-atajo-opcion-texto { display: flex; flex-direction: column; gap: 0.1rem; min-width: 0; }
.home-atajo-opcion-texto strong { font-size: 0.88rem; font-weight: 600; color: #16324a; }
.home-atajo-opcion-texto small { font-size: 0.72rem; color: #5d7384; line-height: 1.25; }
dialog.fondo-dialog .home-atajos-picker { max-height: min(52vh, 28rem); }
#param-form .fce-observaciones-field {
  display: flex;
  flex-direction: row;
  align-items: flex-start;
  gap: 0.55rem;
  margin-top: 0.35rem;
  width: 100%;
  font-size: 0.82rem;
  line-height: 1.25;
  min-width: 0;
}
#param-form .fce-observaciones-field > textarea {
  flex: 1 1 auto;
  min-width: 0;
  width: 100%;
  min-height: 6.5rem;
  padding: 0.45rem 0.55rem;
  border: 1px solid var(--line, #c5d0d8);
  border-radius: 6px;
  font: inherit;
  font-size: 0.78rem;
  line-height: 1.4;
  resize: vertical;
  background: #fff;
}
#param-form .fce-observaciones-field > textarea:focus {
  outline: 2px solid rgba(90, 144, 171, 0.45);
  outline-offset: 1px;
}
dialog.escala-dialog { border: 2px solid #5a90ab; border-radius: 10px; padding: 0; width: min(58rem, calc(100vw - 2rem)); max-height: calc(100vh - 2rem); }
dialog.escala-dialog::backdrop { background: rgba(20, 40, 55, 0.45); }
dialog.escala-dialog .escala-cuerpo { padding: 0.75rem 0.85rem 0.85rem; overflow: auto; }
dialog.escala-dialog .escala-acciones { display: flex; justify-content: flex-end; gap: 0.4rem; margin-top: 0.7rem; padding-top: 0.65rem; border-top: 1px solid rgba(90, 144, 171, 0.25); }
dialog.escala-dialog .table-wrap { max-height: 22rem; }
dialog.escala-dialog [hidden] { display: none !important; }

dialog.fondo-dialog {
  border: 0;
  border-radius: 14px;
  padding: 0;
  width: min(40rem, calc(100vw - 2rem));
  max-height: calc(100vh - 2rem);
  box-shadow: 0 18px 50px rgba(20, 40, 55, 0.28);
  overflow: hidden;
}
dialog.fondo-dialog-ing,
dialog.fondo-dialog-egr { width: min(68rem, calc(100vw - 2rem)); }
dialog.fondo-dialog-caja { width: min(44rem, calc(100vw - 2rem)); }
dialog.fondo-dialog-trc { width: min(36rem, calc(100vw - 2rem)); }
dialog.fondo-dialog::backdrop { background: rgba(16, 32, 44, 0.5); }
dialog.fondo-dialog form { display: flex; flex-direction: column; max-height: calc(100vh - 2rem); margin: 0; }
dialog.fondo-dialog .fondo-dialog-head {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  align-items: flex-start;
  padding: 1rem 1.1rem 0.9rem;
  border-bottom: 1px solid rgba(31, 78, 121, 0.12);
}
dialog.fondo-dialog-ing .fondo-dialog-head { background: #e8f6ee; }
dialog.fondo-dialog-egr .fondo-dialog-head { background: #fdeeea; }
dialog.fondo-dialog-trc .fondo-dialog-head { background: #e8f3f8; }
dialog.fondo-dialog .fondo-dialog-kicker {
  margin: 0 0 0.15rem;
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: #5d7384;
}
dialog.fondo-dialog h2 { margin: 0; font-size: 1.25rem; color: #16324a; }
dialog.fondo-dialog-ing h2 { color: #1d6b45; }
dialog.fondo-dialog-egr h2 { color: #8d3b2c; }
dialog.fondo-dialog-trc h2 { color: #1f4e79; }
dialog.fondo-dialog .fondo-dialog-lead { margin: 0.25rem 0 0; color: #4d6272; font-size: 0.86rem; }
dialog.fondo-dialog .fondo-dialog-x {
  border: 0;
  background: transparent;
  color: #4d6272;
  font-size: 1.5rem;
  line-height: 1;
  width: 2rem;
  height: 2rem;
  border-radius: 8px;
  cursor: pointer;
}
dialog.fondo-dialog .fondo-dialog-x:hover { background: rgba(22, 50, 74, 0.08); }
dialog.fondo-dialog .fondo-dialog-cuerpo { padding: 0.9rem 1.1rem 0.2rem; overflow: auto; }
#dialogo-cheques-lista { max-height: 16rem; overflow: auto; }
#dialogo-chequera-wrap { margin-bottom: 0.65rem; }
#dialogo-cheques-ayuda { margin: 0 0 0.7rem; }
dialog.fondo-dialog:has(.select-search.is-open),
dialog.fondo-dialog .fondo-dialog-cuerpo:has(.select-search.is-open) { overflow: visible; }
dialog.fondo-dialog [hidden] { display: none !important; }
#movimiento-form .bloque-comp,
#caja-form .bloque-comp,
#consulta-vista .bloque-comp { background: #fff; border: 2px solid #5a90ab; border-radius: 10px; padding: 0 0.7rem 0.45rem; margin-bottom: 0.7rem; box-shadow: 0 2px 0 rgba(90, 144, 171, 0.18); }
#movimiento-form .seccion-linea,
#caja-form .seccion-linea,
#consulta-vista .seccion-linea { display: flex; align-items: center; justify-content: space-between; gap: 0.5rem; margin: 0 -0.7rem 0.5rem; padding: 0.2rem 0.7rem; background: #e8f3f8; border-bottom: 2px solid #5a90ab; border-radius: 8px 8px 0 0; }
#movimiento-form h2,
#caja-form h2,
#consulta-vista h2 { margin: 0; font-size: 0.68rem; font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase; color: #1f4e79; }
#caja-form .cabecera-caja {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: 0.45rem 0.55rem;
  align-items: end;
}
#caja-form .cabecera-caja-general {
  grid-template-columns: minmax(0, 1.1fr) minmax(0, 1.1fr) auto;
}
#caja-form .cabecera-caja-general select {
  min-height: 2.65rem;
  font-size: 0.95rem;
}
#caja-form .cabecera-caja-banco .span-all { grid-column: 1 / -1; }
#caja-form label.caja-check-activa {
  flex-direction: row;
  align-items: center;
  justify-content: flex-start;
  gap: 0.45rem;
  min-height: 2.65rem;
  padding-bottom: 0.05rem;
}
#caja-form .caja-check-wrap {
  display: inline-flex;
  align-items: center;
}
#caja-form .caja-check-wrap input {
  width: auto;
  margin: 0;
  padding: 0;
  border: 0;
  min-height: auto;
}
#caja-form label.caja-cuenta-contable {
  display: block;
  margin: 0 0 0.35rem;
}
#caja-form label.caja-cuenta-contable select,
#caja-form label.caja-cuenta-contable .select-search {
  width: 100%;
}
#caja-form .fondo-cuenta-auto { margin: 0.35rem 0 0; font-size: 0.78rem; }
#movimiento-form .cabecera-fondo,
#consulta-vista .cabecera-fondo { display: grid; grid-template-columns: 9rem 9rem minmax(12rem, 1.4fr) minmax(10rem, 1fr); gap: 0.35rem 0.45rem; }
#movimiento-form .grilla-fondo-concepto,
#movimiento-form .fondo-renglon:not(.fondo-renglon-caja),
#consulta-vista .grilla-fondo-concepto,
#consulta-vista .fondo-renglon:not(.fondo-renglon-caja) { display: grid; grid-template-columns: minmax(12rem, 2.2fr) 8.5rem 5.6rem; gap: 0.2rem 0.45rem; align-items: center; }
#movimiento-form .grilla-fondo-caja,
#movimiento-form .fondo-renglon-caja,
#consulta-vista .grilla-fondo-caja,
#consulta-vista .fondo-renglon-caja { display: grid; grid-template-columns: minmax(0, 1fr) 9.2rem 5.6rem; gap: 0.2rem 0.45rem; align-items: center; }
#movimiento-form .medios-izq,
#consulta-vista .medios-izq { display: grid; grid-template-columns: minmax(12rem, 1.4fr) minmax(8rem, 1fr); gap: 0.2rem 0.45rem; align-items: center; min-width: 0; }
#movimiento-form .medios-izq-cheque,
#consulta-vista .medios-izq-cheque { grid-template-columns: minmax(10rem, 1.5fr) 4.4rem auto auto; }
#movimiento-form .fecha-cheque,
#consulta-vista .fecha-cheque { display: flex; align-items: center; gap: 0.3rem; font-size: 0.78rem; color: #1f4e79; white-space: nowrap; }
#movimiento-form .fecha-cheque input,
#consulta-vista .fecha-cheque input { width: 8.4rem; }
#movimiento-form .fondo-renglon-caja + .fondo-renglon-caja,
#consulta-vista .fondo-renglon-caja + .fondo-renglon-caja { margin-top: 0.35rem; }
#movimiento-form .fondo-renglon,
#consulta-vista .fondo-renglon { margin-bottom: 0.22rem; }
#movimiento-form .form-actions,
#consulta-vista .form-actions { justify-content: flex-end; margin: 0; }
#movimiento-form .btn, #movimiento-form .btn-outline, #movimiento-form .btn-agregar { padding: 0.12rem 0.48rem; font-size: 0.72rem; line-height: 1.15; }
#movimiento-form .btn-agregar { background: linear-gradient(180deg, #7eb4cb 0%, #6AA0BB 55%, #5a90ab 100%); color: #fff; border: 0; border-radius: 6px; }
#movimiento-form label,
#consulta-vista label { font-size: 0.64rem; gap: 0.04rem; }
#movimiento-form input, #movimiento-form select,
#consulta-vista input, #consulta-vista select { padding: 0.06rem 0.28rem; font-size: 0.74rem; line-height: 1.2; border-radius: 4px; }
dialog.fondo-dialog .fondo-bloque { margin: 0 0 0.85rem; }
dialog.fondo-dialog .fondo-bloque h3 {
  margin: 0 0 0.45rem;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: #5d7384;
}
dialog.fondo-dialog label {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 0.22rem;
  font-size: 0.78rem;
  font-weight: 600;
  color: #31485a;
}
dialog.fondo-dialog input,
dialog.fondo-dialog select,
dialog.fondo-dialog textarea {
  width: 100%;
  box-sizing: border-box;
  border: 1px solid #c5d4de;
  border-radius: 8px;
  padding: 0.48rem 0.6rem;
  background: #fff;
  font-size: 0.92rem;
  font-weight: 500;
  color: #16324a;
}
dialog.fondo-dialog input:focus,
dialog.fondo-dialog select:focus,
dialog.fondo-dialog textarea:focus {
  outline: 2px solid rgba(90, 144, 171, 0.45);
  border-color: #5a90ab;
}
dialog.fondo-dialog .fondo-importe input {
  font-size: 1.15rem;
  font-weight: 700;
  letter-spacing: 0.01em;
}
dialog.fondo-dialog .fondo-dialog-foot {
  display: flex;
  justify-content: flex-end;
  gap: 0.5rem;
  padding: 0.75rem 1.1rem;
  border-top: 1px solid #e3ebf0;
  background: #f7fafc;
}
.page-head .btn-eliminar,
dialog.fondo-dialog .btn-eliminar {
  background: #f6ddd9;
  color: #8d2b22;
  border: 1px solid #e4b7b1;
}
.page-head .btn-eliminar:hover,
dialog.fondo-dialog .btn-eliminar:hover {
  background: #f0cdc7;
  filter: none;
}
dialog.fondo-dialog .fondo-renglon {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 8.5rem auto;
  gap: 0.45rem;
  align-items: center;
  margin-bottom: 0.45rem;
}
dialog.fondo-dialog .concepto-dialog-fila {
  display: flex;
  flex-direction: column;
  gap: 0.65rem;
  margin-bottom: 0.85rem;
  padding-bottom: 0.85rem;
  border-bottom: 1px solid #e3ebf0;
}
dialog.fondo-dialog .concepto-dialog-fila label { min-width: 0; }
dialog.fondo-dialog .concepto-dialog-fila textarea {
  min-height: 4.2rem;
  resize: vertical;
  font-weight: 500;
}
dialog.fondo-dialog .fondo-renglon-caja {
  grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr) 8.5rem auto;
}
dialog.fondo-dialog #movimiento-form .grilla-fondo-caja,
dialog.fondo-dialog #movimiento-form .fondo-renglon-caja {
  grid-template-columns: minmax(0, 1fr) 9.2rem 5.6rem;
}
dialog.fondo-dialog .fondo-agregar { margin-top: 0.15rem; }
dialog.fondo-dialog .fondo-cuenta-auto {
  margin: 0.7rem 0 0;
  padding: 0.55rem 0.7rem;
  border-radius: 8px;
  background: #f4f8fb;
  border: 1px solid #d5e3ec;
  color: #1f4e79;
  font-size: 0.84rem;
}
@media (max-width: 640px) {
  dialog.fondo-dialog .fondo-renglon { grid-template-columns: 1fr; }
}
#generar-op .op-proveedor {
  background: #fff;
  border: 2px solid #5a90ab;
  border-radius: 10px;
  margin: 0.75rem 0;
  overflow: hidden;
}
#generar-op .op-proveedor-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.8rem;
  padding: 0.45rem 0.75rem;
  background: #e8f3f8;
  border-bottom: 2px solid #5a90ab;
}
#generar-op .op-proveedor-marca {
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 0.55rem;
  margin: 0;
  font-weight: 700;
  color: #1f4e79;
}
#generar-op .op-proveedor-marca input { width: auto; margin: 0; }
#generar-op .op-proveedor-total { color: #1f4e79; font-weight: 650; white-space: nowrap; font-variant-numeric: tabular-nums; }
#generar-op .op-proveedor .table-wrap { margin: 0; }
#generar-op .op-proveedor td:first-child,
#generar-op .op-proveedor th:first-child { width: 2.2rem; text-align: center; }
#generar-op .op-resumen { margin: 0.2rem 0 0.8rem; color: #1f4e79; }
#pago-form .pago-fecha-periodo {
  display: grid;
  grid-template-columns: 11rem minmax(12rem, 18rem);
  gap: 0.45rem 0.8rem;
  align-items: end;
  margin-bottom: 0.7rem;
}
#pago-form .bloque-comp,
#recibo-form .bloque-comp { background: #fff; border: 2px solid #5a90ab; border-radius: 10px; padding: 0 0.7rem 0.45rem; margin: 0.7rem 0; box-shadow: 0 2px 0 rgba(90, 144, 171, 0.18); }
#pago-form .seccion-linea,
#recibo-form .seccion-linea { display: flex; align-items: center; justify-content: space-between; gap: 0.5rem; margin: 0 -0.7rem 0.5rem; padding: 0.2rem 0.7rem; background: #e8f3f8; border-bottom: 2px solid #5a90ab; border-radius: 8px 8px 0 0; }
#pago-form .bloque-comp h2,
#recibo-form .bloque-comp h2 { margin: 0; font-size: 0.68rem; font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase; color: #1f4e79; }
#pago-form .grilla-fondo-caja,
#pago-form .fondo-renglon-caja { display: grid; grid-template-columns: minmax(0, 1fr) 9.2rem 5.6rem; gap: 0.2rem 0.45rem; align-items: center; }
#pago-form .medios-izq { display: grid; grid-template-columns: minmax(12rem, 1.4fr) minmax(8rem, 1fr); gap: 0.2rem 0.45rem; align-items: center; min-width: 0; }
#pago-form .medios-izq-cheque { grid-template-columns: minmax(10rem, 1.5fr) 4.4rem auto auto; }
#pago-form .fecha-cheque { display: flex; align-items: center; gap: 0.3rem; font-size: 0.78rem; color: #1f4e79; white-space: nowrap; }
#pago-form .fecha-cheque input { width: 8.4rem; }
#recibo-form .grilla-fondo-caja,
#recibo-form .fondo-renglon-caja { display: grid; grid-template-columns: minmax(12rem, 1.4fr) minmax(8rem, 1fr) 8.5rem 5.6rem; gap: 0.2rem 0.45rem; align-items: center; }
#pago-form .fondo-renglon + .fondo-renglon,
#recibo-form .medio-item + .medio-item { margin-top: 0.35rem; }
#pago-form .btn-agregar,
#recibo-form .btn-agregar,
#movimiento-form .medios-acciones .btn-agregar { background: linear-gradient(180deg, #7eb4cb 0%, #6AA0BB 55%, #5a90ab 100%); color: #fff; border: 0; border-radius: 6px; padding: 0.12rem 0.48rem; font-size: 0.72rem; }
.medios-acciones { display: flex; flex-wrap: wrap; gap: 0.35rem; }
.fondo-renglon-caja > input[type="hidden"] { display: none; }
#recibo-form .medio-cheque { margin-top: 0.35rem; }
input.monto,
input[name="importe"],
input[name="importe_medio"],
input[name="importe_concepto"],
input.proximo-numero { text-align: right; font-variant-numeric: tabular-nums; }
input.proximo-numero { width: 7.5rem; }
td.num, th.num { text-align: right; font-variant-numeric: tabular-nums; }
h1.asientos-auto-titulo {
  display: block;
  margin: 0 0 0.25rem;
  white-space: pre-wrap;
  font-family: var(--font-display);
  font-size: 1.55rem;
  font-weight: 700;
  line-height: 1.35;
  color: var(--ink);
}
h1.asientos-auto-titulo span {
  font: inherit;
  color: inherit;
}
h1.asientos-auto-titulo .asientos-auto-titulo-sep {
  margin: 0 1.35rem;
}
.page-asientos-auto-ejercicios .ejercicio-anio {
  font-weight: 600;
  font-variant-numeric: tabular-nums;
}

/* Padrón ARCA — ficha en maestro de clientes */
.padron-arca-card {
  border: 1px solid #c5dbe6;
  border-left: 4px solid #1f6b38;
  background: linear-gradient(180deg, #f8fcfa 0%, #fff 42%);
  margin-bottom: 0.75rem;
}
.padron-arca-head h2 {
  margin: 0 0 0.15rem;
  font-size: 1.05rem;
  color: #1f4e79;
}
.padron-arca-lead {
  margin: 0;
  font-size: 0.78rem;
  color: #5a7080;
}
.padron-arca-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(11rem, 1fr));
  gap: 0.65rem 1.25rem;
  margin: 0.85rem 0 0.5rem;
  padding-top: 0.65rem;
  border-top: 1px solid #dce8ef;
}
.padron-kv {
  display: flex;
  flex-direction: column;
  gap: 0.2rem;
  min-width: 0;
}
.padron-kv-wide {
  grid-column: 1 / -1;
}
.padron-kv-label {
  font-size: 0.64rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: #5a7080;
}
.padron-kv-value {
  font-size: 0.88rem;
  font-weight: 600;
  color: #243444;
  line-height: 1.35;
}
.padron-badge {
  display: inline-block;
  align-self: flex-start;
  padding: 0.18rem 0.55rem;
  border-radius: 999px;
  font-size: 0.72rem;
  font-weight: 650;
  letter-spacing: 0.02em;
}
.padron-badge-ok {
  background: #e7f6ec;
  color: #1d6b3a;
}
.padron-badge-warn {
  background: #fff4e5;
  color: #8a5a00;
}
.padron-arca-block {
  margin-top: 0.75rem;
  padding-top: 0.65rem;
  border-top: 1px dashed #d4e2ea;
}
.padron-actividad-texto {
  margin: 0.35rem 0 0;
  padding: 0.55rem 0.7rem;
  border-radius: 8px;
  background: #eef4f8;
  border: 1px solid #d4e2ea;
  font-size: 0.84rem;
  line-height: 1.45;
  color: #243444;
}
.padron-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem 0.45rem;
  margin-top: 0.4rem;
}
.padron-tag {
  display: inline-block;
  padding: 0.22rem 0.55rem;
  border-radius: 6px;
  background: #fff;
  border: 1px solid #c5dbe6;
  font-size: 0.72rem;
  line-height: 1.35;
  color: #334155;
  max-width: 100%;
}
.padron-arca-foot {
  margin: 0.85rem 0 0;
  padding-top: 0.55rem;
  border-top: 1px solid #e8eef2;
  font-size: 0.72rem;
}

.empresa-logo-preview {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  padding: 0.65rem 0.85rem;
  border: 1px dashed #c5dbe6;
  border-radius: 8px;
  background: #f8fcfa;
  min-height: 4rem;
}
.empresa-logo-preview img {
  max-height: 5rem;
  max-width: min(100%, 16rem);
  width: auto;
  height: auto;
  object-fit: contain;
}

/* Clave de acceso — layout PORTAL_RRHH */
.content:has(.page-clave-portal) {
  overflow-x: hidden;
  overflow-y: auto;
}
.page-clave-portal {
  display: block;
  max-width: min(56rem, 92vw);
  margin: 0 auto;
  padding: 0.5rem 1rem 1.75rem;
}
.page-clave-portal-title {
  display: flex;
  align-items: center;
  gap: 0.4rem;
  margin: 0 0 0.85rem;
  font-family: var(--font-display);
  font-size: 1.35rem;
  font-weight: 700;
  color: #1f4e79;
}
.page-clave-portal-title-icon {
  width: 1.15rem;
  height: 1.15rem;
  flex-shrink: 0;
  background: center / contain no-repeat;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M8 1.5a3 3 0 0 0-3 3V6H4a1 1 0 0 0-1 1v6a1 1 0 0 0 1 1h8a1 1 0 0 0 1-1V7a1 1 0 0 0-1-1h-1V4.5a3 3 0 0 0-3-3zm-1.5 3V4.5a1.5 1.5 0 0 1 3 0V6h-3z' fill='%231f4e79'/%3E%3C/svg%3E");
}
.page-clave-portal .portal-perfil-card {
  max-width: none;
  width: 100%;
  margin: 0 auto;
  padding: 1.75rem 2rem 1.85rem;
  border: 1px solid #c5d0db;
  border-radius: 16px;
  background: linear-gradient(180deg, #ffffff 0%, #f6f9fc 100%);
  box-shadow: 0 4px 14px rgba(15, 35, 55, 0.08);
}
.page-clave-portal .portal-perfil-clave-fields {
  gap: 1.05rem;
}
.page-clave-portal .portal-perfil-clave-label {
  font-size: 0.9rem;
}
.page-clave-portal .portal-perfil-clave-input {
  min-height: 3.1rem;
  padding: 0.7rem 1rem;
  font-size: 1.05rem;
  border-radius: 11px;
}
.page-clave-portal .portal-perfil-clave-panel {
  margin: 1.15rem 0 1.35rem;
  padding: 1rem 1.15rem;
  border-radius: 12px;
}
.page-clave-portal .portal-perfil-clave-panel-title {
  font-size: 0.78rem;
  margin-bottom: 0.55rem;
}
.page-clave-portal .portal-perfil-clave-reqs {
  gap: 0.45rem;
}
.page-clave-portal .portal-perfil-clave-reqs .password-req {
  font-size: 0.92rem;
}
.page-clave-portal .portal-perfil-clave-submit {
  min-height: 3.1rem;
  font-size: 1rem;
  border-radius: 11px;
}
.portal-perfil-clave-fields {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
}
.portal-perfil-clave-field {
  display: flex;
  flex-direction: column;
  gap: 0.28rem;
  min-width: 0;
}
.portal-perfil-clave-label {
  font-size: 0.8125rem;
  font-weight: 650;
  color: #334155;
  line-height: 1.3;
}
.portal-perfil-clave-input {
  width: 100%;
  box-sizing: border-box;
  min-height: 2.65rem;
  padding: 0.5rem 0.7rem;
  font-size: 0.9375rem;
  line-height: 1.35;
  color: #0f172a;
  background: #fff;
  border: 1px solid #cbd5e1;
  border-radius: 10px;
  transition: border-color 0.15s, box-shadow 0.15s;
}
.portal-perfil-clave-input::placeholder {
  color: #94a3b8;
}
.portal-perfil-clave-input:focus {
  outline: none;
  border-color: #6aa0bb;
  box-shadow: 0 0 0 3px rgba(106, 160, 187, 0.22);
}
.portal-perfil-clave-panel {
  margin: 0.85rem 0 1rem;
  padding: 0.65rem 0.75rem;
  border-radius: 10px;
  background: #f1f5f9;
  border: 1px solid #e2e8f0;
}
.portal-perfil-clave-panel-title {
  margin: 0 0 0.45rem;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: #64748b;
}
.portal-perfil-clave-reqs {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 0.32rem;
}
.portal-perfil-clave-reqs .password-req {
  display: flex;
  align-items: flex-start;
  gap: 0.42rem;
  margin: 0;
  font-size: 0.78rem;
  line-height: 1.35;
  font-weight: 500;
}
.portal-perfil-clave-reqs .clave-req-icon {
  flex-shrink: 0;
  width: 0.85rem;
  height: 0.85rem;
  margin-top: 0.08rem;
  background: center / contain no-repeat;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Ccircle cx='8' cy='8' r='7' fill='%23c62828'/%3E%3Cpath d='M5.5 5.5 10.5 10.5M10.5 5.5 5.5 10.5' stroke='%23fff' stroke-width='1.4' stroke-linecap='round'/%3E%3C/svg%3E");
}
.portal-perfil-clave-reqs .password-req.is-valid .clave-req-icon {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Ccircle cx='8' cy='8' r='7' fill='%232e7d32'/%3E%3Cpath d='M4.8 8.2 7.1 10.5 11.5 5.8' fill='none' stroke='%23fff' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
}
.portal-perfil-clave-reqs .password-req.is-invalid {
  color: #c62828;
}
.portal-perfil-clave-reqs .password-req.is-valid {
  color: #2e7d32;
}
.portal-perfil-clave-actions {
  margin-top: 0.15rem;
}
.portal-perfil-clave-submit {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.45rem;
  width: 100%;
  min-height: 2.75rem;
  padding: 0.5rem 1rem;
  border: 1px solid #5a90ab;
  border-radius: 10px;
  background: linear-gradient(180deg, #7eb4cb 0%, #6aa0bb 55%, #5a90ab 100%);
  color: #fff;
  font-size: 0.9rem;
  font-weight: 700;
  letter-spacing: 0.02em;
  cursor: pointer;
  box-shadow: 0 2px 6px rgba(47, 68, 86, 0.18);
  transition: filter 0.15s, transform 0.12s;
}
.portal-perfil-clave-submit-icon {
  width: 1.05rem;
  height: 1.05rem;
  background: center / contain no-repeat;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Ccircle cx='8' cy='8' r='6.5' fill='none' stroke='%23fff' stroke-width='1.3'/%3E%3Cpath d='M5 8.2 7.2 10.5 11.2 5.8' fill='none' stroke='%23fff' stroke-width='1.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
}
.portal-perfil-clave-submit:hover {
  filter: brightness(1.03);
}
.portal-perfil-clave-submit:active {
  transform: scale(0.992);
  filter: brightness(0.97);
}
@media (max-width: 900px) {
  .page-clave-portal .portal-perfil-card {
    padding: 1rem 1rem 1.15rem;
    border-radius: 12px;
  }
}
