/* Pulso Survey v3 · acabado moderno (tarjetas 16, campos 12, píldoras 999, sombras suaves, Inter).
   Todo el movimiento se apaga con prefers-reduced-motion al final del archivo. */
body{font-family:var(--f-c);-webkit-font-smoothing:antialiased}
h1,h2,h3{color:var(--tinta);font-family:var(--f-t)}
h1{font-weight:700}
a{color:var(--cian)} :root[data-tema=oscuro] a{color:var(--acento)}
main{gap:20px}

/* ---- barra superior ---- */
.top{background:var(--top-bg);color:var(--tinta);border-bottom:1px solid var(--linea);position:sticky;top:0;z-index:30;gap:6px 18px;flex-wrap:nowrap;min-height:60px}
.top .marca{padding:10px 0;color:var(--violeta-tx);text-decoration:none;flex:none}
.top .marca b{color:var(--tinta);font-weight:800;font-size:18px}.top .marca b span{color:var(--violeta-tx);font-weight:600}
.logo-pulso{color:var(--violeta)}
.grupos{display:flex;gap:2px;align-items:center;flex:1;min-width:0;overflow-x:auto;scrollbar-width:none}
.grupos::-webkit-scrollbar{display:none}
.grupo-link{display:inline-flex;align-items:center;gap:8px;padding:0 14px;min-height:44px;border-radius:var(--r-pill);color:var(--tinta2);text-decoration:none;font-weight:600;font-size:14px;white-space:nowrap;transition:background var(--t-rapido) var(--ease),color var(--t-rapido) var(--ease)}
.grupo-link:hover{background:var(--hundido);color:var(--tinta)}
.grupo-link[aria-current=page]{background:var(--violeta-bg);color:var(--violeta-tx)}
.top-der{display:flex;align-items:center;gap:8px;flex:none}
.como-wrap{display:flex;align-items:center;gap:6px}
.top select{background:var(--blanco);color:var(--tinta);border:1px solid var(--linea);border-radius:var(--r-input);min-height:40px;margin:0;max-width:170px}
.icon-btn{width:44px;height:44px;border-radius:50%;border:0;background:transparent;color:var(--tinta2);display:inline-flex;align-items:center;justify-content:center;transition:background var(--t-rapido)}
.icon-btn:hover{background:var(--hundido);color:var(--tinta)}
.av-wrap{position:relative}
.av-btn{display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:0 8px 0 4px;border:1px solid var(--linea);border-radius:var(--r-pill);background:var(--blanco);color:var(--tinta);font-weight:600;font-size:14px}
.av-btn:hover{box-shadow:var(--sombra1)}
.avatar{background:var(--violeta);color:#fff}
.menu-usr{position:absolute;right:0;top:calc(100% + 8px);min-width:220px;background:var(--blanco);border:1px solid var(--linea);border-radius:var(--r-card);box-shadow:var(--sombra-menu);padding:8px;z-index:40;animation:entra var(--t-normal) var(--ease)}
.menu-usr-cab{display:flex;flex-direction:column;gap:2px;padding:8px 10px 10px;border-bottom:1px solid var(--linea2);margin-bottom:6px}
.menu-usr button{display:flex;align-items:center;gap:10px;width:100%;min-height:44px;padding:0 10px;border:0;border-radius:var(--r-input);background:transparent;color:var(--tinta);text-align:left}
.menu-usr button:hover{background:var(--hundido)}
.aviso-lectura{border-radius:0}
.marca-login{display:flex;justify-content:center;color:var(--violeta);margin-bottom:18px;font-size:22px}
.marca-login b{color:var(--tinta)}.marca-login b span{color:var(--violeta-tx)}

/* ---- migas, pestañas ---- */
.migas ol{display:flex;flex-wrap:wrap;gap:4px 6px;list-style:none;margin:0;padding:0;font-size:13px;color:var(--tinta2)}
.migas li{display:inline-flex;align-items:center;gap:6px}
.migas a{color:var(--tinta2);text-decoration:none;border-radius:6px;padding:2px 4px}.migas a:hover{color:var(--violeta-tx);text-decoration:underline}
.migas [aria-current=page]{color:var(--tinta);font-weight:600}
.tabs,.subtabs{display:flex;gap:4px;overflow-x:auto;scrollbar-width:none;border-bottom:1px solid var(--linea)}
.tabs button,.subtabs button{display:inline-flex;align-items:center;gap:8px;border:0;background:transparent;min-height:46px;padding:0 14px;color:var(--tinta2);font-weight:600;font-size:14px;white-space:nowrap;border-bottom:3px solid transparent;margin-bottom:-1px;border-radius:10px 10px 0 0;transition:color var(--t-rapido),background var(--t-rapido)}
.tabs button:hover,.subtabs button:hover{background:var(--hundido);color:var(--tinta)}
.tabs button[aria-selected=true],.subtabs button[aria-selected=true]{color:var(--violeta-tx);border-bottom-color:var(--violeta)}
.subtabs{border-bottom:0;gap:8px;padding:0}
.subtabs button{border:1px solid var(--linea);border-radius:var(--r-pill);background:var(--blanco);margin:0;min-height:40px}
.subtabs button[aria-selected=true]{background:var(--violeta-bg);border-color:var(--violeta)}
.sub-zona{display:flex;flex-direction:column;gap:20px;min-width:0}
.tab-panel{display:flex;flex-direction:column;gap:20px;min-width:0}

/* ---- tarjetas, botones, campos ---- */
.card{border-radius:var(--r-card);border:1px solid var(--linea2);box-shadow:var(--sombra1)}
.card.p{border-top:1px solid var(--linea2)}
.banda,.vacio,.msg,.nota-lat{border-radius:var(--r-input)}
.vacio{border-color:var(--onda)}
.btn{border-radius:var(--r-pill);background:var(--azul);border-color:var(--azul);padding:10px 20px;transition:background var(--t-rapido) var(--ease),box-shadow var(--t-rapido),transform var(--t-rapido)}
.btn:hover:not(:disabled){box-shadow:var(--sombra1)}.btn:active:not(:disabled){transform:translateY(1px)}
.btn.sec{background:var(--blanco);color:var(--azul);border-color:var(--azul)}:root[data-tema=oscuro] .btn.sec{color:var(--acento);border-color:var(--acento)}
.btn.violeta{background:var(--violeta);border-color:var(--violeta)}.btn.violeta:hover:not(:disabled){background:var(--violeta-h)}
.btn.hecho{animation:pulsa .5s var(--ease)}
input[type=text],input[type=number],input[type=date],input[type=password],input[type=email],input[type=search],input[type=tel],select,textarea{border-radius:var(--r-input);border:1px solid var(--control);background:var(--blanco);transition:border-color var(--t-rapido),box-shadow var(--t-rapido)}
input:focus-visible,select:focus-visible,textarea:focus-visible{outline:none;border-color:var(--violeta);box-shadow:0 0 0 3px color-mix(in srgb,var(--violeta) 28%,transparent)}
.opcion{border-radius:var(--r-input)}
.chip{border-radius:var(--r-pill)}
table.tabla{border-radius:var(--r-input)}.tabla-wrap{border-radius:var(--r-card)}
dialog{border-radius:var(--r-card);border:1px solid var(--linea);box-shadow:var(--sombra2)}
dialog::backdrop{background:rgba(20,23,46,.45)}
dialog[open]{animation:entra var(--t-normal) var(--ease)}
.dlg-ancho{width:min(920px,94vw)}
.toast{border-radius:var(--r-input);box-shadow:var(--sombra2);animation:entra var(--t-normal) var(--ease);display:flex;gap:10px;align-items:center}
.toast.sale{opacity:0;transform:translateY(8px);transition:all var(--t-normal)}

/* ---- píldoras / interruptor / insight ---- */
.pill{display:inline-flex;align-items:center;gap:6px;border-radius:var(--r-pill);padding:3px 11px;font-size:12px;font-weight:600;line-height:1.5;background:var(--gris-bg);color:var(--gris-tx)}
.pill.verde{background:var(--ok-bg);color:var(--ok-tx)}.pill.ambar{background:var(--warn-bg);color:var(--warn-tx)}.pill.lila{background:var(--lila-bg);color:var(--lila-tx)}.pill.gris{background:var(--gris-bg);color:var(--gris-tx)}.pill.rojo{background:var(--err-bg);color:var(--err-tx)}
.switch{position:relative;width:44px;height:26px;border-radius:var(--r-pill);border:0;background:var(--control);padding:0;flex:none;transition:background var(--t-normal) var(--ease)}
.switch i{position:absolute;left:3px;top:3px;width:20px;height:20px;border-radius:50%;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.3);transition:transform var(--t-normal) var(--ease)}
.switch[aria-checked=true]{background:var(--violeta)}.switch[aria-checked=true] i{transform:translateX(18px)}
.switch:disabled{opacity:.5;cursor:not-allowed}
.switch-et{display:inline-flex;align-items:center;gap:10px;min-height:44px;font-weight:500}
.insight{display:flex;gap:12px;align-items:flex-start;background:var(--info-bg);color:var(--info-tx);border-radius:var(--r-input);padding:12px 16px;font-size:14px}
.insight svg{flex:none;margin-top:1px}

/* ---- vacíos y esqueletos ---- */
.vacio-ilus{display:flex;flex-direction:column;align-items:center;text-align:center;gap:10px;padding:clamp(28px,6vw,56px) 20px;background:var(--blanco);border:1px dashed var(--onda);border-radius:var(--r-card)}
.vacio-ilus svg.ilus,.vacio-ilus>svg{width:min(210px,60%);height:auto}
.vacio-ilus p{margin:0;max-width:46ch;color:var(--tinta2)}
.esqueleto{display:flex;flex-direction:column;gap:14px}
.sk{display:block;border-radius:var(--r-input);background:linear-gradient(90deg,var(--hundido) 25%,var(--linea2) 50%,var(--hundido) 75%);background-size:200% 100%;animation:brilla 1.4s linear infinite}
.sk.t{height:30px;width:40%}.sk.l{height:16px;width:65%}.sk.c{height:110px;flex:1;min-width:140px}
.sk-fila{display:flex;gap:14px;flex-wrap:wrap}

/* ---- tarjetas de cliente / estudio ---- */
.grid-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,300px),1fr));gap:16px}
.card-est,.card-cliente,.card-accion{display:flex;flex-direction:column;gap:10px;background:var(--blanco);border:1px solid var(--linea2);border-radius:var(--r-card);padding:18px;box-shadow:var(--sombra1);color:var(--tinta);text-decoration:none;transition:box-shadow var(--t-normal) var(--ease),transform var(--t-normal) var(--ease),border-color var(--t-rapido);min-width:0}
a.card-est:hover,a.card-cliente:hover,.card-accion:hover{box-shadow:var(--sombra2);transform:translateY(-2px);border-color:var(--violeta)}
.card-est h3,.card-cliente h3{overflow-wrap:anywhere}
.card-est.inactivo,.card-cliente.inactivo{opacity:.7}
.card-accion{border-style:dashed;border-color:var(--onda);align-items:center;justify-content:center;text-align:center;min-height:130px;background:transparent;font-weight:600;color:var(--violeta-tx)}
.avance{display:flex;flex-direction:column;gap:6px}
.estructura{display:flex;flex-direction:column;gap:14px}
.campana{display:flex;flex-direction:column;gap:12px}
.desactivados{color:var(--tinta2)}
.id-card{display:flex;align-items:center;gap:12px}
.avatar-cli{width:44px;height:44px;border-radius:12px;background:var(--violeta-bg);color:var(--violeta-tx);display:inline-flex;align-items:center;justify-content:center;font-weight:800;flex:none}
.est-cab{display:flex;flex-wrap:wrap;gap:12px 24px;align-items:flex-start;justify-content:space-between}
.est-cab h1{overflow-wrap:anywhere}
.acciones{display:flex;gap:8px;flex-wrap:wrap;align-items:center}

/* ---- KPIs y series ---- */
.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:14px}
.kpi{background:var(--blanco);border:1px solid var(--linea2);border-radius:var(--r-card);padding:16px 18px;box-shadow:var(--sombra1);display:flex;flex-direction:column;gap:4px}
.kpi.grande{grid-column:span 2;background:linear-gradient(135deg,var(--violeta-bg),var(--blanco))}
.kpi-l{font-size:13px;color:var(--tinta2);font-weight:600}
.kpi-v{font-size:clamp(28px,4vw,38px);font-weight:800;line-height:1.1;color:var(--tinta);font-family:var(--f-t)}
.kpi-v.violeta{color:var(--cifra)}.kpi-v small{font-size:16px;font-weight:600;color:var(--tinta2)}
@media(max-width:560px){.kpi.grande{grid-column:span 1}}
.barra-anim{height:10px;border-radius:var(--r-pill);background:var(--linea2);overflow:hidden}
.barra-anim.chica{height:6px}
.barra-anim>i{display:block;height:100%;width:var(--w,0%);border-radius:inherit;background:linear-gradient(90deg,var(--violeta),var(--cian));animation:crece .8s var(--ease) both}
.serie{display:flex;align-items:flex-end;gap:clamp(6px,2vw,18px);height:150px;padding-top:8px}
.serie-c{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;gap:4px;height:100%;min-width:0}
.serie-c i{display:block;width:min(40px,100%);height:var(--h,0%);min-height:3px;border-radius:8px 8px 3px 3px;background:var(--violeta);transform-origin:bottom;animation:sube .7s var(--ease) both}
.serie-c b{font-size:12px}.serie-c span{font-size:11px;color:var(--tinta2)}
.pasos-lista{list-style:none;margin:10px 0 0;padding:0;display:flex;flex-direction:column;gap:8px}
.pasos-lista li{display:flex;gap:12px;align-items:center;padding:10px 12px;border-radius:var(--r-input);background:var(--hundido)}
.pasos-lista a{display:flex;flex-direction:column;color:var(--tinta);text-decoration:none}
.chk{width:24px;height:24px;border-radius:50%;border:2px solid var(--control);display:inline-flex;align-items:center;justify-content:center;flex:none;color:#fff}
.pasos-lista li.hecho .chk,.pasos-lista .hecho .chk{background:var(--ok);border-color:var(--ok)}
.personas{list-style:none;margin:8px 0 0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:8px}
.personas li{display:flex;gap:10px;align-items:center;padding:8px 10px;border-radius:var(--r-input);background:var(--hundido)}
.contador-hoy,.contador-grande{font-weight:800;color:var(--cifra);font-size:clamp(32px,6vw,52px);line-height:1}

/* ---- formulario de encuesta ---- */
.frm-wrap{max-width:760px;margin:0 auto;width:100%;display:flex;flex-direction:column;gap:16px}
.frm{display:flex;flex-direction:column;gap:14px}
.frm-cab{background:var(--blanco);border-radius:var(--r-card);border-top:8px solid var(--violeta);padding:20px 22px;box-shadow:var(--sombra1)}
.frm-mod{display:flex;flex-direction:column;gap:14px}
.frm-mod-h{background:var(--violeta);color:#fff;border-radius:var(--r-card);padding:14px 20px}
.frm-mod-h h2{color:#fff;font-size:18px}.frm-mod-h p{margin:4px 0 0;font-size:13px;opacity:.92}
.q-card{background:var(--blanco);border:1px solid var(--linea2);border-radius:var(--r-card);padding:18px 20px;display:flex;flex-direction:column;gap:12px;box-shadow:var(--sombra1);transition:border-color var(--t-rapido),box-shadow var(--t-rapido)}
.q-card:focus-within{border-color:var(--violeta);box-shadow:0 0 0 1px var(--violeta),var(--sombra1)}
.q-card.con-error{border-color:var(--err)}
.q-info{background:var(--hundido);box-shadow:none}
.enun{font-weight:600;font-size:16px;line-height:1.4;overflow-wrap:anywhere}
.enun .cod{font-family:var(--f-m);font-size:12px;color:var(--violeta-tx);background:var(--violeta-bg);border-radius:6px;padding:1px 7px;margin-right:8px;font-weight:600;vertical-align:1px}
.req{color:var(--err);margin-left:4px}
.ayuda-enc{font-size:13px;background:var(--warn-bg);color:var(--warn-tx);border-radius:var(--r-input);padding:8px 12px}
.tag-nl{display:inline-block;font-size:11px;font-weight:700;letter-spacing:.03em;text-transform:uppercase;background:var(--warn-bg);color:var(--warn-tx);border-radius:var(--r-pill);padding:1px 8px;margin-left:6px}
.opciones-v{display:flex;flex-direction:column;gap:8px}
.opc,.opciones-v>label{display:flex;gap:12px;align-items:center;min-height:46px;padding:8px 14px;border:1px solid var(--linea);border-radius:var(--r-input);background:var(--blanco);cursor:pointer;transition:background var(--t-rapido),border-color var(--t-rapido)}
.opc:hover,.opciones-v>label:hover{background:var(--hundido)}
.opc:has(input:checked),.opciones-v>label:has(input:checked){background:var(--violeta-bg);border-color:var(--violeta)}
input[type=radio],input[type=checkbox]{accent-color:var(--violeta);width:20px;height:20px;flex:none}
.otro-caja{display:flex;flex-direction:column;gap:6px;margin-top:6px}
.otro-txt{width:100%}
.esc-fila{display:grid;grid-template-columns:repeat(var(--n),minmax(0,1fr));gap:6px}
.esc-fila label{display:flex;flex-direction:column;align-items:center;gap:8px;padding:10px 2px;border:1px solid var(--linea);border-radius:var(--r-input);cursor:pointer;font-weight:700;font-variant-numeric:tabular-nums;transition:background var(--t-rapido),border-color var(--t-rapido)}
.esc-fila label:hover{background:var(--hundido)}
.esc-fila label:has(input:checked){background:var(--violeta-bg);border-color:var(--violeta);color:var(--violeta-tx)}
.esc-anclas{display:flex;justify-content:space-between;gap:12px;font-size:12px;color:var(--tinta2);margin-top:6px}
.sino-fila{display:flex;gap:10px}
.sino-fila label{flex:1;max-width:200px;display:flex;align-items:center;justify-content:center;gap:10px;min-height:48px;border:1px solid var(--linea);border-radius:var(--r-pill);font-weight:600;cursor:pointer}
.sino-fila label:has(input:checked){background:var(--violeta-bg);border-color:var(--violeta);color:var(--violeta-tx)}
/* matriz: rejilla en pantallas anchas, tarjetas por fila en el móvil */
.mx{display:flex;flex-direction:column;border:1px solid var(--linea2);border-radius:var(--r-input);overflow:hidden}
.mx-cab,.mx-fila{display:grid;grid-template-columns:minmax(150px,1.6fr) repeat(var(--nc),minmax(0,1fr));align-items:center;gap:4px;padding:8px 12px}
.mx-cab{background:var(--hundido);font-size:12px;font-weight:600;text-align:center;color:var(--tinta2)}
.mx-col{display:flex;flex-direction:column;align-items:center;gap:2px}.mx-col b{font-size:14px;color:var(--tinta)}.mx-col small{font-size:11px;line-height:1.2}
.mx-fila{border-top:1px solid var(--linea2)}.mx-fila:nth-child(odd){background:color-mix(in srgb,var(--hundido) 55%,transparent)}
.mx-txt{font-size:14px;overflow-wrap:anywhere}.mx-txt .cod{font-family:var(--f-m);font-size:11px;color:var(--tinta2);margin-right:6px}
.mx-op{display:flex;justify-content:center;align-items:center;min-height:44px;cursor:pointer;border-radius:10px}
.mx-op:hover{background:var(--violeta-bg)}
.mx-op .mx-v,.mx-op .mx-t{display:none}
@media(max-width:700px){
  .mx{border:0;gap:12px;overflow:visible}.mx-cab{display:none}
  .mx-fila{display:flex;flex-wrap:wrap;gap:6px;border:1px solid var(--linea2);border-radius:var(--r-input);padding:12px;background:var(--blanco)!important}
  .mx-txt{flex:1 0 100%;font-weight:600;margin-bottom:4px}
  .mx-op{flex:1 1 calc(33% - 6px);min-width:72px;flex-direction:column;gap:2px;border:1px solid var(--linea);padding:8px 4px;text-align:center}
  .mx-op:has(input:checked){background:var(--violeta-bg);border-color:var(--violeta)}
  .mx-op .mx-v{display:block;font-weight:700}.mx-op .mx-t{display:block;font-size:11px;color:var(--tinta2);line-height:1.2}
}
.err-campo{color:var(--err-tx);font-size:13px;font-weight:600}
.frm-pie{position:sticky;bottom:0;background:color-mix(in srgb,var(--papel) 92%,transparent);backdrop-filter:blur(6px);padding:12px 0;display:flex;flex-direction:column;gap:10px;border-top:1px solid var(--linea)}
.prog{display:flex;flex-direction:column;gap:6px}.prog-txt{font-size:13px;color:var(--tinta2)}
.aviso-rep{background:var(--warn-bg);color:var(--warn-tx);border-radius:var(--r-input);padding:10px 14px;font-size:14px}
.gracias{text-align:center;display:flex;flex-direction:column;align-items:center;gap:12px;padding:clamp(28px,6vw,56px) 20px;background:var(--blanco);border-radius:var(--r-card);box-shadow:var(--sombra1)}
.gracias-ico{width:64px;height:64px;border-radius:50%;background:var(--ok-bg);color:var(--ok);display:inline-flex;align-items:center;justify-content:center;animation:pop .5s var(--ease)}
.previa-cab{display:flex;flex-wrap:wrap;gap:10px;justify-content:space-between;align-items:center}
.previa-zona{max-height:68vh;overflow:auto;padding:12px;background:var(--papel);border-radius:var(--r-input)}
.cuest-card{display:flex;flex-direction:column;gap:10px;background:var(--blanco);border:1px solid var(--linea2);border-radius:var(--r-card);padding:18px}
.franja-demo{border-radius:0}

/* ---- movimiento ---- */
@keyframes entra{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
@keyframes brilla{to{background-position:-200% 0}}
@keyframes crece{from{width:0}}
@keyframes sube{from{transform:scaleY(0)}}
@keyframes pulsa{50%{transform:scale(1.04)}}
@keyframes pop{from{transform:scale(.4);opacity:0}}
main>*{animation:entra var(--t-normal) var(--ease) both}
.grid-cards>*{animation:entra .35s var(--ease) both}
.grid-cards>*:nth-child(2){animation-delay:40ms}.grid-cards>*:nth-child(3){animation-delay:80ms}.grid-cards>*:nth-child(4){animation-delay:120ms}.grid-cards>*:nth-child(n+5){animation-delay:160ms}

/* ---- móvil ---- */
@media(max-width:860px){
  .top{flex-wrap:wrap;padding-bottom:0}
  .grupos{order:3;flex:1 0 100%;padding-bottom:6px}
  .av-nombre{display:none}.como-wrap label{display:none}
}
@media(max-width:560px){.top .marca b{font-size:16px}.card,.q-card{padding:14px}}

@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.001ms!important;animation-delay:0ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}
  .sk{animation:none}
}
.card-est h3 a,.card-cliente h3 a{color:var(--tinta);text-decoration:none}
.card-est h3 a:hover{color:var(--violeta-tx)}
.card-est h3 a::after{content:"";position:absolute;inset:0}
.card-est,.card-cliente{position:relative}
.como-wrap label{white-space:nowrap}
@media(max-width:860px){.top{position:static}}

/* ---- editor de cuestionarios ---- */
.editor-lay{display:grid;grid-template-columns:minmax(0,1fr) 72px;gap:16px;align-items:start}
.editor-col{display:flex;flex-direction:column;gap:12px;min-width:0;max-width:880px;width:100%;margin:0 auto}
.lat{position:sticky;top:76px;display:flex;flex-direction:column;gap:6px;background:var(--blanco);border:1px solid var(--linea2);border-radius:var(--r-card);padding:8px;box-shadow:var(--sombra1)}
.lat-btn{display:flex;flex-direction:column;align-items:center;gap:2px;min-height:56px;border:0;border-radius:var(--r-input);background:transparent;color:var(--tinta2);font-size:10px;font-weight:600;padding:6px 2px;line-height:1.15;text-align:center;transition:background var(--t-rapido),color var(--t-rapido)}
.lat-btn:hover:not(:disabled){background:var(--violeta-bg);color:var(--violeta-tx)}.lat-btn:disabled{opacity:.4;cursor:not-allowed}
@media(max-width:760px){
  .editor-lay{grid-template-columns:1fr}
  .lat{position:fixed;left:8px;right:8px;bottom:8px;top:auto;flex-direction:row;justify-content:space-around;z-index:25;box-shadow:var(--sombra2)}
  .lat-btn{flex:1;min-height:52px}
  .editor-pie{padding-bottom:84px}
  .editor-lay{padding-bottom:96px}
}
.q-ed,.mod-ed{background:var(--blanco);border:1px solid var(--linea2);border-radius:var(--r-card);box-shadow:var(--sombra1);min-width:0}
.q-ed.abierta{border-left:6px solid var(--violeta);padding:16px 18px;display:flex;flex-direction:column;gap:14px;box-shadow:var(--sombra2)}
.q-cierra{display:block;width:100%;text-align:left;background:transparent;border:0;border-radius:var(--r-card);padding:12px 16px;min-height:52px}
.q-cierra:hover{background:var(--hundido)}
.q-resumen{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.q-resumen .cod{font-family:var(--f-m);font-size:12px;color:var(--violeta-tx);background:var(--violeta-bg);border-radius:6px;padding:1px 7px;font-weight:600}
.q-enun{flex:1 1 220px;min-width:0;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.q-tipo{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:var(--tinta2)}
.q-cab{display:flex;gap:10px;align-items:flex-start;flex-wrap:wrap}
.enun-in{flex:1 1 280px;min-width:0;resize:none;overflow:hidden;font-size:16px;font-weight:500;background:var(--hundido);border:0;border-bottom:2px solid var(--control);border-radius:var(--r-input) var(--r-input) 0 0;padding:12px 14px;min-height:48px}
.enun-in:focus{border-bottom-color:var(--violeta);box-shadow:none}
.tipo-wrap{display:flex;align-items:center;gap:8px;border:1px solid var(--linea);border-radius:var(--r-input);padding:0 10px;background:var(--blanco);color:var(--tinta2);min-height:48px}
.tipo-sel{border:0!important;background:transparent!important;min-height:44px;box-shadow:none!important;padding-right:4px}
.asa{display:inline-flex;align-items:center;justify-content:center;width:32px;min-height:44px;border:0;background:transparent;color:var(--tinta2);cursor:grab;border-radius:8px;flex:none}
.asa:hover{background:var(--hundido);color:var(--tinta)}
.rejilla-campos{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px 14px;align-items:end}
.rejilla-campos .campo{margin:0}
.cod-in{width:90px;font-family:var(--f-m);font-size:13px}.cod-in.largo{width:100%}
.ops,.mx-ed{display:flex;flex-direction:column;gap:6px}
.op-fila{display:flex;align-items:center;gap:6px;flex-wrap:wrap;border-radius:var(--r-input);padding:2px 0}
.op-fila:hover{background:color-mix(in srgb,var(--hundido) 70%,transparent)}
.op-fila[draggable=true]{cursor:default}
.op-in{flex:1 1 180px;min-width:0;border:0!important;border-bottom:1px solid var(--linea)!important;border-radius:0!important;background:transparent!important;padding:8px 4px}
.op-in:focus{border-bottom:2px solid var(--violeta)!important;box-shadow:none!important}
.marca-op{width:18px;height:18px;border:2px solid var(--control);flex:none}.marca-op.redondo{border-radius:50%}.marca-op.cuadro{border-radius:4px}
.flags{display:flex;gap:4px;flex-wrap:wrap}
.flag{display:inline-flex;align-items:center;min-height:32px;padding:0 10px;font-size:12px;font-weight:600;border:1px solid var(--linea);border-radius:var(--r-pill);background:transparent;color:var(--tinta2);cursor:pointer;position:relative}
.flag:hover:not(:disabled){background:var(--hundido)}
.flag.on{background:var(--violeta-bg);border-color:var(--violeta);color:var(--violeta-tx)}
.flag .solo-lectores{position:absolute;opacity:0;width:100%;height:100%;inset:0;margin:0;cursor:pointer}
.flag:has(.solo-lectores:focus-visible){outline:3px solid var(--foco);outline-offset:2px}
.icon-btn.chico{width:36px;height:36px}.icon-btn.peligro:hover{background:var(--err-bg);color:var(--err)}
.op-acciones{display:flex;gap:8px;flex-wrap:wrap;margin-top:6px;align-items:center}
.pegado{display:flex;flex-direction:column;gap:8px;background:var(--hundido);border-radius:var(--r-input);padding:10px}
.logica{border:1px solid var(--linea2);border-radius:var(--r-input);padding:0 12px}
.logica>summary{display:flex;align-items:center;gap:8px;min-height:44px;cursor:pointer;font-size:13px;color:var(--tinta2);list-style:none}
.logica>summary::-webkit-details-marker{display:none}
.logica[open]>summary svg{transform:rotate(90deg)}
.logica[open]{padding-bottom:12px}
.cond-ed{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:6px}
.q-vivo{border-top:1px dashed var(--linea);padding-top:12px;display:flex;flex-direction:column;gap:8px}
.q-vivo .q-card{box-shadow:none;border-style:dashed}
.q-pie{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;border-top:1px solid var(--linea2);padding-top:10px}
.mod-ed{border-left:6px solid var(--violeta);padding:12px 16px;display:flex;flex-direction:column;gap:8px;background:linear-gradient(90deg,var(--violeta-bg),var(--blanco) 55%);margin-top:10px}
.mod-cab{display:flex;align-items:center;gap:8px;flex-wrap:wrap;color:var(--violeta-tx)}
.mod-cab .cod{font-family:var(--f-m);font-size:12px;background:var(--blanco);border-radius:6px;padding:1px 7px;font-weight:600}
.mod-nombre{flex:1 1 200px;min-width:0;font-weight:700;font-size:17px;background:transparent!important;border:0!important;border-bottom:1px solid transparent!important;border-radius:0!important;color:var(--tinta)}
.mod-nombre:hover,.mod-nombre:focus{border-bottom-color:var(--violeta)!important;box-shadow:none!important}
.mod-desc{background:transparent!important;border-style:dashed!important}
.mod-suelto{font-size:12px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--tinta2);padding:6px 4px 0}
.import-rev{display:flex;flex-direction:column;gap:12px}
fieldset.campo{border:1px solid var(--linea);border-radius:var(--r-input);margin:0}
.no-leer{opacity:.85}.no-leer em{font-style:normal}

/* ---- editor de scorecard ---- */
.editor-lay.sin-lat{grid-template-columns:1fr}
.sc-mod{gap:12px}
.peso-et{display:inline-flex;align-items:center;gap:8px;font-size:13px;font-weight:600;color:var(--tinta2)}
.peso-in{width:76px;text-align:right;font-variant-numeric:tabular-nums}
.sc-cat{background:var(--blanco);border:1px solid var(--linea2);border-radius:var(--r-input);padding:12px 14px;display:flex;flex-direction:column;gap:8px}
.sc-cat-cab,.sc-item-fila{display:flex;align-items:center;gap:8px;flex-wrap:wrap;min-width:0}
.sc-nombre{font-weight:600;flex:1 1 200px}
.sc-item{border-top:1px solid var(--linea2);padding:8px 0;display:flex;flex-direction:column;gap:6px}
.sc-item .logica{margin-left:0}
.switch-et.chico{min-height:36px;font-size:13px;gap:6px}
input.cod-in{width:92px;flex:none}input.cod-in.largo{width:100%}
input.peso-in{width:76px;flex:none}
.sc-item-fila .it-texto,.sc-cat-cab .sc-nombre{flex:1 1 220px;width:auto;min-width:160px}
.mod-cab input.mod-nombre{width:auto}
.op-fila input.op-in,.q-cab textarea.enun-in{width:auto}
.contador-grande{font-size:clamp(26px,5vw,34px)}
.frm-wrap .campo{max-width:none;width:100%}
.frm-wrap .campo input{max-width:100%}

/* Móvil: la barra fija inferior de «Llenar encuesta» no tapa contenido: se vuelve estática en pantallas bajas y deja aire al final */
@media(max-width:760px){.frm-pie{position:static;backdrop-filter:none;background:transparent}.frm-lay,.libre-lay{padding-bottom:16px}}
.panel-errores:empty{display:none}.panel-errores ul{margin:6px 0 0;padding-left:18px}.enlace-err{background:none;border:0;padding:0;color:inherit;font:inherit;font-weight:600;text-decoration:underline;cursor:pointer;text-align:left}.mod-vacio{margin:6px 0 14px}

/* v4 · A2: contadores con espacio entre cifra y texto */
.contador-grande{display:flex;align-items:baseline;justify-content:center;gap:10px}
.contador-grande span{font-size:.5em;font-weight:600;color:var(--tinta2)}
.contador-hoy{display:flex;align-items:baseline;gap:8px}
.contador-hoy>span{font-size:16px;font-weight:600;color:var(--tinta2)}
.cal-cab{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;flex-wrap:wrap;margin-bottom:12px}
.cal-alcance{display:flex;flex-direction:column;gap:4px;min-width:min(100%,320px)}
.cal-alcance select{width:100%}

/* v4 · A9: auditoría ágil */
.item-sc .sino button{min-width:64px;min-height:44px;font-size:16px;font-weight:700;border-radius:12px}
.item-sc.activo{outline:2px solid var(--violeta,#5749DE);outline-offset:2px;border-radius:12px}
.resultado .nota-viva{display:flex;justify-content:space-between;align-items:center;gap:12px}
.resultado .nota-viva .pct{font-size:40px;line-height:1;margin:0}
.aviso-critico{background:var(--err-bg,#fde8ea);color:var(--err-tx,#8a1f2b);border:1px solid var(--err-bd,#f3b9c0);border-radius:12px;padding:10px 12px;font-size:14px}
.atajos kbd{font:600 12px/1 var(--mono,monospace);background:rgba(255,255,255,.14);border-radius:6px;padding:2px 6px;margin:0 2px}
#aud-guardado[data-estado=err]{color:var(--err)}

/* v4 · árbol de resultados */
.res-lista{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:10px;margin-bottom:12px}
.res-op{display:flex;flex-direction:column;align-items:flex-start;gap:2px;text-align:left;min-height:56px;padding:12px 14px;border:1px solid var(--linea);border-radius:12px;background:var(--card,#fff);color:var(--tinta);font:inherit;cursor:pointer}
.res-op:hover,.res-op:focus-visible{border-color:var(--violeta);background:var(--violeta-bg)}
.res-op.ef{border-color:var(--ok)}

/* v4 · usuarios, paginador, ajustes colapsables */
.paginador{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-top:12px;padding-top:12px;border-top:1px solid var(--linea)}
.perfiles-desc{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px;margin:12px 0}
.perm-lista{display:flex;flex-direction:column;gap:2px;max-height:38vh;overflow:auto;border:1px solid var(--linea);border-radius:12px;padding:6px}
.perm-fila{align-items:center;gap:10px;padding:6px 8px}
details.ajuste>summary{cursor:pointer;list-style:none;display:flex;align-items:center;gap:8px;min-height:44px}
details.ajuste>summary::-webkit-details-marker{display:none}
details.ajuste>summary::before{content:"▸";transition:transform .15s}
details.ajuste[open]>summary::before{transform:rotate(90deg)}
.avatar-cli.con-logo{background:var(--card,#fff);padding:4px;overflow:hidden}
.avatar-cli.con-logo img{max-width:100%;max-height:100%;object-fit:contain}
.ident-vista{display:flex;gap:14px;align-items:center;margin-bottom:12px}
.paleta{display:flex;gap:10px;flex-wrap:wrap}
.paleta .muestra{width:44px;height:44px;border-radius:12px;border:3px solid transparent;cursor:pointer}
.paleta .muestra[aria-checked=true]{border-color:var(--tinta);box-shadow:0 0 0 2px var(--card,#fff) inset}
.perm-fila{min-height:36px;border:0;padding:4px 8px}
.ajuste-cuerpo{display:flex;flex-direction:column;gap:12px;padding-top:12px}
.cuota-fila,.enlace-fila{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:8px 0;border-bottom:1px solid var(--linea)}
.equipo-fila{display:flex;flex-direction:column;gap:8px;padding:10px 12px;border:1px solid var(--linea);border-radius:12px;margin-top:8px}
.chip-quitar{display:inline-flex;align-items:center;gap:4px}
.nodo-tip{padding:8px 10px;border:1px solid var(--linea);border-radius:12px;margin-top:8px;background:var(--card,#fff)}
.nodo-cab{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.nodo-cab input{flex:1 1 220px;min-width:160px}
.banderas{display:flex;gap:6px 14px;flex-wrap:wrap;margin-top:6px}

/* M-6 (QA v4): móvil 390 px. Menú principal en cuadrícula sin desborde, Usuarios apilado, selector de estudio a todo el ancho. */
@media(max-width:700px){
  .grupos{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px;overflow:visible}
  .grupo-link{justify-content:center;padding:0 6px;gap:6px;font-size:13px}
  .apilar select{max-width:60vw;min-width:150px}
  .apilar td .opcion{margin:0}
  #sel-alcance{width:100%;max-width:100%}
  .cal-cab select{width:100%;max-width:100%}
}
