/* ═══════════════════════════════════════════════════════════════════════════
   sala-v2.css — la sala de agentes viva de las páginas de sector (la pinta
   assets/sala-v2.js). Estética: la de la app: papel cálido, columnas blancas,
   azul de Poyntia y el subrayado
   amarillo del PDF. Todo va en «em» sobre .ps, así que en 2560 crece entero y
   en 1470 cabe; el motor mide 1em con .ps-u para trazar el grafo.
   Colores de los mensajes: orquestador azul · agente→agente violeta ·
   verificador verde · cita ámbar · corrección rojo · navegación verde azulado.
   ═══════════════════════════════════════════════════════════════════════════ */
.ps { --ps-blue:#2551d6; --ps-vio:#7a5cff; --ps-ok:#17a05a; --ps-ok-d:#17643a; --ps-amb:#d08a00; --ps-red:#d93a3f; --ps-web:#0f8a78;
  --ps-mark:#fff0a6; --ps-mark-on:#ffd95a; --ps-paper:#f6f4ef; --ps-line:#ebe7de;
  position:relative; font-size:clamp(13px, .55vw + 5.6px, 20px); line-height:1.45; color:#1e1e1e; font-family:var(--sans, ui-sans-serif, system-ui, sans-serif) }
.ps *, .ps *::before, .ps *::after { box-sizing:border-box }
.ps-u { position:absolute; width:1em; height:0; visibility:hidden; pointer-events:none }
.ps-salto * { transition:none !important }

/* ── la ventana ─────────────────────────────────────────────────────── */
.ps-app { position:relative; background:var(--ps-paper); border-radius:1.15em; overflow:hidden;
  box-shadow:0 0 0 1px rgba(0,0,0,.07), 0 2.4em 4.6em -2.6em rgba(0,0,0,.35) }
.ps-top { display:flex; align-items:center; gap:.9em; padding:.65em 1em; border-bottom:1px solid #e7e3da; min-width:0 }
.ps-pill { font-size:.86em; padding:.28em .75em; border:1px solid #ddd8cd; border-radius:999px; background:#fff; white-space:nowrap }
.ps-tabs { display:inline-flex; background:#ebe7de; border-radius:.7em; padding:.2em; gap:.15em }
.ps-tabs span { padding:.28em .8em; border-radius:.55em; color:#555; white-space:nowrap }
.ps-tabs span.on { background:#fff; color:#111; font-weight:600 }
.ps-fict { margin-left:auto; font-size:.86em; padding:.28em .8em; border-radius:999px; background:#fff3d1; color:#7a5200; white-space:nowrap }

.ps-status { display:flex; align-items:baseline; gap:1.25em; padding:.6em 1.1em; border-bottom:1px solid #ece8df; white-space:nowrap; overflow:hidden }
.ps-live { display:inline-flex; align-items:center; gap:.45em; font-weight:600; min-width:10.5em }
.ps-live i { width:.55em; height:.55em; border-radius:50%; background:#c9c4b8; flex:none }
.ps-app[data-fase="corre"] .ps-live i { background:var(--ps-blue); animation:ps-latir 1.4s ease-in-out infinite }
.ps-app[data-fase="fin"] .ps-live i { background:var(--ps-ok) }
.ps-acel { font-style:normal; font-weight:400; color:#999; font-size:.85em }
.ps-st { color:#777; font-size:.92em }
.ps-st b { font-weight:300; font-size:1.7em; letter-spacing:-.02em; margin-right:.25em; color:#111; font-variant-numeric:tabular-nums }
.ps-dots { display:inline-flex; gap:.22em; margin-left:.45em; vertical-align:.12em }
.ps-dots i { width:.45em; height:.45em; border-radius:50%; background:#d6d1c6 }
.ps-dots i[data-on] { background:var(--ps-blue); animation:ps-latir 1.2s ease-in-out infinite }
@keyframes ps-latir { 50% { box-shadow:0 0 0 .35em rgba(37,81,214,0) } 0%, 100% { box-shadow:0 0 0 0 rgba(37,81,214,.35) } }

/* ── la tarea ───────────────────────────────────────────────────────── */
.ps-task { display:grid; grid-template-columns:auto 1fr auto; align-items:center; gap:.9em; padding:.6em 1.1em; border-bottom:1px solid #ece8df; background:#fbfaf7 }
.ps-task-q { font-size:.85em; color:#888; white-space:nowrap }
.ps-task-t { margin:0; font-size:1.08em; color:#111; min-height:1.45em }
.ps-caret { display:inline-block; width:2px; height:1.05em; background:#111; vertical-align:-.15em; margin-left:1px; animation:ps-parpadeo 1s steps(1) infinite }
@keyframes ps-parpadeo { 50% { opacity:0 } }
.ps-task-bar { display:flex; align-items:center; gap:.8em; color:#777; font-size:.88em; white-space:nowrap }
.ps-model em { color:var(--ps-blue); font-style:normal }
.ps-launch { display:none; background:#111; color:#fff; border-radius:999px; padding:.35em .85em; font-weight:600 }
.ps-task[data-st="escribe"] .ps-launch, .ps-task[data-st="listo"] .ps-launch { display:inline-flex }
.ps-task[data-st="listo"] .ps-launch { animation:ps-pulso .6s var(--ease, ease) 2 }
@keyframes ps-pulso { 50% { transform:scale(1.07); box-shadow:0 0 0 .3em rgba(37,81,214,.25) } }
.ps-run { display:none; align-items:center; gap:.45em; padding:.3em .8em; border-radius:999px; background:#eef2ff; color:#1d3fa8; font-variant-numeric:tabular-nums }
.ps-run i { width:.5em; height:.5em; border-radius:50%; background:var(--ps-blue); animation:ps-latir 1.2s ease-in-out infinite }
.ps-task[data-st="corre"] .ps-run, .ps-task[data-st="fin"] .ps-run { display:inline-flex }
.ps-task[data-st="fin"] .ps-run { background:#e8f6ec; color:var(--ps-ok-d) }
.ps-task[data-st="fin"] .ps-run i { background:var(--ps-ok); animation:none }

/* ── el cuerpo: flujo · documento · mensajes ─────────────────────────── */
.ps-body { display:grid; grid-template-columns:1.22fr 1.22fr .92fr; gap:.65em; padding:.65em; height:clamp(400px, 57vh, 900px) }
.ps-panel { position:relative; background:#fff; border-radius:.85em; display:flex; flex-direction:column; min-height:0; min-width:0; overflow:hidden }
.ps-h { display:flex; align-items:center; justify-content:space-between; gap:.6em; padding:.6em .9em .5em; font-weight:600; font-size:.95em; border-bottom:1px solid #f0ece4; min-height:2.6em; flex:none }
.ps-h > span:first-child { white-space:nowrap }
.ps-h-n { color:#999; font-weight:400; font-variant-numeric:tabular-nums }
.ps-h-x { display:flex; align-items:center; gap:.5em; font-weight:400; min-width:0; overflow:hidden; justify-content:flex-end }

/* el grafo */
.ps-graph { position:relative; flex:1; min-height:0; display:grid; grid-template-columns:7.6em minmax(0, 1fr) 7em; column-gap:2em; padding:.7em .8em }
.ps-svg { position:absolute; left:0; top:0; pointer-events:none; overflow:visible; z-index:0 }
.ps-col-o, .ps-col-l, .ps-col-c { position:relative; z-index:1; min-width:0 }
.ps-col-o { display:flex; align-items:center }
.ps-col-l { display:flex; flex-direction:column; justify-content:center; gap:.45em; overflow:hidden }
.ps-col-c { display:flex; flex-direction:column; justify-content:space-between; padding:1.4em 0 }
.ps-node { position:relative; width:100%; background:#fff; border:1px solid #d9d4c9; border-radius:.7em; padding:.5em .6em; font-size:.88em; line-height:1.3;
  transition:border-color .3s, box-shadow .3s }
.ps-node b { display:block; font-weight:600; padding-right:.8em; white-space:nowrap; overflow:hidden; text-overflow:ellipsis }
.ps-node span { display:block; color:#777; font-size:.9em; margin-top:.15em }
.ps-node i { position:absolute; top:.6em; right:.55em; width:.5em; height:.5em; border-radius:50%; background:#d6d1c6 }
.ps-node[data-on] { border-color:var(--ps-blue); box-shadow:0 0 0 .25em rgba(37,81,214,.12) }
.ps-node[data-on] i { background:var(--ps-blue); animation:ps-latir 1.2s ease-in-out infinite }
.ps-n-v[data-on] { border-color:var(--ps-ok); box-shadow:0 0 0 .25em rgba(23,160,90,.13) } .ps-n-v[data-on] i { background:var(--ps-ok) }
.ps-n-c[data-on] { border-color:var(--ps-amb); box-shadow:0 0 0 .25em rgba(208,138,0,.15) } .ps-n-c[data-on] i { background:var(--ps-amb) }
.ps-n-r[data-on] { border-color:#111; box-shadow:0 0 0 .25em rgba(0,0,0,.08) } .ps-n-r[data-on] i { background:#111 }

/* los carriles: uno por agente, lo que hace AHORA */
.ps-lane { position:relative; display:grid; gap:.18em; background:#fbfaf7; border:1px solid var(--ps-line); border-radius:.7em; padding:.42em .6em .48em; transition:border-color .3s, background-color .3s }
.ps-lane[data-est="trabajando"] { background:#fff; border-color:#c9d6fb }
.ps-lane[data-cl="subraya"] { border-color:#f2cf5b }
.ps-lane[data-cl="navega"] { border-color:#9fd8cd }
.ps-lane[data-cl="recibe"] { border-color:#b9c9fa }
.ps-lane-a { display:flex; align-items:baseline; gap:.45em; min-width:0; white-space:nowrap }
.ps-dot { width:.5em; height:.5em; border-radius:50%; background:#d6d1c6; flex:none; align-self:center }
.ps-lane[data-est="trabajando"] .ps-dot { background:var(--ps-blue); animation:ps-latir 1.2s ease-in-out infinite }
.ps-lane[data-est="hecho"] .ps-dot { background:var(--ps-ok) }
.ps-lane-n { font-weight:600 }
.ps-lane-r { color:#8a867e; font-size:.86em; overflow:hidden; text-overflow:ellipsis; min-width:0; flex:1 }
.ps-lane-k { color:#888; font-size:.82em }
.ps-lane-k b { color:#111; font-weight:600; font-variant-numeric:tabular-nums }
.ps-lane-b { font-size:.9em; color:#333; line-height:1.35; min-height:2.7em; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; overflow-wrap:anywhere }
.ps-lane-b b { font-weight:600; font-variant-numeric:tabular-nums }
.ps-v { color:var(--ps-blue); font-weight:600 }
.ps-v-ok { color:var(--ps-ok-d) }
.ps-v-mk { background:linear-gradient(transparent 10%, var(--ps-mark) 10%, var(--ps-mark) 90%, transparent 90%); color:#5c4300; padding:0 .15em }
.ps-v-web { color:var(--ps-web) }
.ps-lane-c { height:.22em; background:#efece6; border-radius:1em; overflow:hidden }
.ps-lane-c i { display:block; height:100%; background:var(--ps-blue); transform-origin:0 50%; transform:scaleX(0); transition:transform .25s linear }
.ps-lane[data-est="hecho"] .ps-lane-c i { background:var(--ps-ok) }

/* aristas y paquetes */
.ps-ed { fill:none; stroke:#e0dbd0; stroke-width:1.2; transition:stroke .35s, stroke-width .35s }
.ps-arc { fill:none; stroke:transparent; stroke-width:1.3; stroke-dasharray:3 4; transition:stroke .35s }
.ps-ed[data-on="orq"], .ps-arc[data-on="orq"] { stroke:var(--ps-blue); stroke-width:1.8 }
.ps-ed[data-on="ag"], .ps-arc[data-on="ag"] { stroke:var(--ps-vio); stroke-width:1.8 }
.ps-ed[data-on="ok"], .ps-arc[data-on="ok"] { stroke:var(--ps-ok); stroke-width:1.8 }
.ps-ed[data-on="cita"] { stroke:var(--ps-amb); stroke-width:1.8 }
.ps-ed[data-on="corr"] { stroke:var(--ps-red); stroke-width:1.8 }
.ps-ed[data-on="apaga"] { stroke:#c9d3ef }
.ps-arc[data-on="apaga"] { stroke:#d8cff9 }
.ps-pk .h { opacity:.2 }
.ps-pk[data-c="orq"] circle { fill:var(--ps-blue) }
.ps-pk[data-c="ag"] circle { fill:var(--ps-vio) }
.ps-pk[data-c="ok"] circle { fill:var(--ps-ok) }
.ps-pk[data-c="cita"] circle { fill:var(--ps-amb) }
.ps-pk[data-c="corr"] circle { fill:var(--ps-red) }

/* «Así trabajaron»: los carriles en el tiempo, al final */
.ps-gantt { display:none }
.ps-flow[data-fin] .ps-graph { display:none }
.ps-flow[data-fin] .ps-gantt { display:flex; flex-direction:column; gap:.7em; flex:1; min-height:0; padding:.8em .9em; overflow:hidden }
.ps-g-cab b { font-weight:600; font-size:1.05em }
.ps-g-res { display:block; margin-top:.25em; color:#555; font-size:.9em; font-variant-numeric:tabular-nums }
.ps-g-filas { display:grid; gap:.38em }
.ps-g-fila { display:grid; grid-template-columns:7.2em minmax(0, 1fr); align-items:center; gap:.6em; animation:ps-entra .5s var(--ease, ease) both; animation-delay:calc(var(--k, 0) * 60ms) }
@keyframes ps-entra { from { opacity:0; transform:translateX(-.6em) } }
.ps-g-n { font-size:.84em; color:#444; white-space:nowrap; overflow:hidden; text-overflow:ellipsis }
.ps-g-pista { position:relative; height:1.05em; background:#f4f1ea; border-radius:.3em }
.ps-g-pista i { position:absolute; top:0; bottom:0; border-radius:.2em }
.ps-g-pista b { position:absolute; top:-.15em; bottom:-.15em; width:2px; margin-left:-1px; border-radius:1px }
.ps-gantt .le { background:var(--ps-blue); opacity:.85 } .ps-gantt .bu { background:#93b1ff } .ps-gantt .es { background:#e2ddd2 }
.ps-gantt .vf { background:var(--ps-ok) } .ps-gantt .cr { background:var(--ps-amb) } .ps-gantt .rd { background:#111 } .ps-gantt .nv { background:var(--ps-web) }
.ps-gantt b.mk { background:#e0a100 } .ps-gantt b.ms { background:var(--ps-vio) }
.ps-g-ejef { animation:none }
.ps-g-eje { position:relative; height:1.2em }
.ps-g-eje span { position:absolute; transform:translateX(-50%); font-size:.74em; color:#999; white-space:nowrap }
.ps-g-eje span:first-child { transform:none }
.ps-g-ley { display:flex; flex-wrap:wrap; gap:.3em 1em; font-size:.8em; color:#666 }
.ps-g-ley span { display:inline-flex; align-items:center; gap:.35em }
.ps-g-ley i { width:.9em; height:.55em; border-radius:.15em }
.ps-g-ley b { width:2px; height:.85em; border-radius:1px }

/* ── el panel central: documento, navegador, cruce, respuesta ─────────── */
.ps-stage-b { position:relative; flex:1; min-height:0 }
.ps-viewer, .ps-cross, .ps-answ { position:absolute; inset:0; opacity:0; visibility:hidden; transition:opacity .45s var(--ease, ease), visibility 0s .45s }
.ps-stage[data-modo="doc"] .ps-viewer, .ps-stage[data-modo="cruce"] .ps-cross, .ps-stage[data-modo="respuesta"] .ps-answ { opacity:1; visibility:visible; transition:opacity .45s var(--ease, ease) }
.ps-viewer { display:grid; grid-template-columns:minmax(0, 1fr) 5.6em; gap:.6em; padding:.65em; background:#f3f1ec }
.ps-hoja { position:relative; overflow:hidden; background:#fff; border-radius:.35em; box-shadow:0 0 0 1px rgba(0,0,0,.06), 0 .8em 1.6em -1.1em rgba(0,0,0,.28) }
.ps-pap { padding:1.05em 1.3em 1.5em; transition:transform .55s var(--ease, ease); font-family:ui-serif, Georgia, "Times New Roman", serif; will-change:transform }
.ps-pap-cab { display:flex; justify-content:space-between; gap:1em; font-family:var(--sans, sans-serif); font-size:.78em; color:#888; border-bottom:1px solid #eee; padding-bottom:.5em; margin-bottom:.85em }
.ps-pap-doc { white-space:nowrap; overflow:hidden; text-overflow:ellipsis }
.ps-pap-n { white-space:nowrap; font-variant-numeric:tabular-nums }
.ps-pap-cuerpo h5 { margin:.2em 0 .6em; font-size:1.02em; font-weight:700; color:#111 }
.ps-pap-cuerpo p { margin:0 0 .62em; font-size:.95em; line-height:1.56; color:#222 }
.ps-pap-cuerpo p.ps-nt { font-size:.84em; color:#666; font-style:italic }
.ps-tb { width:100%; border-collapse:collapse; font-family:var(--sans, sans-serif); font-size:.8em; margin:.3em 0 .85em; font-variant-numeric:tabular-nums }
.ps-tb th { text-align:left; background:#f4f2ee; font-weight:600; color:#333 }
.ps-tb th, .ps-tb td { padding:.36em .45em; border-bottom:1px solid #eee; vertical-align:top }
.ps-pap-corr { font-family:var(--sans, sans-serif); font-size:.82em; background:#fdecec; color:#b42318; padding:.45em .65em; border-radius:.45em; margin-bottom:.8em }
.ps-pap-pie { font-family:var(--sans, sans-serif); font-size:.74em; color:#aaa; text-align:center; margin-top:1em }
.ps-pap-vacio { font-family:var(--sans, sans-serif); color:#999; text-align:center; padding:5em 1em }
.ps-sk { display:block; height:.55em; background:#eeebe5; border-radius:.3em; margin:.7em 0 }
.ps-sk-h { height:.8em; background:#e3dfd6; margin-top:1.15em }
mark.ps-mk { color:inherit; padding:0 .08em; background:linear-gradient(transparent 8%, var(--ps-mark) 8%, var(--ps-mark) 92%, transparent 92%) no-repeat;
  background-size:100% 100%; -webkit-box-decoration-break:clone; box-decoration-break:clone }
mark.ps-mk.on { background-image:linear-gradient(transparent 4%, var(--ps-mark-on) 4%, var(--ps-mark-on) 96%, transparent 96%); box-shadow:0 0 0 .14em rgba(255,200,40,.35) }
mark.ps-mk.ok::after { content:" ✓"; color:var(--ps-ok-d); font-family:var(--sans, sans-serif); font-size:.8em; font-weight:700 }
mark.ps-mk.nueva { animation:ps-pinta .7s var(--ease, ease) both }
@keyframes ps-pinta { from { background-size:0% 100% } to { background-size:100% 100% } }

/* el navegador: un portal recorrido como lo haría una persona */
.ps-hoja[data-web] .ps-pap { padding:0; font-family:var(--sans, sans-serif) }
.ps-web-bar { display:flex; align-items:center; gap:.7em; padding:.55em .7em; background:#efede8; border-bottom:1px solid #e3dfd6 }
.ps-web-dots { display:inline-flex; gap:.3em; flex:none }
.ps-web-dots i { width:.6em; height:.6em; border-radius:50%; background:#d9d4c9 }
.ps-web-url { flex:1; min-width:0; display:flex; align-items:center; gap:.45em; background:#fff; border-radius:999px; padding:.32em .85em; font-family:var(--mono, ui-monospace, monospace); font-size:.82em; color:#333; white-space:nowrap; overflow:hidden; text-overflow:ellipsis }
.ps-web-url svg { width:1em; height:1em; flex:none; fill:none; stroke:var(--ps-ok-d); stroke-width:2; stroke-linecap:round; stroke-linejoin:round }
.ps-web-body { padding:1.05em 1.2em 1.2em }
.ps-web-portal { margin:0 0 .85em; font-size:1.12em; font-weight:600; color:#111 }
.ps-web-pasos { list-style:none; margin:0; padding:0; display:grid; gap:.55em }
.ps-web-pasos li { display:flex; gap:.65em; align-items:flex-start; padding:.6em .75em; border-radius:.6em; background:#f7f5f0; color:#999; transition:background-color .3s, color .3s, box-shadow .3s }
.ps-web-pasos li i { position:relative; width:1.15em; height:1.15em; border-radius:50%; border:1.5px solid #cfc9bd; flex:none; margin-top:.1em }
.ps-web-pasos li.ahora { background:#e9f6f3; color:#111; box-shadow:inset 0 0 0 1px #9fd8cd }
.ps-web-pasos li.ahora i { border-color:var(--ps-web); animation:ps-latir-w 1.1s ease-in-out infinite }
.ps-web-pasos li.hecho { background:#fff; color:#333; box-shadow:inset 0 0 0 1px #eee }
.ps-web-pasos li.hecho i { background:var(--ps-web); border-color:var(--ps-web) }
.ps-web-pasos li.hecho i::after { content:"✓"; position:absolute; inset:0; display:grid; place-items:center; color:#fff; font-size:.72em; font-weight:700 }
@keyframes ps-latir-w { 50% { box-shadow:0 0 0 .3em rgba(15,138,120,0) } 0%, 100% { box-shadow:0 0 0 0 rgba(15,138,120,.35) } }
.ps-web-res { margin-top:.9em; display:grid; gap:.3em; padding:.7em .85em; border-radius:.6em; background:#e8f6ec; color:var(--ps-ok-d); font-size:.92em; animation:ps-entra .4s var(--ease, ease) both }
.ps-web-doc b { font-family:var(--mono, ui-monospace, monospace); font-weight:600 }

/* miniaturas: los otros documentos abiertos, pasando páginas a la vez */
.ps-thumbs { display:flex; flex-direction:column; gap:.5em; overflow:hidden; min-width:0 }
.ps-th { background:#fff; border-radius:.4em; padding:.4em .4em .35em; box-shadow:0 0 0 1px rgba(0,0,0,.06); transition:box-shadow .3s }
.ps-th[data-on] { box-shadow:0 0 0 2px var(--ps-blue) }
.ps-th-pag { display:grid; gap:.24em; padding:.25em .15em .4em; transform-origin:50% 100% }
.ps-th-pag i { display:block; height:.22em; background:#e6e2da; border-radius:.2em; transition:width .2s }
.ps-th-pag i.hl { background:#ffd95a }
.ps-th[data-lee] .ps-th-pag i:first-child { background:#c9d6fb }
.ps-th-n { display:flex; justify-content:space-between; gap:.3em; font-size:.68em; white-space:nowrap }
.ps-th-n b { font-family:var(--mono, ui-monospace, monospace); font-weight:600 }
.ps-th-n span { color:#888; font-variant-numeric:tabular-nums }
.ps-th-q { font-size:.66em; color:#999; white-space:nowrap; overflow:hidden; text-overflow:ellipsis }

/* cabecera del panel: quién subraya, cómo va la verificación */
.ps-quien { display:inline-flex; align-items:center; gap:.35em; font-size:.85em; color:#444; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; min-width:0 }
.ps-quien i { width:.5em; height:.5em; border-radius:50%; background:#e0a100; flex:none }
.ps-quien-web i { background:var(--ps-web) }
.ps-est { font-size:.8em; padding:.15em .6em; border-radius:999px; background:#f4f1ea; color:#777; white-space:nowrap }
.ps-est.ok { background:#e8f6ec; color:var(--ps-ok-d) }
.ps-est.corr { background:#fdecec; color:#b42318 }
.ps-sub { font-size:.85em; color:#888; white-space:nowrap }

/* el cruce: lo que ninguna fuente dice sola */
.ps-cross { padding:.9em 1em; overflow:hidden; background:#fffcf3 }
.ps-cr { background:#fff; border-radius:.8em; padding:.95em 1.1em 1em; box-shadow:0 0 0 1px #f0e2b8, 0 1em 2em -1.5em rgba(194,122,0,.5) }
.ps-cr-t { margin:0; font-size:1.2em; font-weight:600; letter-spacing:-.01em; line-height:1.25; color:#111 }
.ps-cr-x { margin:.45em 0 0; font-size:.95em; color:#333; line-height:1.5 }
.ps-cr-ev { display:grid; gap:.4em; margin-top:.75em }
.ps-ev { display:grid; grid-template-columns:auto minmax(0, 1fr); gap:.6em; align-items:baseline }
.ps-ev-q { font-size:.86em; color:#555; font-style:italic; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; quotes:"«" "»" }
.ps-cr-nm { margin:.6em 0 0 }
.ps-cr-por { margin:.7em 0 0; padding-top:.65em; border-top:1px dashed #eadfbf; font-size:.93em; color:#222; line-height:1.45 }
.ps-cr-por b { display:block; font-size:.76em; text-transform:uppercase; letter-spacing:.06em; color:#a86f00; margin-bottom:.15em }
.ps-cr-prev { list-style:none; margin:.75em 0 0; padding:0; display:grid; gap:.3em }
.ps-cr-prev li { display:flex; align-items:center; gap:.5em; font-size:.84em; color:#777; white-space:nowrap; overflow:hidden; text-overflow:ellipsis }
.ps-cr-prev span { display:grid; place-items:center; width:1.5em; height:1.5em; border-radius:50%; background:#f4ead0; color:#7a5200; font-size:.8em; flex:none }

/* las normas, citadas por artículo */
.ps-normas { display:inline-flex; flex-wrap:wrap; gap:.25em; vertical-align:baseline; margin-left:.15em }
.ps-norma { display:inline-flex; align-items:center; padding:.06em .5em; border-radius:.4em; background:#eef0f6; color:#2f3d66; font-size:.8em; font-weight:500; white-space:nowrap }
.ps-cr-nm .ps-normas { margin-left:0 }

/* la respuesta, que se ensambla */
.ps-answ { overflow:hidden; padding:.85em 1.05em }
.ps-ans { transition:transform .5s var(--ease, ease) }
.ps-app[data-fase="fin"] .ps-answ { overflow-y:auto; scrollbar-width:thin }
.ps-an-cab { display:flex; align-items:baseline; gap:.6em }
.ps-an-cab b { font-weight:600 }
.ps-an-cab > b, .ps-an-cab > span:not(.ps-an-ok) { display:none } /* ya lo dice la cabecera del panel */
.ps-an-cab span { color:#888; font-size:.85em }
.ps-an-cab .ps-an-ok { margin-left:auto; color:var(--ps-ok-d); background:#e8f6ec; padding:.1em .55em; border-radius:999px; font-size:.8em; font-variant-numeric:tabular-nums }
.ps-ans [data-p] { opacity:0 }
.ps-ans [data-p][data-on] { opacity:1 }
.ps-an-tit { margin:.6em 0 0; font-size:1.14em; line-height:1.38; font-weight:500; color:#111 }
.ps-an-pts { margin:.7em 0 0; padding-left:1.25em; display:grid; gap:.55em }
.ps-an-pts li { font-size:.94em; line-height:1.45; color:#222 }
.ps-ref { display:inline-grid; place-items:center; min-width:1.4em; height:1.4em; padding:0 .3em; border-radius:.4em; background:#eef2ff; color:var(--ps-blue); font-size:.74em; font-weight:700; cursor:pointer; vertical-align:.12em }
.ps-an-pend h5, .ps-an-acc h5 { margin:.95em 0 .35em; font-size:.8em; text-transform:uppercase; letter-spacing:.06em; color:#888; font-weight:600 }
.ps-an-pend { margin-top:1em; padding:.65em .9em .75em; background:#f3f3f0; border-left:3px solid #111; border-radius:0 .6em .6em 0 }
.ps-an-pend h5 { margin:0 0 .35em; color:#111 }
.ps-an-pend ul { margin:0; padding-left:1.15em; font-size:.94em; color:#222; display:grid; gap:.25em }
.ps-acc { display:inline-flex; align-items:center; gap:.4em; margin:0 .4em .4em 0; padding:.38em .8em; border-radius:999px; background:#111; color:#fff; font-size:.84em }
.ps-acc i { font-style:normal; opacity:.65 }

/* ── el hilo de mensajes ─────────────────────────────────────────────── */
.ps-msgs { list-style:none; margin:0; padding:.3em .6em .6em; flex:1; min-height:0; display:flex; flex-direction:column; justify-content:flex-end; overflow:hidden }
.ps-mw { display:grid; grid-template-rows:0fr; opacity:0; transition:grid-template-rows .38s var(--ease, ease), opacity .38s }
.ps-mw.on { grid-template-rows:1fr; opacity:1 }
.ps-mi { min-height:0; overflow:hidden }
.ps-msg { margin-top:.45em; background:#faf9f6; border:1px solid #efebe3; border-left:3px solid #cfc9bd; border-radius:.6em; padding:.45em .6em .5em; font-size:.88em }
.ps-msg[data-k="encargo"], .ps-msg[data-k="pregunta"] { border-left-color:var(--ps-blue) }
.ps-msg[data-k="hallazgo"] { border-left-color:#111 }
.ps-msg[data-k="aviso"], .ps-msg[data-k="respuesta"] { border-left-color:var(--ps-vio); background:#f8f6ff }
.ps-msg[data-k="ok"] { border-left-color:var(--ps-ok) }
.ps-msg[data-k="corr"] { border-left-color:var(--ps-red); background:#fff6f6 }
.ps-msg[data-k="cruce"] { border-left-color:var(--ps-amb); background:#fffaf0 }
.ps-msg-cab { display:flex; align-items:baseline; gap:.35em; white-space:nowrap; overflow:hidden; min-width:0 }
.ps-msg-cab b { font-weight:600 }
.ps-fl { color:#aaa }
.ps-msg-a { color:#555; overflow:hidden; text-overflow:ellipsis; min-width:0 }
.ps-msg-k { margin-left:auto; font-size:.76em; text-transform:uppercase; letter-spacing:.05em; color:#999; padding-left:.4em }
.ps-msg[data-k="pregunta"] .ps-msg-k, .ps-msg[data-k="encargo"] .ps-msg-k { color:var(--ps-blue) }
.ps-msg[data-k="aviso"] .ps-msg-k, .ps-msg[data-k="respuesta"] .ps-msg-k { color:var(--ps-vio) }
.ps-msg[data-k="ok"] .ps-msg-k { color:var(--ps-ok-d) }
.ps-msg[data-k="corr"] .ps-msg-k { color:#b42318 }
.ps-msg[data-k="cruce"] .ps-msg-k { color:#a86f00 }
.ps-msg-cab time { font-size:.76em; color:#aaa; font-variant-numeric:tabular-nums }
.ps-msg-tx { margin:.2em 0 0; color:#222; line-height:1.4 }
.ps-msg-sub { color:#666 }
.ps-msg-c { display:flex; flex-wrap:wrap; gap:.3em; margin-top:.3em }
.ps-chip { display:inline-flex; align-items:center; gap:.2em; padding:.06em .45em; border-radius:.4em; background:#fff3cc; color:#6e4d00; font-size:.8em; cursor:pointer; white-space:nowrap; font-variant-numeric:tabular-nums }
.ps-chip.ok { background:#e8f6ec; color:var(--ps-ok-d) }
.ps-chip.ok::after { content:"✓"; font-weight:700 }
.ps-chip.corr { background:#fdecec; color:#b42318 }
.ps-chip.corr::after { content:"✓"; font-weight:700 }
.ps-mal { opacity:.7; margin-right:.2em }
.ps-bien { font-weight:700 }

/* la cita, al pasar por encima */
.ps-tip { position:absolute; z-index:20; max-width:24em; background:#111; color:#fff; border-radius:.6em; padding:.55em .75em; font-size:.85em; line-height:1.4; pointer-events:none; box-shadow:0 1em 2em -1em rgba(0,0,0,.5) }
.ps-tip b { display:block; font-weight:600 }
.ps-tip span { color:#bbb }
.ps-tip q { display:block; margin-top:.3em; font-style:italic; color:#ffe9a8; quotes:"«" "»" }

/* ── mandos, regla de capítulos y nota ───────────────────────────────── */
.ps-ctrl { display:grid; grid-template-columns:auto minmax(0, 1fr); gap:1.6em; align-items:center; margin-top:.55em; padding:0 .3em }
.ps-btns { display:flex; align-items:center; gap:.5em }
.ps-btn { display:inline-flex; align-items:center; gap:.45em; height:2.7em; padding:0 1.05em; border-radius:999px; background:#fff; border:1px solid #dbd8d3; cursor:pointer; font:inherit; font-size:.95em; color:#111; white-space:nowrap; transition:border-color .2s }
.ps-btn:hover { border-color:#000 }
.ps-btn svg { width:1em; height:1em; fill:currentColor }
.ps-time { margin-left:.3em; color:#888; font-size:.9em; font-variant-numeric:tabular-nums; white-space:nowrap }
.ps-ruler { position:relative; height:5.5em; margin:0 1em }
.ps-r-track, .ps-r-prog { position:absolute; left:0; right:0; top:2.15em; height:.9em }
.ps-r-track { background:repeating-linear-gradient(90deg, #d4d0c8 0 1px, transparent 1px 8px) }
.ps-r-prog { background:repeating-linear-gradient(90deg, #111 0 1px, transparent 1px 8px); transform-origin:0 50%; transform:scaleX(0) }
.ps-tick { position:absolute; top:1.8em; width:1.8em; height:1.6em; margin-left:-.9em; border:0; padding:0; background:none; cursor:pointer }
.ps-tick::after { content:""; position:absolute; left:50%; top:0; bottom:0; width:2px; margin-left:-1px; border-radius:2px; background:#b9b4ab; transition:background-color .2s }
.ps-tick:hover::after, .ps-tick.is-on::after { background:var(--ps-blue); width:3px }
.ps-r-lab { position:absolute; top:0; transform:translateX(-50%); white-space:nowrap; font-size:1em; font-weight:500; color:#111 }
.ps-r-desc { position:absolute; top:4.15em; transform:translateX(-50%); width:min(26em, 76%); margin:0; text-align:center; font-size:.88em; color:#777; line-height:1.35 }
.ps-nota { margin:.1em 0 0; font-size:.9em; color:#777; text-align:center }
.ps-sr { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); clip-path:inset(50%); white-space:nowrap }

/* ── portátil bajo: una línea por carril ─────────────────────────────── */
@media (max-height: 780px) and (min-width: 761px) {
  .ps-lane-b { -webkit-line-clamp:1; min-height:1.35em }
}
/* ── tableta ─────────────────────────────────────────────────────────── */
@media (max-width: 1100px) {
  .ps-body { grid-template-columns:1fr 1fr; grid-template-rows:31em 19em; height:auto }
  .ps-thread { grid-column:1 / -1 }
  .ps-status .ps-st:nth-child(n+6) { display:none }
}
/* ── móvil: estado → carriles → visor → mensajes ─────────────────────── */
@media (max-width: 760px) {
  .ps { font-size:14px }
  .ps-tabs, .ps-pill { display:none }
  .ps-fict { margin-left:0; white-space:normal; line-height:1.35 }
  .ps-status { flex-wrap:wrap; gap:.15em 1em; white-space:normal }
  .ps-status .ps-st:nth-child(n+6) { display:none }
  .ps-live { min-width:0; width:100% }
  .ps-task { grid-template-columns:1fr; gap:.35em }
  .ps-task-q { display:none }
  .ps-task-bar { justify-content:space-between }
  .ps-model { display:none }
  .ps-body { display:flex; flex-direction:column; height:auto }
  .ps-graph { display:block; padding:.55em }
  .ps-svg, .ps-col-o, .ps-col-c { display:none }
  .ps-col-l { gap:.4em }
  .ps-lane-b { -webkit-line-clamp:1; min-height:1.35em }
  .ps-stage { height:27em; flex:none }
  .ps-viewer { grid-template-columns:1fr }
  .ps-thumbs { display:none }
  .ps-thread { height:18em; flex:none }
  .ps-flow[data-fin] .ps-gantt { padding:.7em }
  .ps-g-fila { grid-template-columns:5.6em minmax(0, 1fr) }
  .ps-ctrl { grid-template-columns:1fr; gap:.4em }
  .ps-btns { justify-content:center }
  .ps-ruler { margin:0 .4em; height:7em }
  .ps-r-lab, .ps-r-desc { left:50% !important }
  .ps-r-desc { width:100% }
}
@media (prefers-reduced-motion: reduce) {
  .ps *, .ps *::before, .ps *::after { animation:none !important; transition:none !important }
}

/* ── v2: modo compacto (opción «compacto: true» del motor): sin regla de capítulos, tiempo ni nota de pie;
      los dos mandos viven en la barra superior, a la izquierda de la etiqueta amarilla ───────────────────── */
.ps-compacto .ps-ctrl, .ps-compacto .ps-nota { display:none }
.ps-compacto .ps-top .ps-btns { margin-left:auto; gap:.4em; flex:none }
.ps-compacto .ps-top .ps-fict { margin-left:.3em }
.ps-compacto .ps-top .ps-btn { height:2.15em; padding:0 .85em; font-size:.9em }
@media (max-width: 760px) {
  .ps-compacto .ps-top { flex-wrap:wrap; row-gap:.5em }
  .ps-compacto .ps-top .ps-btns { margin-left:0 }
  .ps-compacto .ps-top .ps-fict { margin-left:auto }
}
.ps-compacto .ps-time { display:none }
