/* Pulso Survey · base estructural (los colores viven en tokens.css; el acabado moderno en v3.css). */
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--papel);color:var(--tinta);font:15px/1.45 var(--f-c)}
h1,h2,h3{font-family:var(--f-t);margin:0;letter-spacing:-.01em;color:var(--tinta)}
h1{font-weight:800;font-size:clamp(26px,4vw,34px);letter-spacing:-.02em}
h2{font-weight:700;font-size:17px} h3{font-weight:700;font-size:15px}
button,input,select,textarea{font:inherit;color:inherit}
button{cursor:pointer}
.saltar{position:absolute;left:-999px;top:0;background:var(--tinta);color:var(--papel);outline:2px solid var(--foco);padding:10px 14px;z-index:99}.saltar:focus{left:8px;top:8px}
:focus-visible{outline:3px solid var(--foco);outline-offset:2px}
[hidden]{display:none!important}
.mono{font-family:var(--f-m)} .eyebrow{font-family:var(--f-m);font-size:12px;color:var(--tinta2);text-transform:uppercase;letter-spacing:.02em}
.suave{color:var(--tinta2)} .peq{font-size:12px} .num{font-variant-numeric:tabular-nums;font-family:var(--f-m)}
.ok{color:var(--ok)} .warn{color:var(--warn)} .err{color:var(--err)} .azul{color:var(--acento)}

/* ---- Cabecera ---- */
.top{background:var(--navy);color:var(--navy-texto);display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px 16px;padding:0 clamp(16px,3vw,32px)}
.marca{display:flex;align-items:center;gap:14px;padding:12px 0;min-width:0}
.marca b{font-family:var(--f-t);font-weight:800;font-size:18px;letter-spacing:-.01em}.marca b span{font-weight:500;color:var(--navy-suave)}
.marca .sep{width:1px;height:20px;background:var(--navy-linea)} .marca .est{font-size:13px;color:var(--navy-suave);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:36vw}
.comoWrap{display:flex;align-items:stretch;gap:2px;flex-wrap:wrap}
.comoWrap .lbl{align-self:center;font-size:12px;color:var(--navy-suave);margin-right:6px}
.top button.tabrol{border:0;background:transparent;color:var(--navy-suave);font-weight:600;font-size:14px;padding:0 12px;min-height:48px;min-width:44px;border-bottom:3px solid transparent}
.top button.tabrol[aria-selected=true]{color:var(--sobre);border-bottom-color:var(--cian)}
.top select{background:var(--navy);color:var(--navy-texto);border:1px solid var(--navy-linea);min-height:44px;padding:0 8px;margin:2px 0 2px 6px;max-width:40vw}
.aviso-lectura{background:var(--warn-bg);color:var(--warn-tx);border-bottom:1px solid var(--warn-bd);padding:8px clamp(16px,3vw,32px);font-size:13px}
.sub{background:var(--papel2);border-bottom:1px solid var(--linea);padding:0 clamp(16px,3vw,32px);display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px 16px}
.sub nav{display:flex;gap:4px 22px;flex-wrap:wrap}
.sub nav button{border:0;background:transparent;padding:0;min-height:48px;font-weight:600;font-size:14px;color:var(--tinta2);border-bottom:2px solid transparent}
.sub nav button[aria-selected=true]{color:var(--acento);border-bottom-color:var(--acento)}
.yo{display:flex;align-items:center;gap:10px;font-size:13px;color:var(--tinta2);flex-wrap:wrap}
.avatar{width:28px;height:28px;border-radius:50%;background:var(--azul);color:var(--sobre);display:inline-flex;align-items:center;justify-content:center;font-size:12px;font-weight:700}
.yo select{width:auto;max-width:230px}
.yo button{min-height:44px;padding:0 10px;border:1px solid var(--control);background:var(--blanco);color:var(--tinta)}
main{padding:clamp(18px,3vw,28px) clamp(16px,3vw,32px) 48px;max-width:1440px;margin:0 auto;display:flex;flex-direction:column;gap:22px;min-width:0}

/* ---- Bloques ---- */
.cab{display:flex;flex-wrap:wrap;gap:16px 28px;align-items:flex-end;justify-content:space-between}
.cifras{display:flex;gap:12px 32px;flex-wrap:wrap}
.cifra .v{font-family:var(--f-t);font-weight:800;font-size:clamp(26px,4vw,36px);color:var(--acento);line-height:1}.cifra .l{font-size:12px;color:var(--tinta2);margin-top:4px}
.nota-lat{font-size:13px;color:var(--tinta2);border-left:3px solid var(--cian);padding:4px 0 4px 12px}
.fila{display:flex;flex-wrap:wrap;gap:24px;align-items:flex-start}.fila>*{min-width:0}
.card{background:var(--blanco);border:1px solid var(--linea);padding:clamp(16px,2.5vw,24px)}
.card.p{border-top:4px solid var(--azul)} .card.s{background:var(--papel2)}
.card h2{margin-bottom:6px}
.sep-t{border-top:1px solid var(--linea2);padding-top:14px}
.vacio{padding:22px;text-align:center;color:var(--tinta2);border:1px dashed var(--control);background:var(--papel2)}
.banda{display:flex;flex-wrap:wrap;gap:14px;align-items:center;justify-content:space-between;background:var(--papel2);border:1px solid var(--linea);padding:14px 16px}
.nota{font-size:13px;color:var(--tinta2);border-left:3px solid var(--control);padding:2px 0 2px 12px}
.msg{padding:12px 14px;font-size:14px;border-left:4px solid}.msg.ok{background:var(--ok-bg);border-color:var(--ok);color:var(--ok-tx)}.msg.warn{background:var(--warn-bg);border-color:var(--warn);color:var(--warn-tx)}.msg.err{background:var(--err-bg);border-color:var(--err);color:var(--err-tx)}.msg.info{background:var(--info-bg);border-color:var(--azul);color:var(--info-tx)}

/* ---- Botones y campos ---- */
.btn{border:1px solid var(--azul);background:var(--azul);color:var(--sobre);font-weight:600;padding:10px 18px;min-height:44px;font-size:14px}
.btn:hover:not(:disabled){background:var(--azul-h)}.btn.sec{background:var(--blanco);color:var(--acento)}.btn.sec:hover:not(:disabled){background:var(--info-bg)}
.btn.neutro{background:var(--blanco);color:var(--tinta);border-color:var(--control)}.btn.neutro:hover:not(:disabled){background:var(--mute-bg)}
.btn.peligro{background:var(--blanco);color:var(--err);border-color:var(--err)}.btn.grande{font-size:16px;padding:14px 28px;min-height:48px}.btn.mini{min-height:44px;padding:6px 12px}
.btn:disabled,.btn[aria-disabled=true]{opacity:.5;cursor:not-allowed}
.btn.activo{background:var(--azul);color:var(--sobre);border-color:var(--azul)}
.grupo{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
label.campo{display:flex;flex-direction:column;gap:4px;font-size:13px;font-weight:600;color:var(--tinta)}
label.campo small{font-weight:400;color:var(--tinta2)}
input[type=text],input[type=number],input[type=date],input[type=password],input[type=email],input[type=search],input[type=tel],select,textarea{border:1px solid var(--control);background:var(--blanco);padding:9px 10px;min-height:44px;font-weight:400;width:100%;max-width:100%}
textarea{min-height:88px;resize:vertical} input[type=checkbox],input[type=radio]{width:22px;height:22px;accent-color:var(--acento);margin:0}
.opcion{display:flex;align-items:center;gap:10px;min-height:44px;padding:4px 10px;border:1px solid var(--control);background:var(--blanco);cursor:pointer;font-weight:500}
.opcion:has(input:checked){border-color:var(--azul);background:var(--info-bg)}
.opciones{display:flex;flex-wrap:wrap;gap:8px}
.err-campo{color:var(--err);font-size:12px;font-weight:500}
.stepper{display:inline-flex;align-items:center;gap:8px}.stepper strong{min-width:40px;text-align:center;font-family:var(--f-t);font-size:20px}
.stepper button{width:44px;height:44px;border:1px solid var(--control);background:var(--blanco);font-size:20px;line-height:1}
.filtros{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.fbtn{position:relative}.fbtn>button{border:1px solid var(--control);background:var(--blanco);padding:8px 14px;min-height:44px;font-size:14px;font-weight:500}
.fbtn>button.on{border-color:var(--azul);background:var(--info-bg);color:var(--acento);font-weight:600}
.menu{position:absolute;z-index:20;top:100%;left:0;min-width:200px;max-height:300px;overflow:auto;background:var(--blanco);border:1px solid var(--control);box-shadow:0 6px 18px rgba(7,31,74,.16)}
.menu button{display:block;width:100%;text-align:left;border:0;background:transparent;padding:10px 14px;min-height:44px}.menu button:hover,.menu button[aria-selected=true]{background:var(--info-bg)}

/* ---- Chips y barras ---- */
.chip{display:inline-block;font-size:12px;font-weight:600;padding:2px 8px;white-space:nowrap}
.chip.ok{background:var(--ok-bg);color:var(--ok)}.chip.warn{background:var(--warn-bg);color:var(--warn)}.chip.err{background:var(--err-bg);color:var(--err)}.chip.info{background:var(--info-bg);color:var(--acento)}.chip.mute{background:var(--mute-bg);color:var(--tinta2)}
.chip.mono{font-family:var(--f-m)}
.barra{position:relative;height:8px;background:var(--linea);margin:6px 0}.barra>i{display:block;height:100%;background:var(--azul)}.barra>b{position:absolute;top:-4px;bottom:-4px;width:2px;background:var(--tinta)}
.barra.ok>i{background:var(--ok)}.barra.warn>i{background:var(--warn)}.barra.err>i{background:var(--err)}
.fila-bar{margin:12px 0}.fila-bar .t{display:flex;justify-content:space-between;font-size:14px;gap:8px}.fila-bar .t span:last-child{font-family:var(--f-m);font-size:13px}

/* ---- Tablas ---- */
.scroll-x{overflow-x:auto;max-width:100%}
table.tabla{width:100%;border-collapse:collapse;background:var(--blanco);font-size:14px}
table.tabla caption{text-align:left;padding:0 0 8px;font-size:12px;color:var(--tinta2)}
table.tabla th{font-family:var(--f-m);font-size:11px;font-weight:500;color:var(--tinta2);text-transform:uppercase;letter-spacing:.03em;text-align:left;padding:10px 12px;background:var(--papel2);border-bottom:1px solid var(--linea);white-space:nowrap}
table.tabla td{padding:12px;border-bottom:1px solid var(--linea2);vertical-align:middle}
table.tabla tr.sel td{background:var(--sel-bg)} table.tabla tr.alerta td{background:var(--warn-bg)}
table.tabla td.num,table.tabla th.num{text-align:right;white-space:nowrap;font-family:var(--f-m)}
.tabla-wrap{border:1px solid var(--linea);background:var(--blanco)}
.paginacion{display:flex;gap:10px;align-items:center;justify-content:space-between;flex-wrap:wrap;padding:10px 12px;border-top:1px solid var(--linea2);font-size:13px}
.prio{font-family:var(--f-t);font-weight:800;font-size:22px}
.razon{display:flex;gap:6px;align-items:flex-start;font-size:13px;margin:2px 0}.razon i{width:7px;height:7px;border-radius:50%;background:var(--tinta3);margin-top:7px;flex:none}.razon.a i{background:var(--err)}.razon.a{color:var(--err)}

/* ---- Encuestador ---- */
.contacto-nombre{font-family:var(--f-t);font-weight:700;font-size:clamp(24px,3.4vw,30px);letter-spacing:-.01em}
.contacto-tel{font-family:var(--f-m);font-size:22px}
.cola-item{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px 0;border-top:1px solid var(--linea2)}.cola-item b{font-size:14px}
.pregunta{border-top:1px solid var(--linea2);padding:16px 0}.pregunta:first-child{border-top:0}
.pregunta .enun{font-weight:600;margin-bottom:8px}.pregunta .cod{font-family:var(--f-m);font-size:12px;color:var(--tinta2);margin-right:6px}
.escala{display:grid;grid-template-columns:repeat(11,minmax(0,1fr));gap:4px}.escala label{display:flex;align-items:center;justify-content:center;min-height:44px;border:1px solid var(--control);background:var(--blanco);font-weight:600;cursor:pointer;position:relative}
.escala input{position:absolute;opacity:0;inset:0;cursor:pointer;width:100%;height:100%}.escala label:has(input:checked){background:var(--azul);color:var(--sobre);border-color:var(--azul)}.escala label:has(input:focus-visible){outline:3px solid var(--foco);outline-offset:1px}
@media(max-width:560px){.escala{grid-template-columns:repeat(6,minmax(0,1fr))}}
.res-tip{display:flex;gap:10px;flex-wrap:wrap}.res-tip .btn{min-width:130px}
.fb-item{display:flex;width:100%;text-align:left;justify-content:space-between;align-items:center;gap:12px;padding:14px 12px;border:0;border-top:1px solid var(--linea2);background:transparent;min-height:56px}
.fb-item[aria-current=true]{background:var(--info-bg)}
.trio{display:grid;grid-template-columns:repeat(3,1fr);border:1px solid var(--linea2)}.trio>div{padding:12px 14px}.trio>div+div{border-left:1px solid var(--linea2)}.trio .g{font-family:var(--f-t);font-weight:800;font-size:clamp(20px,3vw,26px)}
.hallazgo{display:flex;gap:14px;align-items:flex-start;padding:10px 0;border-top:1px solid var(--linea2)}
.tmin{font-family:var(--f-m);font-size:13px;font-weight:600;background:var(--info-bg);color:var(--acento);padding:3px 8px;border:0;min-height:44px;min-width:44px}

/* ---- Auditoría ---- */
.aud-grid{display:grid;grid-template-columns:minmax(280px,1fr) minmax(320px,1.25fr) minmax(250px,.8fr);gap:22px;align-items:start}
@media(max-width:1180px){.aud-grid{grid-template-columns:1fr 1fr}.aud-grid>aside{grid-column:1/-1}}
@media(max-width:760px){.aud-grid{grid-template-columns:1fr}}
.resp-cap{padding:10px 0;border-top:1px solid var(--linea2)}.resp-cap .p{font-size:12px;color:var(--tinta2)}.resp-cap .v{font-weight:600}
.grupo-sc .ttl{display:flex;justify-content:space-between;font-family:var(--f-m);font-size:12px;color:var(--tinta2);padding:6px 0;border-bottom:2px solid var(--linea);margin-top:10px}
.item-sc{display:flex;justify-content:space-between;gap:12px;align-items:center;flex-wrap:wrap;padding:12px;border-bottom:1px solid var(--linea2)}.item-sc.noap{background:var(--mute-bg);opacity:.8}.item-sc .txt{flex:1 1 200px;min-width:0}
.item-sc .sub{font-size:12px;color:var(--tinta2);background:none;border:0;padding:0;display:block}
.sino{display:inline-flex}.sino button{min-width:52px;min-height:44px;border:1px solid var(--control);background:var(--blanco);font-weight:600;margin-left:-1px}
.sino button[aria-pressed=true].s{background:var(--ok);color:var(--sobre);border-color:var(--ok)}.sino button[aria-pressed=true].n{background:var(--err);color:var(--sobre);border-color:var(--err)}.sino button[aria-pressed=true].x{background:var(--tinta2);color:var(--sobre);border-color:var(--tinta2)}
.sino button:disabled{opacity:.45;cursor:not-allowed}
.resultado{background:var(--navy);color:var(--navy-texto);padding:22px;display:flex;flex-direction:column;gap:12px;position:sticky;top:12px}
.resultado .pct{font-family:var(--f-t);font-weight:800;font-size:56px;line-height:1}
.resultado .est{font-weight:700;font-size:16px}.resultado .barra{background:var(--navy-linea)}.resultado .barra b{background:var(--navy-texto)}
.resultado .stepper button{background:var(--navy);border-color:var(--navy-linea);color:var(--navy-texto)}.resultado .btn{background:transparent;border-color:var(--navy-suave);color:var(--navy-texto)}
.resultado select{background:var(--navy);color:var(--navy-texto);border-color:var(--navy-linea)}.resultado small,.resultado .suave{color:var(--navy-suave)}
.onda{display:flex;align-items:flex-end;gap:2px;height:56px;cursor:pointer}.onda span{flex:1;background:var(--onda);min-width:2px}.onda span.pas{background:var(--azul)}.onda span.marca{background:var(--err)}
.player{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.player .t{font-family:var(--f-m);font-size:13px}
.marca-fila{display:flex;gap:10px;align-items:center;font-size:13px;padding:6px 0;border-top:1px solid var(--linea2);flex-wrap:wrap}
dialog{border:1px solid var(--control);padding:0;max-width:min(560px,94vw);width:100%;background:var(--blanco);color:var(--tinta)}dialog::backdrop{background:rgba(7,31,74,.45)}
dialog .cuerpo{padding:22px;display:flex;flex-direction:column;gap:14px}dialog .acciones{display:flex;gap:10px;justify-content:flex-end;flex-wrap:wrap;padding:0 22px 22px}
#toasts{position:fixed;right:16px;bottom:16px;display:flex;flex-direction:column;gap:8px;z-index:60;max-width:calc(100vw - 32px)}
.toast{background:var(--navy);color:var(--navy-texto);padding:12px 16px;font-size:14px;border-left:4px solid var(--cian);max-width:420px}.toast.err{border-color:var(--err)}.toast.ok{border-color:var(--ok)}
.drop{border:2px dashed var(--control);background:var(--papel2);padding:22px;text-align:center}.drop.sobre{border-color:var(--azul);background:var(--info-bg)}
.pasos{display:flex;flex-wrap:wrap;gap:8px 24px}.paso{display:flex;gap:8px;align-items:center;font-size:14px}.paso b{width:26px;height:26px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-size:12px;background:var(--mute-bg);color:var(--tinta2)}
.paso.hecho b{background:var(--ok);color:var(--sobre)}.paso.act b{background:var(--azul);color:var(--sobre)}
.cell-sel{min-width:44px;min-height:44px;border:1px solid var(--control);background:var(--blanco);color:var(--sobre);font-weight:700}.cell-sel[aria-checked=true]{background:var(--azul);border-color:var(--azul)}.cell-sel:disabled{opacity:.6;cursor:not-allowed}
.login{max-width:520px;margin:6vh auto;padding:0 16px}.login .card{display:flex;flex-direction:column;gap:14px}
.lista-usr{display:grid;gap:8px}.lista-usr button{display:flex;justify-content:space-between;align-items:center;gap:10px;text-align:left;border:1px solid var(--control);background:var(--blanco);padding:10px 14px;min-height:52px}.lista-usr button:hover{border-color:var(--azul);background:var(--info-bg)}
.kbd{font-family:var(--f-m);font-size:12px;border:1px solid var(--control);padding:1px 5px;background:var(--papel2)}
.arbol-edit .cat{border:1px solid var(--linea);margin:10px 0;background:var(--papel2)}.arbol-edit .cat>header{padding:10px 12px;display:flex;gap:10px;flex-wrap:wrap;align-items:end;background:var(--mute-bg)}
.arbol-edit .blq{margin:10px 12px;border-left:3px solid var(--azul);padding-left:10px}.arbol-edit .it{display:grid;grid-template-columns:70px 1fr 80px 70px 70px;gap:8px;align-items:end;padding:8px 0;border-top:1px solid var(--linea2)}
@media(max-width:760px){.arbol-edit .it{grid-template-columns:1fr 1fr}}
/* tablas apiladas en celular */
@media(max-width:720px){
  .apilar thead{position:absolute;left:-9999px}.apilar,.apilar tbody,.apilar tr,.apilar td{display:block;width:100%}
  .apilar tr{border-bottom:2px solid var(--linea);padding:6px 0}.apilar td{border:0;padding:5px 12px;display:flex;justify-content:space-between;gap:12px;text-align:right}
  .apilar td::before{content:attr(data-l);font-family:var(--f-m);font-size:11px;color:var(--tinta2);text-transform:uppercase;text-align:left;flex:none;padding-top:3px}
  .apilar td.num{text-align:right}.apilar td[data-l=""]::before{display:none}
  .marca .est{display:none}.sub nav{gap:2px 14px}
}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;animation:none!important;transition:none!important}}

.franja-demo{background:var(--warn-tx);color:var(--warn-bg);font-size:13px;font-weight:600;text-align:center;padding:6px 16px;letter-spacing:.2px}
.player .btn{min-width:44px}

.enlace-discreto{align-self:center;font-size:12px;color:var(--tinta2);text-decoration:underline;padding:12px 8px;min-height:44px;display:inline-flex;align-items:center}
.enlace-discreto:hover{color:var(--acento)}
.hist{border-left:4px solid var(--cian);background:var(--info-bg);padding:10px 14px;font-size:14px;color:var(--info-tx)}
.hist.nuevo{border-color:var(--control);background:var(--mute-bg);color:var(--tinta2)}
.vias{display:flex;gap:4px;flex-wrap:wrap;border-bottom:1px solid var(--linea)}
.vias button{border:0;background:transparent;min-height:44px;padding:0 14px;font-weight:600;font-size:14px;color:var(--tinta2);border-bottom:3px solid transparent}
.vias button[aria-selected=true]{color:var(--acento);border-bottom-color:var(--acento)}
.carpetas-arbol button{display:block;width:100%;text-align:left;border:0;background:transparent;min-height:44px;padding:6px 10px;font-size:14px}
.carpetas-arbol button[aria-current=true]{background:var(--info-bg);color:var(--acento);font-weight:600}

a.saltar,a.saltar:visited{color:var(--papel);background:var(--tinta)}
