/* Pulso Survey v5 · micro-interacciones globales, auditoría por rol, barra de filtros y biblioteca.
   Paleta suave del proyecto (nada de alto contraste). Todo movimiento vive dentro de «prefers-reduced-motion: no-preference»:
   con reducción de movimiento quedan solo los cambios de color estáticos y el foco visible. */
:root{
  --realce:color-mix(in srgb,var(--violeta) 7%,var(--blanco));
  --realce2:color-mix(in srgb,var(--violeta) 13%,var(--blanco));
  --borde-realce:color-mix(in srgb,var(--violeta) 38%,var(--linea));
  --sombra-leve:0 2px 8px rgba(30,40,80,.08);
}
:root[data-tema=oscuro]{ --sombra-leve:0 4px 14px rgba(0,0,0,.3); }

/* La entrada animada de v3 usaba «both» y dejaba un transform fijo que anulaba el realce de las tarjetas: con «backwards» el estado final vuelve a las reglas normales. */
main>*,.grid-cards>*{animation-fill-mode:backwards}

/* ---------- 1. Realce al pasar el mouse y al enfocar (color; sin movimiento) ---------- */
table.tabla tbody tr:not(.sel):not(.alerta):hover td,table.tabla tbody tr:not(.sel):not(.alerta):focus-within td{background:var(--realce)}
.fb-item:hover,.cola-item:hover{background:var(--realce)}
.opcion:not(:has(input:checked)):hover,.opc:not(:has(input:checked)):hover{background:var(--realce);border-color:var(--borde-realce)}
.fbtn>button:not(.on):hover,.menu button:hover,.tabs button:hover,.subtabs button:hover,.vias button:hover,.lista-usr button:hover,.btn.neutro:hover:not(:disabled){background:var(--realce2)}
.btn.sec:hover:not(:disabled){background:var(--realce2)}
.sino button:not([aria-pressed=true]):hover:not(:disabled),.escala label:not(:has(input:checked)):hover,.cell-sel:not([aria-checked=true]):hover:not(:disabled),.stepper button:hover{background:var(--realce2)}
button.chip:hover,.pill[role=button]:hover,.fb-chip:hover{background:var(--realce2)}
.card-est:hover,.card-cliente:hover,.card-accion:hover,.bib-card:hover,.res-op:hover{border-color:var(--borde-realce)}
.card-est,.card-cliente{cursor:pointer}
.card-est:focus-within,.card-cliente:focus-within,.card-accion:focus-visible,.bib-card:focus-within,.res-op:focus-visible{border-color:var(--violeta)}
.icon-btn:focus-visible,.grupo-link:focus-visible,.btn:focus-visible,.fbtn>button:focus-visible{background-color:var(--realce)}
.btn:not(.neutro):not(.sec):not(.peligro):focus-visible{background-color:var(--azul-h)}

/* ---------- 2. Elevación, transición 150–200 ms y presionado (solo con movimiento permitido) ---------- */
@media (prefers-reduced-motion:no-preference){
  .card-est,.card-cliente,.card-accion,.bib-card,.res-op,.lista-usr button,.fb-item,.q-card,.fb-chip,.tmin,.bib-seg button,.bib-nodo,.bib-chev,.fb-vista-fila button,.item-sc{
    transition:transform var(--t-rapido) var(--ease),box-shadow var(--t-normal) var(--ease),border-color var(--t-rapido) var(--ease),background-color var(--t-rapido) var(--ease),color var(--t-rapido) var(--ease)}
  .card-est:hover,.card-cliente:hover,.card-accion:hover,.bib-card:hover,.res-op:hover,.card-est:focus-within,.card-cliente:focus-within,.card-accion:focus-visible,.bib-card:focus-within{transform:translateY(-2px);box-shadow:var(--sombra2)}
  .lista-usr button:hover,.fb-item:hover{transform:translateY(-1px);box-shadow:var(--sombra-leve)}
  .btn,.fbtn>button,.menu button,.tabs button,.subtabs button,.vias button,.grupo-link,.icon-btn,.av-btn,.opcion,.opc,.sino button,.escala label,.cell-sel,.stepper button,.lat-btn,button.chip,.pill[role=button],.enlace-discreto,.fb-limpiar,.fb-vistas{
    transition:transform var(--t-rapido) var(--ease),box-shadow var(--t-rapido) var(--ease),background-color var(--t-rapido) var(--ease),border-color var(--t-rapido) var(--ease),color var(--t-rapido) var(--ease)}
  .btn:hover:not(:disabled):not([aria-busy=true]){transform:translateY(-1px);box-shadow:var(--sombra-leve)}
  .fbtn>button:hover,.icon-btn:hover,.grupo-link:hover,.opcion:hover,.opc:hover,.sino button:hover:not(:disabled),.cell-sel:hover:not(:disabled){transform:translateY(-1px)}
  .menu button:hover,.tabs button:hover,.subtabs button:hover,.vias button:hover,.tabla tbody tr:hover td{transform:none}
  /* presionado: escala 0.98 en todo lo clicable */
  .btn:active:not(:disabled):not([aria-busy=true]),.fbtn>button:active,.menu button:active,.tabs button:active,.subtabs button:active,.vias button:active,.grupo-link:active,.icon-btn:active,.av-btn:active,.opcion:active,.opc:active,.sino button:active:not(:disabled),.escala label:active,.cell-sel:active:not(:disabled),.stepper button:active,
  .lat-btn:active:not(:disabled),button.chip:active,.pill[role=button]:active,.fb-chip:active,.fb-vistas:active,.bib-seg button:active,.tmin:active,.lista-usr button:active,.fb-item:active{transform:scale(.98);box-shadow:none}
  .card-est:active,.card-cliente:active,.card-accion:active,.bib-card:active,.res-op:active{transform:translateY(0) scale(.98);box-shadow:var(--sombra1)}
}

/* Con reducción de movimiento se anula también el desplazamiento de las reglas anteriores (v3): solo cambia el color. */
@media (prefers-reduced-motion:reduce){
  button:hover,button:active,a:hover,a:active,label:hover,label:active,.card-est,.card-cliente,.card-accion,.bib-card,.res-op,[role=button]:active{transform:none!important}
  .card-est:hover,.card-cliente:hover,.card-accion:hover,.bib-card:hover{box-shadow:var(--sombra1)!important}
}

/* ---------- 3. Barra de filtros única ---------- */
.fbarra{display:flex;flex-direction:column;gap:10px}
.fb-fila{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
input.fb-texto{flex:1 1 220px;width:auto;max-width:320px;min-width:180px}
.fb-fecha{display:inline-flex;gap:8px;align-items:center;flex-wrap:wrap}
.fb-rango{display:inline-flex;gap:6px;align-items:center}.fb-rango input{width:auto;min-width:0}
.fb-chips{display:flex;flex-wrap:wrap;gap:6px 8px;align-items:center}
.fb-chip{display:inline-flex;align-items:center;gap:6px;min-height:34px;padding:0 10px 0 13px;border:1px solid var(--borde-realce);border-radius:var(--r-chip);background:var(--violeta-bg);color:var(--violeta-tx);font-size:13px;font-weight:600;max-width:100%}
.fb-chip span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:46ch}
.fb-limpiar{border:0;background:transparent;color:var(--tinta2);text-decoration:underline;min-height:34px;padding:0 8px;font-size:13px;border-radius:var(--r-chip)}
.fb-limpiar:hover{color:var(--violeta-tx);background:var(--realce)}
.fb-vistas{display:inline-flex;align-items:center;gap:8px}
.fb-n{background:var(--violeta-bg);color:var(--violeta-tx);border-radius:var(--r-pill);font-size:11px;padding:1px 7px;font-weight:700}
.fb-menu{min-width:270px;right:0;left:auto;padding:6px}
.fb-vista-fila{display:flex;align-items:center}.fb-vista-fila>button:first-child{flex:1}
.fb-vista-x{width:40px;flex:none!important;display:inline-flex;align-items:center;justify-content:center;color:var(--tinta2);padding:0!important}
.fb-guardar{border-top:1px solid var(--linea2)!important;margin-top:4px;font-weight:600;color:var(--acento)}
.fb-guardar:disabled{color:var(--tinta2);opacity:.6;cursor:not-allowed}

/* ---------- 4. Auditoría por rol ---------- */
.aud-meta{display:flex;flex-wrap:wrap;gap:10px 26px;padding:12px 18px;background:var(--papel2);border:1px solid var(--linea);border-radius:var(--r-card)}
.aud-meta-it{display:flex;flex-direction:column;gap:1px;min-width:0}
.aud-meta-k{font-family:var(--f-m);font-size:11px;text-transform:uppercase;letter-spacing:.03em;color:var(--tinta2)}
.aud-meta-v{font-weight:600;font-size:14px;overflow-wrap:anywhere}
.aud-nota{position:sticky;top:61px;z-index:20;background:var(--blanco);border:1px solid var(--linea);border-radius:var(--r-card);padding:10px 18px;box-shadow:var(--sombra1);display:flex;flex-direction:column;gap:8px}
.aud-nota-fila{display:grid;grid-template-columns:auto minmax(0,1fr) minmax(120px,1.2fr);gap:4px 24px;align-items:center}
.aud-nota-pct .pct{font-family:var(--f-t);font-weight:800;font-size:34px;line-height:1.05;color:var(--tinta)}
.aud-nota-est b{font-size:16px}
.aud-nota-barra .barra{margin:0}
.aud-nota .aviso-critico{margin:0}
.aud-grid.compacto{grid-template-columns:minmax(300px,1fr) minmax(360px,1.5fr)}
@media(max-width:900px){.aud-grid.compacto{grid-template-columns:1fr}.aud-nota-fila{grid-template-columns:auto minmax(0,1fr)}.aud-nota-barra{grid-column:1/-1}}
.aud-col{display:flex;flex-direction:column;gap:20px;min-width:0}
.aud-inferior{position:fixed;left:0;right:0;bottom:0;z-index:25;background:var(--blanco);border-top:1px solid var(--linea);box-shadow:0 -6px 22px rgba(30,40,80,.10);padding:10px clamp(16px,3vw,32px);display:flex;flex-wrap:wrap;gap:8px 18px;align-items:center;justify-content:space-between}
:root[data-tema=oscuro] .aud-inferior{box-shadow:0 -6px 22px rgba(0,0,0,.35)}
.aud-inf-izq{display:flex;gap:6px 16px;align-items:center;flex-wrap:wrap;min-width:0;flex:1 1 240px}
.aud-inf-der{display:flex;gap:10px;flex-wrap:wrap;justify-content:flex-end}
.aud-pend{overflow-wrap:anywhere}
main.con-barra-inf{padding-bottom:132px}
body:has(.aud-inferior:not([hidden])) #toasts{bottom:96px}
@media(max-width:620px){.aud-inf-izq .atajos{display:none}.aud-inf-der{width:100%}.aud-inf-der .btn{flex:1 1 140px}main.con-barra-inf{padding-bottom:168px}.aud-nota{top:62px;padding:8px 12px}.aud-nota-pct .pct{font-size:28px}}
.obs-aud{width:100%}
.resultado .obs-aud{background:var(--navy);color:var(--navy-texto);border-color:var(--navy-linea)}
.item-sc.activo{outline:2px solid var(--borde-realce);outline-offset:-2px;background:var(--realce)}

/* ---------- 5. Biblioteca ---------- */
.bib-layout{display:grid;grid-template-columns:250px minmax(0,1fr);gap:20px;align-items:start}
.bib-layout:has(.bib-previa:not([hidden])){grid-template-columns:250px minmax(0,1fr) minmax(300px,360px)}
@media(max-width:1240px){.bib-layout:has(.bib-previa:not([hidden])){grid-template-columns:230px minmax(0,1fr)}.bib-previa{grid-column:1/-1;order:3}}
@media(max-width:860px){.bib-layout,.bib-layout:has(.bib-previa:not([hidden])){grid-template-columns:minmax(0,1fr)}}
.bib-centro{display:flex;flex-direction:column;gap:14px;min-width:0}
.bib-zona{display:flex;flex-direction:column;gap:14px;min-width:0}
.bib-barra-vista{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap}
.bib-seg{display:inline-flex;border:1px solid var(--control);border-radius:var(--r-pill);overflow:hidden;background:var(--blanco)}
.bib-seg button{display:inline-flex;align-items:center;gap:6px;border:0;background:transparent;min-height:40px;padding:0 14px;font-weight:600;font-size:14px;color:var(--tinta2)}
.bib-seg button[aria-pressed=true]{background:var(--violeta-bg);color:var(--violeta-tx)}
.bib-seg button:not([aria-pressed=true]):hover{background:var(--realce)}
.bib-tarjetas{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:14px}
.bib-card{display:flex;flex-direction:column;gap:10px;background:var(--blanco);border:1px solid var(--linea2);border-radius:var(--r-card);padding:16px;box-shadow:var(--sombra1);min-width:0}
.bib-card.sel{border-color:var(--violeta);box-shadow:0 0 0 1px var(--violeta),var(--sombra1)}
.bib-card.arrastrando{opacity:.55}
.bib-card-cab{display:flex;gap:8px;align-items:flex-start;justify-content:space-between}
.bib-card-tit,.bib-enlace{border:0;background:transparent;padding:0;text-align:left;font-weight:700;font-size:16px;color:var(--tinta);font-family:var(--f-t);overflow-wrap:anywhere}
.bib-card-tit:hover,.bib-enlace:hover{color:var(--violeta-tx);text-decoration:underline}
.bib-enlace{font-size:15px;min-height:32px}
.bib-card-desc{margin:0;color:var(--tinta2);font-size:13px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.bib-etqs{display:flex;flex-wrap:wrap;gap:6px}
.bib-card-pie{display:flex;justify-content:space-between;align-items:center;gap:8px;flex-wrap:wrap;margin-top:auto}
.bib-ruta{display:inline-flex;align-items:center;gap:6px;min-width:0}
.bib-fav{flex:none;width:40px;height:40px;border:0;border-radius:50%;background:transparent;color:var(--control);display:inline-flex;align-items:center;justify-content:center;margin:-6px -6px 0 0}
.bib-fav:hover{background:var(--realce2);color:var(--warn)}
.bib-fav.on{color:var(--warn)}.bib-fav.on svg{fill:currentColor}
.bib-det{border-radius:var(--r-input)}
.bib-det>summary{cursor:pointer;display:flex;align-items:center;gap:8px;min-height:40px;font-weight:700;list-style:none;border-radius:var(--r-input);padding:0 4px}
.bib-det>summary::-webkit-details-marker{display:none}
.bib-det>summary::after{content:"";margin-left:auto;width:8px;height:8px;border-right:2px solid var(--tinta2);border-bottom:2px solid var(--tinta2);transform:rotate(45deg) translateY(-2px)}
.bib-det[open]>summary::after{transform:rotate(-135deg) translateY(-2px)}
.bib-det>summary:hover{background:var(--realce)}
@media(prefers-reduced-motion:no-preference){.bib-det>summary::after{transition:transform var(--t-rapido) var(--ease)}}
.bib-lado{padding:10px 12px}
.bib-arbol,.bib-arbol ul{list-style:none;margin:0;padding:0}.bib-arbol ul{padding-left:14px;border-left:1px solid var(--linea2);margin-left:13px}
.bib-nodo{display:flex;align-items:center;border-radius:var(--r-input)}
.bib-nodo.sel{background:var(--violeta-bg)}.bib-nodo.sel .bib-nombre{color:var(--violeta-tx);font-weight:700}
.bib-nodo.sobre{outline:2px dashed var(--violeta);outline-offset:-2px;background:var(--realce2)}
.bib-nodo:not(.sel):hover{background:var(--realce)}
.bib-chev{flex:none;width:28px;height:40px;border:0;background:transparent;color:var(--tinta2);display:inline-flex;align-items:center;justify-content:center;padding:0;border-radius:var(--r-peq)}
.bib-chev.vacio{pointer-events:none}.bib-chev svg{transition:none}
.bib-chev.abierto svg{transform:rotate(90deg)}
@media(prefers-reduced-motion:no-preference){.bib-chev svg{transition:transform var(--t-rapido) var(--ease)}}
.bib-nombre{flex:1;min-width:0;display:flex;align-items:center;gap:8px;text-align:left;border:0;background:transparent;min-height:40px;padding:0 8px 0 2px;border-radius:var(--r-peq);font-size:14px;color:var(--tinta)}
.bib-nom-t{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.bib-cnt{font-family:var(--f-m);font-size:11px;color:var(--tinta2);background:var(--mute-bg);border-radius:var(--r-pill);padding:1px 7px}
.bib-ayuda{padding:8px 4px 2px}
.bib-previa{position:sticky;top:76px;display:flex;flex-direction:column;gap:10px;border-radius:var(--r-card);max-height:calc(100vh - 96px);overflow:auto}
.bib-prev-cab{display:flex;justify-content:space-between;gap:8px;align-items:flex-start}
.bib-prev-lista{margin:6px 0 0;padding-left:20px;display:flex;flex-direction:column;gap:4px;font-size:13px}
.bib-prev-acc{margin-top:4px}
.bib-nota-v{padding:2px 8px;background:var(--papel2);border:1px solid var(--linea2)}
@media(max-width:860px){.bib-previa{position:static;max-height:none}}

/* ======================= Pasada 2: encuestas, auditoría con audio, calibración ======================= */
/* Zona de arrastrar y soltar del audio */
.drop-wrap{display:flex;flex-direction:column;gap:8px}
.drop{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;text-align:center;padding:26px 16px;border:2px dashed var(--linea);border-radius:var(--r-card);background:var(--papel2);color:var(--tinta2);cursor:pointer;transition:border-color var(--t-rapido),background var(--t-rapido)}
.drop b{color:var(--tinta);font-weight:600}
.drop svg{color:var(--violeta-tx);margin-bottom:4px}
.drop:hover,.drop:focus-visible{border-color:var(--borde-realce);background:var(--realce)}
.drop.sobre{border-color:var(--violeta);background:var(--realce2)}
.drop.subiendo{opacity:.65;cursor:progress;pointer-events:none}
.drop-estado:empty{display:none}
details.reemplazar{margin-top:6px}
/* Hallazgos */
.sub-h{font-size:14px;margin:14px 0 6px;color:var(--tinta);font-weight:600}
.marcas-lista{display:flex;flex-direction:column;gap:6px}
.marca-fila{display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding:8px 10px;border:1px solid var(--linea2);border-radius:var(--r-input);background:var(--blanco)}
.marca-fila .tmin{font-variant-numeric:tabular-nums;border:1px solid var(--linea);background:var(--papel2);color:var(--violeta-tx);border-radius:var(--r-peq);padding:3px 9px;cursor:pointer;font:inherit;font-weight:600}
.marca-fila .tmin:hover{background:var(--realce2);border-color:var(--borde-realce)}
.marca-nota{flex:1 1 160px;min-width:0;overflow-wrap:anywhere}
.marca-acc{margin-left:auto}
#atajos-audio{margin-top:6px}
kbd{font:inherit;font-size:11px;padding:1px 6px;border:1px solid var(--linea);border-bottom-width:2px;border-radius:6px;background:var(--papel2);color:var(--tinta2);margin:0 1px}
/* Ítems de tipo texto / lista, ayudas y comentario obligatorio */
.item-sc.item-libre{flex-direction:column;align-items:stretch;gap:8px}
.item-valor{width:100%;font:inherit}
.item-sc.falta-com{border-left:3px solid var(--warn-bd);padding-left:9px}
.aviso-com{color:var(--warn);margin-top:2px}
.ayuda-item{margin-top:4px}
.ayuda-link{display:inline-flex;align-items:center;gap:4px;border:0;background:none;padding:2px 0;font:inherit;font-size:12px;color:var(--violeta-tx);cursor:pointer}
.ayuda-link:hover{text-decoration:underline}
.ayuda-cuerpo{margin-top:4px;padding:8px 10px;background:var(--info-bg);color:var(--info-tx);border-radius:var(--r-input);font-size:13px}
.ayuda-cuerpo a{color:inherit;font-weight:600}
/* Constructor de scorecard: opciones por ítem */
.it-opc-cuerpo{display:flex;flex-direction:column;gap:10px;padding:10px 4px}
.fila-campos{display:flex;gap:12px;flex-wrap:wrap}.fila-campos>.campo{flex:1 1 220px}
/* Decisión al abrir una auditoría */
.aud-decision{max-width:720px}
/* Lista de encuestas: selección y barra de lote */
.lote-barra{position:sticky;top:72px;z-index:6;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px;padding:10px 14px;border:1px solid var(--borde-realce);border-radius:var(--r-card);background:var(--violeta-bg);color:var(--tinta);box-shadow:var(--sombra-leve)}
.lote-barra[hidden]{display:none}
table.tabla tbody tr.fila-sel td{background:var(--sel-bg)}
.sel-fila,#sel-todas{width:18px;height:18px;accent-color:var(--violeta)}
.acc-menu{min-width:230px;max-width:calc(100vw - 16px);z-index:90;padding:6px;background:var(--blanco);border:1px solid var(--linea);border-radius:var(--r-input);box-shadow:var(--sombra-menu);display:flex;flex-direction:column}
.acc-menu button{text-align:left;border:0;background:none;padding:9px 12px;border-radius:var(--r-peq);font:inherit;color:var(--tinta);cursor:pointer}
.acc-menu button.peligro{color:var(--err)}
.acc-sep{border:0;border-top:1px solid var(--linea2);margin:4px 0;width:100%}
.acc-btn svg{margin-left:2px}
.lista-fallos{margin:0;padding-left:18px;font-size:13px;max-height:240px;overflow:auto}
/* Calibración */
.cal-acciones{margin:2px 0 6px}
.cal-elegir{max-height:300px;overflow:auto}
.cal-modal{display:flex;flex-direction:column;gap:12px}
.cal-grid .aud-col{display:flex;flex-direction:column;gap:14px;min-width:0}
@media (max-width:760px){.lote-barra{top:64px}}
.enc-edit,.enc-detalle{display:flex;flex-direction:column;gap:12px}
@media (prefers-reduced-motion:reduce){.drop{transition:none}}

/* ---- pasada 3: gráficos, paneles, reportes, Academia, campana ---- */
:root { --g-barra: #7B6FE0; --g-cob: #3B86C4; --g-cal: #2F9B73; }
:root[data-tema=oscuro] { --g-barra: #A59BFF; --g-cob: #86BDF2; --g-cal: #79D6AD; }
.gr { margin: 0; }
.gr-cab { display: flex; justify-content: space-between; align-items: center; gap: 10px; margin-bottom: 6px; }
.gr-caja { position: relative; }
.gr-svg { width: 100%; height: auto; display: block; }
.gr-grid { stroke: var(--linea2); stroke-width: 1; }
.gr-eje { fill: var(--tinta2); font-size: 14px; font-family: var(--mono, ui-monospace, monospace); }
.gr-linea { fill: none; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.gr-punto { stroke: var(--blanco); stroke-width: 2; }
.gr-zonas { position: absolute; inset: 0 0 0 0; }
.gr-zona { position: absolute; top: 0; bottom: 0; background: transparent; border: 0; padding: 0; cursor: default; }
.gr-zona:hover, .gr-zona:focus-visible { background: color-mix(in srgb, var(--violeta) 8%, transparent); outline: none; }
.gr-zona:focus-visible { box-shadow: inset 0 0 0 2px var(--violeta); }
.gr-tip { position: absolute; top: 2px; z-index: 2; background: var(--tinta); color: var(--blanco); font-size: 12px; padding: 4px 8px; border-radius: 6px; pointer-events: none; white-space: nowrap; }
.gr-tip[hidden] { display: none; }
.pan-graf { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 420px), 1fr)); gap: 18px; }
.pan-rank { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 340px), 1fr)); gap: 18px; }
.pan-zona, .rep-zona, .acad-zona { display: flex; flex-direction: column; gap: 18px; }
.filtros-fila { display: flex; flex-wrap: wrap; gap: 12px 16px; align-items: flex-end; }
.filtros-fila .campo { min-width: 150px; }
.rep-cols { border: 1px solid var(--linea); border-radius: 10px; padding: 10px 12px; margin: 10px 0; }
.rep-cols-lista { display: grid; grid-template-columns: repeat(auto-fill, minmax(190px, 1fr)); gap: 4px 12px; margin-top: 6px; }
.rep-cols-bt { display: flex; gap: 8px; }
.rep-resumen { margin: 0 0 8px; }
.chk-r { display: inline-flex; align-items: center; gap: 6px; font-weight: 400; }
.chk-r input { width: 18px; height: 18px; margin: 0; }
.acad-item { border-top: 1px solid var(--linea2); padding: 12px 0; }
.acad-cab { display: flex; flex-wrap: wrap; gap: 8px 12px; align-items: center; }
.acad-recs { margin: 6px 0 10px; padding-left: 18px; }
.acad-preg { border: 1px solid var(--linea); border-radius: 10px; padding: 10px; margin: 8px 0; display: flex; flex-direction: column; gap: 6px; }
.acad-op { display: flex; gap: 8px; align-items: center; }
.acad-op input[type=text] { flex: 1; }
.campana-wrap { position: relative; }
.campana-n { position: absolute; top: -2px; right: -2px; min-width: 16px; height: 16px; padding: 0 4px; border-radius: 8px; background: var(--violeta); color: #fff; font-size: 10px; line-height: 16px; text-align: center; }
.campana-menu { position: absolute; right: 0; top: calc(100% + 8px); width: min(380px, calc(100vw - 24px)); max-height: 70vh; overflow: auto; background: var(--blanco); border: 1px solid var(--linea); border-radius: 12px; box-shadow: 0 10px 30px rgba(30, 40, 80, .15); z-index: 60; }
.campana-cab { display: flex; justify-content: space-between; align-items: center; gap: 8px; flex-wrap: wrap; padding: 10px 12px; border-bottom: 1px solid var(--linea2); }
.campana-lista { list-style: none; margin: 0; padding: 0; }
.campana-lista li { border-bottom: 1px solid var(--linea2); }
.campana-lista li.nueva { background: var(--violeta-bg); }
.campana-item { display: flex; flex-direction: column; gap: 2px; width: 100%; text-align: left; background: none; border: 0; padding: 10px 12px; cursor: pointer; color: inherit; font: inherit; }
.campana-item:hover, .campana-item:focus-visible { background: var(--mute-bg); }
.campana-vacio { padding: 14px 12px; margin: 0; }
.campana-pref, .pref-fila { display: flex; flex-direction: column; gap: 10px; }
.pref-fila { flex-direction: row; justify-content: space-between; align-items: center; gap: 12px; }
.pat-prev { margin-top: 8px; }
.pat-ok { color: var(--ok-tx); } .pat-mal { color: var(--err-tx); }
@media (max-width: 640px) { .campana-menu { position: fixed; left: 12px; right: 12px; top: 64px; width: auto; } }
@media (max-width: 1560px) and (min-width: 901px) { .como-wrap > label { display: none; } .top-der { gap: 4px; } }
.ficha-datos { display: grid; grid-template-columns: max-content 1fr; gap: 2px 14px; margin: 10px 0 0; font-size: 14px; }
.ficha-datos dt { color: var(--tinta2); text-transform: capitalize; } .ficha-datos dd { margin: 0; }
.asist-pasos { display: flex; flex-wrap: wrap; gap: 6px 14px; list-style: none; padding: 0; margin: 0 0 12px; color: var(--tinta2); font-size: 14px; }
.asist-pasos li[aria-current=step] { color: var(--violeta-tx); font-weight: 600; } .asist-pasos li.hecho { color: var(--ok-tx); }
.item-sc.item-libre .txt{flex:0 0 auto}

/* Revisión v5: en móvil la barra inferior de la auditoría ocupaba casi un cuarto de la pantalla; botones más bajos en dos columnas. */
@media (max-width: 620px) {
  .aud-inferior { padding: 8px 12px; gap: 4px 8px; }
  .aud-inf-der { display: grid; grid-template-columns: 1fr 1fr; gap: 6px; }
  .aud-inf-der .btn { min-height: 38px; padding: 6px 10px; font-size: 14px; flex: none; }
  main.con-barra-inf { padding-bottom: 150px; }
}
