/* Portal de Impuesto sobre la Renta y Activos · BKT Financial — diseño 2026
   Colores del logo: azul #0f4172 y celeste #01a6de. Tipografía del sistema (Segoe UI en Windows). */
:root {
  --azul: #0f4172; --azul-900: #0a2e52; --azul-700: #1a5791; --celeste: #01a6de; --celeste-50: #e8f7fd; --celeste-100: #cdeefa;
  --texto: #14202e; --suave: #5f6d7e; --borde: #e2e8f0; --borde-fuerte: #cbd5e1; --fondo: #f3f6fa; --blanco: #fff;
  --ok: #0f7b4f; --ok-50: #e7f6ef; --mal: #c0362c; --mal-50: #fdeeec; --aviso: #946200; --aviso-50: #fff6de;
  --entrada: #fffdf3; --radio: 14px; --sombra: 0 1px 2px rgba(15, 30, 55, .05), 0 6px 18px rgba(15, 30, 55, .06);
}
* { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body { margin: 0; font: 15px/1.5 "Segoe UI Variable Text", "Segoe UI", system-ui, -apple-system, Roboto, "Helvetica Neue", Arial, sans-serif;
  color: var(--texto); background: var(--fondo); }
a { color: var(--azul-700); text-underline-offset: 2px; }
h1 { font-size: 1.55rem; line-height: 1.25; margin: 0 0 .35rem; color: var(--azul); letter-spacing: -.01em; }
h2 { font-size: 1.1rem; margin: 0 0 .6rem; color: var(--azul); }
h3 { font-size: 1rem; margin: 1rem 0 .4rem; }
.suave { color: var(--suave); font-weight: 400; }
.ok { color: var(--ok); } .error, .errorlist { color: var(--mal); }
.errorlist { margin: .25rem 0 0; padding-left: 1rem; font-size: .85rem; }

/* ---------- Barra superior ---------- */
.barra { position: sticky; top: 0; z-index: 50; display: flex; justify-content: space-between; align-items: center; gap: 1rem;
  height: 64px; padding: 0 1.5rem; background: rgba(255, 255, 255, .94); backdrop-filter: saturate(160%) blur(8px);
  border-bottom: 1px solid var(--borde); box-shadow: 0 2px 0 var(--celeste); }
.marca { display: inline-flex; align-items: center; gap: .75rem; text-decoration: none; color: var(--azul); }
.marca img { display: block; width: 40px; height: 40px; border-radius: 6px; }
.marca .nombre { display: flex; flex-direction: column; line-height: 1.1; font-weight: 700; font-size: 1.08rem; }
.marca .nombre small { font-weight: 500; font-size: .72rem; color: var(--suave); letter-spacing: .05em; text-transform: uppercase; }
.usuario { display: flex; align-items: center; gap: .9rem; font-size: .92rem; }
.usuario form { margin: 0; }
.avatar { display: inline-grid; place-items: center; width: 34px; height: 34px; border-radius: 50%; background: var(--azul); color: #fff;
  font-weight: 700; font-size: .85rem; }
.quien { display: flex; flex-direction: column; line-height: 1.15; }
.quien small { color: var(--suave); font-size: .75rem; }
.etiqueta { font-size: .7rem; font-weight: 700; padding: .15rem .55rem; border-radius: 999px; background: var(--celeste-50); color: var(--azul);
  text-transform: uppercase; letter-spacing: .05em; }
.etiqueta.bkt { background: var(--azul); color: #fff; }

/* ---------- Botones ---------- */
.boton, .primario, button.boton { display: inline-flex; align-items: center; gap: .4rem; padding: .5rem .95rem; border-radius: 10px;
  border: 1px solid var(--borde-fuerte); background: var(--blanco); color: var(--azul); font-family: inherit; font-weight: 600; font-size: .92rem; line-height: 1.2; text-decoration: none;
  cursor: pointer; transition: background .15s, border-color .15s, box-shadow .15s; white-space: nowrap; }
.boton:hover { border-color: var(--azul-700); background: #f7fafd; }
.primario { background: var(--azul); border-color: var(--azul); color: #fff; box-shadow: 0 1px 2px rgba(15, 65, 114, .3); }
.primario:hover { background: var(--azul-900); }
.primario:disabled { opacity: .45; cursor: not-allowed; }
.boton.acento { background: var(--celeste); border-color: var(--celeste); color: #fff; }
.boton.acento:hover { background: #0192c4; }
button.enlace { background: none; border: 0; color: var(--azul-700); text-decoration: underline; cursor: pointer; font: inherit; padding: 0; }
.peligro { color: var(--mal) !important; }
.boton:focus-visible, .primario:focus-visible, a:focus-visible { outline: 3px solid var(--celeste-100); outline-offset: 2px; }

/* ---------- Estructura ---------- */
.contenido { max-width: 1120px; margin: 2rem auto; padding: 0 1.25rem; }
.con-menu { display: grid; grid-template-columns: 290px minmax(0, 1fr); gap: 1.5rem; padding: 1.5rem; max-width: 1680px; margin: 0 auto; }
.con-menu > .mensajes { grid-column: 1 / -1; margin: 0; }
.panel { min-width: 0; }
.tarjeta { background: var(--blanco); border: 1px solid var(--borde); border-radius: var(--radio); padding: 1.25rem 1.4rem;
  margin-bottom: 1.1rem; box-shadow: var(--sombra); }
.tarjeta.angosta { max-width: 560px; }
.cabecera { margin-bottom: 1.1rem; }
.cabecera h1 { display: flex; align-items: center; gap: .6rem; }
.origen { display: inline-block; margin-left: .35rem; font-size: .75rem; color: var(--suave); background: #eef2f7; padding: .05rem .45rem; border-radius: 6px; }
.pie { text-align: center; color: var(--suave); font-size: .8rem; padding: 1.5rem 1rem 2rem; }
.pie img { vertical-align: middle; width: 20px; height: 20px; border-radius: 3px; margin-right: .35rem; }

/* ---------- Mensajes ---------- */
.mensajes { list-style: none; padding: 0; margin: 0 0 1rem; display: grid; gap: .5rem; }
.mensajes li { padding: .75rem 1rem; border-radius: 12px; background: var(--celeste-50); border: 1px solid var(--celeste-100); color: var(--azul); }
.mensajes .success { background: var(--ok-50); border-color: #bfe6d3; color: var(--ok); }
.mensajes .error { background: var(--mal-50); border-color: #f5c8c3; color: var(--mal); }
.mensajes .warning { background: var(--aviso-50); border-color: #f3dca0; color: var(--aviso); }
.aviso { background: var(--aviso-50); color: var(--aviso); padding: .65rem .9rem; border-radius: 10px; border: 1px solid #f3dca0; }
.error-caja { background: var(--mal-50); color: var(--mal); border: 1px solid #f5c8c3; border-radius: 10px; padding: .6rem .95rem; margin-bottom: .9rem; }
.error-caja p { margin: .2rem 0; }
.pendientes { background: var(--aviso-50); border: 1px solid #f3dca0; border-radius: 12px; padding: .7rem 1rem; color: var(--aviso); margin-top: .8rem; }
.pendientes summary { cursor: pointer; font-weight: 700; }
.pendientes ul { margin: .4rem 0 0; }

/* ---------- Insignias de estado ---------- */
.estado, .insignia { display: inline-flex; align-items: center; gap: .35rem; font-size: .78rem; font-weight: 600; padding: .18rem .6rem;
  border-radius: 999px; background: #eef2f7; color: var(--suave); white-space: nowrap; }
.estado::before, .insignia::before { content: ""; width: .5rem; height: .5rem; border-radius: 50%; background: currentColor; opacity: .85; }
.estado.abierto { background: var(--celeste-50); color: var(--azul-700); }
.estado.enviado, .estado.revision { background: var(--aviso-50); color: var(--aviso); }
.estado.cerrado { background: #eceff3; color: #56606c; }
.insignia.ok { background: var(--ok-50); color: var(--ok); }
.insignia.error { background: var(--aviso-50); color: var(--aviso); }
.insignia.no-aplica { background: #eef2f7; color: var(--suave); }

/* ---------- Tablas simples ---------- */
.tabla { width: 100%; border-collapse: separate; border-spacing: 0; background: var(--blanco); font-size: .93rem; }
.tabla th, .tabla td { padding: .6rem .75rem; text-align: left; vertical-align: middle; border-bottom: 1px solid var(--borde); }
.tabla thead th { background: #f6f8fb; color: var(--suave); font-size: .76rem; font-weight: 700; text-transform: uppercase; letter-spacing: .05em; }
.tabla tbody tr:hover td { background: #fafcfe; }
.tabla.compacta td, .tabla.compacta th { padding: .4rem .6rem; font-size: .88rem; }
.der { text-align: right !important; font-variant-numeric: tabular-nums; }
.centro { text-align: center !important; }
.desplazable { overflow-x: auto; border-radius: 10px; }
.desplazable.alto { max-height: 560px; overflow-y: auto; }

/* ---------- Inicio ---------- */
.saludo { display: flex; justify-content: space-between; align-items: end; gap: 1rem; flex-wrap: wrap; margin-bottom: 1.2rem; }
.titulo-empresa { display: flex; justify-content: space-between; align-items: center; gap: 1rem; flex-wrap: wrap; margin-bottom: .8rem; }
.titulo-empresa h2 { margin: 0; display: flex; align-items: center; gap: .6rem; }
.icono-empresa { display: inline-grid; place-items: center; width: 38px; height: 38px; border-radius: 10px; background: var(--celeste-50);
  color: var(--azul); font-weight: 800; }

/* ---------- Menú lateral ---------- */
.menu { background: var(--blanco); border: 1px solid var(--borde); border-radius: var(--radio); padding: 1rem; align-self: start;
  position: sticky; top: 84px; box-shadow: var(--sombra); max-height: calc(100vh - 100px); overflow-y: auto; }
.menu .volver { display: inline-block; margin-bottom: .75rem; font-size: .88rem; text-decoration: none; }
.ficha { display: flex; flex-direction: column; gap: .15rem; padding: .85rem; background: linear-gradient(135deg, var(--azul), var(--azul-700));
  color: #fff; border-radius: 12px; margin-bottom: .9rem; font-size: .85rem; }
.ficha strong { font-size: .98rem; }
.ficha span { opacity: .9; }
.ficha .estado { align-self: flex-start; margin-top: .35rem; background: rgba(255, 255, 255, .18); color: #fff; }
.progreso { margin: 0 0 .8rem; }
.progreso .texto { display: flex; justify-content: space-between; font-size: .8rem; color: var(--suave); margin-bottom: .3rem; }
.barra-progreso { height: 8px; background: #e9eef4; border-radius: 999px; overflow: hidden; }
.barra-progreso span { display: block; height: 100%; background: linear-gradient(90deg, var(--celeste), var(--azul-700)); border-radius: 999px; }
.menu .item { display: flex; align-items: center; gap: .6rem; padding: .5rem .55rem; border-radius: 10px; text-decoration: none; color: var(--texto);
  font-size: .92rem; line-height: 1.25; }
.menu .item:hover { background: #f4f7fb; }
.menu .item.activo { background: var(--celeste-50); color: var(--azul); font-weight: 700; }
.nsec { display: inline-grid; place-items: center; min-width: 1.6rem; height: 1.6rem; border-radius: 8px; background: #eef2f7; font-size: .78rem;
  font-weight: 700; color: var(--suave); flex: none; }
.menu .item.activo .nsec { background: var(--azul); color: #fff; }
h1 .nsec { width: 2.2rem; height: 2.2rem; font-size: 1rem; background: var(--azul); color: #fff; border-radius: 10px; }
.punto { margin-left: auto; width: .6rem; height: .6rem; border-radius: 50%; background: #d3dae3; flex: none; }
.punto.ok { background: var(--ok); } .punto.error { background: #e0a100; } .punto.no-aplica { background: #9aa6b2; }
.contador { margin-left: auto; background: #e0a100; color: #fff; border-radius: 999px; padding: 0 .5rem; font-size: .76rem; font-weight: 700; }
.menu .separador { height: 1px; background: var(--borde); margin: .6rem 0; }
.menu .item.importar { color: var(--azul); font-weight: 700; background: var(--celeste-50); }

/* ---------- Resumen del ejercicio ---------- */
.resumen-cabecera { display: flex; justify-content: space-between; align-items: center; gap: 1.2rem; flex-wrap: wrap; }
.anillo { --p: 0; width: 88px; height: 88px; border-radius: 50%; display: grid; place-items: center; flex: none;
  background: conic-gradient(var(--celeste) calc(var(--p) * 1%), #e9eef4 0); }
.anillo span { width: 68px; height: 68px; border-radius: 50%; background: #fff; display: grid; place-items: center; font-weight: 800; color: var(--azul); }
.tarjetas-secciones { display: grid; grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)); gap: .9rem; margin: 1rem 0; }
.tarjeta-seccion { display: flex; flex-direction: column; gap: .55rem; background: var(--blanco); border: 1px solid var(--borde); border-radius: var(--radio);
  padding: 1rem; text-decoration: none; color: var(--texto); box-shadow: var(--sombra); transition: transform .12s, border-color .12s; }
.tarjeta-seccion:hover { transform: translateY(-2px); border-color: var(--celeste); }
.tarjeta-seccion .arriba { display: flex; align-items: center; justify-content: space-between; gap: .5rem; }
.tarjeta-seccion strong { color: var(--azul); line-height: 1.3; }
.tarjeta-seccion small { color: var(--suave); }

/* ---------- Formularios ---------- */
input, select, textarea { font: inherit; color: var(--texto); padding: .5rem .65rem; border: 1px solid var(--borde-fuerte); border-radius: 10px; background-color: var(--blanco); max-width: 100%; }
select { appearance: none; -webkit-appearance: none; padding-right: 2rem;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%230f4172' stroke-width='1.8'/%3E%3C/svg%3E");
  background-repeat: no-repeat; background-position: right .7rem center; }
input:focus, select:focus, textarea:focus { outline: 3px solid var(--celeste-100); border-color: var(--celeste); }
input:disabled, select:disabled { background-color: #f3f5f8; color: var(--suave); }
.formulario > label, .tarjeta form > label { display: flex; flex-direction: column; gap: .3rem; margin-bottom: .9rem; font-size: .9rem; font-weight: 600; }
.formulario small { font-weight: 400; }
.formulario input[type=file] { padding: .6rem; border: 1px dashed var(--celeste); background-color: var(--celeste-50); border-radius: 10px; }
.acciones { position: sticky; bottom: 1rem; z-index: 20; display: flex; align-items: center; flex-wrap: wrap; gap: 1rem; margin: 1.2rem 0 0;
  padding: .8rem 1rem; background: rgba(255, 255, 255, .96); backdrop-filter: blur(6px); border: 1px solid var(--borde);
  border-radius: var(--radio); box-shadow: 0 10px 30px rgba(15, 30, 55, .12); }
.no-aplica { display: inline-flex; gap: .45rem; align-items: center; font-weight: 600; }
.en-linea { display: flex; gap: .8rem; align-items: end; flex-wrap: wrap; }
.en-linea label { display: flex; flex-direction: column; gap: .3rem; font-size: .9rem; }
.lista-secciones { border: 1px solid var(--borde); border-radius: 12px; padding: .8rem 1rem; margin: 0 0 1rem; }
.lista-secciones legend { font-weight: 700; padding: 0 .3rem; color: var(--azul); }
.lista-secciones ul, .lista-secciones div { list-style: none; padding: 0; margin: 0; display: grid; gap: .4rem; }
.lista-secciones label { display: inline-flex; gap: .55rem; align-items: center; font-weight: 400; }
kbd { font: 600 .74rem/1 ui-monospace, "Cascadia Mono", Consolas, monospace; background: #fff; border: 1px solid var(--borde-fuerte);
  border-bottom-width: 2px; border-radius: 5px; padding: .12rem .32rem; color: var(--texto); }

/* ---------- Entrar ---------- */
.pantalla-entrada { min-height: calc(100vh - 64px); display: grid; grid-template-columns: 1.1fr 1fr; }
.entrada-marca { background: radial-gradient(circle at 20% 20%, #1a5791 0, var(--azul) 45%, var(--azul-900) 100%); color: #fff; padding: 4rem 3.5rem;
  display: flex; flex-direction: column; justify-content: center; gap: 1.2rem; position: relative; overflow: hidden; }
.entrada-marca::after { content: ""; position: absolute; right: -120px; top: -120px; width: 320px; height: 320px; background: var(--celeste);
  transform: rotate(45deg); opacity: .9; }
.entrada-marca img { width: 96px; height: 96px; border-radius: 10px; box-shadow: 0 10px 30px rgba(0, 0, 0, .25); position: relative; z-index: 1; }
.entrada-marca h1 { color: #fff; font-size: 2.2rem; margin: 0; }
.entrada-marca p { max-width: 30rem; opacity: .9; margin: 0; font-size: 1.05rem; }
.entrada-marca ul { margin: .5rem 0 0; padding-left: 1.1rem; opacity: .9; }
.entrada-form { display: grid; place-items: center; padding: 2rem; }
.login { width: 100%; max-width: 400px; }
.login label { display: flex; flex-direction: column; gap: .35rem; margin: 1rem 0; font-weight: 600; font-size: .9rem; }
.login input { width: 100%; padding: .7rem .8rem; }
.login .primario { width: 100%; justify-content: center; padding: .75rem; margin-top: .4rem; }

/* ---------- Hojas tipo Excel ---------- */
.barra-hoja { display: flex; justify-content: space-between; align-items: center; gap: 1rem; flex-wrap: wrap; background: var(--blanco);
  border: 1px solid var(--borde); border-radius: 12px; padding: .6rem .8rem; margin-bottom: 1rem; font-size: .86rem; box-shadow: var(--sombra); }
.ayuda-teclas { display: flex; align-items: center; gap: .6rem; color: var(--suave); }
.icono-excel { display: inline-grid; place-items: center; width: 30px; height: 30px; border-radius: 8px; background: #e7f4ec; color: #1d6f42; font-size: 1.1rem; flex: none; }
.importar-rapido { display: flex; gap: .5rem; margin: 0; }
.importar-rapido label { cursor: pointer; }
.bloque-tabla { background: var(--blanco); border: 1px solid var(--borde); border-radius: var(--radio); padding: 1.1rem 1.2rem; margin-bottom: 1.1rem; box-shadow: var(--sombra); }
.bloque-tabla h2 { margin-bottom: .25rem; }
.agregar-fila { margin-top: .7rem; font-weight: 600; text-decoration: none !important; }

table.hoja { border-collapse: collapse; background: #fff; font-size: .88rem; width: max-content; min-width: 100%;
  font-family: "Segoe UI", system-ui, sans-serif; border: 1px solid #c8d1dc; }
table.hoja th, table.hoja td { border: 1px solid #d6dde6; padding: 0; height: 30px; }
table.hoja thead th { background: #f1f4f8; color: #334155; font-weight: 600; font-size: .8rem; padding: .35rem .6rem; text-align: center;
  position: sticky; top: 0; z-index: 3; white-space: nowrap; border-bottom: 2px solid #c8d1dc; }
table.hoja tbody th { background: #fff; font-weight: 500; text-align: left; padding: .25rem .6rem; }
table.hoja .num-fila { background: #f1f4f8 !important; color: #7a8696; text-align: center; font-size: .75rem; font-weight: 600; min-width: 2.8rem; padding: 0 .3rem; }
/* Cada celda es un cuadro, sin redondeos ni sombras (como Excel) */
table.hoja .celda, table.hoja select.celda { display: block; width: 100%; min-width: 7rem; height: 29px; margin: 0; border: 0 !important;
  border-radius: 0 !important; box-shadow: none !important; padding: 0 .5rem; background-color: var(--entrada); font: inherit; color: var(--texto);
  outline: none !important; cursor: cell; }
table.hoja select.celda { padding-right: 1.6rem; background-position: right .45rem center; }
table.hoja .celda.num { text-align: right; font-variant-numeric: tabular-nums; min-width: 7.8rem; }
table.hoja .celda.calc, table.hoja .celda:disabled, table.hoja .celda[readonly] { background-color: #f6f8fa; color: #334155; cursor: default; }
table.hoja .celda.calc { font-weight: 600; }
table.hoja td.sel .celda { background-color: #d9f1fb; }
table.hoja td.activa { outline: 2px solid #1d6f42; outline-offset: -1px; position: relative; z-index: 2; }
table.hoja td.activa::after { content: ""; position: absolute; right: -3px; bottom: -3px; width: 6px; height: 6px; background: #1d6f42; border: 1px solid #fff; }
table.hoja td.activa .celda { background-color: #fff; cursor: text; }
table.hoja .celda.con-error, table.hoja td.error-celda .celda { background-color: var(--mal-50); color: var(--mal); }
table.hoja td.error-celda { outline: 2px solid var(--mal); outline-offset: -1px; }
table.hoja tr.fila-error .num-fila { background: var(--mal-50) !important; color: var(--mal); }
table.hoja input[type=checkbox] { margin: 0 auto; display: block; width: 16px; height: 16px; accent-color: var(--azul); }
.grilla th.fija { position: sticky; left: 0; background: #fff; min-width: 20rem; max-width: 26rem; z-index: 2; white-space: normal; box-shadow: 1px 0 0 #c8d1dc; }
.grilla thead th.fija { background: #f1f4f8; z-index: 4; text-align: left; }
.grilla tr.bloque th, .grilla tr.bloque td { background: #eaf6fc; color: var(--azul); font-weight: 700; font-size: .8rem; text-transform: uppercase; letter-spacing: .03em; }
.grilla tr.calculada th, .grilla tr.calculada td { background: #f6f8fa; font-style: italic; text-align: right; padding: 0 .5rem; white-space: nowrap; color: #334155; }
.grilla tr.calculada th { text-align: left; white-space: normal; }
.grilla tr.cuadre td { text-align: center; font-weight: 800; }
.grilla td.ok { color: var(--ok); background: var(--ok-50); } .grilla td.mal { color: var(--mal); background: var(--mal-50); }
.grilla .celda.cantidad { min-width: 5.5rem; }
.ficha-hoja { min-width: 0 !important; width: 100% !important; }
.ficha-hoja tbody th { width: 18rem; }
.ficha-hoja td:nth-child(3) { width: 28rem; }
.ficha-hoja td:nth-child(4) { padding: .2rem .6rem; font-size: .82rem; }
.ficha-hoja tr.bloque th { background: #eaf6fc; color: var(--azul); }
.totales-balanza { font-variant-numeric: tabular-nums; }

@media (max-width: 900px) {
  .con-menu { grid-template-columns: 1fr; padding: 1rem; }
  .menu { position: static; max-height: none; }
  .pantalla-entrada { grid-template-columns: 1fr; }
  .entrada-marca { padding: 2.5rem 1.5rem; }
  .quien { display: none; }
}

/* Mensajes en la pantalla de entrada (p. ej. tras salir) */
.pantalla-entrada > .mensajes { grid-column: 1 / -1; margin: 1rem 1.25rem 0; }

/* ---------- Alta de cliente (BKT) ---------- */
.alta-cliente { max-width: 820px; }
.grupo { border: 1px solid var(--borde); border-radius: 12px; padding: 1rem 1.1rem .3rem; margin: 0 0 1rem; }
.grupo legend { font-weight: 700; color: var(--azul); padding: 0 .35rem; display: inline-flex; align-items: center; gap: .45rem; }
.paso { display: inline-grid; place-items: center; width: 1.5rem; height: 1.5rem; border-radius: 50%; background: var(--celeste); color: #fff; font-size: .8rem; }
.dos-columnas { display: grid; grid-template-columns: 1fr 1fr; gap: 0 1rem; }
.dos-columnas > label { display: flex; flex-direction: column; gap: .3rem; justify-content: flex-start; margin-bottom: .9rem; font-size: .9rem; font-weight: 600; }
.dos-columnas input, .dos-columnas select { width: 100%; }
.obligatorio { color: var(--mal); }
label.con-error input, label.con-error select { border-color: var(--mal); background-color: var(--mal-50); }
.periodo-previo { margin: 0 0 .5rem; }
.mensaje-cliente { width: 100%; font-family: ui-monospace, Consolas, monospace; font-size: .88rem; line-height: 1.45; background: #f7fafd; }
.fecha-entrega { display: flex; gap: .6rem; align-items: end; flex-wrap: wrap; margin-bottom: 1rem; }
.fecha-entrega label { display: flex; flex-direction: column; gap: .3rem; font-weight: 600; font-size: .9rem; }
@media (max-width: 700px) { .dos-columnas { grid-template-columns: 1fr; } }
.acciones-inicio { display: flex; gap: .6rem; flex-wrap: wrap; }
.rnc-dgii { margin: -.3rem 0 .9rem; font-size: .88rem; }
.rnc-dgii.bien { color: var(--ok); font-weight: 600; }
.rnc-dgii.mal { color: var(--mal); font-weight: 600; }
.aviso-ok { background: var(--ok-50); color: var(--ok); padding: .65rem .9rem; border-radius: 10px; border: 1px solid #bfe6d3; }
.boton.enviar-correo { background: var(--azul); border-color: var(--azul); color: #fff; }
.boton.enviar-correo:hover { background: var(--azul-900); }
.boton.enviar-whatsapp { background: #1f9d55; border-color: #1f9d55; color: #fff; }
.boton.enviar-whatsapp:hover { background: #17824a; }
.envio-nota { font-size: .85rem; margin: .6rem 0 0; }
.botones-envio { display: flex; gap: .6rem; flex-wrap: wrap; margin-top: 1rem; }
.olvide { text-align: center; margin: 1rem 0 0; font-size: .9rem; }
.enlace-peligro { color: var(--mal); font-size: .85rem; }
.zona-peligro h1 { color: var(--mal); }
.acciones-bkt { display: flex; gap: .8rem; align-items: center; flex-wrap: wrap; }
.zona-peligro .acciones .tarjeta.zona-peligro h1 { color: var(--mal); }
.boton.boton-peligro, button.boton.boton-peligro { background: var(--mal); border-color: var(--mal); color: #fff; }
.boton.boton-peligro:hover { background: #a3271c; }

/* ---------- Tres formas de llenar el PPC ---------- */
.formas-llenar { margin: 1.2rem 0; }
.formas-llenar h2 { margin: 0 0 .7rem; }
.tres-formas { display: grid; grid-template-columns: repeat(auto-fit, minmax(230px, 1fr)); gap: .9rem; }
.forma { display: flex; flex-direction: column; gap: .5rem; align-items: flex-start; background: var(--blanco); border: 1px solid var(--borde);
  border-radius: var(--radio); padding: 1rem; box-shadow: var(--sombra); }
.forma.destacada { border-color: var(--celeste); box-shadow: 0 0 0 3px var(--celeste-50), var(--sombra); }
.forma strong { color: var(--azul); }
.forma small { color: var(--suave); flex: 1; }
.forma form { margin: 0; }
.forma-icono { display: inline-grid; place-items: center; width: 2.2rem; height: 2.2rem; border-radius: 10px; background: var(--celeste-50); color: var(--azul); font-size: 1.1rem; }
.enlace-suave { font-size: .85rem; }
.ayuda-macros { font-size: .82rem; color: var(--texto); background: #f7fafd; border: 1px solid var(--borde); border-radius: 10px; padding: .45rem .7rem; width: 100%; }
.ayuda-macros summary { cursor: pointer; color: var(--azul-700); font-weight: 600; }
.ayuda-macros ol { margin: .5rem 0 .3rem 1.1rem; padding: 0; }
.ayuda-macros li { margin: .2rem 0; }
table.hoja th.col-calc { background: #e8eef5; }
table.hoja tfoot .fila-total th, table.hoja tfoot .fila-total td { background: #eef2f7; font-weight: 700; border-top: 2px solid var(--azul); }
table.hoja tfoot .fila-total th { text-align: right; padding-right: .6rem; }
.importar-rapido { display: flex; gap: .5rem; flex-wrap: wrap; align-items: center; }
.importar-rapido form { margin: 0; }

/* ---------- Buscador de clientes ---------- */
.buscador { display: flex; align-items: center; gap: .6rem; background: var(--blanco); border: 1px solid var(--borde); border-radius: 12px;
  padding: .35rem .8rem; margin: 0 0 1rem; box-shadow: var(--sombra); }
.buscador .lupa { font-size: 1.05rem; }
.buscador input[type=search] { flex: 1; border: 0; background: transparent; padding: .5rem .2rem; font-size: 1rem; outline: none; }
.buscador:focus-within { border-color: var(--celeste); box-shadow: 0 0 0 3px var(--celeste-50); }
.acciones-fila { white-space: nowrap; display: flex; gap: .8rem; align-items: center; }

/* ---------- Etapa 2: trabajo de BKT ---------- */
.menu-titulo { display: block; padding: .2rem .8rem .35rem; font-size: .7rem; font-weight: 700; letter-spacing: .08em;
  text-transform: uppercase; color: var(--suave); }
.insignia.mal { background: var(--mal-50); color: var(--mal); }
.insignia.info { background: var(--celeste-50); color: var(--azul-700); }
.tabla tr.fila-dif td { background: var(--mal-50); }
.tabla tr.fila-total td { font-weight: 700; border-top: 2px solid var(--borde-fuerte); }
.tabla td.num, .tabla th.num { text-align: right; font-variant-numeric: tabular-nums; white-space: nowrap; }
.meses { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: .6rem; margin: .6rem 0 1rem; }
.mes { border: 1px solid var(--borde); border-radius: 12px; padding: .6rem .75rem; background: var(--blanco); font-size: .86rem; }
.mes strong { display: block; color: var(--azul); font-size: .95rem; }
.mes.ok { border-color: #bfe6d3; background: var(--ok-50); }
.mes.falta { border-color: #f1c4bf; background: var(--mal-50); }
.mes.sin-compras { background: #f1f4f8; }
.mes small { display: block; color: var(--suave); }
.mes form { margin: .35rem 0 0; }
.mes .enlace { font-size: .8rem; }
.kpis { display: flex; flex-wrap: wrap; gap: .75rem; margin: .5rem 0 1rem; }
.kpi { flex: 1 1 150px; border: 1px solid var(--borde); border-radius: 12px; padding: .65rem .85rem; background: var(--blanco); }
.kpi span { display: block; font-size: .74rem; color: var(--suave); text-transform: uppercase; letter-spacing: .05em; font-weight: 700; }
.kpi strong { font-size: 1.25rem; color: var(--azul); font-variant-numeric: tabular-nums; }
.kpi.alerta strong { color: var(--mal); }
.subida { display: flex; flex-wrap: wrap; align-items: center; gap: .75rem; }
.subida input[type=file] { max-width: 100%; }
.chequeo { border-left: 5px solid var(--borde-fuerte); }
.chequeo.ok { border-left-color: var(--ok); }
.chequeo.diferencias { border-left-color: var(--mal); }
.chequeo.sin-datos { border-left-color: var(--borde-fuerte); }
.chequeo summary { cursor: pointer; display: flex; justify-content: space-between; gap: 1rem; align-items: center; list-style: none; }
.chequeo summary::-webkit-details-marker { display: none; }
.chequeo summary h2 { margin: 0; font-size: 1rem; }
.chequeo .notas { margin: .5rem 0; padding-left: 1.1rem; color: var(--suave); font-size: .88rem; }
.pestanas { display: flex; flex-wrap: wrap; gap: .4rem; margin: .4rem 0 1rem; }
.pestanas a { padding: .35rem .8rem; border-radius: 999px; border: 1px solid var(--borde); text-decoration: none; color: var(--texto);
  background: var(--blanco); font-size: .88rem; }
.pestanas a.activa { background: var(--azul); border-color: var(--azul); color: #fff; }
.pestanas a span { opacity: .75; margin-left: .25rem; }
.codigo-input { width: 7.5rem; font-family: ui-monospace, "Cascadia Mono", Consolas, monospace; }
.sugerencia { display: inline-flex; align-items: center; gap: .4rem; }
.sugerencia code, .tabla code { background: #f1f4f8; padding: .05rem .35rem; border-radius: 6px; font-size: .85rem; }
.origen-sug { font-size: .75rem; color: var(--suave); }
.origen-sug.aviso-nota { color: var(--aviso); }
.asistente-col select { min-width: 8.5rem; font-size: .82rem; padding: .25rem .4rem; }
.tabla.previa td { font-size: .82rem; max-width: 16rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.tabla.previa tr.titulos td { background: var(--celeste-50); font-weight: 700; }
.tabla.previa tr.antes td { color: #9aa5b3; }
.tabla.previa td.col-usada { background: #f5fbff; }
.pasos { display: flex; gap: .5rem; flex-wrap: wrap; margin: 0 0 1rem; padding: 0; list-style: none; font-size: .85rem; }
.pasos li { padding: .25rem .75rem; border-radius: 999px; background: #eef2f7; color: var(--suave); }
.pasos li.hecho { background: var(--ok-50); color: var(--ok); }
.pasos li.actual { background: var(--azul); color: #fff; }
.acciones-tabla { display: flex; flex-wrap: wrap; gap: .6rem; align-items: center; margin: .6rem 0; }
.lista-avisos { margin: .3rem 0; padding-left: 1.1rem; font-size: .88rem; }
.tabla-scroll { overflow: auto; max-height: 70vh; border: 1px solid var(--borde); border-radius: 10px; }
.tabla-scroll .tabla thead th { position: sticky; top: 0; z-index: 1; }
.menu .item.compacto { padding: .38rem .55rem; font-size: .88rem; }
.trabajo-bkt { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: .7rem; }
.trabajo-bkt a { display: block; border: 1px solid var(--borde); border-radius: 12px; padding: .7rem .85rem; text-decoration: none;
  color: var(--texto); background: var(--blanco); }
.trabajo-bkt a:hover { border-color: var(--celeste); }
.trabajo-bkt strong { display: block; color: var(--azul); }
.trabajo-bkt small { color: var(--suave); }
.en-linea label.casilla { flex-direction: row; align-items: center; gap: .45rem; align-self: flex-end; padding-bottom: .55rem; }

/* Botón «Borrar» junto a cada archivo subido */
.form-borrar { display: inline; margin-left: .6rem; }
.form-borrar button { font-size: inherit; padding: 0; }
.celda-acciones a, .celda-acciones .form-borrar { white-space: nowrap; display: block; margin: 0; }
.celda-acciones .form-borrar { margin-top: .15rem; }
.mes .acciones-mes a { white-space: nowrap; }
.mes .acciones-mes { display: flex; flex-wrap: wrap; gap: .1rem .6rem; align-items: baseline; }
.mes .acciones-mes .form-borrar, .mes small .form-borrar { margin: 0 0 0 .4rem; }
.mes .acciones-mes .form-borrar { margin: 0; }

/* ---------- Etapa 3: ajustes, balanza ajustada, Balanza Fiscal, EEFF, reglas ---------- */
.fila-campos { display: flex; flex-wrap: wrap; gap: .75rem 1rem; align-items: flex-end; margin: .5rem 0; }
.fila-campos label { display: flex; flex-direction: column; gap: .25rem; font-weight: 600; font-size: .88rem; min-width: 0; }
.fila-campos label.ancho { flex: 1 1 20rem; }
.fila-campos label.casilla { flex-direction: row; align-items: center; font-weight: 400; }
.fila-campos input:not([type=checkbox]), .fila-campos select { font: inherit; padding: .45rem .6rem; border: 1px solid var(--borde-fuerte);
  border-radius: 8px; background: var(--blanco); min-width: 0; max-width: 100%; }
details.asiento { border: 1px solid var(--borde); border-radius: 10px; padding: .55rem .8rem; margin: 0 0 .6rem; background: var(--blanco); }
details.asiento.borrador { border-color: #f1d48a; background: var(--aviso-50); }
details.asiento summary { cursor: pointer; display: flex; flex-wrap: wrap; gap: .4rem; align-items: center; }
details.asiento .tabla { margin-top: .5rem; }
.acciones-fila-ajuste { display: flex; flex-wrap: wrap; gap: .6rem; align-items: center; }
.acciones-fila-ajuste form { margin: 0; }
.hoja input.numero, input.numero { text-align: right; font-variant-numeric: tabular-nums; }
#lineas-asiento tfoot td { padding: .4rem .6rem; font-weight: 600; font-variant-numeric: tabular-nums; }
#lineas-asiento td.der { text-align: right; }
.tabla tr.fila-nueva td { background: var(--celeste-50); }
.tabla tr.historial td { color: var(--suave); }
.ok-caja { background: var(--ok-50); color: var(--ok); border: 1px solid #bfe6d3; border-radius: 10px; padding: .7rem 1rem; }
.aviso-en-linea { color: var(--aviso); font-weight: 600; }
.tabla.mini { font-size: .84rem; margin: .4rem 0; }
.tabla.mini td { padding: .25rem .4rem; }
.tabla td.codigos { font-size: .8rem; color: var(--suave); max-width: 18rem; }
.lista-cuentas { margin: .3rem 0 0; padding-left: 1rem; font-size: .84rem; }
.tabla th.centro { text-align: center; }
.balanza-ajustada th[colspan] { border-bottom: 1px solid var(--borde); }
section.pendientes ul { margin: 0; padding-left: 1.1rem; }
section.pendientes { border-left: 4px solid var(--aviso); }
.cuadre .tabla td:first-child { width: 70%; }
.dos-columnas > * { min-width: 0; }

.acciones.fija-no { position: static; box-shadow: none; background: transparent; border: 0; padding: .4rem 0 0; }
@media (max-width: 640px) {
  .barra { height: auto; min-height: 64px; flex-wrap: wrap; padding: .5rem 1rem; }
  nav.usuario { flex-wrap: wrap; justify-content: flex-end; gap: .35rem .7rem; min-width: 0; }
  nav.usuario .quien small { display: none; }
}
.titulo-con-accion { display: flex; flex-wrap: wrap; gap: .5rem 1rem; align-items: baseline; justify-content: space-between; }
.titulo-con-accion form { margin: 0 0 .6rem; }

/* ---------- Balanza ajustada con el formato de «Bal. Comp. ajustada» del IR-2 ---------- */
.estado-hoja { display: flex; flex-wrap: wrap; gap: .5rem .8rem; align-items: center; margin: 0 0 .8rem; }
.estado-hoja .espacio { flex: 1 1 auto; }
.hoja-excel { background: #fff; border: 1px solid var(--borde); border-radius: 10px; }
.hoja-excel.alto { max-height: 70vh; }
.titulo-excel { display: flex; flex-direction: column; gap: .1rem; padding: .7rem .8rem .5rem; position: sticky; left: 0; }
.titulo-excel strong { color: #004276; font-size: 1.15rem; }
.titulo-excel small { color: #5b6b78; font-size: .78rem; }
table.bca { border-collapse: separate; border-spacing: 0; font: 13px/1.35 Calibri, "Segoe UI", system-ui, sans-serif; color: #1f2a33;
  width: max-content; min-width: 100%; }
table.bca th { background: #004276; color: #fff; font-weight: 700; text-align: center; padding: .3rem .5rem; white-space: nowrap;
  position: sticky; z-index: 2; }
table.bca thead tr.e1 th { top: 0; }
table.bca thead tr.e2 th { top: 1.85rem; }
table.bca th.sep, table.bca td.sep { background: transparent; width: .7rem; min-width: .7rem; padding: 0; border: 0; }
table.bca thead th.sep { background: #fff; }
table.bca td { padding: .18rem .5rem; border-bottom: 1px solid #e6ecf2; white-space: nowrap; }
table.bca tbody tr:nth-child(even) td:not(.sep) { background: #eef3f8; }
table.bca tbody tr:hover td:not(.sep) { background: #e1ecf7; }
table.bca td.cta { min-width: 6rem; font-variant-numeric: tabular-nums; }
table.bca td.det { min-width: 14rem; max-width: 22rem; white-space: normal; }
table.bca td.cod { text-align: center; min-width: 4.2rem; }
table.bca td.n { text-align: right; min-width: 6.8rem; font-variant-numeric: tabular-nums; }
table.bca td.aj { font-weight: 600; }
table.bca td.ent { padding: 0; background: #fffdf3 !important; min-width: 6.8rem; }
table.bca tbody tr:nth-child(even) td.ent { background: #fbf6df !important; }
table.bca td.ent input { width: 100%; min-width: 0; border: 0; border-left: 1px solid #efe6c0; background: transparent; font: inherit; text-align: right;
  padding: .18rem .5rem; font-variant-numeric: tabular-nums; }
table.bca td.ent input:focus { outline: 2px solid var(--celeste); outline-offset: -2px; background: #fff; }
table.bca td.ent input.invalido { background: var(--mal-50); color: var(--mal); }
table.bca tr.fila-en-blanco td.cta input, table.bca tr.fila-en-blanco td.det input { width: 100%; border: 1px dashed var(--borde-fuerte);
  border-radius: 4px; font: inherit; padding: .1rem .35rem; background: #fff; }
table.bca tr.cuenta-nueva td.cta { color: var(--azul-700); font-weight: 600; }
table.bca a.sin-cod { color: var(--mal); font-weight: 700; text-decoration: none; }
table.bca tfoot td { font-weight: 700; background: #fff; border-top: 2px solid #004276; position: sticky; bottom: 0; }
table.bca tfoot tr.diferencia td { border-top: 1px solid #e6ecf2; bottom: 0; font-weight: 600; }
table.bca tfoot tr.total td { bottom: 1.7rem; }
table.bca tfoot td.mal { color: var(--mal); }
table.bca th.otros { background: #3a6891; }
table.bca td.otros { color: #3a4d5e; }
/* casillas planas como celdas de Excel y columnas CTA./DETALLE inmovilizadas al desplazar */
table.bca td.ent input { border-radius: 0; border-top: 0; border-bottom: 0; border-right: 0; box-shadow: none; }
table.bca td.ent input:disabled { background: transparent; color: inherit; }
table.bca td.cta, table.bca td.det, table.bca thead th:nth-child(1), table.bca thead th:nth-child(2) { position: sticky; }
table.bca td.cta, table.bca thead tr th:nth-child(1) { left: 0; width: 6.5rem; min-width: 6.5rem; max-width: 6.5rem; }
table.bca td.det, table.bca thead tr th:nth-child(2) { left: 6.5rem; width: 15rem; min-width: 15rem; max-width: 15rem;
  box-shadow: 1px 0 0 #d5dfe9; }
table.bca td.cta, table.bca td.det { background: #fff; z-index: 1; overflow: hidden; text-overflow: ellipsis; }
table.bca tbody tr:nth-child(even) td.cta, table.bca tbody tr:nth-child(even) td.det { background: #eef3f8; }
table.bca tbody tr:hover td.cta, table.bca tbody tr:hover td.det { background: #e1ecf7; }
table.bca thead th:nth-child(1), table.bca thead th:nth-child(2) { z-index: 4; }
table.bca tfoot td:nth-child(1), table.bca tfoot td:nth-child(2) { position: sticky; z-index: 3; }
table.bca tfoot td:nth-child(1) { left: 0; } table.bca tfoot td:nth-child(2) { left: 6.5rem; }
table.bca tr.fila-en-blanco td.cta input { width: 100%; }
table.bca td.n, table.bca td.ent { min-width: 6.1rem; }
table.bca td.det, table.bca thead tr th:nth-child(2) { width: 13rem; min-width: 13rem; max-width: 13rem; }
table.bca td.cod { min-width: 3.8rem; }
table.bca th, table.bca td { padding-left: .4rem; padding-right: .4rem; }

/* ---------- IR-2 y anexos (mismo estilo que la balanza ajustada) ---------- */
table.bca.anexo td.concepto { min-width: 26rem; max-width: 34rem; white-space: normal; }
table.bca.anexo tr.grupo td { font-weight: 700; }
table.bca.anexo tr.titulo td { font-weight: 700; color: #004276; background: #dfe9f3 !important; }
table.bca.anexo td.fuente { color: #3a4d5e; font-size: .85em; min-width: 7rem; }
table.bca.anexo td.dif.mal { color: var(--mal); font-weight: 700; }
table.bca.anexo td.casilla { text-align: center; font-weight: 700; color: #004276; width: 3rem; }
table.bca.anexo td.operador { text-align: center; width: 2rem; color: #5b6b78; }
table.bca.anexo tr.manual td { background: #fffdf3 !important; }
table.bca.anexo input.manual, .bloque input.manual { text-align: right; padding: .15rem .4rem; border-radius: 4px; border: 1px solid #e6d9a0;
  background: #fffdf3; font: inherit; max-width: 10rem; }
table.bca.anexo .porcentaje { margin-top: .2rem; font-size: .85em; }
.bloques-analisis { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(21rem, 100%), 1fr)); gap: .8rem; }
.bloques-analisis .bloque h3 { margin: 0 0 .4rem; color: #004276; }
.bloques-analisis .bloque td:first-child { min-width: 0; }
.titulo-bloques { margin-top: 1.2rem; }

/* IR-2 y anexos con el formato del Excel */
.pestanas-anexos { margin: .3rem 0 .4rem; }
.pestanas-anexos a { font-size: .85rem; padding: .3rem .7rem; }
.pestanas-anexos.secundarias { align-items: center; margin-bottom: 1rem; }
.pestanas-anexos.secundarias a { font-size: .8rem; border-style: dashed; }
.fx-marco { overflow: auto; border: 1px solid var(--borde); border-radius: 8px; background: #fff; padding: 10px; margin-bottom: 1rem;
  max-height: 80vh; }
.bloque .con-boton { display: inline-flex; align-items: center; gap: 4px; }
.bloque button.refrescar { border: 1px solid #c9d6e4; background: #fff; color: #004276; border-radius: 4px; cursor: pointer;
  font-size: .95rem; line-height: 1; padding: .2rem .4rem; }
.bloque button.refrescar:hover, .bloque button.refrescar:focus-visible { background: #004276; color: #fff; }
.bloque tr.fuerte td { font-weight: 700; }
.bloque tr.cuadre-b1 td { border-top: 2px solid #004276; padding-top: .35rem; }
.bloque tr.cuadre-b1 .suave { font-weight: 400; font-size: .75rem; }
.bloque td.num.error { color: #b00020; }
.bloque td.num.ok { color: #1b7a3e; }

/* Balanza ajustada: agregar y mover cuentas nuevas */
table.bca th.filas-acc, table.bca td.filas-acc { white-space: nowrap; width: 1%; padding: 0 .3rem; background: #fff; }
table.bca td.filas-acc button.mini { border: 1px solid #c9d6e4; background: #fff; color: #004276; border-radius: 4px; cursor: pointer;
  font-size: .75rem; line-height: 1; padding: .1rem .25rem; margin-left: 1px; opacity: .35; }
table.bca tr:hover td.filas-acc button.mini, table.bca td.filas-acc button.mini:focus-visible,
table.bca tr.fila-en-blanco td.filas-acc button.mini { opacity: 1; }
table.bca td.filas-acc button.mini:hover { background: #004276; color: #fff; }
.agregar-filas { display: flex; flex-wrap: wrap; gap: .5rem; align-items: center; margin: .6rem 0; }
/* Balanza ajustada: ordenar pulsando los encabezados (solo la vista) */
table.bca thead th button.orden { all: unset; cursor: pointer; display: inline-flex; align-items: center; gap: .1rem;
  white-space: nowrap; border-radius: 3px; padding: 0 .15rem; }
table.bca thead th button.orden:hover { text-decoration: underline; }
table.bca thead th button.orden:focus-visible { outline: 2px solid var(--celeste); outline-offset: 1px; }
table.bca thead th button.orden .flecha { font-weight: 700; }
table.bca thead th.orden-activa { box-shadow: inset 0 -3px 0 var(--celeste); }
table.bca.ordenada td.filas-acc button[data-accion=subir], table.bca.ordenada td.filas-acc button[data-accion=bajar] { display: none; }
#orden-original { font-size: .82rem; padding: .25rem .6rem; white-space: nowrap; }
#orden-original:disabled { opacity: .45; cursor: default; }
/* Ajustes ya guardados: se abren otra vez (cuenta, descripción, código y montos) o se eliminan con ✕ */
table.bca tr.fila-guardada td.cta input, table.bca tr.fila-guardada td.det input { width: 100%; border: 1px solid #d5dfe9;
  border-radius: 4px; font: inherit; padding: .1rem .35rem; background: #fff; }
table.bca tr.fila-guardada td.cta input { color: var(--azul-700); font-weight: 600; }
table.bca tr.fila-guardada td.det input { width: calc(100% - .2rem); }
table.bca tr.falta-cuenta td.cta, table.bca tr.falta-cuenta td.det { background: #fff4c7 !important; }
table.bca tr.falta-cuenta td.cta input.falta { border: 1px dashed var(--aviso); background: #fffdf3; }
table.bca td.filas-acc button.mini.peligro { color: var(--mal); border-color: #f1c4bf; }
table.bca td.filas-acc button.mini.peligro:hover { background: var(--mal); color: #fff; }
.error-cuadre { background: var(--mal-50); color: var(--mal); border: 1px solid #f5c8c3; border-radius: 10px;
  padding: .6rem .9rem; margin: .6rem 0; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }

/* =====================================================================================================
   Navegación 2026-09: barra global, menú por fases, migas, pasos vecinos y tablero «Proceso IR-2»
   ===================================================================================================== */
:root { --curso: #1a6fc4; --curso-50: #e8f1fb; --revisar: #b86e00; --revisar-50: #fff4df; --pend: #8a97a6; --pend-50: #f0f3f7; }

/* barra superior */
.nav-global { display: flex; gap: .25rem; margin-right: auto; margin-left: 1.5rem; }
.nav-global a { text-decoration: none; color: var(--suave); font-weight: 600; font-size: .9rem; padding: .45rem .75rem; border-radius: 8px; white-space: nowrap; }
.marca .nombre { white-space: normal; }
@media (max-width: 1440px) { .nav-global { margin-left: .75rem; gap: 0; } .nav-global a { padding: .45rem .5rem; } .usuario { gap: .6rem; } .usuario .quien small { display: none; } }
.nav-global a:hover { background: #f1f5f9; color: var(--azul); }
.nav-global a.activo { color: var(--azul); background: var(--celeste-50); }
@media (max-width: 1260px) { .nav-global { display: none; } }

/* menú lateral por grupos */
.menu { padding: .9rem; }
.menu-plegable > summary { display: none; }
.menu .ico { display: inline-grid; place-items: center; width: 1.6rem; flex: none; font-size: .95rem; }
.menu-principal { display: grid; gap: .15rem; margin-bottom: .5rem; }
.menu .item.proceso { font-weight: 700; color: var(--azul); }
.menu .item-texto { flex: 1; min-width: 0; }
.mini-anillo { --p: 0; margin-left: auto; display: inline-grid; place-items: center; width: 2.1rem; height: 2.1rem; border-radius: 50%;
  font-size: .62rem; font-weight: 800; color: var(--azul); flex: none;
  background: radial-gradient(closest-side, #fff 72%, transparent 73%), conic-gradient(var(--ok) calc(var(--p) * 1%), #e3e9f0 0); }
.menu details.grupo { border-top: 1px solid var(--borde); padding: .35rem 0; }
.menu details.grupo > summary { list-style: none; display: flex; align-items: center; gap: .45rem; cursor: pointer; padding: .5rem .45rem;
  border-radius: 10px; font-size: .86rem; font-weight: 700; color: var(--azul); }
.menu details.grupo > summary::-webkit-details-marker { display: none; }
.menu details.grupo > summary::after { content: "›"; margin-left: .3rem; font-size: 1.1rem; line-height: 1; transition: transform .15s; }
.menu details.grupo[open] > summary::after { transform: rotate(90deg); }
.menu details.grupo > summary:hover { background: #f4f7fb; color: var(--azul); }
.menu .grupo-titulo { flex: 1; }
.grupo-cuenta { font-size: .72rem; font-weight: 700; background: #eef2f7; color: var(--suave); border-radius: 999px; padding: .05rem .5rem;
  letter-spacing: 0; text-transform: none; }
.menu details.grupo .progreso { margin: .1rem .45rem .5rem; }
.menu details.grupo .item { margin-left: .2rem; font-size: .9rem; }
.menu .item[aria-current="page"] { box-shadow: inset 3px 0 0 var(--azul); }
.punto.curso { background: var(--curso); } .punto.vacia { background: #d3dae3; }
.leyenda-puntos { display: flex; flex-wrap: wrap; gap: .25rem .6rem; align-items: center; font-size: .72rem; color: var(--suave);
  margin: .6rem .3rem 0; padding-top: .6rem; border-top: 1px solid var(--borde); }
.leyenda-puntos .punto { margin: 0 .1rem 0 0; }
@media (max-width: 900px) {
  .menu { padding: .5rem .75rem; }
  .menu-plegable > summary { display: flex; align-items: center; gap: .5rem; cursor: pointer; font-weight: 700; color: var(--azul);
    padding: .45rem .2rem; list-style: none; }
  .menu-plegable > summary::-webkit-details-marker { display: none; }
  .menu-plegable[open] > summary { margin-bottom: .5rem; }
}

/* migas y pasos vecinos */
.migas { display: flex; flex-wrap: wrap; align-items: center; gap: .35rem; font-size: .84rem; color: var(--suave); margin: -.2rem 0 .9rem; }
.migas a { color: var(--suave); text-decoration: none; }
.migas a:hover { color: var(--azul); text-decoration: underline; }
.migas strong { color: var(--texto); font-weight: 600; }
.pasos-vecinos { display: grid; grid-template-columns: 1fr auto 1fr; gap: .8rem; margin: 2rem 0 .5rem; padding-top: 1.2rem;
  border-top: 1px solid var(--borde); }
.vecino { display: flex; flex-direction: column; gap: .1rem; text-decoration: none; color: var(--azul); font-weight: 700; padding: .7rem 1rem;
  border: 1px solid var(--borde); border-radius: 12px; background: #fff; box-shadow: var(--sombra); }
.vecino small { color: var(--suave); font-weight: 600; font-size: .75rem; }
.vecino:hover { border-color: var(--azul-700); }
.vecino.siguiente { text-align: right; }
.vecino.centro { text-align: center; align-self: center; }
@media (max-width: 700px) { .pasos-vecinos { grid-template-columns: 1fr; } .vecino.siguiente, .vecino.centro { text-align: left; } }

/* tablero del proceso */
.tablero-cab { display: flex; justify-content: space-between; align-items: center; gap: 1.2rem; flex-wrap: wrap; }
.tablero-cab > div:first-child { max-width: 46rem; }
.anillo.grande { width: 112px; height: 112px; background: conic-gradient(var(--ok) calc(var(--p) * 1%), #e3e9f0 0); }
.anillo.grande span { width: 88px; height: 88px; display: flex; flex-direction: column; align-items: center; justify-content: center;
  font-size: 1.45rem; line-height: 1.05; }
.anillo.grande small { font-size: .68rem; color: var(--suave); font-weight: 600; margin-top: .15rem; }
.pr-kpis { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .8rem; margin: 0 0 1rem; }
.pr-kpi { background: #fff; border: 1px solid var(--borde); border-left-width: 5px; border-radius: 12px; padding: .8rem 1rem;
  box-shadow: var(--sombra); display: flex; flex-direction: column; }
.pr-kpi-num { font-size: 1.7rem; font-weight: 800; line-height: 1.1; font-variant-numeric: tabular-nums; }
.pr-kpi-txt { color: var(--suave); font-size: .85rem; font-weight: 600; }
.pr-kpi.completo { border-left-color: var(--ok); } .pr-kpi.completo .pr-kpi-num { color: var(--ok); }
.pr-kpi.curso { border-left-color: var(--curso); } .pr-kpi.curso .pr-kpi-num { color: var(--curso); }
.pr-kpi.revisar { border-left-color: #e0a100; } .pr-kpi.revisar .pr-kpi-num { color: var(--revisar); }
.pr-kpi.pendiente { border-left-color: var(--pend); } .pr-kpi.pendiente .pr-kpi-num { color: #5b6878; }
@media (max-width: 700px) { .pr-kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.siguiente-paso { display: flex; justify-content: space-between; align-items: center; gap: 1rem; flex-wrap: wrap; padding: 1.1rem 1.4rem;
  margin-bottom: 1.4rem; border-radius: var(--radio); color: #fff; background: linear-gradient(120deg, var(--azul), var(--azul-700) 60%, #0b86b8);
  box-shadow: 0 8px 24px rgba(15, 65, 114, .25); }
.siguiente-paso small { text-transform: uppercase; letter-spacing: .08em; font-weight: 700; opacity: .85; font-size: .72rem; }
.siguiente-paso h2 { color: #fff; margin: .15rem 0 .2rem; font-size: 1.25rem; }
.siguiente-paso p { margin: 0; opacity: .92; }
.siguiente-paso .primario { background: #fff; color: var(--azul); border-color: #fff; }
.siguiente-paso .primario:hover { background: var(--celeste-50); }
.siguiente-paso.listo { background: linear-gradient(120deg, #0f7b4f, #16a06a); }
.proceso-cuerpo { display: grid; grid-template-columns: minmax(0, 1fr) 300px; gap: 1.4rem; align-items: start; }
@media (max-width: 1200px) { .proceso-cuerpo { grid-template-columns: 1fr; } }
.proceso-lateral { position: sticky; top: 84px; display: grid; gap: 1rem; }
@media (max-width: 1200px) { .proceso-lateral { position: static; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); } }
.fase { margin-bottom: 1.4rem; }
.fase-cab { display: flex; align-items: center; gap: .8rem; margin-bottom: .7rem; }
.fase-cab h2 { margin: 0; }
.fase-cab p { margin: .1rem 0 0; font-size: .86rem; }
.fase-num { display: grid; place-items: center; width: 2.3rem; height: 2.3rem; border-radius: 12px; background: var(--azul); color: #fff;
  font-weight: 800; flex: none; }
.fase-cuenta { margin-left: auto; font-size: .8rem; font-weight: 700; color: var(--suave); background: #eef2f7; padding: .2rem .7rem;
  border-radius: 999px; white-space: nowrap; }
.fase-cuenta.lista { background: var(--ok-50); color: var(--ok); }
ol.pr-pasos { list-style: none; margin: 0; padding: 0 0 0 1.15rem; border-left: 2px solid #dfe6ee; margin-left: 1.15rem; display: grid; gap: .7rem; }
.pr-paso { position: relative; display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: .6rem 1rem; align-items: center;
  background: #fff; border: 1px solid var(--borde); border-radius: 14px; padding: .9rem 1.1rem .9rem 1.6rem; box-shadow: var(--sombra);
  transition: border-color .15s, box-shadow .15s; }
.pr-paso:hover { border-color: #c5d3e2; box-shadow: 0 2px 4px rgba(15,30,55,.06), 0 10px 26px rgba(15,30,55,.08); }
.pr-paso-num { position: absolute; left: -2.35rem; top: 1rem; display: grid; place-items: center; width: 2.15rem; height: 2.15rem;
  border-radius: 50%; font-weight: 800; font-size: .85rem; background: #fff; border: 2px solid var(--pend); color: #5b6878; }
.pr-paso.completo .pr-paso-num { background: var(--ok); border-color: var(--ok); color: #fff; }
.pr-paso.curso .pr-paso-num { border-color: var(--curso); color: var(--curso); background: var(--curso-50); }
.pr-paso.revisar .pr-paso-num { border-color: #e0a100; color: var(--revisar); background: var(--revisar-50); }
.pr-paso.proximo { background: #f8fafc; border-style: dashed; box-shadow: none; }
.pr-paso.proximo .pr-paso-num { border-style: dashed; }
.pr-paso.completo { border-left: 4px solid var(--ok); } .pr-paso.curso { border-left: 4px solid var(--curso); }
.pr-paso.revisar { border-left: 4px solid #e0a100; }
.pr-paso-arriba { display: flex; align-items: center; gap: .6rem; flex-wrap: wrap; }
.pr-paso-arriba h3 { margin: 0; font-size: 1.02rem; color: var(--texto); }
.pr-paso-desc { margin: .2rem 0 0; color: var(--suave); font-size: .88rem; }
.pr-paso-detalle { margin: .35rem 0 0; font-size: .9rem; font-weight: 600; }
.pr-paso.revisar .pr-paso-detalle { color: var(--revisar); } .pr-paso.completo .pr-paso-detalle { color: var(--ok); }
.pr-paso.curso .pr-paso-detalle { color: var(--curso); }
.pr-paso-datos { display: flex; flex-wrap: wrap; gap: .4rem .6rem; margin: .5rem 0 0; }
.pr-paso-datos div { background: #f4f7fb; border-radius: 8px; padding: .2rem .55rem; font-size: .8rem; display: flex; gap: .35rem; }
.pr-paso-datos dt { color: var(--suave); } .pr-paso-datos dd { margin: 0; font-weight: 700; font-variant-numeric: tabular-nums; }
.pr-paso-ir { align-self: center; }
@media (max-width: 640px) { .pr-paso { grid-template-columns: 1fr; } .pr-paso-ir { justify-self: start; } }
.chip { display: inline-flex; align-items: center; font-size: .72rem; font-weight: 700; padding: .12rem .55rem; border-radius: 999px;
  white-space: nowrap; background: var(--pend-50); color: #5b6878; }
.chip.completo { background: var(--ok-50); color: var(--ok); } .chip.curso { background: var(--curso-50); color: var(--curso); }
.chip.revisar { background: var(--revisar-50); color: var(--revisar); } .chip.proximo { background: #eef0fb; color: #4b55a8; }
.cifras-ir2 dl { margin: 0; display: grid; gap: 0; }
.cifras-ir2 dl div { display: flex; justify-content: space-between; gap: .8rem; padding: .45rem 0; border-bottom: 1px dashed var(--borde);
  font-size: .88rem; }
.cifras-ir2 dt { color: var(--suave); } .cifras-ir2 dd { margin: 0; font-weight: 700; font-variant-numeric: tabular-nums; }
.cifras-ir2 div.fuerte dt, .cifras-ir2 div.fuerte dd { color: var(--azul); font-weight: 800; }
.cifras-ir2 div.separa { margin-top: .4rem; border-top: 2px solid var(--borde); }
.cifras-ir2 .nota { font-size: .78rem; margin: .7rem 0; }
.leyenda ul { list-style: none; margin: 0; padding: 0; display: grid; gap: .45rem; font-size: .85rem; color: var(--suave); }
.leyenda .chip { margin-right: .35rem; }

/* resumen del ejercicio: acceso al proceso */
.acceso-proceso { display: flex; align-items: center; justify-content: space-between; gap: 1rem; flex-wrap: wrap; }
.acceso-proceso .barra-progreso { width: min(320px, 100%); height: 10px; }
.acceso-proceso .barra-progreso span { background: linear-gradient(90deg, var(--ok), #16a06a); }
.lista-pasos-mini { display: grid; grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); gap: .5rem; margin-top: .9rem; }
.lista-pasos-mini a { display: flex; align-items: center; gap: .5rem; padding: .5rem .7rem; border: 1px solid var(--borde); border-radius: 10px;
  text-decoration: none; color: var(--texto); font-size: .88rem; background: #fff; }
.lista-pasos-mini a:hover { border-color: var(--azul-700); }
.lista-pasos-mini .punto { margin-left: 0; }
.punto.sin { background: transparent; border: 2px dotted #c3ccd6; }
.menu-movil-boton { white-space: nowrap; min-width: 0; }
.menu-movil-boton .suave { overflow: hidden; text-overflow: ellipsis; min-width: 0; font-weight: 500; }

/* Datos generales: tasas de la DGII */
.tasas-dgii { display: flex; justify-content: space-between; align-items: flex-start; gap: 1rem; flex-wrap: wrap; }
.tasas-dgii > div { flex: 1 1 28rem; }
.tasas-dgii h2 { margin-bottom: .3rem; }
.tasas-dgii p { margin: 0 0 .7rem; }
dl.tasas { display: flex; flex-wrap: wrap; gap: .5rem; margin: 0; }
dl.tasas div { background: #f4f7fb; border: 1px solid var(--borde); border-radius: 10px; padding: .4rem .75rem; min-width: 7.5rem; }
dl.tasas dt { font-size: .74rem; color: var(--suave); font-weight: 600; }
dl.tasas dd { margin: 0; font-weight: 800; color: var(--azul); font-variant-numeric: tabular-nums; }
.bloque tr.cuadre-b1-mas td .suave { font-weight: 400; font-size: .75rem; }
.bloque tr.suma-b1 td { border-top: 1px solid var(--borde-fuerte); }

/* B-1: diferencia que se ajusta con un clic */
button.dif-boton { font: inherit; font-weight: 700; color: var(--mal); background: var(--mal-50); border: 1px solid #f1c3be;
  border-radius: 6px; padding: .05rem .4rem; cursor: pointer; font-variant-numeric: tabular-nums; }
button.dif-boton:hover, button.dif-boton:focus-visible { background: var(--mal); color: #fff; }
dialog.dialogo { border: 0; border-radius: 16px; padding: 1.4rem 1.6rem; width: min(640px, calc(100vw - 32px));
  box-shadow: 0 24px 60px rgba(10, 30, 60, .3); }
dialog.dialogo::backdrop { background: rgba(10, 25, 45, .45); }
dialog.dialogo h2 { margin-top: 0; }
dialog.dialogo .campo { display: grid; gap: .25rem; margin: .7rem 0; font-weight: 600; font-size: .9rem; }
dialog.dialogo select, dialog.dialogo input:not([type=checkbox]) { font: inherit; padding: .45rem .6rem; border: 1px solid var(--borde-fuerte);
  border-radius: 8px; font-weight: 400; }
dialog.dialogo .casilla { display: flex; gap: .5rem; align-items: flex-start; margin: .5rem 0; font-size: .9rem; }
dialog.dialogo .asiento-propuesto { margin: .8rem 0; }
.dialogo-acciones { display: flex; justify-content: flex-end; gap: .6rem; margin-top: 1rem; }
.buscador-cuentas { margin-bottom: .7rem; }
dialog.dialogo [hidden] { display: none !important; }
dialog.dialogo .aviso { margin: .6rem 0; }
.bloque-cab { display: flex; justify-content: space-between; align-items: center; gap: .5rem; margin-bottom: .3rem; }
.bloque-cab h3 { margin: 0; }
.boton.mini-boton { padding: .25rem .6rem; font-size: .8rem; border-radius: 8px; }
dialog.dialogo select[size] { padding: .2rem; }
dialog.dialogo .fila-campos { display: flex; gap: .8rem; flex-wrap: wrap; }
dialog.dialogo .fila-campos .campo { flex: 1 1 10rem; }
dialog.dialogo { max-height: calc(100vh - 32px); overflow-y: auto; }
.chip-origen { display: inline-block; font-size: .72rem; font-weight: 700; border-radius: 999px; padding: .05rem .55rem; margin-left: .3rem;
  background: #eef2f7; color: var(--suave); white-space: nowrap; }
.chip-origen.hoja { background: var(--celeste-50); color: var(--azul-700); }
.chip-origen.b1 { background: #fdf0e6; color: #9a4b00; }
.resumen-asientos tfoot td { font-weight: 700; border-top: 2px solid var(--borde-fuerte); }

/* Título con botón a la derecha (Exportar a Excel) */
.cab-con-boton { display: flex; justify-content: space-between; align-items: center; gap: .75rem; flex-wrap: wrap; }
.cab-con-boton h1, .cab-con-boton h2 { margin: 0; }
.cabecera .cab-con-boton { margin-bottom: .4rem; }
.tarjeta > .cab-con-boton { margin-bottom: .6rem; }
.boton.exportar { white-space: nowrap; }
.acciones-cab { display: flex; gap: .5rem; flex-wrap: wrap; }

/* Importaciones: resumen por clasificación */
.resumen-clasificacion table { min-width: 640px; }
.resumen-clasificacion tr.vacia td { color: var(--suave, #7a8794); }
.resumen-clasificacion tr[data-clase=""].vacia { display: none; }

/* Ajustes: libro diario con todas las entradas y sus líneas */
.libro-diario { min-width: 760px; }
.libro-diario tbody.entrada { border-top: 2px solid var(--borde-fuerte); }
.libro-diario tbody.entrada.borrador .entrada-cab td { background: var(--aviso-50); }
.libro-diario .entrada-cab td { background: var(--fondo, #f4f7fa); padding-top: .55rem; padding-bottom: .45rem; }
.libro-diario .entrada-titulo { display: flex; flex-wrap: wrap; gap: .45rem; align-items: center; }
.libro-diario .entrada-desc { font-weight: 600; }
.libro-diario .entrada-quien { font-size: .8rem; margin-left: auto; }
.libro-diario .acciones-fila-ajuste { margin-top: .35rem; }
.libro-diario .entrada-linea td:first-child { padding-left: 1.2rem; }
.libro-diario td.credito { padding-right: .6rem; }
.libro-diario .entrada-total td { font-weight: 700; border-top: 1px solid var(--borde); }
.libro-diario tfoot td { font-weight: 800; border-top: 2px solid var(--borde-fuerte); }
.libro-diario .codigo { font-size: .78rem; background: var(--celeste-50); color: var(--azul-700); border-radius: 6px; padding: 0 .35rem; }
dialog.dialogo .campo-monto input { max-width: 12rem; text-align: right; font-variant-numeric: tabular-nums; }
dialog.dialogo .campo-monto small { display: block; margin-top: .2rem; font-weight: 400; }

/* Balanza ajustada: entradas de otras pantallas dentro de Ajustes/Reclasificación */
.bca td.ent .aj-otro { display: block; margin-top: 2px; font-size: .7rem; line-height: 1.25; text-align: right; white-space: nowrap;
  color: #9a4b00; background: #fdf0e6; border-radius: 4px; padding: 0 .3rem; text-decoration: none; }
.bca td.ent .aj-otro:hover { text-decoration: underline; }
.bca td.ent .aj-otro.borrador { color: #7a8794; background: #eef1f4; font-style: italic; }

/* B-1: botón G (ajuste fiscal al Anexo G) junto a la diferencia */
.g-boton { margin-left: .3rem; font: 700 .68rem/1 inherit; color: var(--azul-700); background: var(--celeste-50);
  border: 1px solid #b8d4ee; border-radius: 5px; padding: .15rem .35rem; cursor: pointer; vertical-align: middle; }
.g-boton:hover, .g-boton:focus-visible { background: var(--azul-700); color: #fff; }
dialog.dialogo fieldset.g-signo { border: 1px solid var(--borde); border-radius: 8px; padding: .4rem .7rem .5rem; margin: .6rem 0; }
dialog.dialogo fieldset.g-signo legend { font-weight: 700; padding: 0 .3rem; }

/* IR-2 y anexos: hojas de trabajo que vienen de la Extracción de la Oficina Virtual */
.tabla-extraccion .ext-titulo { font-weight: 700; color: var(--azul-700); margin: .2rem 0; }
.tabla-extraccion table.ext th { white-space: nowrap; }
.tabla-extraccion table.ext td { white-space: nowrap; }

/* IR-2 y anexos: totales recalculados sin guardar */
.previa-pendiente { background: var(--aviso-50); color: var(--aviso); border: 1px solid #f3dca0; border-radius: 8px; padding: .25rem .6rem; font-weight: 600; }
input.con-error { outline: 2px solid var(--mal); }
/* Conciliación de anticipos: cuentas A-4.2 (informativo) */
.conc-anticipos .a42-titulo { margin: 1rem 0 .4rem; font-size: .95rem; display: flex; gap: .5rem; align-items: center; flex-wrap: wrap; }
.conc-anticipos .cuentas-a42 td:nth-child(2) { min-width: 14rem; }
/* Detalle de ajustes: botón G al lado de cada total dentro de la hoja */
.fx td.fx-con-extra { position: relative; overflow: visible; }
.fx .g-boton.en-hoja { position: absolute; left: calc(100% + 6px); top: 50%; transform: translateY(-50%); margin: 0; }
.g-detalle h3 { margin: 1rem 0 .4rem; font-size: 1rem; }
@media print { .g-boton, .g-detalle { display: none !important; } }
/* IR-2 y anexos: tamaño de la hoja en pantalla (static/js/tamano_hojas.js) */
.fx-ajustable { --fx-letra: var(--fx-letra-pantalla, 1); }
.fx-ajustable .fx { zoom: var(--fx-zoom-pantalla, 1); }
.tamano-hoja { display: inline-flex; gap: .3rem; align-items: center; flex-wrap: wrap; }
.tamano-hoja .boton[aria-pressed="true"] { background: var(--azul-700); color: #fff; border-color: var(--azul-700); }
@media print { .tamano-hoja { display: none !important; } }
.fx-ajustable .fx td.fx-envuelve { white-space: normal !important; line-height: 1.05; }
/* Pérdidas compensables: la columna del año, con líneas */
.tabla-perdidas { border-collapse: collapse; min-width: 22rem; margin: .4rem 0 .6rem; background: #fff; font-variant-numeric: tabular-nums; }
.tabla-perdidas th, .tabla-perdidas td { border: 1px solid #9aa9bb; padding: .4rem .8rem; }
.tabla-perdidas thead th { background: #1f3864; color: #fff; font-weight: 700; text-align: left; }
.tabla-perdidas thead th.num, .tabla-perdidas td.num { text-align: right; min-width: 9rem; }
.tabla-perdidas tbody th { text-align: left; font-weight: 600; }
.tabla-perdidas tr.resumen th, .tabla-perdidas tr.resumen td { background: #eef3f9; font-weight: 700; }
.tabla-perdidas tr.resumen.final th, .tabla-perdidas tr.resumen.final td { background: #dce6f0; border-top: 2px solid #1f3864; }
/* IR-2 y anexos: panel «Imprimir · PDF · Excel» */
.exportar-decl { position: relative; }
.exportar-decl > summary { list-style: none; cursor: pointer; }
.exportar-decl > summary::-webkit-details-marker { display: none; }
.exportar-decl .panel-exportar { position: absolute; right: 0; top: calc(100% + 6px); z-index: 30; width: min(26rem, 90vw);
  background: #fff; border: 1px solid var(--borde); border-radius: 12px; box-shadow: 0 10px 30px rgba(10, 46, 82, .18); padding: .9rem 1rem; }
.exportar-decl fieldset { border: 0; padding: 0; margin: 0; display: grid; grid-template-columns: 1fr 1fr; gap: .25rem .8rem; }
.exportar-decl legend { font-weight: 700; margin-bottom: .4rem; }
.exportar-decl .casilla { font-size: .9rem; }
.exportar-decl .marcar { margin: .5rem 0; font-size: .88rem; }
.exportar-decl .enlace { background: none; border: 0; padding: 0; color: var(--azul-700); text-decoration: underline; cursor: pointer; font: inherit; }
.exportar-decl .acciones-exportar { display: flex; gap: .5rem; flex-wrap: wrap; margin: .3rem 0 .5rem; }
@media print { .exportar-decl { display: none !important; } }
/* Provisión del impuesto */
.provision .bloque-cab { display: flex; justify-content: space-between; align-items: center; gap: 1rem; flex-wrap: wrap; }
.provision .casillas-provision { margin-top: .6rem; }
.cuenta-provision { border: 1px solid var(--borde); border-radius: 10px; padding: .6rem .8rem; margin: .6rem 0; }
.cuenta-provision legend { font-weight: 700; padding: 0 .3rem; }
.cuenta-provision select { width: 100%; }
.control-cv { margin: .6rem 0 1rem; }
.control-cv h3 { margin: 0 0 .4rem; font-size: 1rem; }
/* Alertas rojas de saldos (A-1, activos fijos, B-1) y control A-4.2 */
.alerta-roja { background: #fdeeec; border: 2px solid var(--mal); border-left-width: 8px; color: #7a1d15; border-radius: 10px;
  padding: .75rem 1rem; margin: .6rem 0 1rem; box-shadow: 0 2px 10px rgba(192, 54, 44, .15); }
.alerta-roja strong:first-child { font-size: 1.05rem; color: var(--mal); }
.alerta-roja ul { margin: .4rem 0 .3rem 1.1rem; }
.alerta-roja a { color: #7a1d15; font-weight: 700; }
.alertas-saldos.con-activas { border: 2px solid var(--mal); }
.alertas-saldos.con-activas h2 { color: var(--mal); }
.tabla-alertas tr.omitida td { opacity: .6; }
.tabla-alertas tr.activa td:first-child { box-shadow: inset 4px 0 0 var(--mal); }
.control-a42.descuadre { border: 2px solid var(--mal); }
.control-a42 .resumen-a42 { max-width: 34rem; margin-top: .6rem; }
.control-a42 .mini-boton { margin-left: .6rem; }
/* Listado DGII: resoluciones por cierre */
.cierre-resolucion { margin: .8rem 0 1rem; }
.cierre-resolucion h4 { margin: 0 0 .3rem; }
.cierre-resolucion tr.vigente td { background: var(--ok-50); }
#resoluciones.alta-cliente { max-width: 68rem; }
#resoluciones td:last-child { white-space: nowrap; }
.origen-cv h3 { margin: 0 0 .4rem; font-size: 1rem; }
.origen-cv.con-escritos { border: 2px solid var(--aviso); }
.origen-cv tr.escrito td { background: var(--mal-50); }
/* Alta: tipo de cliente (margen regulado / construcción) */
.tipo-cliente-alta { display: grid; gap: .35rem; margin-top: .6rem; }
.tipo-cliente-alta .sub-casilla { margin-left: 1.6rem; }
.tipo-cliente-alta[hidden], .sub-casilla[hidden] { display: none; }
/* proceso IR-2: pasos cerrados a mano */
.pr-paso.a-mano .pr-paso-num { background: #fff; color: var(--ok); }
.pr-a-mano { margin-top: .5rem; display: flex; flex-wrap: wrap; align-items: center; gap: .4rem .8rem; }
.pr-a-mano p { margin: 0; font-size: .82rem; }
.pr-cerrar { margin-top: .5rem; font-size: .88rem; }
.pr-cerrar summary { cursor: pointer; color: var(--suave); font-weight: 600; width: max-content; }
.pr-cerrar summary:hover { color: var(--texto); }
.pr-cerrar form { display: flex; flex-wrap: wrap; align-items: end; gap: .5rem .7rem; margin-top: .45rem; }
.pr-cerrar label { display: grid; gap: .2rem; font-size: .8rem; flex: 1 1 18rem; }
.pr-cerrar small { flex-basis: 100%; }
.siguiente-paso form { margin: 0; }
.pr-a-mano .boton { padding: .25rem .7rem; font-size: .8rem; }
.pr-paso { scroll-margin-top: 6rem; }
/* Proceso IR-2: mapa del flujo por fases */
.mapa-ir2 { container-type: inline-size; background: #fff; border: 1px solid var(--borde); border-radius: var(--radio);
  box-shadow: var(--sombra); padding: 1.1rem 1.3rem 1rem; margin: 1rem 0 1.4rem; }
.mapa-cab { display: flex; flex-wrap: wrap; align-items: baseline; gap: .2rem 1rem; margin-bottom: .9rem; }
.mapa-cab h2 { margin: 0; } .mapa-cab p { margin: 0; font-size: .86rem; flex: 1 1 18rem; }
.mapa-leyenda { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: .3rem .9rem; font-size: .78rem; color: var(--suave); }
.mapa-leyenda li { display: inline-flex; align-items: center; gap: .3rem; }
.mapa-ir2 .punto { margin: 0; flex: none; width: .62rem; height: .62rem; border-radius: 50%; background: #fff; border: 2px solid #aab6c4; }
.mapa-ir2 .punto.completo { background: var(--ok); border-color: var(--ok); }
.mapa-ir2 .punto.curso { background: var(--curso, #1a73c9); border-color: var(--curso, #1a73c9); }
.mapa-ir2 .punto.revisar { background: #e0a100; border-color: #e0a100; }
.mapa-ir2 .punto.proximo { border-style: dashed; }
.mapa-fases { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 1.5rem; }
.mapa-fase { position: relative; display: flex; flex-direction: column; background: #f7f9fc; border: 1px solid var(--borde);
  border-top: 3px solid var(--azul-700); border-radius: 12px; padding: .65rem .6rem .7rem; min-width: 0; }
.mapa-fase.lista { border-top-color: var(--ok); background: #f3faf6; }
.mapa-fase:not(:last-child)::after { content: ""; position: absolute; top: 1.35rem; right: -1.28rem; width: .9rem; height: 2px;
  background: var(--azul-700); }
.mapa-fase:not(:last-child)::before { content: ""; position: absolute; top: calc(1.35rem - 4px); right: -1.36rem;
  border: 5px solid transparent; border-left: 7px solid var(--azul-700); border-right: 0; }
.mapa-fase-cab { display: grid; grid-template-columns: auto 1fr; gap: 0 .45rem; align-items: center; margin-bottom: .55rem; }
.mapa-fase-cab strong { font-size: .82rem; line-height: 1.2; color: var(--azul); }
.mapa-fase-cab small { grid-column: 2; font-size: .72rem; color: var(--suave); }
.mapa-num { grid-row: span 2; display: grid; place-items: center; width: 1.7rem; height: 1.7rem; border-radius: 50%; background: var(--azul);
  color: #fff; font-weight: 800; font-size: .8rem; }
.mapa-fase.lista .mapa-num { background: var(--ok); }
.mapa-nodos { list-style: none; margin: 0; padding: 0; display: grid; gap: .3rem; }
.mapa-nodo { display: flex; align-items: center; justify-content: flex-start; text-align: left; gap: .4rem; padding: .32rem .45rem; border-radius: 8px; background: #fff;
  border: 1px solid var(--borde); color: var(--texto); text-decoration: none; font-size: .78rem; line-height: 1.2; }
.mapa-nodo:hover { border-color: var(--azul-700); background: var(--celeste-50); }
.mapa-nodo:focus-visible { outline: 2px solid var(--celeste); outline-offset: 1px; }
.mapa-nodo.completo { color: var(--ok); }
.mapa-nodo.revisar { background: var(--aviso-50); border-color: #f1d48a; }
.mapa-nodo.proximo { border-style: dashed; color: var(--suave); background: transparent; }
.mapa-nodo.siguiente { border: 2px solid var(--celeste); box-shadow: 0 0 0 3px var(--celeste-100); font-weight: 700; }
.mapa-pie { margin: .9rem 0 0; font-size: .8rem; }
@container (max-width: 1050px) {
  .mapa-fases { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .mapa-fase:nth-child(4n)::after, .mapa-fase:nth-child(4n)::before { display: none; }
}
@container (max-width: 640px) {
  .mapa-fases { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .mapa-fase:nth-child(4n)::after, .mapa-fase:nth-child(4n)::before { display: block; }
  .mapa-fase:nth-child(2n)::after, .mapa-fase:nth-child(2n)::before { display: none; }
}
@container (max-width: 420px) {
  .mapa-fases { grid-template-columns: 1fr; gap: 1.3rem; }
  .mapa-fase:not(:last-child)::after, .mapa-fase:not(:last-child)::before { display: block; }
  .mapa-fase:not(:last-child)::after { top: auto; bottom: -1.05rem; right: auto; left: 1.4rem; width: 2px; height: .8rem; }
  .mapa-fase:not(:last-child)::before { top: auto; bottom: -1.2rem; right: auto; left: calc(1.4rem - 4px);
    border: 5px solid transparent; border-top: 7px solid var(--azul-700); border-bottom: 0; }
}
@media print { .mapa-ir2 { break-inside: avoid; box-shadow: none; } }
/* Etapa 4: versiones del IR-2 */
.flujo-version { list-style: none; margin: 0 0 1rem; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: .6rem; counter-reset: none; }
.flujo-version li { background: #fff; border: 1px solid var(--borde); border-top: 3px solid #aab6c4; border-radius: 12px; padding: .6rem .8rem; display: grid; gap: .1rem; }
.flujo-version li.hecho { border-top-color: var(--ok); background: #f3faf6; }
.flujo-version strong { font-size: .88rem; color: var(--azul); } .flujo-version small { color: var(--suave); font-size: .78rem; }
.rejilla-version { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 420px), 1fr)); gap: 1rem; margin: 1rem 0; }
.rejilla-version .tarjeta { margin: 0; }
.faltantes { list-style: none; margin: 0; padding: 0; display: grid; gap: .5rem; }
.faltantes li { display: grid; grid-template-columns: 1fr auto; gap: .1rem .6rem; padding: .5rem .7rem; border: 1px solid var(--borde); border-left: 4px solid #e0a100; border-radius: 10px; }
.faltantes li small { grid-column: 1 / -1; color: var(--suave); font-size: .82rem; }
.casillas-anexos { display: grid; grid-template-columns: repeat(auto-fill, minmax(210px, 1fr)); gap: .25rem .8rem; margin: .4rem 0 .8rem; }
.crear-version fieldset { border: 0; padding: 0; margin: 0; } .crear-version legend { font-weight: 700; color: var(--azul); }
.crear-version label:not(.casilla) { display: grid; gap: .2rem; margin: .4rem 0 .8rem; font-size: .88rem; }
.conc-cf td small { display: block; font-size: .76rem; }
.conc-cf tr.con-dif td { background: var(--aviso-50); } .conc-cf tr.con-dif td:last-child { color: var(--mal); font-weight: 700; }
.chip.estado-v.borrador { background: var(--pend-50); color: #4a5563; }
.chip.estado-v.aprobada { background: var(--curso-50); color: var(--curso); }
.chip.estado-v.liberada { background: var(--ok-50); color: var(--ok); }
.chip.estado-v.reemplazada { background: #f0f0f0; color: #7a7a7a; text-decoration: line-through; }
.tabla.versiones td small { display: block; }
.acciones-version .acciones-fila { display: flex; flex-wrap: wrap; align-items: center; gap: .6rem 1rem; }
.acciones-version form { margin: 0; display: inline-flex; flex-wrap: wrap; align-items: center; gap: .5rem; }
.comparar-con label { display: inline-flex; align-items: center; gap: .4rem; }
.obs-cliente { margin: .8rem 0 0; background: var(--aviso-50); border: 1px solid #f3dca0; padding: .6rem .8rem; border-radius: 10px; }
.aviso-legal { font-size: .82rem; color: var(--suave); border-left: 3px solid var(--celeste); padding-left: .6rem; margin: .4rem 0 0; }
.version-cab h1 .chip { vertical-align: middle; font-size: .8rem; }
.form-responder label { display: grid; gap: .25rem; margin-bottom: .7rem; }
.form-responder textarea { width: 100%; font: inherit; padding: .5rem .6rem; border: 1px solid var(--borde-fuerte); border-radius: 10px; }
.form-responder .acciones-resp { display: flex; flex-wrap: wrap; gap: .6rem; }
.acciones-version .comparar-con label, header .comparar-con label { display: inline-flex; flex-direction: row; align-items: center; gap: .4rem; margin: 0; }
/* EEFF: emitir en Word */
.form-emitir .fila-campos { display: flex; flex-wrap: wrap; gap: .6rem 1.2rem; align-items: end; margin-bottom: .8rem; }
.form-emitir label:not(.casilla) { display: grid; gap: .2rem; font-size: .85rem; }
.datos-firma { margin: 0 0 1rem; } .datos-firma summary { cursor: pointer; color: var(--suave); font-weight: 600; margin-bottom: .6rem; }
/* Hoja de trabajo del flujo de efectivo */
.tabla-flujo-marco { overflow-x: auto; margin: .6rem 0 1rem; }
.tabla-flujo { min-width: 1500px; font-size: .78rem; }
.tabla-flujo th { font-size: .68rem; text-transform: none; letter-spacing: 0; white-space: normal; }
.tabla-flujo th.centro { text-align: center; }
.tabla-flujo td:first-child { white-space: nowrap; position: sticky; left: 0; background: #fff; }
.tabla-flujo tr.titulo td { background: var(--celeste-50); font-weight: 700; color: var(--azul); }
.tabla-flujo tfoot td { font-weight: 700; border-top: 2px solid var(--azul); }
.controles-flujo { list-style: none; margin: 0 0 .4rem; padding: 0; display: flex; flex-wrap: wrap; gap: .3rem 1.2rem; font-size: .85rem; }
.controles-flujo .ok { color: var(--ok); } .controles-flujo .error { color: var(--mal); font-weight: 700; }
.estado-flujo { max-width: 720px; } .estado-flujo td.sangria { padding-left: 1.6rem; }
.entrada-flujo { width: 7rem; text-align: right; padding: .15rem .35rem; font-size: .78rem; border: 1px solid var(--borde-fuerte); border-radius: 6px; background: var(--entrada); }
.tabla-flujo tr.fila-caja td { background: #f6f8fb; }
/* Reclasificaciones de la hoja de trabajo del flujo */
.tabla-flujo td.reclasificada{color:#7a4b00;background:#fff6e0}
.reclasificaciones{margin-top:1.4rem;padding-top:1rem;border-top:1px solid #e1e6ee}
.tabla-reclas select{width:13rem;max-width:13rem}
.tabla-reclas td{white-space:nowrap}
.tabla-reclas input[name^="rc_texto"]{width:13rem}
.tabla-reclas tr.nueva select{color:#626c78}
.validaciones-eeff{margin:.6rem 0 1rem}.validaciones-eeff table{margin:.4rem 0 .8rem}
.entrada-flujo.automatica { background: #e8f1fb; border-color: #9cbde0; }
.entrada-flujo.cambiada { background: #fff1dc; border-color: #e0a44a; }
.eeff-version form.en-linea { display: inline; }
.resumen-eeff { max-width: 44rem; margin: .5rem 0; }
.lista-revisar { margin: .2rem 0 0 1.2rem; color: var(--mal, #b3261e); font-size: .85rem; }
.cuadre-acumulados { margin: .5rem 0 .8rem; padding: .6rem .8rem; border-radius: 10px; font-size: .88rem; line-height: 1.45; }
.cuadre-acumulados.cuadra { background: #eef8f1; border: 1px solid #b6e0c3; }
.cuadre-acumulados.pendiente { background: #fff6e8; border: 1px solid #f0cf96; }
.subir-final { margin: .6rem 0; padding: .6rem .8rem; border: 1px dashed var(--borde-fuerte); border-radius: 10px; }
.subir-final label { font-size: .88rem; }
.cambios-final { margin: .4rem 0 .8rem; }
.aviso-final { background: #eef8f1; border: 1px solid #b6e0c3; border-radius: 10px; padding: .5rem .8rem; }
.publicacion-eeff { margin: .6rem 0 .9rem; padding: .6rem .8rem; border-radius: 10px; border: 1px solid var(--borde-fuerte); background: var(--fondo); }
.publicacion-eeff.al-dia { background: var(--ok-50); border-color: #b6e0c3; }
.publicacion-eeff.desfasada, .publicacion-eeff.sin-publicar { background: var(--aviso-50); border-color: #f0cf96; }
.publicacion-eeff h3 { margin: 0 0 .3rem; font-size: 1rem; }
.publicacion-eeff p { margin: .25rem 0; font-size: .9rem; }
.publicacion-eeff .acciones-fila { margin-top: .4rem; }
.publicacion-eeff form { display: inline; }
.eeff-preparacion { background: var(--aviso-50); border: 1px solid #f0cf96; border-radius: 10px; padding: .6rem .8rem; }

/* reporte financiero */
.indicadores-rep { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 460px), 1fr)); gap: 0.8rem; margin: 0.6rem 0 1rem; }
.indicadores-rep > div { overflow-x: auto; min-width: 0; }
.indicadores-rep table { margin: 0; }
.sem.bien { color: #2e7d32; font-weight: 600; }
.sem.atencion { color: #a86200; font-weight: 600; }
.sem.riesgo { color: #c62828; font-weight: 600; }
.lista-rec { list-style: none; padding: 0; margin: 0.4rem 0 0.8rem; }
.lista-rec li { border-left: 3px solid #cfd8e3; padding: 0.3rem 0.6rem; margin-bottom: 0.4rem; }
.lista-rec li.prioridad-alta { border-left-color: #c62828; }
.lista-rec li.prioridad-media { border-left-color: #a86200; }
.lista-rec li.prioridad-baja { border-left-color: #2e7d32; }
.lista-rec label.casilla { display: flex; flex-direction: row; align-items: flex-start; gap: 0.5rem; font-weight: 400; }
.lista-rec label.casilla input[type=checkbox] { margin-top: .25rem; }
.form-reporte textarea { width: 100%; }
.reporte-version .semaforo-mini { margin-left: 0.6rem; font-size: 0.9em; }
.aviso-txt { color: #a86200; }


/* revisión con Claude */
.revision-claude .form-claude { display: flex; flex-wrap: wrap; gap: 0.6rem 1.2rem; align-items: center; }
.revision-claude .form-claude label.casilla { display: flex; flex-direction: row; align-items: center; gap: .45rem; font-weight: 400; }
.revision-claude .tabla-scroll, .reporte-financiero .tabla-scroll { overflow-x: auto; max-width: 100%; }
.revision-claude, .reporte-financiero { min-width: 0; max-width: 100%; }
.revision-claude .conclusion { padding: 0.5rem 0.7rem; border-radius: 6px; background: #f3f5f7; }
.revision-claude .conclusion.ok { background: #e8f5e9; }
.revision-claude .conclusion.aviso { background: #fff4e0; }
.revision-claude .conclusion.error { background: #fdecea; }
.hallazgos-claude td { vertical-align: top; }
.chip.g-alta { background: #fdecea; color: #c62828; }
.chip.g-media { background: #fff4e0; color: #a86200; }
.chip.g-baja { background: #eef2f6; color: #4a5563; }
/* en el celular, un botón con texto largo parte la línea en vez de salirse de la pantalla */
@media (max-width: 520px) { a.boton, .primario, button.boton { white-space: normal; max-width: 100%; } }

/* carpeta de los TXT 606 */
.carpeta-606 label { display: flex; flex-direction: column; gap: .3rem; font-weight: 600; }
.carpeta-606 input[type=text] { width: 100%; font-family: ui-monospace, Consolas, monospace; font-size: .9rem; }
#orden-claude { overflow-wrap: anywhere; }

/* importar en un paso (pantalla DGII) */
.importar-todo label.casilla { display: flex; flex-direction: row; align-items: center; gap: .45rem; font-weight: 400; }
.importar-todo form { display: flex; flex-wrap: wrap; align-items: center; gap: .6rem 1rem; margin: .5rem 0; }

/* conciliación: grupos de chequeos */
.subtitulo-seccion { font-size: 1.05rem; margin: 1.2rem 0 .5rem; color: var(--azul); }
.opcional-excel ul { margin: .4rem 0 0 1.2rem; }
/* Carpeta de los TXT 606 por año, elegida en el navegador del usuario */
.carpeta-606-local .c606-mensaje { font-weight: 600; margin: .3rem 0; }
.carpeta-606-local .c606-resultado:empty { display: none; }
.carpeta-606-local [hidden] { display: none !important; }
/* Extracción DGII con Claude: carpeta → Claude → cargar */
.pasos-flujo { list-style: none; margin: .6rem 0 0; padding: 0; display: grid; grid-template-columns: minmax(0, 1fr); gap: .9rem; }
.paso-flujo { min-width: 0; }
#orden-claude { word-break: break-all; }
.paso-flujo { border: 1px solid var(--borde); border-radius: 12px; padding: .8rem 1rem; transition: box-shadow .3s, border-color .3s; }
.paso-flujo h3 { display: flex; align-items: center; gap: .55rem; margin: 0 0 .4rem; font-size: 1.02rem; color: var(--azul); }
.paso-flujo .num { display: inline-grid; place-items: center; width: 1.6rem; height: 1.6rem; border-radius: 50%;
  background: var(--celeste); color: #fff; font-size: .9rem; flex: none; }
.paso-flujo.resaltar { border-color: var(--celeste); box-shadow: 0 0 0 3px var(--celeste-50); }
.paso-flujo p { margin: .35rem 0; }
.c606-ruta code { display: block; word-break: break-all; padding: .35rem .5rem; border-radius: 8px; background: var(--celeste-50); }
.boton.desactivado { opacity: .55; cursor: not-allowed; }
.ayuda-conector { border: 1px dashed var(--aviso); background: var(--aviso-50); border-radius: 10px; padding: .6rem .9rem; margin-top: .6rem; }
.ayuda-conector ol { margin: .3rem 0 .3rem 1.2rem; padding: 0; }
.ayuda-conector li { margin: .35rem 0; }
.cargar-resultados { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: .6rem 1rem; align-items: end; margin: .5rem 0; }
.cargar-resultados label { display: flex; flex-direction: column; gap: .3rem; font-weight: 600; min-width: 0; }
.cargar-resultados input[type=file] { max-width: 100%; }
.cargar-resultados details, .cargar-resultados > button { grid-column: 1 / -1; justify-self: start; }
.cargar-resultados details label { font-weight: 400; margin-top: .4rem; }
.estado-cargas { margin-top: .6rem; overflow-wrap: anywhere; }
#tabla-importacion td:first-child { overflow-wrap: anywhere; }
.carpeta-606-avanzado { margin: .4rem 0 .8rem; font-size: .9rem; }
.carpeta-606-avanzado summary { cursor: pointer; color: var(--suave); }

/* Aviso de cierre por inactividad */
.aviso-inactividad { position: fixed; left: 50%; bottom: 1rem; transform: translateX(-50%); z-index: 1000;
  display: flex; gap: .8rem; align-items: center; flex-wrap: wrap; justify-content: center;
  background: var(--aviso-50); border: 1px solid var(--aviso); color: var(--texto); border-radius: 12px;
  padding: .7rem 1rem; box-shadow: var(--sombra); width: max-content; max-width: calc(100vw - 32px); }
.aviso-inactividad[hidden] { display: none; }
.aviso-inactividad p { margin: 0; }

/* Análisis de las diferencias del Anexo A-1 */
.ok-txt { color: var(--ok); font-weight: 600; }
.analisis-a1 p.error { color: var(--mal); font-weight: 600; }
tr.subfila td { font-size: .88rem; background: #fafcfe; }
tr.subfila td:first-child { padding-left: 1.4rem; }
tr.subfila details table { margin: .3rem 0 0; }
a.enlace-analisis { font-weight: 600; }
.a42-excluidas { margin: .5rem 0; font-size: .9rem; }
.a42-excluidas summary { cursor: pointer; color: var(--aviso); }

/* Balanza ajustada: código fiscal editable */
.bca td.cod input.cod-in { width: 5.6rem; font: inherit; font-size: .85rem; padding: .1rem .25rem; text-transform: uppercase; }
.bca td.cod.sin-codigo input.cod-in { border-color: var(--mal); background: var(--mal-50); }
.bca td.cod input.cod-in.invalido { outline: 2px solid var(--mal); }
.bca td.cod .reparto-ic { margin-left: .2rem; text-decoration: none; font-size: .8rem; }
.buscador-cuentas .casilla { display: inline-flex; align-items: center; gap: .3rem; white-space: nowrap; font-size: .9rem; }

/* Balanza ajustada: sumas como en Excel en las casillas de ajustes */
table.bca td.ent { position: relative; }
table.bca td.ent.con-formula::after { content: "ƒ"; position: absolute; top: 1px; right: 3px; font-size: .62rem;
  font-style: italic; color: var(--celeste); pointer-events: none; }
.calc-previa { position: absolute; z-index: 50; background: var(--azul); color: #fff; font-size: .78rem; font-weight: 600;
  padding: .12rem .45rem; border-radius: 6px; box-shadow: var(--sombra); pointer-events: none; white-space: nowrap; }
.calc-previa.mal { background: var(--mal); }
.bca .linea-aparte, .bca tr.fila-aparte td.cod::after { font-size: .66rem; font-weight: 700; color: var(--aviso);
  background: var(--aviso-50); border-radius: 6px; padding: 0 .3rem; margin-left: .3rem; }
.bca tr.fila-aparte td.cod::after { content: "aparte"; }
/* Hoja del flujo: sumas como en Excel y recálculo al momento */
td.elim { position: relative; }
td.elim.con-formula::after { content: "ƒ"; position: absolute; top: 1px; right: 3px; font-size: .62rem; color: var(--azul); font-style: italic; pointer-events: none; }
td.elim input.invalido { background: var(--mal-50); color: var(--mal); outline: 2px solid var(--mal); }
.tabla-flujo td.recalculada { background: #fff6e0; color: #7a4b00; font-weight: 700; }
.aviso-sin-guardar { margin: .2rem 0 .4rem; padding: .45rem .7rem; border-radius: 8px; background: #fff6e0; border: 1px solid #f0d59a; color: #7a4b00; font-size: .85rem; }
.tabla-flujo tr.otra-fila select { max-width: 17rem; font-size: .78rem; }
/* Conexión con Claude */
.pasos-conexion { list-style: none; padding: 0; margin: 1rem 0; display: grid; gap: .5rem; }
.pasos-conexion li { display: grid; gap: .15rem; padding: .6rem .8rem; border-radius: 10px; border: 1px solid var(--borde); border-left-width: 4px; }
.pasos-conexion li.ok { border-left-color: var(--ok); background: #f3faf6; }
.pasos-conexion li.error { border-left-color: var(--mal); background: var(--mal-50); }
.pasos-conexion li.info { border-left-color: var(--celeste); background: var(--celeste-50); }
.pasos-conexion .solucion { font-size: .9rem; color: #5a3200; }
/* Maestra «Firma y auditores» y firma del período */
.ficha-cabeza { display: grid; grid-template-columns: 150px minmax(0, 1fr) 250px; gap: 1rem; align-items: start; }
.ficha-imagenes { display: grid; grid-template-columns: 1fr 1fr; gap: .6rem; }
.ficha-logo img { max-width: 150px; max-height: 90px; object-fit: contain; }
.ficha-sello { text-align: center; } .ficha-sello img { max-width: 110px; max-height: 110px; object-fit: contain; display: block; margin: 0 auto .2rem; }
.ficha-sello small { color: var(--suave); font-size: .75rem; }
.sin-imagen { display: grid; place-items: center; height: 70px; border: 1px dashed var(--borde-fuerte); border-radius: 10px; color: var(--suave); font-size: .8rem; }
.ficha-firma h2 { margin: 0 0 .2rem; } .ficha-firma p { margin: .15rem 0; overflow-wrap: anywhere; }
.ficha-firma.inactiva, .tabla-auditores tr.inactiva td { opacity: .6; }
.mini-firma { max-width: 120px; max-height: 44px; object-fit: contain; background: #fff; }
.maestra-editar, .maestra-nueva { margin-top: .6rem; } .maestra-editar > summary, .maestra-nueva > summary { cursor: pointer; color: var(--azul); font-weight: 600; }
.rejilla-campos { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 15rem), 1fr)); gap: .5rem .9rem; margin: .6rem 0; }
.rejilla-campos label { display: grid; gap: .2rem; font-size: .88rem; } .rejilla-campos .ancho { grid-column: 1 / -1; }
.rejilla-campos input { width: 100%; min-width: 0; }
.form-maestra .casillas { display: flex; flex-wrap: wrap; gap: .3rem 1.2rem; }
.tabla-auditores tr.fila-editar td { background: var(--celeste-50); }
.auditoria-periodo .asignada { margin: .2rem 0 .5rem; }
.aviso-maestra { background: var(--aviso-50); border: 1px solid #f0d59a; color: #6b4700; border-radius: 10px; padding: .5rem .8rem; margin: .4rem 0; }
.form-auditoria select { max-width: 100%; }
@media (max-width: 720px) { .ficha-cabeza { grid-template-columns: minmax(0, 1fr); } .ficha-imagenes { max-width: 260px; } .ficha-sello { text-align: left; } .ficha-sello img { margin: 0; } }
/* EEFF finales aprobados: cambios clasificados y propuestas */
.cambios-eeff { margin-top: 1rem; border-top: 1px solid var(--borde); padding-top: .6rem; }
.grupo-cambio { margin: .5rem 0; } .grupo-cambio > summary { cursor: pointer; }
.lista-cambios { list-style: none; padding: 0; margin: .4rem 0; display: grid; gap: .5rem; }
.lista-cambios .cambio { border: 1px solid var(--borde); border-radius: 10px; padding: .55rem .75rem; background: #fff; overflow-wrap: anywhere; }
.lista-cambios .cambio.estado-propuesto { border-left: 4px solid var(--aviso); }
.lista-cambios .cambio.estado-aceptado { border-left: 4px solid var(--ok); }
.lista-cambios .cambio.estado-rechazado { opacity: .7; }
.cambio-cab { display: flex; justify-content: space-between; gap: .5rem; font-size: .82rem; }
.dif { display: grid; gap: .25rem; margin: .3rem 0; font-size: .9rem; }
.dif del { background: var(--mal-50); color: #7a2019; text-decoration: line-through; padding: .15rem .35rem; border-radius: 6px; }
.dif ins { background: var(--ok-50); color: #0b5b3a; text-decoration: none; padding: .15rem .35rem; border-radius: 6px; }
.dif.dos-columnas { grid-template-columns: repeat(auto-fit, minmax(min(100%, 14rem), 1fr)); }
.dif.dos-columnas small { display: block; color: var(--suave); }
.claude-rel { font-size: .85rem; color: var(--azul); background: var(--celeste-50); border-radius: 8px; padding: .3rem .5rem; margin: .3rem 0; }
.decidir { display: flex; flex-wrap: wrap; gap: .35rem; margin-top: .35rem; }
.decidir .boton.activo { background: var(--celeste-50); border-color: var(--azul); }

/* =====================================================================================================
   Ayuda desplegable uniforme «ⓘ Información / Ayuda» ({% ayuda %}): cerrada por defecto, abre y cierra sin recargar.
   Solo textos informativos; las alertas (.aviso, .error, mensajes) siguen a la vista. */
details.ayuda-info { margin: .35rem 0 .8rem; max-width: 100%; }
details.ayuda-info > summary { list-style: none; display: inline-flex; align-items: center; gap: .35rem; cursor: pointer;
  color: var(--azul-700); font-weight: 600; font-size: .86rem; padding: .18rem .6rem .18rem .45rem; border: 1px solid #c9d6e4;
  border-radius: 999px; background: #f4f8fc; user-select: none; }
details.ayuda-info > summary::-webkit-details-marker { display: none; }
details.ayuda-info > summary::after { content: "▸"; font-size: .75rem; transition: transform .12s; }
details.ayuda-info[open] > summary::after { transform: rotate(90deg); }
details.ayuda-info > summary:hover { background: #e6eff8; }
details.ayuda-info > summary:focus-visible { outline: 2px solid var(--celeste); outline-offset: 2px; }
details.ayuda-info .ayuda-ic { font-size: 1rem; line-height: 1; }
details.ayuda-info .ayuda-cuerpo { margin-top: .45rem; padding: .6rem .85rem; border-left: 3px solid var(--celeste);
  background: #f8fbfe; border-radius: 0 8px 8px 0; color: var(--texto); font-size: .92rem; }
details.ayuda-info .ayuda-cuerpo > :first-child { margin-top: 0; }
details.ayuda-info .ayuda-cuerpo > :last-child { margin-bottom: 0; }
details.ayuda-info .ayuda-cuerpo p + p { margin-top: .5rem; }
details.ayuda-info .ayuda-cuerpo .suave { color: var(--texto); }
.cabecera details.ayuda-info { margin-top: .2rem; }
@media print { details.ayuda-info { display: none !important; } }

/* Advertencia del saldo a favor anterior (casilla 22 contra la cuenta corriente IR-2) */
.alerta-saldo-anterior { margin: .6rem 0 1rem; }
.alerta-saldo-anterior p { margin: .45rem 0; }
.alerta-saldo-anterior .resumen-saldo-anterior { width: auto; min-width: min(34rem, 100%); background: #fff; margin: .4rem 0; }
.alerta-saldo-anterior .resumen-saldo-anterior td { color: var(--texto); }
.alerta-saldo-anterior .resumen-saldo-anterior tr.fila-total td { font-weight: 700; color: var(--mal); }
.alerta-saldo-anterior .detalle-alerta { font-size: .88rem; }
.alerta-saldo-anterior p strong:first-child { font-size: inherit; color: inherit; }

/* =====================================================================================================
   Tablas a prueba de extensiones (01/10). Un gestor de contraseñas (p. ej. LastPass, ícono rojo «•••») mete su ícono
   como hijo de la fila; el navegador lo envuelve en una celda anónima y la fila se corre una columna (ajustes en la
   columna equivocada, separadores anchos). Lo que no sea una celda dentro de una fila, o una fila dentro de la tabla,
   no se dibuja: así no crea columnas ni filas y no mueve nada (Chrome crea la celda aunque esté posicionado). El
   portal nunca pone otra cosa ahí. */
table tr > :not(td):not(th) { display: none !important; }
table > :not(thead):not(tbody):not(tfoot):not(caption):not(colgroup):not(tr),
table > thead > :not(tr), table > tbody > :not(tr), table > tfoot > :not(tr) { display: none !important; }

/* Balanza ajustada: filas de ajustes agregados (cuenta, descripción, «aparte») con la misma altura que las demás */
table.bca tr.fila-guardada td.det, table.bca tr.fila-en-blanco td.det { white-space: nowrap; }
table.bca tr.fila-guardada td.det:has(.linea-aparte) input { width: calc(100% - 3.5rem); }
table.bca tr.fila-guardada td.det .linea-aparte { display: inline-block; vertical-align: middle; margin-left: .25rem; }
table.bca tr.fila-guardada td.cta input, table.bca tr.fila-guardada td.det input,
table.bca tr.fila-en-blanco td.cta input, table.bca tr.fila-en-blanco td.det input { height: 1.55rem; box-sizing: border-box;
  vertical-align: middle; }
table.bca td.cod input.cod-in { height: 1.55rem; box-sizing: border-box; vertical-align: middle; }
table.bca tbody td { vertical-align: middle; }

/* Aviso de cambios sin guardar (balanza ajustada) */
dialog.aviso-cambios { border: 0; border-top: 6px solid var(--aviso); border-radius: 12px; padding: 1.2rem 1.4rem 1rem;
  max-width: min(32rem, calc(100vw - 2rem)); box-shadow: 0 18px 50px rgba(10, 46, 82, .3); color: var(--texto); }
dialog.aviso-cambios::backdrop { background: rgba(10, 46, 82, .35); }
dialog.aviso-cambios h2 { margin: 0 0 .5rem; font-size: 1.15rem; color: var(--aviso); }
dialog.aviso-cambios .acciones-aviso { display: flex; flex-wrap: wrap; gap: .5rem; margin-top: 1rem; }
dialog.aviso-cambios .boton.peligro { color: var(--mal); border-color: #f1c4bf; }

/* Provisión de ISR ya creada: botón deshabilitado con su marca; alerta A-4.2 con el detalle */
.provision-creada { display: inline-flex; align-items: center; gap: .5rem; flex-wrap: wrap; }
.provision-creada button[disabled] { opacity: .45; cursor: not-allowed; }
.alerta-a42 { margin: .6rem 0; }
.alerta-a42 .detalle-a42 { margin: .4rem 0 .5rem 1.1rem; }
.alerta-a42 .detalle-a42 strong { color: inherit; font-size: inherit; }

/* Versiones: faltantes con su detalle (el número abre la lista) */
button.chip.ver-faltantes { cursor: pointer; border: 0; font: inherit; text-decoration: underline dotted; }
button.chip.ver-faltantes:hover, button.chip.ver-faltantes:focus-visible { outline: 2px solid var(--celeste); outline-offset: 1px; }
ol.faltantes { margin: .3rem 0 0; padding: 0; display: grid; gap: .6rem; counter-reset: faltante; }
ol.faltantes li.faltante { display: block; counter-increment: faltante; padding: .55rem .8rem .65rem; }
ol.faltantes li.faltante .faltante-cab strong::before { content: counter(faltante) ". "; }
.faltante-cab { display: flex; flex-wrap: wrap; gap: .4rem; align-items: center; }
.faltante-detalle { margin: .25rem 0; color: var(--suave); font-size: .9rem; }
table.faltante-valores { width: auto; min-width: min(26rem, 100%); margin: .3rem 0; }
table.faltante-valores tr.fila-total td { font-weight: 700; }
a.ir-corregir { display: inline-block; margin-top: .2rem; }
dialog.dialogo-faltantes { width: min(46rem, calc(100vw - 2rem)); max-height: 85vh; overflow: auto; border: 0; border-radius: 12px;
  padding: 1rem 1.3rem; box-shadow: 0 18px 50px rgba(10, 46, 82, .3); }
dialog.dialogo-faltantes::backdrop { background: rgba(10, 46, 82, .35); }
dialog.dialogo-faltantes .dialogo-cab { display: flex; justify-content: space-between; align-items: center; gap: 1rem; }
dialog.dialogo-faltantes h2 { margin: 0; font-size: 1.1rem; }

/* Revisión con Claude: título del resultado con el botón de Excel */
.cab-resultado-claude { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .5rem; }
.cab-resultado-claude h3 { margin: 0; }

/* Corregir EEFF con Claude (junto a «Revisar con Claude») */
.revision-claude #corregir-claude[disabled] { opacity: .55; cursor: not-allowed; }
.corregir-panel { border: 1px solid var(--borde); border-radius: 10px; padding: .6rem .9rem; margin: .6rem 0; background: #f7f9fc; }
.corregir-panel #corregir-estado { font-weight: 600; margin: 0 0 .4rem; }
.corregir-panel .pasos-corregir { margin: .2rem 0; padding-left: 1.3rem; }
.corregir-panel .pasos-corregir li { margin: .2rem 0; }
.correcciones-claude { border-top: 1px solid var(--borde); margin-top: 1rem; padding-top: .6rem; }
.correcciones-claude h4 { margin: 0 0 .4rem; }
.correccion-claude { border: 1px solid var(--borde); border-left: 4px solid var(--curso, #3f6fb5); border-radius: 8px; padding: .6rem .9rem; margin: .6rem 0; }
.correccion-claude .conteo-correccion { font-size: 1.02rem; }
.acciones-correccion { display: flex; flex-wrap: wrap; gap: .5rem; align-items: center; margin: .5rem 0; }
.acciones-correccion form { display: inline; margin: 0; }
.chip.pendiente-profesional { background: var(--aviso-50); color: var(--aviso); }
.cargar-corregido summary { cursor: pointer; font-weight: 600; }
.cargar-corregido .form-corregido { display: flex; flex-wrap: wrap; gap: .6rem 1.2rem; align-items: end; margin: .4rem 0; }
.cargar-corregido .form-corregido label { display: flex; flex-direction: column; gap: .25rem; font-size: .9rem; }
.pendientes-manuales summary, .correcciones-hechas summary { cursor: pointer; font-weight: 600; margin: .3rem 0; }
#aviso-correccion-difs li { font-family: ui-monospace, monospace; font-size: .82rem; word-break: break-word; }

/* Inicio de BKT: respuestas nuevas de los clientes al IR-2 */
.respuestas-nuevas { border-left: 4px solid var(--celeste); }
.cab-respuestas { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: .6rem; }
.cab-respuestas h2 { margin: 0; display: flex; align-items: center; gap: .5rem; flex-wrap: wrap; }
.cab-respuestas form { margin: 0; }
.lista-respuestas { list-style: none; margin: .7rem 0 .3rem; padding: 0; }
.lista-respuestas li { display: flex; flex-wrap: wrap; align-items: baseline; gap: .35rem .5rem; padding: .55rem 0; border-top: 1px solid var(--borde); }
.lista-respuestas li:first-child { border-top: 0; }
.lista-respuestas q.obs { flex-basis: 100%; color: var(--texto); font-style: italic; padding-left: .2rem; }
.lista-respuestas .enlace-ver { margin-left: auto; font-weight: 600; white-space: nowrap; }

/* Identidad: «Portal de Impuesto sobre la Renta y Activos» con el logo y los colores de BKT */
.marca .nombre-portal { display: block; max-width: 15.5rem; font-size: .95rem; line-height: 1.12; }
.marca .nombre small { margin-top: .15rem; }
@media (min-width: 1760px) { .marca .nombre-portal { max-width: none; white-space: nowrap; } }
@media (max-width: 640px) { .barra { padding: 0 .9rem; } .marca { gap: .5rem; } .marca img { width: 34px; height: 34px; }
  .marca .nombre-portal { font-size: .8rem; max-width: 11.5rem; } .marca .nombre small { font-size: .62rem; } }
.entrada-marca h1 { position: relative; z-index: 1; max-width: 26rem; line-height: 1.15; font-size: 2.15rem; }
.entrada-marca .entrada-firma { position: relative; z-index: 1; margin: -.4rem 0 0; font-size: .9rem; font-weight: 700;
  letter-spacing: .14em; text-transform: uppercase; color: var(--celeste-100); opacity: 1; }
@media (max-width: 900px) { .entrada-marca { padding: 2rem 1.5rem; gap: .9rem; } .entrada-marca h1 { font-size: 1.6rem; }
  .entrada-marca img { width: 72px; height: 72px; } }
/* Bloqueos por intentos fallidos (inicio de BKT) */
.lista-bloqueos { margin: .3rem 0 .4rem 1.1rem; padding: 0; }
.lista-bloqueos li { margin: .25rem 0; }
.lista-bloqueos form { display: inline; margin-left: .5rem; }
/* Motivo obligatorio al cambiar EEFF de una versión liberada; historial de los Word (C-02) */
.motivo-liberada { display: flex; flex-direction: column; gap: .25rem; font-size: .9rem; margin: .3rem 0; }
.motivo-liberada input { min-width: 22rem; max-width: 100%; }
.historial-eeff { margin: .8rem 0; }
.historial-eeff table { margin-top: .4rem; }

/* Vista del cliente: barra fija mientras BKT usa el portal de un cliente */
.barra-representacion { position: sticky; top: 0; z-index: 900; display: flex; flex-wrap: wrap; gap: .5rem 1rem;
  align-items: center; justify-content: space-between; padding: .55rem 1rem; background: #7a2e00; color: #fff;
  border-bottom: 3px solid #ffb347; font-size: .95rem; }
.barra-representacion form { margin: 0; }
.barra-representacion .boton { background: #fff; color: #7a2e00; font-weight: 600; }
.form-representar { margin: .5rem 0; }
.form-representar .boton { width: 100%; }
.confirmar-representacion .aviso-rep { background: #fff4e5; border-left: 4px solid #d97706; padding: .6rem .8rem; }
.confirmar-representacion label.casilla { display: flex; gap: .5rem; align-items: flex-start; margin: .8rem 0; }
.etiqueta-representacion { display: inline-block; margin-left: .4rem; padding: 0 .4rem; border-radius: .6rem;
  background: #fff4e5; color: #7a2e00; border: 1px solid #d97706; font-size: .8rem; }

/* Propuestas de los EEFF finales: barra fija, filtros, selección por lote y propuestas compactas */
.barra-cambios { position: sticky; top: 64px; z-index: 40; background: rgba(255, 255, 255, .97); backdrop-filter: blur(6px);
  border: 1px solid var(--borde); border-bottom: 2px solid var(--celeste); border-radius: 10px; padding: .45rem .7rem; margin: .5rem 0;
  box-shadow: var(--sombra); }
.barra-cambios .fila-barra { display: flex; flex-wrap: wrap; align-items: center; gap: .4rem .9rem; }
.barra-cambios .fila-estado { justify-content: space-between; font-size: .8rem; }
.conteos { display: flex; flex-wrap: wrap; gap: .35rem; }
.chip-conteo { padding: .12rem .6rem; border-radius: 999px; background: var(--celeste-50); color: var(--azul); font-size: .85rem; border: 1px solid var(--celeste-100); }
.chip-conteo b { font-size: 1rem; }
.chip-conteo.pend { background: var(--aviso-50); color: var(--aviso); border-color: #f0d59a; }
.chip-conteo.ok { background: var(--ok-50); color: var(--ok); border-color: #b9e3d0; }
.chip-conteo.mal { background: var(--mal-50); color: var(--mal); border-color: #f1c3be; }
.barra-cambios .filtros { display: flex; flex-wrap: wrap; align-items: center; gap: .4rem .8rem; font-size: .85rem; }
.barra-cambios .filtros select { font: inherit; padding: .2rem .4rem; border-radius: 8px; border: 1px solid var(--borde-fuerte); max-width: 15rem; }
.barra-cambios .navegar { display: flex; gap: .35rem; margin-left: auto; }
.marca-check { display: inline-flex; align-items: center; gap: .3rem; }
.barra-cambios .lote { margin-top: .4rem; padding-top: .4rem; border-top: 1px dashed var(--borde-fuerte); }
.barra-cambios .lote[hidden] { display: none; }
.lote-botones { display: inline-flex; flex-wrap: wrap; gap: .3rem; }
.aviso-cambios { color: var(--ok); } .aviso-cambios.error { color: var(--mal); }
.bloqueo-opcion { display: block; color: #7a2019; background: var(--mal-50); border-radius: 8px; padding: .2rem .5rem; margin: .2rem 0; font-size: .82rem; }
button.boton:disabled, .boton.desactivado, .boton[aria-disabled="true"] { opacity: .5; cursor: not-allowed; background: #f1f4f8;
  border-style: dashed; color: var(--suave); text-decoration: line-through; }
button.boton:disabled:hover { background: #f1f4f8; border-color: var(--borde-fuerte); }
.lista-cambios .cambio { scroll-margin-top: 190px; }
.lista-cambios .cambio.enfocado { box-shadow: 0 0 0 3px var(--celeste); transition: box-shadow .3s; }
.lista-cambios .cambio.ocupado { opacity: .6; pointer-events: none; }
.lista-cambios .cambio.estado-solo { border-left: 4px solid var(--celeste); }
.lista-cambios .cambio.estado-general { border-left: 4px solid var(--azul); }
.lista-cambios .cambio.plegado .cambio-cuerpo { display: none; }
.lista-cambios .cambio.plegado { padding-top: .3rem; padding-bottom: .3rem; }
.cambio-cab { align-items: center; flex-wrap: wrap; justify-content: flex-start; gap: .4rem .6rem; }
.cambio-cab .plegar { margin-left: auto; font-size: 1rem; text-decoration: none; }
.cambio-cab .sel input { width: 1.1rem; height: 1.1rem; }
.tipo-cambio { font-weight: 700; color: var(--azul); }
.dif.compacto { display: block; max-height: 6.4em; overflow: hidden; line-height: 1.6; position: relative; }
.dif.compacto del, .dif.compacto ins { padding: 0 .15rem; }
.dif .texto-completo { white-space: pre-wrap; line-height: 1.6; }
.dif .texto-completo del { text-decoration: line-through; } .dif .texto-completo ins { text-decoration: none; font-weight: 600; }
.ver-completo { font-size: .85rem; }
.motivo-cambio { margin: .25rem 0; font-size: .86rem; color: var(--suave); }
.dialogo-lote { border: 1px solid var(--borde-fuerte); border-radius: 14px; max-width: min(34rem, 92vw); box-shadow: var(--sombra); }
.dialogo-lote::backdrop { background: rgba(10, 46, 82, .45); }
.dialogo-lote .acciones { display: flex; gap: .5rem; justify-content: flex-end; margin-top: .6rem; }
@media (max-width: 720px) { .barra-cambios .navegar { margin-left: 0; } .lista-cambios .cambio { scroll-margin-top: 260px; } }

/* ---------- Barra de cada hoja: «Proceso IR-2» y «✔ Cerrar a mano» (expedientes/_barra_proceso.html) ---------- */
.barra-proceso { display: flex; flex-wrap: wrap; align-items: center; gap: .55rem .7rem; margin: -.3rem 0 1rem; padding: .55rem .7rem;
  background: var(--blanco); border: 1px solid var(--borde); border-left: 4px solid var(--azul); border-radius: 12px; box-shadow: var(--sombra); }
.barra-proceso .boton-proceso { color: var(--azul); border-color: var(--azul-700); font-weight: 700; padding: .35rem .5rem .35rem .8rem; }
.barra-proceso .boton-proceso:hover { background: var(--celeste-50); }
.barra-proceso .boton-proceso .mini-anillo { width: 1.9rem; height: 1.9rem; margin-left: .15rem; font-size: .58rem; }
.barra-paso { display: flex; flex-wrap: wrap; align-items: center; gap: .35rem .55rem; padding: .25rem .25rem .25rem .7rem;
  border-left: 1px solid var(--borde); font-size: .88rem; }
.barra-paso-titulo { display: flex; flex-direction: column; line-height: 1.2; font-weight: 600; color: var(--texto); }
.barra-paso-titulo small { font-size: .7rem; font-weight: 700; color: var(--suave); text-transform: uppercase; letter-spacing: .04em; }
.barra-paso-nota { font-size: .8rem; color: var(--ok); font-weight: 600; }
.barra-paso-nota.suave { color: var(--suave); font-weight: 500; }
.cerrar-hoja { position: relative; }
.cerrar-hoja > summary { list-style: none; padding: .3rem .7rem; font-size: .84rem; }
.cerrar-hoja > summary::-webkit-details-marker { display: none; }
.cerrar-hoja[open] > summary { background: var(--celeste-50); border-color: var(--azul-700); }
.form-cerrar-hoja { position: absolute; z-index: 30; top: calc(100% + .35rem); left: 0; width: min(30rem, 86vw); display: grid; gap: .55rem;
  padding: .85rem .95rem; background: #fff; border: 1px solid var(--borde-fuerte); border-radius: 12px;
  box-shadow: 0 12px 32px rgba(15, 30, 55, .18); font-size: .85rem; }
.form-cerrar-hoja label { display: grid; gap: .25rem; font-weight: 600; }
.form-cerrar-hoja input[type=text] { font: inherit; padding: .45rem .6rem; border: 1px solid var(--borde-fuerte); border-radius: 8px; }
.form-cerrar-hoja .primario { justify-self: start; }
.form-cerrar-hoja small { font-size: .76rem; line-height: 1.35; }
.form-cerrar-hoja .error-cierre { margin: 0; color: var(--mal); font-weight: 600; }
.barra-mensaje { flex: 1 1 18rem; margin: 0; padding: .4rem .7rem; border-radius: 8px; font-size: .85rem; font-weight: 600;
  background: var(--celeste-50); color: var(--azul); }
.barra-mensaje.ok { background: var(--ok-50); color: var(--ok); }
.barra-mensaje.error { background: var(--mal-50); color: var(--mal); }
@media (max-width: 700px) {
  .barra-paso { border-left: 0; padding-left: 0; flex-basis: 100%; }
  .form-cerrar-hoja { position: static; width: auto; margin-top: .4rem; box-shadow: none; }
}
@media print { .barra-proceso { display: none; } }

/* ---------- Anticipos: botón del reporte para el cliente ---------- */
.estado-hoja .boton-reporte { text-decoration: none; }

/* ---------- «Diferencias encontradas» (portal del cliente; fiscal/diferencias_cliente.html) ---------- */
.diferencias-cab { align-items: flex-start; }
.acciones-diferencias { display: flex; flex-wrap: wrap; gap: .5rem; }
.sin-diferencias { border-left: 4px solid var(--ok); font-size: 1.02rem; }
.sin-diferencias p { margin: 0; }
.sin-diferencias strong { color: var(--ok); }
.sin-diferencias.pendiente { border-left-color: var(--aviso); }
.sin-diferencias.pendiente strong { color: var(--aviso); }
.resumen-diferencias { font-weight: 600; margin: .2rem 0 .6rem; }
.indice-diferencias { display: flex; flex-wrap: wrap; gap: .45rem; margin: 0 0 1rem; }
.indice-diferencias a { display: inline-flex; gap: .45rem; align-items: center; padding: .3rem .7rem; border-radius: 999px; background: #fff;
  border: 1px solid var(--borde-fuerte); text-decoration: none; font-weight: 600; font-size: .86rem; color: var(--azul); }
.indice-diferencias a:hover { border-color: var(--azul-700); }
.indice-diferencias .cifra-dif { color: var(--mal); font-variant-numeric: tabular-nums; }
.partida-dif { border-left: 4px solid var(--mal); scroll-margin-top: 80px; }
.partida-cab { display: flex; flex-wrap: wrap; gap: .4rem .8rem; align-items: center; }
.partida-cab h2 { margin: 0; }
.que-compara { color: var(--suave); margin: .4rem 0 .8rem; }
.partida-cuerpo { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr); gap: 1rem 1.4rem; align-items: start; }
.cuadre-cliente { width: 100%; }
.cuadre-cliente tr.fuerte td { font-weight: 700; }
.cuadre-cliente tr.renglon-b1 td { border-top: 1px dashed var(--borde-fuerte); }
.cuadre-cliente tr.fila-dif td { background: var(--mal-50); color: var(--mal); font-weight: 800; }
.explicacion-dif { background: var(--fondo); border-radius: 10px; padding: .7rem .9rem; }
.explicacion-dif h3 { margin: 0 0 .3rem; font-size: .92rem; color: var(--azul); }
.explicacion-dif p { margin: .3rem 0; font-size: .9rem; }
.detalle-dif { margin-top: .9rem; }
.detalle-dif > summary { cursor: pointer; font-weight: 600; color: var(--azul-700); }
.detalle-dif h3 { font-size: .9rem; margin: .8rem 0 .3rem; }
.nota-diferencias { font-size: .8rem; margin-top: 1rem; }
@media (max-width: 800px) { .partida-cuerpo { grid-template-columns: 1fr; } }
@media print {
  .con-menu > .menu, .migas, .pasos-vecinos, .acciones-diferencias, .indice-diferencias, .barra { display: none !important; }
  .partida-dif { break-inside: avoid; box-shadow: none; }
  .detalle-dif > summary { display: none; }
  .detalle-dif:not([open]) > *:not(summary) { display: block; }
}

/* ---------- Clasificación: cuentas cerradas sin saldo ---------- */
.insignia.cerrada-saldo { background: #eef1f6; color: #3d4b5c; }
.boton.boton-cerrar-saldo { border-color: var(--borde-fuerte); color: var(--azul-700); }
td .boton-cerrar-saldo { margin-top: .3rem; }
