/* Capa de gestión · mismos colores y tipografía que el TPV, en una distribución fluida de escritorio. */
:root {
  --marino: #1a2c6c; --marino2: #15428b; --negro: #2d2e30; --sel: #1672c0; --boton: #e8f1fc; --boton-borde: #a8c6ee;
  --cian: #0879bd; --verde: #2fbf68; --rojo: #ff6f61; --gris: #e6e6e6; --gris2: #c8c8c8; --gris3: #b4b4b4; --tinta: #1b2a5e;
  --fondo: #eef0f4; --borde: #d5d8de; --texto: #1c1d21; --suave: #6b7280;
}
* { box-sizing: border-box; }
html, body { height: 100%; }
body { margin: 0; font-family: 'Poppins', 'Segoe UI', Arial, sans-serif; font-size: 13px; color: var(--texto); background: var(--fondo); }
button, input, select, textarea { font: inherit; color: inherit; }
button { cursor: pointer; }
a { color: var(--marino2); text-decoration: none; }
[hidden] { display: none !important; }
svg { width: 1em; height: 1em; fill: currentColor; flex: none; }
svg[fill="none"], svg [fill="none"] { fill: none; }
.logo { font-weight: 600; letter-spacing: .28em; color: #fff; font-size: 1.1rem; display: inline-flex; align-items: center; gap: .5rem; }
.logo i { font-style: normal; letter-spacing: .08em; font-size: .7rem; background: radial-gradient(circle at 40% 40%, #35c8ff, #0b62c9); border-radius: 50%; width: 2rem; height: 2rem; display: inline-grid; place-items: center; }
.d { text-align: right; font-variant-numeric: tabular-nums; white-space: nowrap; }
.neg { color: #d32f2f; }
.suave { color: var(--suave); }
.peq { font-size: .85em; }

/* ---------- inicio de sesión ---------- */
#login { height: 100%; display: grid; place-items: center; background: linear-gradient(160deg, #0b63c5, #1378d6 60%, #0a4fa3); }
.login-caja { width: min(46rem, 94vw); background: #e4e5e9; box-shadow: 0 .6rem 2.5rem #0007; }
.login-cab { background: var(--marino); color: #fff; height: 3.4rem; display: flex; align-items: center; padding: 0 1.2rem; gap: 1rem; }
.login-cab b { flex: 1; text-align: center; font-weight: 400; font-size: 1.05rem; }
.login-cuerpo { padding: 2rem 4rem 1.4rem; }
.login-tit { display: flex; gap: 1.2rem; align-items: center; margin-bottom: 1.4rem; }
.login-tit svg { font-size: 3rem; color: var(--marino); }
.login-tit b { display: block; font-size: 1.1rem; font-weight: 500; } .login-tit span { font-size: .9rem; }
.login-campo { display: flex; align-items: center; background: #fff; height: 3rem; margin-bottom: .3rem; border-bottom: .15rem solid transparent; }
.login-campo:focus-within { border-bottom-color: var(--marino); }
.login-campo svg { font-size: 1.8rem; margin: 0 .6rem; color: #e39a12; }
.login-campo input { flex: 1; border: 0; outline: 0; height: 100%; font-size: 1rem; background: transparent; }
.login-error { color: #c62828; min-height: 1.4rem; margin: .5rem 0; font-weight: 500; }
.login-botones { display: flex; gap: 1rem; }
.login-botones button { width: 10rem; height: 3.2rem; border: 0; color: #fff; font-size: 2rem; line-height: 1; }
.b-verde { background: var(--verde); } .b-rojo { background: var(--rojo); }

/* ---------- estructura ---------- */
#app { height: 100%; display: grid; grid-template-rows: 3.2rem auto 1fr 1.5rem; }
.barra { background: var(--marino); color: #fff; display: flex; align-items: center; padding: 0 .4rem 0 .9rem; gap: 1.4rem; }
#menu { display: flex; gap: .15rem; flex: 1; height: 100%; align-items: stretch; }
#menu a, #menu .grupo > span { color: #dfe6f5; padding: 0 .8rem; display: flex; align-items: center; font-weight: 500; font-size: .86rem; letter-spacing: .02em; white-space: nowrap; cursor: pointer; }
#menu a:hover, #menu .grupo:hover > span { background: #ffffff18; color: #fff; }
#menu a.activo { background: var(--sel); color: #fff; }
#menu .grupo { position: relative; display: flex; }
#menu .grupo .sub { display: none; position: absolute; top: 100%; left: 0; background: #fff; color: var(--texto); min-width: 14rem; box-shadow: 0 .5rem 1.5rem #0004; z-index: 20; padding: .3rem 0; }
#menu .grupo:hover .sub { display: block; }
#menu .sub a { color: var(--texto); padding: .45rem 1rem; font-weight: 400; }
#menu .sub a:hover { background: var(--boton); color: var(--marino); }
#menu .sub hr { border: 0; border-top: 1px solid var(--borde); margin: .3rem 0; }
#menu .sub small { display: block; padding: .3rem 1rem 0; color: var(--suave); font-size: .72rem; text-transform: uppercase; letter-spacing: .08em; }
.barra-datos { font-size: .75rem; display: grid; text-align: right; line-height: 1.3; }
.apagar { background: none; border: 0; color: #fff; font-size: 1.9rem; display: grid; place-items: center; padding: 0 .3rem; }
footer { background: var(--marino2); color: #fff; font-size: .7rem; display: flex; align-items: center; padding: 0 .9rem; gap: 1.5rem; }
footer #pie-ayuda { flex: 1; text-align: center; opacity: .85; }
main { overflow: auto; padding: .8rem 1rem; min-height: 0; }

/* ---------- componentes ---------- */
h1 { font-size: 1.15rem; font-weight: 500; color: var(--marino); margin: 0 0 .6rem; display: flex; align-items: center; gap: .8rem; }
h1 small { font-weight: 400; color: var(--suave); font-size: .8rem; }
h2 { font-size: .8rem; font-weight: 600; color: var(--marino2); text-transform: uppercase; letter-spacing: .06em; margin: 1rem 0 .4rem; }
.filtros { display: flex; flex-wrap: wrap; gap: .5rem .8rem; align-items: end; margin-bottom: .6rem; }
.filtros label { display: grid; gap: .15rem; font-size: .72rem; color: var(--suave); }
.filtros input, .filtros select { height: 2.1rem; border: 1px solid var(--borde); background: #fff; padding: 0 .5rem; border-radius: .2rem; min-width: 8rem; }
.filtros input.principal { min-width: 22rem; font-size: .95rem; }
.filtros input:focus, .filtros select:focus { outline: 2px solid var(--sel); outline-offset: -1px; }
.filtros .n { align-self: center; color: var(--suave); font-size: .78rem; margin-left: auto; }
.bt { height: 2.1rem; padding: 0 .9rem; border: 1px solid var(--boton-borde); background: var(--boton); color: var(--marino); border-radius: .2rem; font-weight: 500; font-size: .82rem; }
.bt:hover { background: #d8e8fb; }
.bt.primario { background: var(--sel); color: #fff; border-color: var(--sel); }
.bt.peligro { background: #fff1f0; border-color: #f3b1a8; color: #b3261e; }
.bt:disabled { opacity: .5; cursor: default; }
.panel { background: #fff; border: 1px solid var(--borde); border-radius: .25rem; }
.lista { background: #fff; border: 1px solid var(--borde); border-radius: .25rem; overflow: auto; max-height: calc(100vh - 12rem); }
table { border-collapse: collapse; width: 100%; }
th { background: var(--negro); color: #fff; font-weight: 500; font-size: .68rem; text-align: left; padding: .4rem .5rem; position: sticky; top: 0; white-space: nowrap; z-index: 1; }
th.d { text-align: right; }
td { padding: .3rem .5rem; border-bottom: 1px solid #eef0f3; font-size: .8rem; vertical-align: top; }
tbody tr { cursor: default; }
tbody tr:hover td { background: #f3f7fd; }
tbody tr.sel td { background: var(--sel); color: #fff; }
tbody tr.sel td a, tbody tr.sel .neg, tbody tr.sel .suave { color: #fff; }
tr.cerrado td { color: var(--suave); }
tr.anulado td { color: #b3261e; text-decoration: line-through; }
.vacio { padding: 2rem; text-align: center; color: var(--suave); }
.etiqueta { display: inline-block; padding: .05rem .45rem; border-radius: .7rem; font-size: .68rem; font-weight: 500; background: var(--gris); color: #333; white-space: nowrap; }
.etiqueta.abierto { background: #e3f3e8; color: #1b6b3a; }
.etiqueta.cerrado { background: var(--gris); color: #555; }
.etiqueta.anulado { background: #fde3e0; color: #b3261e; }
.etiqueta.vencida { background: #fff3cd; color: #8a5a00; }
.etiqueta.aviso { background: #fff3cd; color: #8a5a00; }

/* ficha */
.ficha { display: grid; grid-template-columns: minmax(0, 1fr) 20rem; gap: .8rem; align-items: start; }
.ficha.ancha { grid-template-columns: 1fr; }
.datos { background: #fff; border: 1px solid var(--borde); border-radius: .25rem; padding: .7rem .9rem; display: grid; grid-template-columns: repeat(auto-fill, minmax(14rem, 1fr)); gap: .35rem 1.2rem; }
.datos label { display: grid; font-size: .68rem; color: var(--suave); text-transform: uppercase; letter-spacing: .04em; }
.datos label b { font-weight: 500; color: var(--texto); font-size: .85rem; text-transform: none; letter-spacing: 0; white-space: pre-line; }
.datos label.doble { grid-column: span 2; }
.lateral { display: grid; gap: .8rem; }
.cifras { background: #fff; border: 1px solid var(--borde); border-radius: .25rem; padding: .6rem .9rem; display: grid; gap: .3rem; }
.cifras div { display: flex; justify-content: space-between; font-size: .82rem; }
.cifras div b { font-weight: 600; }
.cifras div.total { border-top: 1px solid var(--borde); padding-top: .3rem; margin-top: .2rem; font-size: .9rem; }
.pestanas { display: flex; gap: .15rem; border-bottom: 2px solid var(--marino); margin-top: .9rem; flex-wrap: wrap; }
.pestanas button { background: #dde2ea; border: 0; padding: .4rem .9rem; font-size: .8rem; font-weight: 500; color: #333; border-radius: .25rem .25rem 0 0; }
.pestanas button.activa { background: var(--marino); color: #fff; }
.pestanas button small { font-weight: 400; opacity: .8; margin-left: .3rem; }
.pest-cuerpo { background: #fff; border: 1px solid var(--borde); border-top: 0; max-height: 50vh; overflow: auto; }
.pest-cuerpo table th { position: sticky; }

/* mapa relacional */
.mapa { display: grid; grid-template-columns: 1fr auto 1fr; gap: .8rem; align-items: center; background: #fff; border: 1px solid var(--borde); border-radius: .25rem; padding: .7rem .9rem; }
.mapa .col { display: grid; gap: .35rem; }
.mapa .col h3 { margin: 0; font-size: .68rem; text-transform: uppercase; letter-spacing: .06em; color: var(--suave); font-weight: 600; }
.mapa .doc { display: grid; grid-template-columns: auto 1fr auto; gap: .2rem .6rem; align-items: center; border: 1px solid var(--borde); border-radius: .25rem; padding: .35rem .6rem; background: #f8f9fb; font-size: .8rem; }
.mapa .doc.este { background: var(--marino); color: #fff; border-color: var(--marino); }
.mapa .doc.este a, .mapa .doc.este .suave { color: #fff; }
.mapa .doc b { font-weight: 600; }
.mapa .doc.anulado { opacity: .7; text-decoration: line-through; }
.mapa .centro { display: flex; align-items: center; gap: .5rem; }
.mapa .flecha { font-size: 1.6rem; color: var(--gris3); }
.mapa .nada { color: var(--suave); font-size: .78rem; font-style: italic; }

/* inicio */
.tarjetas { display: grid; grid-template-columns: repeat(auto-fill, minmax(13rem, 1fr)); gap: .7rem; margin-bottom: 1rem; }
.tarjeta { background: #fff; border: 1px solid var(--borde); border-left: .3rem solid var(--marino2); border-radius: .25rem; padding: .6rem .9rem; display: grid; gap: .1rem; color: inherit; }
.tarjeta:hover { background: #f3f7fd; }
.tarjeta span { font-size: .72rem; color: var(--suave); text-transform: uppercase; letter-spacing: .04em; }
.tarjeta b { font-size: 1.5rem; font-weight: 600; color: var(--marino); line-height: 1.2; }
.tarjeta small { font-size: .78rem; color: var(--texto); }
.tarjeta.aviso { border-left-color: #e39a12; } .tarjeta.aviso b { color: #a35b00; }
.tarjeta.alerta { border-left-color: #d32f2f; } .tarjeta.alerta b { color: #b3261e; }
.tarjeta.ok { border-left-color: var(--verde); }

/* formularios */
.form { display: grid; grid-template-columns: repeat(auto-fill, minmax(14rem, 1fr)); gap: .6rem 1rem; background: #fff; border: 1px solid var(--borde); border-radius: .25rem; padding: .8rem 1rem; max-width: 60rem; }
.form label { display: grid; gap: .15rem; font-size: .72rem; color: var(--suave); }
.form input, .form select { height: 2.1rem; border: 1px solid var(--borde); padding: 0 .5rem; border-radius: .2rem; }
.form .marcas { display: flex; flex-wrap: wrap; gap: .4rem .9rem; grid-column: 1 / -1; }
.form .marcas label { flex-direction: row; display: flex; align-items: center; gap: .3rem; font-size: .82rem; color: var(--texto); }
.form .acciones { grid-column: 1 / -1; display: flex; gap: .6rem; }

#aviso { position: fixed; left: 50%; bottom: 2.4rem; transform: translateX(-50%); background: var(--marino); color: #fff; padding: .6rem 1.2rem; border-radius: .3rem; box-shadow: 0 .4rem 1.2rem #0005; z-index: 50; font-size: .85rem; max-width: 60vw; }
#aviso.error { background: #b3261e; }
#aviso.ok { background: #1b6b3a; }
.cargando { opacity: .5; pointer-events: none; }
kbd.en-primario, .bt.primario kbd { color: var(--marino); }
kbd { font-family: inherit; border: 1px solid var(--gris3); border-radius: .2rem; padding: 0 .3rem; font-size: .7rem; background: #fff; }

/* editor de documentos */
.cab-editor { max-width: none; grid-template-columns: repeat(auto-fill, minmax(11rem, 1fr)); }
.cab-editor label.ic { grid-column: span 2; }
.cab-editor label.doble { grid-column: span 2; }
.cab-editor label b { font-weight: 500; color: var(--texto); font-size: .85rem; min-height: 1.1rem; }
.buscador { position: relative; }
.buscador input { width: 100%; }
.sugerencias { position: absolute; left: 0; top: 100%; z-index: 30; background: #fff; border: 1px solid var(--borde); box-shadow: 0 .5rem 1.5rem #0004; min-width: 100%; width: max-content; max-width: 48rem; max-height: 18rem; overflow: auto; }
.sugerencias .sug { padding: .35rem .6rem; font-size: .8rem; cursor: pointer; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.sugerencias .sug.sel, .sugerencias .sug:hover { background: var(--sel); color: #fff; }
.sugerencias .sug.sel .suave, .sugerencias .sug:hover .suave { color: #dbe8f8; }
.acciones-editor { display: flex; gap: .5rem; margin: .6rem 0; flex-wrap: wrap; }
.lineas-editor { max-height: calc(100vh - 26rem); }
.lineas-editor td { padding: .15rem .3rem; }
.lineas-editor input, .lineas-editor select { height: 1.9rem; border: 1px solid transparent; background: #f7f8fa; padding: 0 .35rem; border-radius: .15rem; width: 100%; min-width: 4rem; }
.lineas-editor input[readonly] { background: transparent; }
.lineas-editor input:focus, .lineas-editor select:focus { outline: 2px solid var(--sel); outline-offset: -1px; background: #fff; }
.lineas-editor td:nth-child(2) { width: 11rem; } .lineas-editor td:nth-child(3) { min-width: 16rem; }
.lineas-editor td:nth-child(4), .lineas-editor td:nth-child(5), .lineas-editor td:nth-child(6) { width: 6.5rem; }
.lineas-editor td:nth-child(9) { width: 4.5rem; } .lineas-editor td:nth-child(10) { width: 12rem; }
.lineas-editor tr.nueva td { background: #fbfcfe; }
.quitar { background: none; border: 0; color: #b3261e; font-size: .9rem; }
.acciones.cifras { gap: .4rem; }
.acciones .bt { text-align: center; display: block; }
.aviso-corr { background: #fff3cd; color: #6b4600; padding: .4rem .8rem; border-radius: .25rem; margin: 0 0 .6rem; font-size: .82rem; }
#modal { position: fixed; inset: 0; background: #0006; z-index: 40; display: grid; place-items: center; }
.modal-caja { background: var(--fondo); border-radius: .3rem; padding: 1rem 1.2rem; width: min(70rem, 92vw); box-shadow: 0 1rem 3rem #0006; }
.modal-caja h2 { margin-top: 0; }
.cifras label.peq { display: grid; gap: .15rem; color: var(--suave); }
.cifras label.peq select, .cifras label.peq input { height: 1.9rem; border: 1px solid var(--borde); border-radius: .2rem; padding: 0 .4rem; width: 100%; }
.total-fila td { font-weight: 600; border-top: 2px solid var(--marino); background: #f3f5f9; }
.barra-datos { font-size: .7rem; max-width: 18rem; }
.filtros input[type=checkbox] { min-width: auto; height: auto; width: 1rem; }

/* ---------- ficha de interlocutor (centro de consulta) ---------- */
.cab-ficha { display: flex; align-items: center; justify-content: space-between; gap: 1rem; flex-wrap: wrap; margin-bottom: .6rem; }
.cab-ficha h1 { margin: 0; flex-wrap: wrap; }
.botonera { display: flex; gap: .4rem; flex-wrap: wrap; }
.botonera .bt { display: inline-flex; align-items: center; }
.kpis { display: grid; grid-template-columns: repeat(auto-fit, minmax(10.5rem, 1fr)); gap: .5rem; margin-bottom: .7rem; }
.kpi { background: #fff; border: 1px solid var(--borde); border-left: .25rem solid var(--marino2); border-radius: .25rem; padding: .45rem .7rem; display: grid; gap: .05rem; min-width: 0; }
.kpi span { font-size: .66rem; color: var(--suave); text-transform: uppercase; letter-spacing: .04em; white-space: nowrap; }
.kpi b { font-size: 1.15rem; font-weight: 600; color: var(--marino); line-height: 1.25; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.kpi small { font-size: .7rem; color: var(--suave); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.kpi.neg b, .kpi.alerta b { color: #b3261e; } .kpi.alerta { border-left-color: #d32f2f; } .kpi.aviso { border-left-color: #e39a12; } .kpi.ok { border-left-color: var(--verde); }
.barra-credito { display: inline-block; width: 100%; height: .3rem; background: var(--gris); border-radius: .2rem; margin: .15rem 0 .1rem; overflow: hidden; }
.barra-credito i { display: block; height: 100%; background: var(--marino2); } .kpi.alerta .barra-credito i { background: #d32f2f; } .kpi.aviso .barra-credito i { background: #e39a12; }
.ficha2 { display: grid; grid-template-columns: minmax(0, 3fr) minmax(0, 2fr); gap: .7rem; align-items: stretch; }
.ficha2 > .seccion { order: 1; } .ficha2 > .seccion.ancho { grid-column: 1 / -1; order: 2; }
.col-datos, .col-lateral { display: grid; gap: .7rem; min-width: 0; }
.seccion { background: #fff; border: 1px solid var(--borde); border-radius: .25rem; padding: .55rem .8rem .7rem; min-width: 0; }
.seccion h3 { margin: 0 0 .4rem; font-size: .72rem; font-weight: 600; color: var(--marino2); text-transform: uppercase; letter-spacing: .06em; display: flex; align-items: center; gap: .5rem; }
.seccion h3 small { text-transform: none; letter-spacing: 0; font-weight: 400; }
.seccion .con-scroll { max-height: 16rem; overflow: auto; }
.seccion h4 { margin: .8rem 0 .3rem; font-size: .72rem; font-weight: 600; color: var(--suave); text-transform: uppercase; letter-spacing: .05em; display: flex; align-items: center; gap: .5rem; }
.datos2 { display: grid; grid-template-columns: 1fr 1fr; gap: 0 1.5rem; }
.datos1 { display: grid; }
.fila { display: flex; justify-content: space-between; gap: .8rem; padding: .22rem 0; border-bottom: 1px dotted #e4e6eb; font-size: .8rem; min-width: 0; }
.fila:last-child { border-bottom: 0; }
.fila span { color: var(--suave); white-space: nowrap; }
.fila b { font-weight: 500; text-align: right; overflow-wrap: anywhere; }
.fila.total { border-top: 1px solid var(--borde); margin-top: .2rem; font-weight: 600; }
.observaciones { margin-top: .5rem; background: #fff8e1; border-left: .2rem solid #e39a12; padding: .4rem .6rem; font-size: .8rem; white-space: pre-line; border-radius: .2rem; }
.direcciones { display: grid; grid-template-columns: repeat(auto-fill, minmax(15rem, 1fr)); gap: .5rem; }
.dir { border: 1px solid var(--borde); border-radius: .25rem; padding: .4rem .6rem; font-size: .8rem; display: grid; gap: .1rem; background: #f8f9fb; }
.dir.defecto { border-color: var(--boton-borde); background: var(--boton); }
.dir span { font-size: .64rem; text-transform: uppercase; letter-spacing: .05em; color: var(--suave); } .dir b { font-weight: 500; }
.banco { padding: .3rem 0; border-bottom: 1px dotted #e4e6eb; display: grid; font-size: .8rem; } .banco:last-child { border-bottom: 0; }
.banco b { font-weight: 500; font-variant-numeric: tabular-nums; letter-spacing: .02em; }
.cond-fact { display: grid; gap: .35rem; }
.cond-fact label.peq { display: grid; gap: .15rem; color: var(--suave); }
.cond-fact select, .cond-fact input { height: 1.9rem; border: 1px solid var(--borde); border-radius: .2rem; padding: 0 .4rem; width: 100%; }
.resumen { padding: .6rem; display: grid; gap: .6rem; }
.tres { display: grid; grid-template-columns: repeat(auto-fit, minmax(16rem, 1fr)); gap: .6rem; }
.tres .panel h4 { margin: 0; padding: .4rem .6rem; font-size: .7rem; text-transform: uppercase; letter-spacing: .05em; color: var(--marino2); border-bottom: 1px solid var(--borde); }
tr.detalle td { background: #f6f8fc; padding: .3rem 1.5rem; }
tr.detalle table th { position: static; background: #dde2ea; color: #333; }
@media (max-width: 70rem) { .ficha2 { grid-template-columns: 1fr; } .datos2, .datos3 { grid-template-columns: 1fr; } }

/* ---------- formulario de interlocutor ---------- */
.form-ic { display: grid; gap: .6rem; }
.form-ic .g12 { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: .5rem .7rem; }
.form-ic label { display: grid; gap: .15rem; font-size: .7rem; color: var(--suave); min-width: 0; align-content: start; }
.form-ic input, .form-ic select, .form-ic textarea { height: 2rem; border: 1px solid var(--borde); padding: 0 .45rem; border-radius: .2rem; width: 100%; min-width: 0; background: #fff; }
.form-ic textarea { height: auto; padding: .3rem .45rem; resize: vertical; font-size: .8rem; }
.form-ic input:focus, .form-ic select:focus, .form-ic textarea:focus { outline: 2px solid var(--sel); outline-offset: -1px; }
.form-ic input[readonly] { background: #f3f4f6; color: var(--suave); }
.form-ic label.marca { display: flex; align-items: center; gap: .4rem; align-self: end; height: 2rem; font-size: .8rem; color: var(--texto); }
.form-ic label.marca input { width: 1rem; height: 1rem; }
.form-ic .fila-rep { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)) 4rem; gap: .4rem .7rem; padding: .35rem 0; border-top: 1px dotted #e4e6eb; align-items: end; }
.form-ic .fila-rep:first-child { border-top: 0; }
.form-ic .fila-rep .fin { grid-column: 13; display: flex; align-items: center; justify-content: flex-end; gap: .3rem; height: 2rem; font-size: .7rem; color: var(--suave); white-space: nowrap; }
.form-ic .fila-rep .fin label { display: flex; align-items: center; gap: .2rem; } .form-ic .fila-rep .fin input[type=radio] { width: .9rem; height: .9rem; }
.form-ic .nombre-banco { font-size: .68rem; }
.bt.mini { height: 1.5rem; padding: 0 .5rem; font-size: .7rem; text-transform: none; letter-spacing: 0; }
.form-ic .acciones { display: flex; gap: .6rem; }

/* botón atrás global */
.atras { float: left; margin: .1rem .7rem .4rem 0; height: 1.7rem; padding: 0 .6rem; border: 1px solid var(--borde); background: #fff; color: var(--marino2); border-radius: .2rem; font-size: .75rem; font-weight: 500; }
.atras:hover { background: var(--boton); }
.barra-tabla { display: flex; align-items: center; gap: .5rem; padding: .35rem .6rem; border-bottom: 1px solid var(--borde); background: #f8f9fb; position: sticky; top: 0; z-index: 2; flex-wrap: wrap; }
.barra-tabla .hueco { flex: 1; }
.barra-tabla label { display: flex; align-items: center; gap: .3rem; font-size: .72rem; color: var(--suave); }
.barra-tabla select, .barra-tabla input { height: 1.6rem; border: 1px solid var(--borde); border-radius: .2rem; padding: 0 .3rem; font-size: .75rem; }
.pest-cuerpo .barra-tabla + table th { top: 2.3rem; }

/* ficha compacta: tres columnas, direcciones en línea, condiciones en dos columnas */
.datos3 { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0 1.4rem; }
.datos2c { display: grid; grid-template-columns: 1fr 1fr; gap: 0 1.2rem; }
.datos2c .fila#cond-fact, .datos2c .fila.ancha, .datos2c .ancha-wrap { grid-column: 1 / -1; } .ancha-wrap { display: contents; } .datos2c .ancha-wrap .fila { grid-column: 1 / -1; }
.datos2c .fila b { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; overflow-wrap: normal; }
.datos2c .fila#cond-fact b { white-space: normal; }
.dir-lineas { display: grid; gap: .15rem; }
.dir-linea { display: grid; grid-template-columns: 4.5rem minmax(8rem, 16rem) 1fr; gap: .6rem; font-size: .8rem; padding: .18rem 0; border-bottom: 1px dotted #e4e6eb; align-items: baseline; }
.dir-linea:last-child { border-bottom: 0; }
.dir-linea span { font-size: .64rem; text-transform: uppercase; letter-spacing: .05em; color: var(--suave); } .dir-linea b { font-weight: 500; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .dir-linea i { font-style: normal; color: var(--texto); }
.grupo-bt { display: inline-flex; align-items: center; border: 1px dashed var(--boton-borde); border-radius: .25rem; padding: .15rem .3rem .15rem .5rem; gap: .25rem; }
.grupo-bt-t { font-size: .68rem; text-transform: uppercase; letter-spacing: .06em; color: var(--suave); margin-right: .2rem; }
.grupo-bt .bt { height: 1.8rem; padding: 0 .6rem; }
.kpi { position: relative; cursor: pointer; }
.kpi:hover { box-shadow: 0 .15rem .6rem #0002; }
.kpi.arrastrando { opacity: .4; } .kpi.destino { outline: 2px dashed var(--sel); outline-offset: -2px; }
.kpi-menu { position: absolute; right: .2rem; top: .1rem; border: 0; background: none; color: var(--gris3); font-size: .9rem; line-height: 1; padding: .1rem .3rem; border-radius: .2rem; }
.kpi:hover .kpi-menu { color: var(--marino2); } .kpi-menu:hover { background: var(--boton); }
.kpi-selector { position: absolute; left: .3rem; right: .3rem; top: 1.4rem; z-index: 6; height: 1.8rem; font-size: .78rem; border: 1px solid var(--sel); border-radius: .2rem; background: #fff; }
.origen { display: inline-block; font-size: .6rem; font-weight: 600; letter-spacing: .04em; padding: 0 .3rem; border-radius: .2rem; vertical-align: middle; }
.origen.ew { background: #dbe7f7; color: #1a2c6c; } .origen.sap { background: #e3f3e8; color: #1b6b3a; }
sup.origen { font-size: .55rem; padding: 0 .2rem; margin-left: .15rem; }
.cuadro td a { color: var(--marino2); } .cuadro tbody tr:hover td { background: #f3f7fd; }
.cu-detalle { border-top: 2px solid var(--marino); margin-top: .3rem; }
rect.barra { cursor: pointer; } rect.barra:hover { opacity: .8; }
.aviso-pruebas { background: #fff3cd; color: #6b4600; font-size: .72rem; padding: .15rem .6rem; text-align: center; border-bottom: 1px solid #f0d58a; }
.aviso-pruebas.real { background: #e6f0fb; color: #14265c; border-bottom-color: #b9d2ee; }
.ficha-ew .cab-ficha h1 small { color: #1a2c6c; }
.ficha-ew .aviso-ew { background: #dbe7f7; color: #1a2c6c; padding: .4rem .8rem; border-radius: .25rem; margin: 0 0 .6rem; font-size: .82rem; display: flex; gap: .6rem; align-items: center; flex-wrap: wrap; }

/* listados: chips de recientes/favoritos, filtro activo, acciones por fila, filas dudosas */
.chips { display: flex; flex-wrap: wrap; gap: .3rem; align-items: center; margin: 0 0 .5rem; }
.chips-t { font-size: .66rem; text-transform: uppercase; letter-spacing: .06em; color: var(--suave); margin: 0 .2rem 0 .3rem; }
.chip { display: inline-block; background: #fff; border: 1px solid var(--borde); border-radius: 1rem; padding: .1rem .6rem; font-size: .75rem; color: var(--texto); max-width: 16rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.chip:hover { border-color: var(--sel); color: var(--marino2); } .chip.fav { background: #fff8e1; border-color: #f0d58a; }
.activo-filtro { background: var(--marino2); color: #fff; border-radius: 1rem; padding: .15rem .3rem .15rem .7rem; font-size: .75rem; align-self: center; display: inline-flex; align-items: center; gap: .3rem; }
.activo-filtro button { border: 0; background: #fff3; color: #fff; border-radius: 50%; width: 1.2rem; height: 1.2rem; line-height: 1; }
.kpis + .filtros { margin-top: .2rem; }
.acc { white-space: nowrap; text-align: right; }
.acc a, .acc button { display: inline-block; height: 1.45rem; line-height: 1.45rem; padding: 0 .45rem; border: 1px solid var(--boton-borde); background: var(--boton); color: var(--marino); border-radius: .2rem; font-size: .68rem; margin-left: .15rem; visibility: hidden; }
tr:hover .acc a, tr:hover .acc button, tr.sel .acc a, tr.sel .acc button { visibility: visible; }
tr.sel .acc a, tr.sel .acc button { background: #fff; color: var(--marino); }
.senal { display: inline-block; font-size: .7rem; margin-right: .15rem; cursor: help; }
tr.dudoso td { color: var(--gris3); font-style: italic; }
.fav-bt { border: 0; background: none; font-size: 1.2rem; color: var(--gris3); cursor: pointer; line-height: 1; padding: 0 .2rem; } .fav-bt.on { color: #e39a12; }
.panel-aviso { background: #fff3cd; border-left: .3rem solid #e39a12; color: #5a3d00; padding: .45rem .8rem; border-radius: .25rem; margin-bottom: .6rem; font-size: .82rem; white-space: pre-line; }
.alm-lineas { display: grid; grid-template-columns: repeat(auto-fill, minmax(16rem, 1fr)); gap: .4rem; }
.alm { border: 1px solid var(--borde); border-radius: .25rem; padding: .35rem .6rem; display: grid; grid-template-columns: 1fr auto; gap: 0 .6rem; font-size: .8rem; background: #f8f9fb; }
.alm.defecto { border-color: var(--boton-borde); background: var(--boton); }
.alm span { color: var(--suave); font-size: .72rem; } .alm b { font-size: 1rem; grid-row: 1 / 3; align-self: center; } .alm i { font-style: normal; font-size: .7rem; color: var(--suave); }
.matteria-caja { grid-column: 1 / -1; }
/* panel de Matteria en la ficha de artículo: compacto */
#matteria { display: grid; grid-template-columns: repeat(auto-fill, minmax(22rem, 1fr)); gap: .15rem .8rem; align-items: center; }
#matteria > div:first-child, #matteria > div.peq:nth-child(2), #matteria > div:has(> input), #matteria > button { grid-column: 1 / -1; }
#matteria label.peq { display: flex; align-items: center; gap: .4rem; } #matteria label.peq input[type=radio] { width: auto; height: auto; }
#matteria > div:has(> input) { display: flex; gap: .4rem; } #matteria > div:has(> input) input { flex: 1; }
/* Ficha de documento v2: desglose de IVA + totales bajo las líneas; cabecera del editor en rejilla fija; artículos habituales. */
.resumen-doc { display: grid; grid-template-columns: minmax(0, 1fr) 22rem; gap: .8rem; padding: .6rem .6rem .7rem; border-top: 1px solid var(--borde); background: #fafbfc; align-items: start; }
.resumen-doc table.iva { width: auto; min-width: 22rem; font-size: .78rem; } .resumen-doc table.iva th { background: #eef0f4; color: var(--suave); font-weight: 600; } .resumen-doc table.iva td, .resumen-doc table.iva th { padding: .2rem .6rem; }
.resumen-doc .cifras { padding: .4rem .7rem; }
.cab-ficha h1 .etiqueta { vertical-align: middle; }
.cab-editor { grid-template-columns: repeat(12, minmax(0, 1fr)); gap: .4rem .7rem; }
.cab-editor label { grid-column: span 2; min-width: 0; } .cab-editor label.ic { grid-column: span 4; } .cab-editor label.doble { grid-column: span 4; } .cab-editor label.triple { grid-column: span 3; } .cab-editor label.simple { grid-column: span 1; }
.cab-editor label.ic b { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.editor .lateral .cifras .fila { font-size: .78rem; }
.habituales { background: #fff; border: 1px solid var(--borde); border-radius: .25rem; margin-top: .6rem; }
.habituales .barra-tabla { position: static; }
.habituales table { font-size: .78rem; } .habituales td { padding: .18rem .5rem; } .habituales tbody tr { cursor: pointer; } .habituales tbody tr:hover td { background: #eef3fb; }
.habituales .cuerpo { max-height: 15rem; overflow: auto; }
.habituales .añadir { font-size: .68rem; color: var(--marino2); white-space: nowrap; }
.editor .ficha { grid-template-columns: minmax(0, 1fr) 19rem; }
.lista td:has(> .senal) { white-space: nowrap; }
.lista td .peq.nota, .lista .nota-corta { display: inline-block; max-width: 22rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; vertical-align: bottom; }
.datos2c .fila.ancha b { white-space: normal; }
.panel-aviso.recortado { max-height: 2.9rem; overflow: hidden; text-overflow: ellipsis; cursor: pointer; position: relative; }
.panel-aviso.recortado::after { content: '… más'; position: absolute; right: .6rem; bottom: .2rem; background: #fff3cd; padding-left: .5rem; font-size: .7rem; color: #8a5a00; }
.lista .acc a.peligro { color: #b3261e; border-color: #e7b8b5; background: #fff5f5; }
/* Inicio: flujos de trabajo en baldosas (estilo Fiori) */
.flujos { display: grid; gap: .55rem; margin-bottom: .8rem; }
.flujo { background: #fff; border: 1px solid var(--borde); border-radius: .3rem; padding: .45rem .7rem .55rem; }
.flujo h3 { margin: 0 0 .35rem; font-size: .7rem; font-weight: 600; color: var(--marino2); text-transform: uppercase; letter-spacing: .07em; }
.flujo .pasos { display: flex; align-items: stretch; gap: .25rem; overflow-x: auto; }
.flujo .flecha { align-self: center; color: var(--gris3); font-size: 1.4rem; line-height: 1; padding: 0 .1rem; }
.baldosa { position: relative; flex: 1 1 0; min-width: 9rem; display: grid; gap: .05rem; align-content: start; background: #f6f8fb; border: 1px solid var(--borde); border-top: .22rem solid var(--marino2); border-radius: .3rem; padding: .45rem .65rem .5rem; color: inherit; text-decoration: none; transition: box-shadow .12s, transform .12s; }
.baldosa:hover { box-shadow: 0 .2rem .7rem #0002; transform: translateY(-1px); background: #fff; text-decoration: none; }
.baldosa .bd-t { font-size: .68rem; color: var(--suave); text-transform: uppercase; letter-spacing: .04em; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; padding-right: 1.2rem; }
.baldosa b { font-size: 1.25rem; font-weight: 600; color: var(--marino); line-height: 1.2; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; min-height: 1.5rem; }
.baldosa small { font-size: .7rem; color: var(--suave); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.baldosa.aviso { border-top-color: #e39a12; } .baldosa.alerta { border-top-color: #d32f2f; } .baldosa.alerta b { color: #b3261e; } .baldosa.ok { border-top-color: var(--verde); }
.baldosa .bd-mas { position: absolute; right: .35rem; top: .3rem; width: 1.25rem; height: 1.25rem; border-radius: 50%; background: var(--marino2); color: #fff; font-size: .95rem; line-height: 1.2rem; text-align: center; opacity: .55; }
.baldosa:hover .bd-mas { opacity: 1; } .baldosa .bd-mas:hover { background: var(--marino); }
/* Inicio: organigrama de procesos por módulo */
.organigrama { background: #fff; border: 1px solid var(--borde); border-radius: .3rem; margin-bottom: .8rem; }
.org-modulos { display: flex; gap: .2rem; align-items: center; padding: .35rem .6rem; border-bottom: 1px solid var(--borde); background: #f6f8fb; border-radius: .3rem .3rem 0 0; flex-wrap: wrap; }
.org-modulos button { border: 0; background: none; padding: .35rem .8rem; border-radius: .25rem; font: inherit; font-size: .8rem; font-weight: 600; color: var(--marino2); cursor: pointer; }
.org-modulos button:hover { background: #e9eef7; } .org-modulos button.activa { background: var(--marino); color: #fff; }
.org-lienzo { position: relative; padding: .9rem 1rem 1rem; min-height: 9rem; }
.org-flechas { position: absolute; inset: 0; width: 100%; height: 100%; pointer-events: none; }
.org-rejilla { display: grid; gap: 1.1rem 2.4rem; position: relative; }
.nodo { position: relative; display: grid; grid-template-columns: auto 1fr; grid-template-rows: auto auto auto; column-gap: .5rem; align-items: center; background: #f6f8fb; border: 1px solid var(--borde); border-left: .25rem solid var(--marino2); border-radius: .35rem; padding: .45rem .6rem .5rem; color: inherit; text-decoration: none; min-width: 0; transition: box-shadow .12s, transform .12s; z-index: 1; }
.nodo:hover { box-shadow: 0 .25rem .8rem #0002; transform: translateY(-1px); background: #fff; text-decoration: none; }
.nodo .icono { grid-row: 1 / 4; font-size: 1.5rem; line-height: 1; width: 1.9rem; text-align: center; filter: grayscale(.2); }
.nodo .nd-t { font-size: .68rem; color: var(--suave); text-transform: uppercase; letter-spacing: .04em; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; padding-right: 1.1rem; }
.nodo b { font-size: 1.2rem; font-weight: 600; color: var(--marino); line-height: 1.15; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; min-height: 1.35rem; }
.nodo small { font-size: .68rem; color: var(--suave); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.nodo.peq { padding: .3rem .5rem .35rem; background: #fbfcfe; } .nodo.peq .icono { font-size: 1.15rem; width: 1.5rem; } .nodo.peq b { font-size: .95rem; min-height: 1.1rem; }
.nodo.aviso { border-left-color: #e39a12; } .nodo.alerta { border-left-color: #d32f2f; } .nodo.alerta b { color: #b3261e; } .nodo.ok { border-left-color: var(--verde); } .nodo.gris { opacity: .55; border-left-color: var(--gris3); }
.nodo .bd-mas { position: absolute; right: .3rem; top: .25rem; width: 1.2rem; height: 1.2rem; border-radius: 50%; background: var(--marino2); color: #fff; font-size: .9rem; line-height: 1.15rem; text-align: center; opacity: .55; }
.nodo:hover .bd-mas { opacity: 1; } .nodo .bd-mas:hover { background: var(--marino); }

/* Ficha de documento: trazabilidad compacta en una línea (09-11-2026) */
.cadena { display: flex; flex-wrap: wrap; align-items: center; gap: .3rem; margin: -.2rem 0 .55rem; font-size: .76rem; }
.cadena-t { font-size: .64rem; text-transform: uppercase; letter-spacing: .07em; color: var(--suave); font-weight: 600; margin-right: .2rem; }
.cadena .eslabon { display: inline-flex; gap: .3rem; align-items: baseline; border: 1px solid var(--borde); border-radius: 1rem; padding: .08rem .55rem; background: #f6f8fb; white-space: nowrap; }
.cadena .eslabon b { font-weight: 600; color: var(--marino2); }
.cadena .eslabon.este { background: var(--marino); border-color: var(--marino); color: #fff; } .cadena .eslabon.este b { color: #fff; }
.cadena .eslabon.anulado { opacity: .6; text-decoration: line-through; }
.cadena .flecha { color: var(--gris3); }
.cadena .sep { width: 1px; height: 1rem; background: var(--borde); margin: 0 .3rem; }
.cadena .cadena-t { border: 0; background: none; padding: 0; cursor: pointer; font-family: inherit; }
.cadena .cadena-t:hover { color: var(--marino2); }
.cadena button.eslabon.mas { cursor: pointer; font: inherit; color: var(--marino2); background: #fff; border-style: dashed; }
/* Mapa completo de la cadena documental */
.modal-caja.mapa-caja { width: 96vw; max-width: none; max-height: 92vh; display: flex; flex-direction: column; }
.mapa-cab { display: flex; align-items: baseline; gap: 1rem; flex-wrap: wrap; margin-bottom: .6rem; } .mapa-cab h2 { margin: 0; } .mapa-cab .bt { margin-left: auto; }
.mapa-lienzo { position: relative; overflow: auto; flex: 1; background: #fff; border: 1px solid var(--borde); border-radius: .3rem; padding: .8rem 1rem 1rem; }
.mapa-flechas { position: absolute; left: 0; top: 0; pointer-events: none; }
.mapa-rejilla { display: grid; gap: .6rem 3rem; position: relative; align-items: start; }
.carril-t { font-size: .66rem; text-transform: uppercase; letter-spacing: .08em; color: var(--suave); font-weight: 600; border-bottom: 1px dashed var(--borde); padding-bottom: .15rem; margin-top: .3rem; }
.nodo-doc { position: relative; z-index: 1; display: grid; gap: .05rem; background: #f6f8fb; border: 1px solid var(--borde); border-left: .25rem solid var(--marino2); border-radius: .3rem; padding: .35rem .55rem; color: inherit; text-decoration: none; font-size: .78rem; }
.nodo-doc:hover { background: #fff; box-shadow: 0 .2rem .6rem #0002; text-decoration: none; }
.nodo-doc b { font-weight: 600; color: var(--marino); } .nodo-doc small { color: var(--suave); font-size: .7rem; } .nodo-doc small.ic { color: #8a5a00; }
.nodo-doc.este { background: var(--marino); border-color: var(--marino); } .nodo-doc.este b, .nodo-doc.este small { color: #fff; }
.nodo-doc.anulado { opacity: .6; } .nodo-doc.anulado b { text-decoration: line-through; }
.nodo-doc.oculto { border-left-color: var(--gris3); background: #f1f1f1; }

/* Editor: ficha lateral del artículo (09-11-2026) */
.ficha-art { gap: .25rem; }
.ficha-art .fa-cab { display: flex; justify-content: space-between; align-items: baseline; }
.ficha-art .fa-cab b { color: var(--marino); font-size: .9rem; }
.ficha-art .fa-nombre { display: block; font-weight: 600; font-size: .82rem; line-height: 1.25; }
.ficha-art .fa-img { display: block; max-width: 100%; max-height: 10rem; object-fit: contain; margin: .2rem auto; background: #fff; border: 1px solid var(--borde); border-radius: .25rem; }
.ficha-art .fa-meta { display: block; }
.ficha-art .fa-aviso { display: block; background: #fff3cd; color: #8a5a00; font-size: .72rem; padding: .25rem .4rem; border-radius: .2rem; }
.ficha-art .fa-hist { display: block; margin-top: .25rem; border-top: 1px solid var(--borde); padding-top: .3rem; }
.ficha-art .fa-t { display: block; font-size: .64rem; text-transform: uppercase; letter-spacing: .05em; color: var(--suave); margin-bottom: .15rem; }
.ficha-art .fa-hist table { width: 100%; border-collapse: collapse; font-size: .72rem; }
.ficha-art .fa-hist td { padding: .1rem .2rem; border-bottom: 1px solid #eef1f6; }
.ficha-art .fa-aviso[hidden] { display: none; }

/* Revisión de tarifas (de b1-socios, 09-11-2026) */
.seg { display: inline-flex; border: 1px solid var(--borde); border-radius: .25rem; overflow: hidden; }
.seg button { border: 0; border-right: 1px solid var(--borde); background: #fff; padding: 0 .7rem; font: inherit; font-size: .78rem; cursor: pointer; color: var(--marino2); }
.seg button:last-child { border-right: 0; } .seg button.on { background: var(--marino); color: #fff; font-weight: 600; }
.lista.tarifas { max-height: 64vh; }
.lista.tarifas table { font-size: .74rem; }
.lista.tarifas th { position: sticky; top: 0; z-index: 2; white-space: nowrap; padding: .3rem .35rem; }
.lista.tarifas th.ord { cursor: pointer; text-decoration: underline dotted; } .lista.tarifas th.ord.activo { text-decoration: underline; }
.lista.tarifas td { padding: .12rem .3rem; white-space: nowrap; }
.lista.tarifas td.desc { white-space: normal; min-width: 14rem; max-width: 20rem; line-height: 1.15; }
.lista.tarifas td.nw { white-space: nowrap; } .lista.tarifas td.sep, .lista.tarifas th.sep { border-left: 2px solid var(--borde); }
.lista.tarifas input.cel { font: inherit; font-size: .74rem; padding: .1rem .25rem; text-align: right; border: 1px solid var(--borde); border-radius: .2rem; background: #fff; height: 1.45rem; }
.lista.tarifas input.cel.txt { text-align: left; } .lista.tarifas input.cel[readonly] { background: transparent; border-color: transparent; }
.lista.tarifas input.cel:focus { outline: 2px solid var(--marino2); outline-offset: -1px; }
.lista.tarifas tr.tocada td { background: #fff8e1; } .lista.tarifas tr.malt td:nth-child(-n+3) { color: #b3261e; }
.lista.tarifas tr.marcada td:first-child { box-shadow: inset 3px 0 0 var(--marino2); }
.lista.tarifas .ok { color: var(--verde, #1b6b3a); font-weight: 600; }
button.enlace { border: 0; background: none; padding: 0 .15rem; color: var(--marino2); cursor: pointer; font: inherit; font-size: .72rem; }
button.enlace:hover { text-decoration: underline; }
/* tarifas: casilla, artículo y descripción fijos al desplazarse en horizontal */
.lista.tarifas td:nth-child(-n+3), .lista.tarifas th:nth-child(-n+3) { position: sticky; z-index: 1; background: #fff; }
.lista.tarifas th:nth-child(-n+3) { z-index: 3; background: var(--negro); }
.lista.tarifas td:nth-child(1), .lista.tarifas th:nth-child(1) { left: 0; width: 1.7rem; min-width: 1.7rem; }
.lista.tarifas td:nth-child(2), .lista.tarifas th:nth-child(2) { left: 1.7rem; width: 6.4rem; min-width: 6.4rem; }
.lista.tarifas td:nth-child(3), .lista.tarifas th:nth-child(3) { left: 8.1rem; box-shadow: 2px 0 0 var(--borde); }
.lista.tarifas td.desc { min-width: 12rem; max-width: 15rem; }
.lista.tarifas tr.tocada td:nth-child(-n+3) { background: #fff8e1; }

/* Documentos con Matteria (09-11-2026) */
.dm-modo { background: #fff3cd; border: 1px solid #f0d58a; color: #6b4600; border-radius: .3rem; padding: .45rem .8rem; margin: -.2rem 0 .6rem; font-size: .82rem; }
.kpi.ok { border-left-color: var(--verde); } .kpi.aviso { border-left-color: #e39a12; }
.dm-chip { display: inline-block; font-size: .68rem; font-weight: 600; padding: .1rem .5rem; border-radius: 1rem; background: var(--gris); color: #555; white-space: nowrap; }
.dm-chip.ok { background: #e3f3e8; color: #1b6b3a; } .dm-chip.mal { background: #fde3e0; color: #b3261e; } .dm-chip.aviso { background: #fff3cd; color: #8a5a00; } .dm-chip.gris { background: #eef1f6; color: #556; }
.dm-filtros { display: flex; flex-wrap: wrap; gap: .3rem; align-items: center; margin: .6rem 0 .4rem; }
.dm-f { border: 1px solid var(--borde); background: #fff; border-radius: 1rem; padding: .2rem .7rem; font: inherit; font-size: .76rem; cursor: pointer; color: var(--marino2); }
.dm-f small { color: var(--suave); margin-left: .2rem; } .dm-f.activo { background: var(--marino); color: #fff; border-color: var(--marino); } .dm-f.activo small { color: #cfd8ee; }
.dm .hueco { flex: 1; }
.dm-fila { cursor: pointer; } .dm-fila:hover td { background: #f3f6fb; }
.dm-ico { font-size: 1rem; text-align: center; width: 1.8rem; }
.dm-enlace { background: #e6f0fb; color: var(--marino); border-radius: .25rem; padding: .05rem .35rem; font-size: .72rem; white-space: nowrap; }
.dm-factor { background: #fff3cd; color: #8a5a00; border-radius: .2rem; padding: 0 .3rem; font-size: .68rem; font-weight: 600; }
.modal-caja.dm-det { width: min(96rem, 96vw); max-height: 92vh; overflow: auto; }
.dm-det-cab { display: flex; align-items: center; gap: .8rem; } .dm-det-cab h2 { margin: 0; }
.dm-inc { margin: .5rem 0; background: #fff8e8; border: 1px solid #f0d58a; border-radius: .3rem; padding: .4rem .7rem; font-size: .8rem; } .dm-inc .grave { color: #8a2a1e; }
.dm-ok { margin: .5rem 0; background: #e3f3e8; border-radius: .3rem; padding: .4rem .7rem; font-size: .82rem; }
.dm-dos { display: grid; grid-template-columns: minmax(0, 1fr) 2rem minmax(0, 1.4fr); gap: .5rem; align-items: start; margin-top: .6rem; }
.dm-dos h3 { font-size: .74rem; text-transform: uppercase; letter-spacing: .06em; color: var(--marino2); margin: 0 0 .35rem; }
.dm-flecha { align-self: center; font-size: 1.8rem; color: var(--gris3); text-align: center; }
.dm-t { width: 100%; border-collapse: collapse; font-size: .78rem; background: #fff; }
.dm-t th { text-align: left; font-size: .66rem; text-transform: uppercase; letter-spacing: .04em; color: var(--suave); border-bottom: 1px solid var(--borde); padding: .3rem .4rem; }
.dm-t td { border-bottom: 1px solid #eef1f6; padding: .3rem .4rem; vertical-align: top; } .dm-t .d { text-align: right; white-space: nowrap; }
.dm-t tr.dm-aviso td { background: #fffaf0; }
.dm-tot { display: flex; flex-wrap: wrap; gap: .4rem 1.2rem; margin-top: .45rem; font-size: .8rem; color: var(--suave); } .dm-tot b { color: var(--marino); }
.dm-json { background: #0f1730; color: #d6e2ff; font-size: .72rem; padding: .7rem .9rem; border-radius: .3rem; max-height: 40vh; overflow: auto; white-space: pre; }
.dm-res { display: grid; grid-template-columns: repeat(auto-fit, minmax(14rem, 1fr)); gap: .5rem; margin-top: .6rem; }
.dm-rt { text-align: left; border: 1px solid var(--borde); background: #fff; border-radius: .3rem; padding: .5rem .7rem; display: grid; gap: .25rem; cursor: pointer; font: inherit; }
.dm-rt.activo { border-color: var(--marino); box-shadow: 0 0 0 1px var(--marino) inset; }
.dm-rt-t { font-size: .68rem; text-transform: uppercase; letter-spacing: .05em; color: var(--suave); } .dm-rt b { font-size: 1.3rem; color: var(--marino); }
.dm-barra { display: flex; height: .55rem; border-radius: .3rem; overflow: hidden; background: #eef1f6; }
.dm-b.cuadra { background: #3aa365; } .dm-b.portes { background: #9cc9ad; } .dm-b.difiere { background: #e3a33a; } .dm-b.falta { background: #d9534f; } .dm-b.sobra { background: #9aa6bf; }
.dm-flechita { color: var(--gris3); }
.dm-ped { background: #fff; border: 1px solid var(--borde); border-left: .25rem solid #e3a33a; border-radius: .3rem; padding: .5rem .7rem; margin: .5rem 0; }
.dm-ped.enviado { border-left-color: #3aa365; }
.dm-ped-cab { display: flex; align-items: center; gap: .7rem; margin-bottom: .3rem; flex-wrap: wrap; }
.dm-cost { display: grid; gap: .4rem; } .dm-cost-i { display: grid; grid-template-columns: 16rem 1fr; gap: 1rem; background: #fff; border: 1px solid var(--borde); border-radius: .3rem; padding: .5rem .8rem; font-size: .84rem; }
.dm-cost-i span { color: var(--suave); font-size: .74rem; text-transform: uppercase; letter-spacing: .04em; } .dm-cost-i b { font-weight: 500; }
@media (max-width: 900px) { .dm-dos { grid-template-columns: 1fr; } .dm-flecha { display: none; } .dm-cost-i { grid-template-columns: 1fr; } }
