/* Facturación PROING — hoja de estilos */
:root {
  --rail: #10243A;
  --rail-claro: #1D3B59;
  --fondo: #EFF3F6;
  --papel: #FFFFFF;
  --tinta: #16212B;
  --azul-t: #1B4A75;
  --suave: #5E6E7E;
  --linea: #DFE6EC;
  --verde: #2E7D4F;
  --azul: #2F6FB0;
  --ambar: #B7791F;
  --rojo: #B23B3B;
  --gris: #8A96A3;
  --radio: 8px;
  --sombra: 0 1px 2px rgba(16, 36, 58, .06), 0 6px 18px rgba(16, 36, 58, .05);
  font-family: "Public Sans", "Segoe UI", Arial, sans-serif;
  font-variant-numeric: tabular-nums;
  color: var(--tinta);
}
* { box-sizing: border-box; }
body { margin: 0; background: var(--fondo); line-height: 1.5; }
[hidden] { display: none !important; }
h1, h2, h3, h4 { font-family: Archivo, "Public Sans", sans-serif; color: var(--tinta); line-height: 1.15;
  letter-spacing: -.01em; }
h2 { font-size: 1.3rem; margin: 0; }
h3 { font-size: 1.02rem; margin: 1.8rem 0 .7rem; }
.suave { color: var(--suave); margin: .2rem 0; font-size: .9rem; }
.error { color: var(--rojo); min-height: 1.2em; margin: .3rem 0; font-size: .9rem; }
b, strong { font-weight: 600; }

button, .boton {
  font: inherit; font-weight: 600; border: 1px solid transparent; border-radius: 6px;
  background: var(--azul-t); color: #fff; padding: .55rem 1rem; cursor: pointer;
  text-decoration: none; display: inline-block; line-height: 1.2;
}
button:hover, .boton:hover { background: #143A5D; }
.secundario { background: var(--papel); color: var(--azul-t); border-color: var(--linea); }
.secundario:hover { background: #E7EDF3; }
.enlace { background: none; color: #B9CBDC; padding: .2rem .3rem; text-decoration: underline; font-weight: 500; }
.enlace:hover { background: none; color: #fff; }
:focus-visible { outline: 3px solid #7FB3E6; outline-offset: 2px; }
input, select {
  font: inherit; padding: .5rem .7rem; border: 1px solid var(--linea);
  border-radius: 6px; background: var(--papel); color: var(--tinta);
}
input:hover, select:hover { border-color: #C2CFDA; }

/* ------------------------------------------------------------------ login */
.login { min-height: 100vh; display: grid; place-items: center; padding: 1rem; background: var(--rail); }
.login-caja { background: var(--papel); padding: 2.2rem; border-radius: var(--radio);
  width: min(390px, 100%); box-shadow: 0 18px 50px rgba(0, 0, 0, .3); }
.login-caja h1 { margin: 0; font-size: 1.6rem; }
.login-caja label { display: block; margin-top: 1rem; font-weight: 500; font-size: .9rem; }
.login-caja input { width: 100%; margin-top: .3rem; }
.login-caja button { width: 100%; margin-top: .6rem; padding: .65rem; }

/* ------------------------------------------------------------------ marco */
.app { display: grid; grid-template-columns: 224px 1fr; min-height: 100vh; }
.rail { background: var(--rail); color: #D8E3ED; display: flex; flex-direction: column;
  position: sticky; top: 0; height: 100vh; padding: 1.1rem .7rem 1rem; }
.marca { display: flex; gap: .5rem; align-items: baseline; font-family: Archivo, sans-serif;
  font-weight: 700; font-size: 1.02rem; color: #fff; line-height: 1.15; padding: 0 .5rem 1.1rem; }
.rail-pie { margin-top: auto; border-top: 1px solid rgba(255, 255, 255, .12); padding-top: .8rem;
  display: flex; justify-content: space-between; align-items: center; font-size: .86rem; padding-inline: .5rem; }
.pestanas { display: flex; flex-direction: column; gap: 1px; }
.pestanas button { background: none; color: #C3D2E0; text-align: left; font-weight: 500;
  padding: .5rem .7rem; border-radius: 6px; display: flex; justify-content: space-between;
  align-items: center; gap: .5rem; font-size: .93rem; }
.pestanas button:hover { background: rgba(255, 255, 255, .08); color: #fff; }
.pestanas button[aria-selected="true"] { background: var(--rail-claro); color: #fff; font-weight: 600;
  box-shadow: inset 3px 0 0 #6FA8DC; }
.cuenta { background: rgba(255, 255, 255, .14); color: #E8F0F7; border-radius: 10px;
  padding: .05rem .45rem; font-size: .76rem; font-weight: 600; white-space: nowrap; }
.cuenta.urgente { background: var(--rojo); color: #fff; }

.lienzo { min-width: 0; padding: 1.1rem clamp(1rem, 2.5vw, 2.2rem) 3rem; max-width: 1500px; }
.cabecera { display: flex; gap: 1rem; align-items: center; justify-content: space-between; flex-wrap: wrap; }
.buscar-om { flex: 1; min-width: 220px; }
.buscar-om input { width: min(340px, 100%); }
.zona-carga { display: block; border: 1px dashed #9FB2C4; border-radius: var(--radio); background: var(--papel);
  padding: 1.1rem; text-align: center; cursor: pointer; color: var(--suave); font-size: .92rem;
  margin: .6rem 0; }
.cabecera .zona-carga { display: inline-block; padding: .55rem 1.1rem; border-radius: 6px; margin: 0; }
.zona-carga b { color: var(--azul-t); }
.zona-carga.activa { border-color: var(--azul); background: #E9F1FA; border-style: solid; }
.zona-carga.cargando { pointer-events: none; opacity: .65; }
.zona-carga.compacta { padding: .8rem; }

.vacio { text-align: center; padding: 4rem 1rem; max-width: 520px; margin: 0 auto; }
.vacio h2 { font-size: 1.5rem; margin-bottom: .5rem; }
.vacio p { margin-bottom: 1.2rem; }

/* ---------------------------------------------------------------- tablero */
.tablero { display: grid; grid-template-columns: minmax(230px, 340px) 1fr; gap: 1.2rem;
  align-items: stretch; margin-top: 1.1rem; }
.tablero-cifra { background: var(--rail); color: #fff; border-radius: var(--radio);
  padding: 1rem 1.3rem 1.1rem; display: flex; flex-direction: column; justify-content: center; }
.tablero-cifra .etiqueta { font-size: .82rem; color: #A9C0D4; }
.tablero-cifra b { font-family: Archivo, sans-serif; font-size: 2rem; font-weight: 700;
  letter-spacing: -.02em; line-height: 1.1; margin: .1rem 0; }
.tablero-cifra .suave { color: #A9C0D4; }
.tablero-archivo { background: var(--papel); border-radius: var(--radio); box-shadow: var(--sombra);
  padding: 1rem 1.3rem; display: flex; flex-direction: column; justify-content: center; gap: .5rem; }
.tablero-archivo .acciones { display: flex; gap: .5rem; flex-wrap: wrap; margin-top: .2rem; }

/* --------------------------------------------------- recorrido de la orden */
.recorrido { margin-top: 1.2rem; background: var(--papel); border-radius: var(--radio);
  box-shadow: var(--sombra); padding: 1rem 1.3rem 1.1rem; }
.cinta { display: flex; height: 10px; border-radius: 5px; overflow: hidden; background: #E3E9EF; }
.cinta i { display: block; background: var(--c); }
.flujo { display: grid; grid-template-columns: repeat(5, 1fr); gap: .8rem; margin-top: .9rem; }
.paso { border-left: 3px solid var(--c); padding-left: .7rem; }
.paso-nombre { font-size: .83rem; color: var(--suave); font-weight: 500; }
.paso-num { font-family: Archivo, sans-serif; font-size: 1.85rem; font-weight: 700; color: var(--c);
  line-height: 1.15; letter-spacing: -.02em; }
.paso-valor { font-size: .87rem; color: var(--suave); }
.fuera-flujo { display: flex; flex-wrap: wrap; gap: .4rem; margin-top: 1rem;
  border-top: 1px solid var(--linea); padding-top: .8rem; }
.chip { border-left: 3px solid var(--c); background: #F5F8FA; padding: .3rem .65rem;
  border-radius: 0 5px 5px 0; font-size: .86rem; color: var(--suave); }
.chip b { color: var(--c); font-weight: 600; }

/* ----------------------------------------------------------------- avisos */
.rechazadas, .aviso-bloque { margin-top: 1.1rem; background: var(--papel); border-radius: var(--radio);
  box-shadow: var(--sombra); border-left: 4px solid var(--rojo); padding: .7rem 1.2rem 1rem; }
.aviso-bloque { border-left-color: var(--ambar); }
.rechazadas h3, .aviso-bloque h3 { margin: .4rem 0 .5rem; font-size: 1rem; }
.rechazadas h3 { color: var(--rojo); }
.aviso-bloque h3 { color: var(--ambar); }
.rechazadas ul { list-style: none; margin: 0; padding: 0; }
.rechazadas li { display: grid; grid-template-columns: 110px 150px 110px 1fr; gap: .9rem;
  font-size: .87rem; padding: .45rem .2rem; border-top: 1px solid var(--linea); cursor: pointer; }
.rechazadas li:hover { background: #FBF0F0; }
.rechazadas li b { color: var(--tinta); }
.aviso { margin: 1.1rem 0 0; background: #FDF7EA; border-left: 4px solid var(--ambar);
  padding: .6rem 1.1rem; border-radius: 0 6px 6px 0; font-size: .9rem; }
.aviso button { background: none; color: var(--azul-t); padding: 0; text-decoration: underline; font-weight: 600; }

/* ----------------------------------------------------------------- cuerpo */
.contenido { padding-bottom: 2rem; }
.tab > h3:first-child { margin-top: 1.6rem; }
.tab > p:first-child { margin-top: 1.4rem; }
.cifras { display: flex; flex-wrap: wrap; gap: 1.6rem 2.6rem; margin-top: 1.5rem; }
.cifra span { display: block; color: var(--suave); font-size: .83rem; }
.cifra b { font-family: Archivo, sans-serif; font-size: 1.3rem; font-weight: 600; letter-spacing: -.01em; }
.rejilla { display: grid; grid-template-columns: repeat(auto-fit, minmax(430px, 1fr)); gap: 0 2.6rem; }
.barra-fila { display: grid; grid-template-columns: 130px 1fr 155px; gap: .6rem;
  align-items: center; font-size: .87rem; padding: .22rem 0; }
.barra-fila .nombre { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.pista { background: #E3E9EF; height: 12px; border-radius: 3px; overflow: hidden; display: flex; }
.pista i { display: block; height: 100%; }
.pista .f { background: var(--verde); }
.pista .a { background: #A7B7C6; }
.barra-fila .num { text-align: right; color: var(--suave); }
.leyenda { font-size: .82rem; color: var(--suave); display: flex; gap: .3rem; align-items: center; }
.leyenda i { display: inline-block; width: 11px; height: 11px; border-radius: 2px; margin-left: .6rem; }
.leyenda i.f { background: var(--verde); } .leyenda i.a { background: #A7B7C6; }

/* ----------------------------------------------------------------- tablas */
.filtros { display: flex; gap: .55rem; flex-wrap: wrap; margin: 1.1rem 0 .7rem; align-items: end; }
.filtros input[type="search"], .filtros input:not([type]) { min-width: 250px; flex: 1; max-width: 400px; }
.filtros label { display: flex; flex-direction: column; font-size: .8rem; color: var(--suave); gap: .2rem; }
.tabla-scroll { overflow-x: auto; background: var(--papel); border-radius: var(--radio); box-shadow: var(--sombra); }
table { border-collapse: collapse; width: 100%; font-size: .86rem; }
th { background: #F3F6F9; color: var(--suave); text-align: left; padding: .6rem .8rem;
  font-weight: 600; white-space: nowrap; position: sticky; top: 0; border-bottom: 1px solid var(--linea); }
td { padding: .55rem .8rem; border-bottom: 1px solid #EDF1F4; vertical-align: top; white-space: nowrap; }
tr:last-child td { border-bottom: 0; }
tbody tr:hover td { background: #F6F9FC; }
td.der, th.der { text-align: right; }
td.texto { min-width: 260px; max-width: 430px; white-space: normal; display: -webkit-box;
  -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
tbody tr.clic { cursor: pointer; }
.estado { display: inline-block; padding: .08rem .5rem; border-radius: 4px; font-size: .78rem;
  font-weight: 600; color: #fff; background: var(--c); white-space: nowrap; }
.nivel-alta td:first-child { box-shadow: inset 3px 0 0 var(--rojo); }
.nivel-media td:first-child { box-shadow: inset 3px 0 0 var(--ambar); }
.nivel-baja td:first-child { box-shadow: inset 3px 0 0 var(--gris); }
tr.c-verde td:first-child { box-shadow: inset 3px 0 0 var(--verde); }
tr.c-azul td:first-child { box-shadow: inset 3px 0 0 var(--azul); }
tr.c-amarillo td:first-child { box-shadow: inset 3px 0 0 var(--ambar); }
tr.c-rojo td:first-child { box-shadow: inset 3px 0 0 var(--rojo); }
tr.c-gris td:first-child { box-shadow: inset 3px 0 0 var(--gris); }
td.om-link { color: var(--azul); font-weight: 600; cursor: pointer; }
td.om-link:hover { text-decoration: underline; }
.sin-datos { padding: 1.6rem; text-align: center; color: var(--suave); white-space: normal; }
.mini { padding: .25rem .6rem; font-size: .8rem; }
.angosta { max-width: 720px; }

/* ---------------------------------------------------------------- detalle */
dialog { border: 0; border-radius: var(--radio); padding: 0; width: min(780px, 94vw);
  max-height: 88vh; box-shadow: 0 20px 60px rgba(16, 36, 58, .4); }
dialog::backdrop { background: rgba(16, 36, 58, .5); }
.det-cabeza { display: flex; justify-content: space-between; align-items: center; gap: 1rem;
  background: var(--rail); color: #fff; padding: .9rem 1.2rem; position: sticky; top: 0; z-index: 2; }
.det-cabeza h2 { color: #fff; }
.det-cabeza .acciones { display: flex; gap: .4rem; }
.det-cabeza .boton, .det-cabeza button { padding: .4rem .75rem; font-size: .86rem; }
#det-cuerpo { padding: .6rem 1.3rem 1.4rem; }
.ficha { display: grid; grid-template-columns: 180px 1fr; gap: 0 1rem; font-size: .9rem; margin: .6rem 0; }
.ficha dt { color: var(--suave); padding: .35rem 0; border-bottom: 1px solid #EDF1F4; }
.ficha dd { margin: 0; padding: .35rem 0; border-bottom: 1px solid #EDF1F4; white-space: pre-wrap; }

/* ----------------------------------------------------------- cruces y SAP */
.deteccion { background: var(--papel); border-radius: var(--radio); box-shadow: var(--sombra);
  padding: .7rem 1.1rem; margin-top: 1.1rem; }
.deteccion summary { cursor: pointer; font-size: .9rem; color: var(--suave); }
.encabezado-res { display: flex; justify-content: space-between; align-items: end; gap: 1rem;
  flex-wrap: wrap; margin-top: 1.2rem; }
.acciones { display: flex; gap: .5rem; flex-wrap: wrap; }
.semaforo { display: flex; flex-wrap: wrap; gap: .5rem; }
.sem { border: 1px solid var(--linea); border-left: 4px solid var(--c); background: var(--papel);
  color: var(--tinta); border-radius: 0 6px 6px 0; padding: .45rem .8rem; font-weight: 500; font-size: .87rem; }
.sem b { font-family: Archivo, sans-serif; font-size: 1.15rem; color: var(--c); margin-right: .35rem; }
.sem:hover, .sem[aria-pressed="true"] { background: #EDF2F7; }
.distribucion { display: grid; gap: .25rem; max-width: 920px; }
.dist-fila { display: grid; grid-template-columns: 250px 1fr 110px; gap: .7rem; align-items: center;
  font-size: .87rem; padding: .18rem .3rem; border-radius: 4px; border: 0; background: none;
  color: var(--tinta); text-align: left; font-weight: 400; }
.dist-fila:hover, .dist-fila[aria-pressed="true"] { background: #E7EDF3; }
.dist-fila .pista i { background: var(--c); }
.dist-fila .num { text-align: right; color: var(--suave); }
.dist-sep { border-top: 1px dashed var(--linea); margin: .25rem 0; }
.dias-neg { color: var(--rojo); font-weight: 600; }
.dias-pos { color: var(--azul); }
.posible { color: var(--rojo); font-weight: 600; }
.plegable { margin-top: 1.5rem; }
.plegable summary { cursor: pointer; }
.plegable summary h3 { display: inline; margin: 0; }
.copiar { display: flex; gap: .6rem; align-items: center; flex-wrap: wrap; margin: .5rem 0; }
.copiar code { background: var(--papel); border: 1px solid var(--linea); padding: .4rem .6rem;
  border-radius: 5px; font-size: .84rem; word-break: break-all; }
#fuente-sap { margin: 1.2rem 0 0; display: flex; gap: .6rem; align-items: center; flex-wrap: wrap;
  background: var(--papel); border-radius: var(--radio); box-shadow: var(--sombra); padding: .7rem 1.1rem;
  font-size: .9rem; }
.fuente { background: var(--papel); border-radius: var(--radio); box-shadow: var(--sombra); padding: .8rem 1.1rem; }
.dos-tipos { display: grid; grid-template-columns: 1fr 1fr; gap: 1.2rem; margin-top: 1.2rem; }
.tipo-col { background: var(--papel); border-radius: var(--radio); box-shadow: var(--sombra);
  border-top: 4px solid var(--c); padding: .8rem 1.2rem 1.1rem; }
.tipo-col h3 { margin: .3rem 0 .1rem; }
.tipo-col .cifras { gap: 1rem 1.8rem; margin: .7rem 0 1rem; }
.tipo-col .cifra b { font-size: 1.15rem; }
.tipo-col .dist-fila { grid-template-columns: 170px 1fr 90px; width: 100%; }
.consulta-om { background: var(--papel); border-radius: var(--radio); box-shadow: var(--sombra);
  padding: .5rem 1.2rem 1.1rem; margin: 1.2rem 0; }
.om-card { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 1rem; }
.om-bloque { border-left: 4px solid var(--c, var(--linea)); padding: .2rem .9rem .4rem; background: #F6F9FC;
  border-radius: 0 6px 6px 0; }
.om-bloque h4 { margin: .5rem 0 .3rem; font-size: .95rem; }
.om-bloque .ficha { grid-template-columns: 150px 1fr; margin: .2rem 0; font-size: .84rem; }
.om-cabeza { display: flex; justify-content: space-between; align-items: center; gap: 1rem;
  flex-wrap: wrap; margin-bottom: .8rem; }
.om-cabeza h4 { margin: 0; font-size: 1.1rem; }
.nota-roja { color: var(--rojo); font-weight: 600; margin: .3rem 0; }
.hist-caja { background: var(--papel); border-radius: var(--radio); box-shadow: var(--sombra);
  padding: .5rem 1.1rem; margin: .5rem 0 1rem; }
.hist-linea { display: grid; grid-template-columns: 160px 1fr; gap: .6rem; align-items: center;
  font-size: .88rem; padding: .35rem 0; border-bottom: 1px solid #EDF1F4; }
.hist-linea:last-child { border-bottom: 0; }
.acciones-tabla { display: flex; gap: .4rem; }

/* --------------------------------------------------------------- pantallas */
@media (max-width: 1000px) {
  .app { grid-template-columns: 1fr; }
  .rail { position: static; height: auto; flex-direction: row; align-items: center; gap: .8rem;
    flex-wrap: wrap; padding: .7rem 1rem; }
  .marca { padding: 0; }
  .rail { align-items: flex-start; }
  .rail-pie { order: 5; width: 100%; justify-content: flex-end; }
  .pestanas { flex-direction: row; flex-wrap: wrap; flex: 1; }
  .pestanas button[aria-selected="true"] { box-shadow: none; }
  .rail-pie { margin: 0; border: 0; padding: 0; gap: .5rem; }
  .tablero, .dos-tipos, .rejilla { grid-template-columns: 1fr; }
  .flujo { grid-template-columns: 1fr 1fr; }
  .rechazadas li { grid-template-columns: 1fr 1fr; }
  .ficha, .om-bloque .ficha { grid-template-columns: 1fr; }
  .ficha dt { border: 0; padding-bottom: 0; }
  .dist-fila { grid-template-columns: 1fr 80px; }
  .dist-fila .pista { display: none; }
  .cifras { gap: 1rem 1.6rem; }
}
@media (prefers-reduced-motion: no-preference) {
  .pestanas button, .boton, button, .sem { transition: background-color .12s ease; }
}

/* ---- v11: metas ---- */
.meta-tarjeta { background: var(--papel); border-radius: var(--radio); box-shadow: var(--sombra);
  border-top: 4px solid var(--c); padding: .9rem 1.2rem 1.1rem; }
.meta-tarjeta h4 { margin: .2rem 0 .1rem; font-size: 1rem; }
.meta-cifra { font-family: Archivo, sans-serif; font-size: 1.9rem; font-weight: 700; color: var(--c);
  letter-spacing: -.02em; line-height: 1.2; }
.meta-barra { position: relative; background: #E3E9EF; height: 16px; border-radius: 8px; overflow: hidden;
  margin: .6rem 0 .3rem; }
.meta-barra i { display: block; height: 100%; background: var(--c); }
.meta-barra .proy { position: absolute; top: 0; height: 100%; background: repeating-linear-gradient(
    45deg, rgba(47, 111, 176, .35) 0 6px, rgba(47, 111, 176, .12) 6px 12px); }
.meta-datos { display: flex; flex-wrap: wrap; gap: .8rem 1.8rem; margin-top: .6rem; font-size: .88rem; }
.meta-datos span { color: var(--suave); }
.meta-datos b { display: block; font-weight: 600; color: var(--tinta); }
h4 { font-size: .98rem; margin: 1.4rem 0 .5rem; }

/* ---- v12: gestión ---- */
.grupo-nav { color: #7E97AD; font-size: .72rem; font-weight: 600; letter-spacing: .04em;
  padding: .9rem .7rem .25rem; }
.tres-tarjetas { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 1rem; }
.tarea-tarjeta { background: var(--papel); border-radius: var(--radio); box-shadow: var(--sombra);
  border-left: 4px solid var(--c); padding: .8rem 1.1rem 1rem; cursor: pointer; text-align: left;
  color: var(--tinta); font-weight: 400; width: 100%; border-top: 0; border-right: 0; border-bottom: 0; }
.tarea-tarjeta:hover { background: #F6F9FC; }
.tarea-tarjeta h4 { margin: 0 0 .1rem; font-size: .95rem; color: var(--c); }
.tarea-tarjeta .num { font-family: Archivo, sans-serif; font-size: 1.9rem; font-weight: 700;
  letter-spacing: -.02em; line-height: 1.15; }
.tarea-tarjeta ul { margin: .5rem 0 0; padding-left: 1.1rem; font-size: .85rem; color: var(--suave); }
.dinero { display: flex; flex-wrap: wrap; gap: .5rem; }
.dinero-item { background: var(--papel); border-radius: var(--radio); box-shadow: var(--sombra);
  border-left: 4px solid var(--c); padding: .5rem .9rem; font-size: .88rem; }
.dinero-item b { display: block; font-family: Archivo, sans-serif; font-size: 1.1rem; }
.tramo { display: inline-block; padding: .05rem .45rem; border-radius: 4px; font-size: .78rem;
  font-weight: 600; color: #fff; }
.tramo.verde { background: var(--verde); } .tramo.ambar { background: var(--ambar); }
.tramo.naranja { background: #C2621C; } .tramo.rojo { background: var(--rojo); }
.tarea-grupo { margin-top: 1.4rem; }
.tarea-fila { display: grid; grid-template-columns: 96px 1fr 150px 130px; gap: .8rem; align-items: start;
  background: var(--papel); border-radius: var(--radio); box-shadow: var(--sombra); padding: .7rem 1rem;
  margin-bottom: .5rem; border-left: 4px solid var(--c); font-size: .88rem; }
.tarea-fila.hecha { opacity: .55; }
.tarea-fila .om { font-weight: 600; color: var(--azul); cursor: pointer; }
.tarea-fila .acciones { display: flex; flex-direction: column; gap: .35rem; }
.tarea-fila .nota { color: var(--suave); font-style: italic; margin-top: .25rem; }
.tarea-fila .valor { text-align: right; font-weight: 600; }
.linea-tiempo { list-style: none; margin: .5rem 0; padding-left: 1.1rem; border-left: 2px solid var(--linea); }
.linea-tiempo li { position: relative; padding: .3rem 0 .3rem .9rem; font-size: .88rem; }
.linea-tiempo li::before { content: ""; position: absolute; left: -7px; top: .75rem; width: 10px; height: 10px;
  border-radius: 50%; background: var(--azul-t); }
.linea-tiempo li.analisis::before { background: var(--linea); }
.linea-tiempo .fecha { color: var(--suave); margin-right: .5rem; }
.docs { display: flex; flex-wrap: wrap; gap: .4rem .9rem; margin: .5rem 0 .2rem; font-size: .88rem; }
.docs span { display: flex; gap: .35rem; align-items: center; }
.docs .si { color: var(--verde); font-weight: 700; }
.docs .no { color: var(--rojo); font-weight: 700; }
.caja-gestion { background: #F6F9FC; border-radius: var(--radio); padding: .7rem 1rem; margin: .8rem 0; }
.caja-gestion .filtros { margin: .4rem 0 0; }
@media (max-width: 1000px) {
  .grupo-nav { display: none; }
  .tarea-fila { grid-template-columns: 1fr; }
  .tarea-fila .valor { text-align: left; }
}

/* ---- v13: sectores ---- */
.sel-sector { display: flex; flex-direction: column; font-size: .78rem; color: var(--suave); gap: .15rem; }
.sel-sector select { font-weight: 600; color: var(--tinta); min-width: 150px; }
.marca-sector { display: inline-block; background: rgba(255, 255, 255, .16); color: #fff; border-radius: 4px;
  padding: .05rem .5rem; font-size: .78rem; font-weight: 600; margin-left: .5rem; }

/* ---- v15: compromiso y responsable ---- */
.vence { display: inline-block; padding: .05rem .45rem; border-radius: 4px; font-size: .78rem;
  font-weight: 600; color: #fff; white-space: nowrap; }
.vence.rojo { background: var(--rojo); } .vence.ambar { background: var(--ambar); }
.vence.verde { background: var(--verde); } .vence.gris { background: var(--gris); }
.tarea-fila .meta-linea { display: flex; gap: .8rem; flex-wrap: wrap; margin-top: .3rem;
  font-size: .82rem; color: var(--suave); align-items: center; }
.dinero-item.clic { cursor: pointer; }
.dinero-item.clic:hover { background: #F6F9FC; }

/* ------------------------------------------------------ tabla general tipo Excel */
.barra-tabla { display: flex; gap: .5rem; align-items: center; flex-wrap: wrap; margin-bottom: .6rem; }
.barra-tabla #tg-buscar { min-width: 240px; flex: 0 1 300px; }
.crece { flex: 1 1 auto; }

.panel-columnas { background: var(--papel); border-radius: var(--radio); box-shadow: var(--sombra);
  padding: .8rem 1rem; margin-bottom: .6rem; }
.panel-cab { display: flex; justify-content: space-between; align-items: center; gap: 1rem;
  margin-bottom: .6rem; flex-wrap: wrap; }
.panel-cab .enlace { margin-left: .8rem; }
.lista-columnas { display: grid; grid-template-columns: repeat(auto-fill, minmax(230px, 1fr));
  gap: .25rem .9rem; max-height: 44vh; overflow-y: auto; }
.lista-columnas label { display: flex; gap: .45rem; align-items: center; font-size: .86rem;
  padding: .18rem .25rem; border-radius: 4px; cursor: pointer; }
.lista-columnas label:hover { background: #F3F6F9; }
.lista-columnas input { accent-color: var(--azul-t); }
.lista-columnas .origen { color: var(--suave); font-size: .76rem; margin-left: auto; }

.chips-filtro { display: flex; gap: .4rem; flex-wrap: wrap; margin-bottom: .5rem; }
.chip-filtro { background: #E9F1FA; color: var(--azul-t); border: 1px solid #C9DDF0;
  border-radius: 999px; padding: .15rem .3rem .15rem .6rem; font-size: .8rem;
  display: inline-flex; align-items: center; gap: .35rem; }
.chip-filtro button { background: none; border: 0; color: var(--azul-t); cursor: pointer;
  font-size: 1rem; line-height: 1; padding: 0 .35rem; border-radius: 999px; }
.chip-filtro button:hover { background: #D3E4F4; }

.tabla-excel { overflow: auto; background: var(--papel); border-radius: var(--radio);
  box-shadow: var(--sombra); max-height: calc(100vh - 230px); }
.tabla-excel table { border-collapse: separate; border-spacing: 0; table-layout: fixed; }
.tabla-excel th, .tabla-excel td { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.tabla-excel th { position: sticky; z-index: 3; background: #F3F6F9; top: 0;
  border-right: 1px solid var(--linea); }
.tabla-excel thead tr:nth-child(2) th { top: 37px; z-index: 3; padding: .25rem .35rem; background: #FAFCFD; }
.tabla-excel td { border-right: 1px solid #EDF1F4; background: var(--papel); }
.tabla-excel tbody tr:nth-child(even) td { background: #FAFCFD; }
.tabla-excel tbody tr:hover td { background: #EFF6FD; }
.tabla-excel .fija { position: sticky; z-index: 2; }
.tabla-excel th.fija { z-index: 4; }
.tabla-excel .fija.limite { border-right: 2px solid #C9D6E2; }
.tabla-excel th.orden { cursor: pointer; user-select: none; }
.tabla-excel th.orden:hover { color: var(--azul-t); }
.tabla-excel th .flecha { color: var(--azul); margin-left: .25rem; }
.tabla-excel td.num { text-align: right; font-variant-numeric: tabular-nums; }
.tabla-excel th.num { text-align: right; }
.tabla-excel .f-col { width: 100%; box-sizing: border-box; font-size: .78rem;
  padding: .22rem .35rem; border: 1px solid var(--linea); border-radius: 4px; background: var(--papel); }
.tabla-excel .f-col:focus { outline: 2px solid var(--azul); outline-offset: -1px; }
.tabla-excel tbody tr.marcada td { background: #E9F1FA; }
.vacio-tabla { padding: 2rem 1rem; text-align: center; color: var(--suave); }

@media (max-width: 1000px) {
  .tabla-excel { max-height: calc(100vh - 290px); }
  .barra-tabla #tg-buscar { flex: 1 1 100%; }
  .tabla-excel .fija { position: static; }
}

/* en la tabla general el tablero estorba: la hoja necesita todo el alto */
body.en-tabla #resultado { display: none; }
body.en-tabla .tabla-excel { max-height: calc(100vh - 205px); }
@media (max-width: 1000px) { body.en-tabla .tabla-excel { max-height: calc(100vh - 235px); } }

/* ------------------------------------------------------ claridad y ayuda */
.ayuda-seccion { color: var(--suave); font-size: .9rem; margin: 0 0 .8rem;
  padding-left: .7rem; border-left: 3px solid #C9DDF0; }
.ayuda-seccion b { color: var(--azul-t); }

.estado-datos { display: flex; gap: .5rem; flex-wrap: wrap; margin-bottom: .8rem; }
.dato-chip { display: inline-flex; align-items: center; gap: .45rem; background: var(--papel);
  border: 1px solid var(--linea); border-radius: 999px; padding: .3rem .85rem; font-size: .84rem;
  box-shadow: var(--sombra); }
.dato-chip .punto { width: 9px; height: 9px; border-radius: 50%; background: var(--c); flex: none; }
.dato-chip .edad { color: var(--suave); }
.dato-chip.falta { border-style: dashed; color: var(--suave); cursor: pointer; }
.dato-chip.falta:hover { border-color: var(--azul); color: var(--azul-t); }
.dato-chip .accion { color: var(--azul); font-weight: 600; }

.rejilla-avisos { display: grid; grid-template-columns: repeat(auto-fit, minmax(330px, 1fr));
  gap: 1rem; margin-bottom: 1rem; }
.tarjeta-config { background: var(--papel); border-radius: var(--radio); box-shadow: var(--sombra);
  padding: 1.1rem 1.2rem; }
.tarjeta-config h3 { margin-top: 0; }
.tarjeta-config h3 + label { margin-top: .2rem; }
.tarjeta-config label { display: block; font-size: .88rem; color: var(--suave); margin: .7rem 0 0; }
.tarjeta-config label input:not([type=checkbox]), .tarjeta-config label select { width: 100%; margin-top: .25rem; }
.tarjeta-config .acciones { display: flex; gap: .5rem; flex-wrap: wrap; margin-top: .9rem; }
.tarjeta-config .acciones + h3 { margin-top: 1.6rem; padding-top: 1.1rem; border-top: 1px solid var(--linea); }
label.interruptor { display: flex; align-items: center; gap: .5rem; color: var(--tinta);
  margin: .45rem 0 0; cursor: pointer; }
label.interruptor input { accent-color: var(--azul-t); width: auto; margin: 0; }
.ayuda-desplegable { background: var(--papel); border-radius: var(--radio); box-shadow: var(--sombra);
  padding: .8rem 1.2rem; margin-bottom: 1.2rem; }
.ayuda-desplegable summary { cursor: pointer; font-weight: 600; color: var(--azul-t); }
.ayuda-desplegable > div { margin-top: .7rem; font-size: .9rem; line-height: 1.7; }

.dialogo { border: 0; border-radius: var(--radio); box-shadow: 0 20px 60px rgba(16,36,58,.25);
  padding: 1.3rem 1.5rem; max-width: 720px; width: calc(100% - 2rem); color: var(--tinta);
  max-height: 85vh; overflow-y: auto; }
.dialogo .dialogo-cab { position: sticky; top: -1.3rem; background: var(--papel); z-index: 1;
  padding: 1.3rem 0 .5rem; margin-top: -1.3rem; }
.dialogo::backdrop { background: rgba(16, 36, 58, .45); }
.dialogo-cab { display: flex; justify-content: space-between; align-items: center; margin-bottom: .6rem; }
.dialogo-cab h2 { margin: 0; }
.glos-grupo { margin-bottom: 1rem; }
.glos-grupo h4 { margin: .3rem 0 .4rem; color: var(--azul-t); font-size: .95rem; }
.glos-grupo dl { margin: 0; display: grid; grid-template-columns: max-content 1fr; gap: .3rem .9rem; }
.glos-grupo dt { font-weight: 600; font-size: .88rem; }
.glos-grupo dd { margin: 0; font-size: .88rem; color: var(--suave); }

.dialogo.salto { max-width: 620px; padding: .9rem; }
.dialogo.salto #salto-buscar { width: 100%; box-sizing: border-box; font-size: 1.05rem; padding: .7rem .9rem; }
.salto-lista { margin: .6rem 0 .3rem; max-height: 50vh; overflow-y: auto; }
.salto-lista button { display: flex; width: 100%; gap: .6rem; align-items: baseline; text-align: left;
  background: none; border: 0; padding: .5rem .6rem; border-radius: 6px; cursor: pointer;
  font: inherit; color: var(--tinta); }
.salto-lista button:hover, .salto-lista button.activo { background: #E9F1FA; }
.salto-lista .tipo { color: var(--suave); font-size: .78rem; margin-left: auto; white-space: nowrap; }
.salto-lista .sub { color: var(--suave); font-size: .82rem; }
.rail-pie #btn-glosario { color: #9FB2C4; }

@media (max-width: 1000px) { .glos-grupo dl { grid-template-columns: 1fr; gap: .1rem; }
  .glos-grupo dd { margin-bottom: .45rem; } }
