/* Mesa de revisión: tinta azul de pluma sobre papel frío, y las marcas de corrección como único color fuerte.
   El elemento distintivo es el mapa del documento: una franja con todo el documento y una marca por cambio. */
@font-face{font-family:"Libre Franklin";src:url(fuentes/franklin.woff2) format("woff2");font-weight:400 700;font-display:swap}
@font-face{font-family:"Source Serif";src:url(fuentes/serif.woff2) format("woff2");font-weight:400 600;font-display:swap}
:root{
  --mesa:#E7ECF2;--papel:#FFFFFF;--tinta:#18243A;--pluma:#1E3A68;--gris:#58667C;--linea:#CFD7E2;
  --quita:#B4232F;--quita-f:#FBE4E5;--agrega:#0A6F55;--agrega-f:#D9F2E9;--mueve:#5541A8;--mueve-f:#E8E4F7;
  --modifica:#9A5B00;--modifica-f:#FBEBCF;
  --ui:"Libre Franklin","Segoe UI",system-ui,sans-serif;--doc:"Source Serif",Georgia,serif}
*{box-sizing:border-box}
html,body{height:100%}
body{margin:0;background:var(--mesa);color:var(--tinta);font:15px/1.45 var(--ui)}
#app{height:100%}
h1,h2,h3,p{margin:0}
button,input,textarea{font:inherit;color:inherit}
button{cursor:pointer}
:focus-visible{outline:2px solid var(--pluma);outline-offset:2px}
.oculto{display:none!important}
.boton{border:1px solid var(--pluma);background:var(--pluma);color:#fff;font-weight:600;padding:9px 16px;border-radius:4px}
.boton[disabled]{opacity:.45;cursor:not-allowed}
.boton.suave{background:transparent;color:var(--pluma)}
.error{color:var(--quita);min-height:1.4em}

/* Acceso */
.acceso{min-height:100%;display:grid;place-items:center;padding:20px}
.acceso form{width:min(360px,100%);display:grid;gap:14px}
.acceso h1{font:600 30px/1.15 var(--doc)}
.acceso label{display:grid;gap:4px;font-weight:600;font-size:14px}
.acceso input{padding:10px;border:1px solid var(--linea);border-radius:4px;background:var(--papel)}

/* Inicio */
.inicio{max-width:980px;margin:0 auto;padding:28px 20px 60px;display:grid;gap:28px}
.barra-sup{display:flex;justify-content:space-between;align-items:center;gap:12px}
.barra-sup h1{font:600 24px var(--doc)}
.enlace{background:none;border:0;color:var(--pluma);text-decoration:underline;padding:4px}
.par{display:grid;grid-template-columns:1fr 1fr;gap:0;background:var(--papel);border:1px solid var(--linea)}
.zona{position:relative;display:grid;gap:6px;align-content:center;justify-items:center;text-align:center;min-height:210px;padding:24px;cursor:pointer}
.zona+.zona{border-left:1px dashed var(--linea)}
.zona.encima{background:var(--mueve-f)}
.zona b{font:600 20px var(--doc)}
.zona span{color:var(--gris);overflow-wrap:anywhere}
.zona.lleno span{color:var(--tinta);font-weight:600}
.zona input{position:absolute;inset:0;opacity:0;cursor:pointer}
.zona:focus-within{outline:2px solid var(--pluma);outline-offset:-3px}
.accion{display:flex;gap:14px;align-items:center;flex-wrap:wrap}
.lista-trabajos{display:grid;gap:1px;background:var(--linea);border:1px solid var(--linea)}
.trabajo{display:grid;grid-template-columns:1fr auto;gap:6px 16px;align-items:center;background:var(--papel);padding:13px 16px}
.trabajo .nombres{font-weight:600;overflow-wrap:anywhere}
.trabajo small{color:var(--gris);display:block;font-weight:400}
.trabajo .botones{display:flex;gap:8px;align-items:center}
.progreso{grid-column:1/-1;height:6px;background:var(--mesa)}
.progreso i{display:block;height:100%;background:var(--pluma);transition:width .4s}
.vacio{background:var(--papel);border:1px solid var(--linea);padding:22px;color:var(--gris)}

/* Mesa de revisión */
.mesa{height:100%;display:grid;grid-template-rows:auto auto minmax(0,1fr)}
.cabeza{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:18px;align-items:center;background:var(--pluma);color:#fff;padding:10px 16px}
.cabeza .enlace{color:#fff}
.cabeza h1{font:600 18px/1.25 var(--doc);text-wrap:balance}
.cabeza small{display:block;opacity:.8;overflow-wrap:anywhere;font:400 13px var(--ui)}
.avance-mesa{display:flex;gap:12px;align-items:center}
.avance-mesa .boton{background:#fff;color:var(--pluma);border-color:#fff}
.medidor{width:150px;font-size:13px}
.medidor div{height:6px;background:rgba(255,255,255,.25);margin-top:3px}
.medidor i{display:block;height:100%;background:#fff;transition:width .25s}
.filtros{display:flex;gap:6px;flex-wrap:wrap;align-items:center;background:var(--papel);border-bottom:1px solid var(--linea);padding:8px 16px}
.filtro{border:1px solid var(--linea);background:var(--papel);border-radius:4px;padding:5px 10px;font-size:14px}
.filtro b{font-variant-numeric:tabular-nums;margin-right:3px}
.filtro[aria-pressed=true]{background:var(--pluma);border-color:var(--pluma);color:#fff}
.separa{flex:1}
.cuerpo{display:grid;grid-template-columns:46px 330px minmax(0,1fr);min-height:0}
.mapa{position:relative;background:var(--tinta);min-height:0}
.mapa canvas{position:absolute;inset:0;width:100%;height:100%;cursor:pointer}
.cola{background:var(--papel);border-right:1px solid var(--linea);overflow-y:auto;min-height:0}
.item{--c:var(--modifica);display:grid;grid-template-columns:1fr auto;gap:1px 8px;width:100%;text-align:left;background:none;border:0;border-left:4px solid var(--c);border-bottom:1px solid var(--linea);padding:9px 10px}
.item.t-agregado{--c:var(--agrega)}.item.t-eliminado{--c:var(--quita)}.item.t-movido{--c:var(--mueve)}
.item[aria-current=true]{background:var(--mesa)}
.item .que{font-weight:600;font-size:14px}
.item .pag{color:var(--gris);font-size:13px;white-space:nowrap;font-variant-numeric:tabular-nums}
.item .frag{grid-column:1/-1;color:var(--gris);font:14px/1.35 var(--doc);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.item.decidido{opacity:.62}
.marca{font-size:12px;font-weight:600;margin-left:6px}
.marca.aceptado{color:var(--agrega)}.marca.rechazado{color:var(--quita)}.marca.revisar{color:var(--modifica)}
.detalle{display:grid;grid-template-rows:auto minmax(0,1fr) auto;min-height:0}
.rotulo{display:flex;gap:10px;flex-wrap:wrap;align-items:baseline;padding:14px 22px 8px}
.rotulo h2{font:600 21px/1.2 var(--doc)}
.rotulo span{color:var(--gris);font-variant-numeric:tabular-nums}
.versiones{display:grid;grid-template-columns:1fr 1fr;gap:14px;padding:6px 22px 14px;overflow-y:auto;min-height:0}
.hoja{background:var(--papel);border:1px solid var(--linea);padding:16px 18px;font:17px/1.6 var(--doc);min-width:0;overflow-wrap:anywhere;align-self:start}
.hoja h3{font:600 13px var(--ui);color:var(--gris);margin-bottom:8px;overflow-wrap:anywhere}
.hoja .contexto{color:var(--gris);font-size:15px;margin:8px 0}
.hoja .falta{color:var(--gris);font:italic 16px var(--doc)}
del{background:var(--quita-f);color:var(--quita);text-decoration-thickness:1px}
ins{background:var(--agrega-f);color:var(--agrega);text-decoration-thickness:1px;font-weight:600}
.hoja.movido{background:var(--mueve-f)}
.acciones{display:grid;grid-template-columns:auto minmax(120px,1fr) auto;gap:10px;align-items:center;background:var(--papel);border-top:1px solid var(--linea);padding:10px 22px}
.decide{display:flex;gap:6px;flex-wrap:wrap}
.decide button{border:1px solid var(--linea);background:var(--papel);border-radius:4px;padding:8px 13px;font-weight:600}
.decide kbd{font:500 12px var(--ui);color:var(--gris);margin-left:5px}
.decide .aceptar[aria-pressed=true]{background:var(--agrega);border-color:var(--agrega);color:#fff}
.decide .rechazar[aria-pressed=true]{background:var(--quita);border-color:var(--quita);color:#fff}
.decide .revisar[aria-pressed=true]{background:var(--modifica);border-color:var(--modifica);color:#fff}
.decide [aria-pressed=true] kbd{color:#fff}
.acciones input{padding:8px 10px;border:1px solid var(--linea);border-radius:4px;min-width:0}
.pasos{display:flex;gap:6px}
.pasos button{border:1px solid var(--linea);background:var(--papel);border-radius:4px;padding:8px 11px}
.panel{grid-column:1/-1;overflow-y:auto;padding:18px 22px;min-height:0;display:grid;gap:14px;align-content:start}
.tabla-datos{background:var(--papel);border:1px solid var(--linea);padding:14px 16px;display:grid;grid-template-columns:1fr 1fr;gap:8px 18px;max-width:1100px}
.tabla-datos h3{grid-column:1/-1;font:600 18px var(--doc)}
.tabla-datos h3 small{font:400 13px var(--ui);color:var(--gris);margin-left:8px}
.tabla-datos ul{margin:0;padding:0;list-style:none;display:grid;gap:8px;align-content:start}
.tabla-datos li b{display:block}
.tabla-datos li span{font:14px/1.4 var(--doc);color:var(--gris);overflow-wrap:anywhere}
.tabla-datos h4{margin:0;font:600 13px var(--ui);color:var(--gris);overflow-wrap:anywhere}
.formato-fila{background:var(--papel);border:1px solid var(--linea);padding:12px 16px;display:grid;grid-template-columns:1fr 1fr;gap:18px;font:15px/1.5 var(--doc);white-space:pre-wrap;overflow-wrap:anywhere;max-width:1100px}
.formato-fila mark{background:var(--modifica-f);color:inherit;outline:1px dotted var(--modifica)}
.nota-formato{color:var(--gris);max-width:70ch}
.avisos{background:var(--modifica-f);padding:6px 16px;font-size:14px}
.terminado{padding:40px 22px;font:18px/1.5 var(--doc)}

@media (max-width:860px){
  html,body,#app{height:auto}
  .mesa{height:auto;display:block}
  .cabeza{grid-template-columns:1fr;gap:8px}
  .cuerpo{display:block}
  .mapa{display:none}
  .cola{max-height:34vh;border-right:0;border-bottom:1px solid var(--linea)}
  .detalle{display:block}
  .versiones,.tabla-datos,.formato-fila,.par{grid-template-columns:1fr}
  .versiones{overflow:visible}
  .acciones .pasos{justify-content:flex-end}
  .zona+.zona{border-left:0;border-top:1px dashed var(--linea)}
  .acciones{position:sticky;bottom:0;grid-template-columns:1fr}
  .decide kbd{display:none}
}
@media (prefers-reduced-motion:reduce){*{transition:none!important}}
