:root{
  --suelo:#F4F5F7; --sup:#FFFFFF; --tinta:#18212C; --tinta2:#3B4654; --muted:#556170; --linea:#DDE2E8; --linea2:#EDF0F3;
  --acc:#1F4FB5; --acc-h:#1a449c; --acc-bg:#E8EEFA;
  --ok:#18643C; --ok-bg:#E6F3EB; --warn:#7F4300; --warn-bg:#FFF0D9; --foto:#5A3A9E; --foto-bg:#EFEAFA; --err:#9E2119; --err-bg:#FBE7E5;
  --mono:'IBM Plex Mono',ui-monospace,Consolas,monospace;
}
*{box-sizing:border-box}
body{margin:0;background:var(--suelo);color:var(--tinta);font-family:'IBM Plex Sans',system-ui,'Segoe UI',sans-serif;font-size:14px}
button,input,select,textarea{font:inherit;color:inherit}
a{color:var(--acc)}
[hidden]{display:none!important}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.app{min-height:100vh;display:flex;flex-direction:column}
.top{display:flex;flex-wrap:wrap;align-items:center;gap:10px 22px;padding:10px 24px;background:var(--sup);border-bottom:1px solid var(--linea);position:sticky;top:0;z-index:5}
.marca{display:flex;align-items:center;gap:10px;font-weight:600;font-size:15px}
.marca-ico{width:28px;height:28px;border-radius:6px;background:var(--tinta);color:#fff;display:flex;align-items:center;justify-content:center}
.cliente{display:flex;flex-direction:column;gap:2px;line-height:1.2}
.cliente select{border:1px solid var(--linea);border-radius:6px;padding:4px 8px;background:#fff;font-weight:500;max-width:320px}
.cliente small{color:var(--muted);font-size:12px}
.nav{display:flex;gap:4px;margin-left:auto;flex-wrap:wrap}
.tab{border:1px solid transparent;padding:0 14px;min-height:38px;border-radius:6px;color:var(--tinta2);font-weight:500;display:flex;align-items:center;text-decoration:none}
.tab:hover{background:#EEF1F5}
.tab.on{background:var(--acc-bg);color:var(--acc);border-color:#C9D7F2}
.progreso{display:flex;align-items:center;gap:10px;font-size:13px;color:var(--tinta2)}
.barra{width:120px;height:6px;border-radius:3px;background:#E3E7EC;overflow:hidden}
.barra span{display:block;height:100%;background:var(--acc);width:0}
.main{flex:1;padding:20px 24px 40px;display:flex;flex-direction:column;gap:16px;min-width:0}
.h1{font-size:20px;font-weight:600;margin:0}
.h2{font-size:16px;font-weight:600;margin:0}
.sub{color:var(--muted);font-size:13px;margin:2px 0 0}
.fila-tit{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:12px}
.barra-herr{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.chips{display:flex;flex-wrap:wrap;gap:6px}
.chip{border:1px solid #D3D9E0;background:#fff;border-radius:999px;padding:0 13px;min-height:34px;cursor:pointer;font-size:13px;display:flex;align-items:center;gap:6px}
.chip.on{border-color:var(--acc);background:var(--acc);color:#fff}
.chip b{font-weight:600}
.buscar{border:1px solid #C6CED8;border-radius:6px;padding:0 10px;min-height:36px;min-width:220px;background:#fff}
.btn{border:1px solid #C6CED8;background:#fff;border-radius:6px;padding:0 14px;min-height:38px;cursor:pointer;font-weight:500;display:inline-flex;align-items:center;gap:8px;white-space:nowrap;text-decoration:none;color:var(--tinta)}
.btn:hover{background:#F2F4F7}
.btn:disabled{opacity:.45;cursor:default}
.btn.pri{background:var(--acc);border-color:var(--acc);color:#fff}
.btn.pri:hover{background:var(--acc-h)}
.btn.peq{min-height:30px;padding:0 10px;font-size:13px}
.tabla{background:#fff;border:1px solid var(--linea);border-radius:8px;overflow-x:auto}
.grid{display:grid;grid-template-columns:118px 120px minmax(220px,1.6fr) 92px 130px 92px 104px minmax(170px,1fr) 100px 170px;align-items:center;min-width:1320px}
.cab{font-size:12px;color:var(--muted);font-weight:500;border-bottom:1px solid var(--linea);background:#FAFBFC;position:sticky;top:0}
.cab>span{padding:9px 12px}
.fila{border-bottom:1px solid var(--linea2)}
.fila:last-child{border-bottom:none}
.fila>span{padding:9px 12px;min-width:0}
.fila:hover{background:#FAFBFD}
.num{font-family:var(--mono);font-size:13px;text-align:right;font-variant-numeric:tabular-nums}
.mono{font-family:var(--mono);font-size:13px}
.muted{color:var(--muted);font-size:12px}
.prov{font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:block}
.motivo{display:block;color:var(--muted);font-size:12px;margin-top:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.badge{display:inline-flex;align-items:center;gap:5px;font-size:12px;font-weight:600;padding:3px 8px 3px 6px;border-radius:999px;white-space:nowrap}
.b-error,.b-fallo{background:var(--err-bg);color:var(--err)}
.b-warn{background:var(--warn-bg);color:var(--warn)}
.b-foto{background:var(--foto-bg);color:var(--foto)}
.b-ok{background:var(--ok-bg);color:var(--ok)}
.b-verificado{background:var(--acc-bg);color:var(--acc)}
.b-copia,.b-pendiente,.b-procesando{background:#EEEFF2;color:var(--tinta2)}
.conf{display:flex;align-items:center;gap:8px;font-family:var(--mono);font-size:12px}
.conf i{display:block;width:44px;height:5px;border-radius:3px;background:#E3E7EC;overflow:hidden}
.conf i span{display:block;height:100%}
.acc{display:flex;gap:6px;justify-content:flex-end}
.mas{display:flex;justify-content:center;padding:12px}
.vacio{color:var(--muted);font-size:13px;padding:14px}
/* revisión */
.rev-cab{display:flex;flex-wrap:wrap;align-items:center;gap:10px 14px}
.rev-cab .meta{color:var(--muted);font-size:13px}
.ml{margin-left:auto;display:flex;gap:6px;align-items:center}
.rev{display:flex;flex-wrap:wrap;gap:16px;align-items:flex-start}
.visor{flex:999 1 560px;min-width:0;background:#fff;border:1px solid var(--linea);border-radius:8px;display:flex;flex-direction:column}
.visor-bar{display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding:8px 10px;border-bottom:1px solid var(--linea)}
.seg{display:inline-flex;border:1px solid #C6CED8;border-radius:6px;overflow:hidden}
.seg button{border:none;background:#fff;padding:0 12px;min-height:32px;cursor:pointer;font-size:13px}
.seg button+button{border-left:1px solid #C6CED8}
.seg button.on{background:var(--tinta);color:#fff}
.seg button:disabled{color:#9AA3AE;cursor:default}
.scroll{overflow:auto;height:calc(100vh - 205px);min-height:420px;background:#E9ECF0;padding:16px}
.lienzo{position:relative;margin:0 auto;box-shadow:0 1px 3px rgba(20,30,45,.18);background:#fff}
.lienzo img{display:block;width:100%;height:auto}
.giro{position:absolute;left:50%;top:50%;transform-origin:center center}
.seg button svg{display:block}
.bx{position:absolute;border:2px solid transparent;border-radius:3px;background:transparent;padding:0;cursor:pointer}
.bx-ok{border-color:rgba(31,79,181,.45)}
.bx-warn{border-color:#D07A00;background:rgba(255,170,40,.14)}
.bx-error{border-color:#C0281E;background:rgba(220,50,40,.14)}
.bx-sel{border-color:var(--acc);border-width:3px;background:rgba(31,79,181,.12);box-shadow:0 0 0 3px rgba(31,79,181,.25)}
.nota-visor{font-size:12px;color:var(--muted)}
.xml-vista{background:#fff;padding:20px;max-width:760px;margin:0 auto;border-radius:6px}
.xml-vista table{width:100%;border-collapse:collapse;font-size:13px}
.xml-vista td{padding:6px 8px;border-bottom:1px solid var(--linea2);vertical-align:top}
.xml-vista td:first-child{color:var(--muted);width:40%}
.panel{flex:1 1 400px;max-width:100%;background:#fff;border:1px solid var(--linea);border-radius:8px;display:flex;flex-direction:column}
.panel-cuerpo{padding:14px 16px;display:flex;flex-direction:column;gap:16px;overflow:auto;max-height:calc(100vh - 250px)}
.avisos{display:flex;flex-direction:column;gap:6px}
.aviso{display:flex;gap:8px;align-items:flex-start;padding:8px 10px;border-radius:6px;font-size:13px;line-height:1.35}
.aviso svg{flex:none;margin-top:1px}
.aviso.error{background:var(--err-bg);color:#7E1A13}
.aviso.warn{background:var(--warn-bg);color:#663600}
.aviso.foto{background:var(--foto-bg);color:var(--foto)}
.aviso.info{background:#EEF1F5;color:var(--tinta2)}
.grupo{display:flex;flex-direction:column;gap:8px}
.grupo-tit{font-size:12px;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.04em;margin:0}
.campo{display:grid;grid-template-columns:1fr auto;gap:4px 8px;padding:8px 10px;border:1px solid #E3E7EC;border-radius:6px}
.campo.sel{border-color:var(--acc);box-shadow:0 0 0 2px rgba(31,79,181,.18)}
.campo.c-warn{background:#FFFAF1;border-color:#F0C98A}
.campo.c-error{background:#FFF6F5;border-color:#EBA59F}
.campo label{font-size:12px;color:var(--tinta2);font-weight:500}
.campo .pc{font-family:var(--mono);font-size:12px;color:var(--muted);align-self:center}
.campo input,.campo select{grid-column:1/-1;width:100%;border:1px solid #C6CED8;border-radius:5px;padding:7px 9px;min-height:38px;background:#fff}
.campo input:focus,.campo select:focus{outline:2px solid var(--acc);outline-offset:0;border-color:var(--acc)}
.campo input.n{font-family:var(--mono);text-align:right}
.campo .razon{grid-column:1/-1;font-size:12px;color:var(--muted);line-height:1.35}
.campo.c-warn .razon{color:#704000}
.campo.c-error .razon{color:#8E1F17}
.campo .leido{grid-column:1/-1;font-size:12px;color:var(--acc)}
.check{display:flex;align-items:center;gap:8px;font-size:13px;padding:8px 10px;border-radius:6px}
.check.si{background:var(--ok-bg);color:var(--ok)}
.check.no{background:var(--err-bg);color:#8E1F17}
.asiento{width:100%;border-collapse:collapse;font-size:12px}
.asiento th{text-align:left;color:var(--muted);font-weight:500;padding:4px 6px;border-bottom:1px solid var(--linea)}
.asiento td{padding:5px 6px;border-bottom:1px solid var(--linea2)}
.asiento .num{text-align:right}
.pie{display:flex;flex-wrap:wrap;gap:8px;justify-content:space-between;align-items:center;padding:12px 16px;border-top:1px solid var(--linea)}
.tecla{font-family:var(--mono);font-size:11px;border:1px solid rgba(255,255,255,.5);border-radius:3px;padding:0 4px}
.tecnico{font-size:12px;color:var(--muted)}
/* resumen, evaluación, estado */
.tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(170px,100%),1fr));gap:12px}
.tile{background:#fff;border:1px solid var(--linea);border-radius:8px;padding:14px 16px;display:flex;flex-direction:column;gap:4px}
.tile b{font-size:26px;font-weight:600;font-family:var(--mono)}
.tile span{color:var(--muted);font-size:13px}
.caja{background:#fff;border:1px solid var(--linea);border-radius:8px;padding:16px;display:flex;flex-direction:column;gap:12px}
.dos{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(420px,100%),1fr));gap:16px}
.tab-datos{width:100%;border-collapse:collapse;font-size:13px}
.tab-datos th{text-align:left;color:var(--muted);font-weight:500;padding:6px 8px;border-bottom:1px solid var(--linea)}
.tab-datos td{padding:6px 8px;border-bottom:1px solid var(--linea2)}
.tab-datos .num{text-align:right}
.barrita{display:inline-block;height:8px;border-radius:4px;background:var(--acc);vertical-align:middle}
.lista-copia{display:flex;flex-direction:column;gap:6px;margin:0;padding:0;list-style:none}
.lista-copia li{display:flex;flex-wrap:wrap;gap:6px 12px;align-items:center;font-size:13px;padding:8px 10px;border:1px solid var(--linea2);border-radius:6px}
textarea.msg{width:100%;min-height:180px;border:1px solid #C6CED8;border-radius:6px;padding:10px;line-height:1.45;font-size:13px;resize:vertical}
.toast{position:fixed;bottom:20px;left:50%;transform:translateX(-50%);background:var(--tinta);color:#fff;padding:10px 16px;border-radius:6px;font-size:13px;z-index:20}
/* login */
.login{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:20px}
.login-caja{background:#fff;border:1px solid var(--linea);border-radius:10px;padding:28px;width:100%;max-width:340px;display:flex;flex-direction:column;gap:10px}
.login-caja input{border:1px solid #C6CED8;border-radius:6px;padding:9px 10px;min-height:40px}
.error-txt{color:var(--err);font-size:13px;min-height:1em;margin:0}
/* clientes */
.yo{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--tinta2)}
.sel{border:1px solid #C6CED8;border-radius:6px;padding:0 8px;min-height:36px;background:#fff;max-width:100%}
.grid-cl{display:grid;grid-template-columns:minmax(220px,1.6fr) 150px 140px minmax(120px,.8fr) minmax(260px,1.3fr) 150px;align-items:center;min-width:1080px}
.grid-cl>span{padding:10px 12px;min-width:0}
.grid-cl.cab>span{padding:9px 12px}
a.prov{color:var(--tinta);text-decoration:none}
a.prov:hover{color:var(--acc);text-decoration:underline}
.sans{font-family:'IBM Plex Sans',system-ui,sans-serif}
.etqs{display:flex;flex-wrap:wrap;gap:4px}
.etq{display:inline-flex;align-items:center;font-size:12px;font-weight:500;padding:2px 8px;border-radius:999px;color:var(--c);background:color-mix(in srgb,var(--c) 12%,#fff);border:1px solid color-mix(in srgb,var(--c) 35%,#fff);white-space:nowrap}
.punto{width:8px;height:8px;border-radius:50%;display:inline-block}
.tri{display:flex;height:6px;border-radius:3px;overflow:hidden;background:#E3E7EC;margin:5px 0 3px;max-width:240px}
.tri i{display:block;height:100%}
.tri .v{background:var(--ok)}.tri .r{background:#D9A23A}.tri .p{background:#AEB7C2}
.txt-err{color:var(--err);font-weight:500}
.pie-tabla{padding:10px 12px;margin:0;border-top:1px solid var(--linea2)}
.form .form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(240px,100%),1fr));gap:12px 16px}
.form label,.fila-form{display:flex;flex-direction:column;gap:4px;font-size:12px;color:var(--tinta2);font-weight:500}
.form input,.form select,.form textarea{border:1px solid #C6CED8;border-radius:6px;padding:7px 9px;min-height:38px;background:#fff;font-size:14px;color:var(--tinta);font-weight:400}
.form input[readonly]{background:#F2F4F7;color:var(--muted)}
.form .ancho{grid-column:1/-1}
.form fieldset{border:none;padding:0;margin:0}
.form legend{font-size:12px;color:var(--tinta2);font-weight:500;margin-bottom:6px}
.chip.chk{flex-direction:row;font-weight:400;color:var(--tinta);font-size:13px}
.chip.chk input{min-height:0;margin:0}
.chip.chk:has(input:checked){border-color:var(--acc);background:var(--acc-bg)}
.chk-linea{flex-direction:row!important;align-items:center;font-size:14px!important}
.fila-form .sel{max-width:320px}
.zona-subida{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;text-align:center;padding:28px 16px;border:2px dashed #B9C3CF;border-radius:8px;background:#FAFBFC;cursor:pointer;font-size:14px}
.zona-subida:hover,.zona-subida:focus-visible,.zona-subida.sobre{border-color:var(--acc);background:var(--acc-bg);outline:none}
.progreso-subida{display:flex;align-items:center;gap:10px;font-size:13px}
.progreso-subida .barra{width:200px}
#subida-estado{display:flex;flex-direction:column;gap:8px}
.aviso.ok{background:var(--ok-bg);color:var(--ok)}
details.aviso{display:block}
details.aviso summary{cursor:pointer;font-weight:500}
details.aviso ul{margin:6px 0 0;padding-left:18px;max-height:160px;overflow:auto}
.lista-reglas{display:flex;flex-direction:column;gap:6px;max-height:340px;overflow:auto}
.regla{display:grid;grid-template-columns:1fr minmax(160px,220px) auto;gap:8px;align-items:center;padding:6px 8px;border:1px solid var(--linea2);border-radius:6px}
.regla .sel{min-height:32px;font-size:13px}
.grid-hist{display:grid;grid-template-columns:90px repeat(4,72px) repeat(5,minmax(100px,1fr)) 210px;align-items:center;min-width:1180px}
.grid-hist>span{padding:7px 10px}
.fila-anio{background:#F6F8FA;border-top:1px solid var(--linea)}
.fila-anio .num{font-weight:600}
.form-linea{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
/* lettura in corso e aggiornamento automatico */
.spin{display:inline-block;width:12px;height:12px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:gira .8s linear infinite;flex:none;vertical-align:-1px}
@keyframes gira{to{transform:rotate(360deg)}}
@media (prefers-reduced-motion:reduce){.spin{animation-duration:2.4s}}
.vivo{display:inline-flex;align-items:center;gap:7px;font-size:13px;font-weight:400;color:var(--acc);margin-left:10px;vertical-align:middle}
.manual-tit.vivo{margin-left:0;min-height:18px}
.vivo-off{color:var(--warn)}
.conectar-pc{margin-top:16px;padding-top:14px;border-top:1px solid var(--linea2)}
.pasos-pc{margin:8px 0 14px;padding-left:20px;display:flex;flex-direction:column;gap:10px}
.codigo-pc{font-family:var(--mono);font-size:22px;letter-spacing:.06em;background:#F4F6FA;border:1px dashed #9DB2E0;border-radius:8px;padding:10px 14px;margin:8px 0 4px;display:block;width:fit-content;max-width:100%;overflow-wrap:anywhere}
.sel-lingua{font:inherit;font-size:12.5px;padding:3px 6px;border:1px solid var(--linea);border-radius:6px;background:var(--sup);color:var(--tinta2)}
.lingua-login{display:flex;justify-content:flex-end;margin-top:6px}
.marca-txt{display:inline-flex;flex-direction:column;line-height:1.15;min-width:0}
.marca-nom{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:320px}
.marca-sub{font-size:11.5px;font-weight:400;color:var(--muted);letter-spacing:.01em}
.lector-pill{display:inline-flex;align-items:center;gap:6px;font-size:12.5px;padding:3px 10px;border-radius:999px;background:#EEEFF2;color:var(--tinta2);text-decoration:none;white-space:nowrap;max-width:100%;overflow:hidden;text-overflow:ellipsis}
.lector-pill .pto{width:8px;height:8px;border-radius:50%;background:currentColor;flex:none}
.lector-pill.on{background:var(--ok-bg);color:var(--ok)}
.lector-pill.pausa{background:var(--warn-bg);color:var(--warn)}
.lector-pill.off{background:var(--err-bg);color:var(--err)}
.tab-lector th{width:190px;vertical-align:top}
.botones-lector{display:flex;flex-wrap:wrap;gap:8px;margin:14px 0 8px}
.vivo-ok{color:var(--ok);display:inline-flex;align-items:center;gap:5px}
.b-procesando{color:var(--acc);background:var(--acc-bg)}
.b-procesando .spin{width:10px;height:10px}
.chip .spin{width:10px;height:10px}
.fila.leyendo{background:#F5F8FE}
.fila.nueva{animation:destello 2.5s ease-out}
@keyframes destello{from{background:#FFF4C2}to{background:transparent}}
.barra-urg{align-items:center;flex-wrap:wrap}
.sel-doc{min-height:32px;max-width:420px;font-size:13px}
.releer{display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding:6px 10px;border:1px solid var(--linea2);border-radius:6px;background:#FAFBFC;font-size:13px}
.releer .manual-tit{flex:0 1 auto}
.aviso.recien{font-size:13px;animation:destello-ok 3s ease-out}
@keyframes destello-ok{from{box-shadow:0 0 0 3px rgba(24,100,60,.35)}to{box-shadow:0 0 0 0 rgba(24,100,60,0)}}
.manual{display:flex;flex-direction:column;gap:8px;padding:10px 12px;border-radius:6px;background:#F6F8FA;border:1px solid var(--linea)}
.manual-tit{margin:0;font-size:13px;line-height:1.5}
.manual-herr{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.manual-herr .buscar{min-width:260px;min-height:32px}
.manual-herr .sel,.manual-herr .seg button{min-height:32px}
.quitar{border:none;background:none;color:var(--muted);cursor:pointer;font-size:15px;padding:0 3px;line-height:1}
.quitar:hover{color:var(--err)}
.acceso{gap:8px;padding:12px 16px}
.acceso-fila{display:flex;flex-wrap:wrap;align-items:center;gap:6px 12px;font-size:14px}
.acceso .form-linea{align-items:flex-end;padding-top:8px;border-top:1px solid var(--linea2)}
.lista-acceso{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:6px}
.lista-acceso li{display:flex;align-items:center;gap:10px;padding:4px 6px 4px 10px;border:1px solid var(--linea2);border-radius:6px;font-size:13px}
.lista-acceso li.caducado{opacity:.6}
.lista-acceso li>span{display:flex;flex-direction:column;line-height:1.25}
.colores{display:flex;gap:4px}
.color{position:relative;cursor:pointer}
.color input{position:absolute;opacity:0;width:1px;height:1px}
.color span:first-of-type{display:block;width:22px;height:22px;border-radius:50%;border:2px solid #fff;box-shadow:0 0 0 1px #C6CED8}
.color input:checked+span{box-shadow:0 0 0 2px var(--tinta)}
.color input:focus-visible+span{outline:2px solid var(--acc);outline-offset:2px}
/* revisión a pantalla completa: nessuno scroll della pagina su Full HD */
body.modo-rev .app{height:100vh;min-height:0}
body.modo-rev .main{padding:10px 18px;gap:10px;min-height:0;overflow:hidden}
body.modo-rev .h1{font-size:17px}
body.modo-rev .rev{flex:1;min-height:0;display:grid;grid-template-columns:minmax(380px,1fr) minmax(680px,1.3fr);gap:14px;align-items:stretch}
body.modo-rev .visor,body.modo-rev .panel{min-height:0;max-width:none}
body.modo-rev .scroll{height:auto;flex:1;min-height:0;padding:12px}
body.modo-rev .panel-cuerpo{max-height:none;flex:1;min-height:0}
.scroll{cursor:grab;user-select:none}
.scroll.trascina{cursor:grabbing}
.scroll .bx{cursor:pointer}
.panel-cuerpo{display:grid;grid-template-columns:1fr 1fr;gap:12px 18px;align-content:start;padding:12px 14px}
.panel-cuerpo .ancho,.panel-cuerpo>.vacio{grid-column:1/-1}
.col{display:flex;flex-direction:column;gap:14px;min-width:0}
.grupo{gap:5px}
.campo{grid-template-columns:minmax(92px,118px) 1fr 34px;align-items:center;gap:2px 8px;padding:3px 6px 3px 8px}
.campo label{grid-column:1;grid-row:1;line-height:1.2}
.campo input,.campo select{grid-column:2;grid-row:1;min-height:30px;padding:4px 8px}
.campo .pc{grid-column:3;grid-row:1;text-align:right;font-size:11px}
.campo .razon,.campo .leido{grid-column:1/-1;padding-bottom:2px}
.iva-fila{display:grid;grid-template-columns:54px 1fr 1fr;gap:6px;align-items:start}
.iva-fila.re{grid-template-columns:54px 1fr 1fr .8fr}
.iva-fila.cab{font-size:11px;color:var(--muted);font-weight:500;margin-bottom:-2px}
.iva-fila.cab span:not(:first-child){text-align:right;padding-right:10px}
.iva-t{font-size:12px;color:var(--tinta2);align-self:center}
.campo.celda{grid-template-columns:1fr;padding:2px}
.campo.celda input{grid-column:1;grid-row:1}
.campo.celda .leido{font-size:11px;padding:0 4px}
.grupo>.razon{font-size:12px;color:var(--muted);line-height:1.35;padding-left:60px}
.grupo>.razon.warn{color:#704000}
.grupo>.razon.error{color:#8E1F17}
.aviso{padding:6px 9px;font-size:12px}
.check{padding:6px 10px}
.pie{padding:10px 14px}
@media (max-width:1250px){
  body.modo-rev .app{height:auto}
  body.modo-rev .main{overflow:visible}
  body.modo-rev .rev{grid-template-columns:1fr}
  body.modo-rev .scroll{height:70vh;flex:none}
}
@media (max-width:760px){.panel-cuerpo{grid-template-columns:1fr}}
@media (max-width:700px){.top{position:static}.scroll{height:60vh}.panel-cuerpo{max-height:none}}

/* ---- metodo di lettura (coda e revisione) ---- */
.chip-met{display:inline-flex;align-items:center;font-size:11px;font-weight:600;padding:2px 7px;border-radius:4px;white-space:nowrap;border:1px solid transparent;vertical-align:1px}
.chip-met.m-sin-ia{background:#E6F3EB;color:#18643C;border-color:#BFDFCB}
.chip-met.m-ia{background:#EEF0FB;color:#3A4AA0;border-color:#D2D8F3}
.chip-met.m-mano{background:#EEEFF2;color:var(--tinta2)}
/* ---- sezione Lectura ---- */
.cab-sec{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:12px}
.seg a{display:inline-flex;align-items:center;padding:0 14px;min-height:34px;text-decoration:none;color:var(--tinta);font-size:13px;font-weight:500;background:#fff}
.seg a+a{border-left:1px solid #C6CED8}
.seg a.on{background:var(--tinta);color:#fff}
.lista-ocr{margin:0;padding-left:22px;display:flex;flex-direction:column;gap:4px}
.lista-ocr li{display:flex;justify-content:space-between;align-items:center;gap:8px}
.lista-ocr li span{display:flex;gap:4px}
.lista-ocr .btn.peq{min-height:28px;padding:0 9px}
.peq-txt{font-size:12px}
.ok-txt{color:var(--ok);font-weight:600}
.err-txt{color:var(--err);font-weight:600}
.metodos{border:1px solid var(--linea);border-radius:6px;padding:8px 12px;display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:4px 16px}
.metodos legend{font-size:13px;color:var(--muted);padding:0 4px}
.lab{display:grid;grid-template-columns:minmax(300px,2fr) 3fr;gap:16px;align-items:start}
@media (max-width:1100px){.lab{grid-template-columns:1fr}}
.lab-doc{position:sticky;top:76px}
.lab-vista{width:100%;height:calc(100vh - 200px);min-height:360px;border:1px solid var(--linea);border-radius:6px;background:#E9ECF0;overflow:auto}
.lab-vista img{display:block;max-width:100%;margin:0 auto}
.tabla-lab{overflow-x:auto}
.tabla-lab th{white-space:nowrap}
.tabla-lab tbody th{color:var(--tinta2);font-weight:500;border-bottom:1px solid var(--linea2)}
.tabla-lab td.distinto{background:var(--warn-bg);color:var(--warn)}
.texto-ocr summary{cursor:pointer;font-weight:500;padding:4px 0}
.texto-ocr pre{white-space:pre-wrap;font-family:var(--mono);font-size:12px;background:#F6F7F9;border:1px solid var(--linea2);border-radius:6px;padding:10px;max-height:340px;overflow:auto;margin:6px 0 0}
.fila-prueba td{background:#F6F7F9}
.res-prueba{display:flex;flex-direction:column;gap:3px;padding:4px 2px;font-size:13px}
.res-prueba.ok>strong{color:var(--ok)}
.res-prueba.mal>strong{color:var(--err)}
