/* VÉRTICE · paciente virtual · estilos. Marca: Montserrat, azul Angelini #002E7A → gris red sanitarIA #23283A,
   acento #29ADFF, naranja Lubristil #F04B28 solo como punto final. Todo con prefijo .vx- para convivir con GHL. */
.vx{
  --azul:#002E7A; --navy:#10275A; --gris:#23283A; --acento:#29ADFF; --naranja:#F04B28; --lub:#8FA5C4;
  --tinta:#FFFFFF; --tinta2:#D8E6F7; --tinta3:#9FB6D4; --tinta4:#8FA5C4;
  --borde:rgba(255,255,255,.14); --borde2:rgba(255,255,255,.28); --vidrio:rgba(255,255,255,.055); --vidrio2:rgba(255,255,255,.10);
  --verde:#34c38f; --ambar:#f3b641; --rojo:#ff5a4e;
  --radio:14px; --fuente:"Montserrat",Arial,Helvetica,sans-serif;
  font-family:var(--fuente); color:var(--tinta); line-height:1.5; font-size:15px;
  min-height:100vh; display:flex; flex-direction:column;
  background:linear-gradient(158deg,var(--azul) 0%,var(--navy) 55%,var(--gris) 100%) fixed;
  position:relative; -webkit-font-smoothing:antialiased; overflow-x:hidden;
}
.vx::before{content:"";position:fixed;inset:0;pointer-events:none;opacity:.055;mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='160' height='160'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>");}
.vx::after{content:"";position:fixed;right:-18vw;top:-22vh;width:62vw;height:62vw;max-width:900px;max-height:900px;border-radius:50%;pointer-events:none;
  background:radial-gradient(closest-side,rgba(41,173,255,.16),rgba(41,173,255,0));}
.vx *{box-sizing:border-box;font-family:inherit}
.vx h1,.vx h2,.vx h3,.vx p,.vx ul{margin:0}
.vx button{cursor:pointer}
.vx [hidden]{display:none!important}
.vx img{max-width:100%}
.vx-main{position:relative;z-index:1;flex:1;width:100%;max-width:1240px;margin:0 auto;padding:0 16px}

/* ---------- cabecera / pie */
.vx-cab{position:relative;z-index:1;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:22px 16px 10px;max-width:1240px;margin:0 auto;width:100%}
.vx .vx-logo{height:54px;width:auto}
.vx .vx-angelini{height:36px;width:auto;opacity:.92}
.vx-cab-centro{flex:1;text-align:center;font-size:12px;letter-spacing:2.5px;text-transform:uppercase;color:var(--tinta4);font-weight:600}
.vx-pie{position:relative;z-index:1;margin-top:40px;background:#fff;color:#23283A;padding:14px 16px}
.vx-pie-izq,.vx-pie-der{display:flex;align-items:center;gap:14px}
.vx-pie{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap}
.vx .vx-pie-izq img{height:38px;width:auto}
.vx-pie-et{font-size:9px;letter-spacing:3px;text-transform:uppercase;color:#8B9099;font-weight:700}
.vx-pie-txt{font-size:13px;font-weight:700}
.vx .vx-lubristil{height:34px;width:auto}
.vx-pie-aviso{font-size:10.5px;color:#8B9099;max-width:260px;line-height:1.3}

/* ---------- elementos comunes */
.vx-et{font-size:9.5px;font-weight:700;letter-spacing:3px;text-transform:uppercase;color:var(--tinta4);margin-bottom:10px}
.vx-btn{font:inherit;font-weight:600;border:1px solid var(--borde2);border-radius:10px;padding:11px 16px;background:var(--vidrio2);color:var(--tinta);transition:.15s}
.vx-btn:hover{border-color:var(--acento)}
.vx-btn:disabled{opacity:.4;cursor:not-allowed}
.vx-btn-primario{background:var(--acento);border-color:var(--acento);color:#06152e}
.vx-btn-primario:hover{filter:brightness(1.08)}
.vx-btn-sec{background:transparent}
.vx-btn-peligro{background:transparent;border-color:rgba(255,90,78,.5);color:#ffb3ad}
.vx-btn-grande{padding:16px 28px;font-size:16px}
.vx-enlace{background:none;border:0;color:var(--acento);font-weight:600;padding:0;text-decoration:underline;text-underline-offset:3px}
.vx label{display:block;font-size:13px;color:var(--tinta3);font-weight:500}
.vx label small{font-weight:400;color:var(--tinta4)}
.vx input[type=text],.vx input[type=password],.vx select,.vx textarea{width:100%;margin-top:6px;padding:11px 12px;border:1px solid var(--borde2);border-radius:10px;background:rgba(0,0,0,.25);color:var(--tinta);font:inherit;font-size:15px}
.vx select option{color:#111}
.vx input:focus,.vx select:focus,.vx textarea:focus{outline:none;border-color:var(--acento);box-shadow:0 0 0 3px rgba(41,173,255,.22)}
.vx-aviso{display:none;border-radius:10px;padding:11px 13px;font-size:13.5px;margin-top:12px}
.vx-aviso.mudo,.vx-aviso.error{display:block;background:rgba(255,90,78,.12);border:1px solid rgba(255,90,78,.4);color:#ffd6d3}
.vx-aviso.ok{display:block;background:rgba(52,195,143,.12);border:1px solid rgba(52,195,143,.4);color:#c9f3e3}
.vx-pista{font-size:12.5px;color:var(--tinta4);line-height:1.45;margin-top:10px}
.vx-num{font-size:12px;font-weight:800;color:var(--acento);letter-spacing:2px;padding-top:4px}
.vx-paso{margin-top:34px}
.vx-paso-cab{display:flex;align-items:baseline;gap:14px;flex-wrap:wrap;margin-bottom:14px;padding-bottom:10px;border-bottom:1px solid var(--borde)}
.vx-paso-cab h2{font-size:22px;font-weight:700;letter-spacing:-.3px}
.vx-paso-ayuda{font-size:13px;color:var(--tinta4);flex:1}
.vx-check{display:flex;align-items:center;gap:6px;font-size:12.5px}
.vx-check input{accent-color:var(--acento)}

/* ---------- acceso */
.vx-login{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(300px,420px);gap:48px;align-items:center;padding:56px 0 24px;min-height:62vh}
.vx-previa{font-size:17px;font-weight:500;color:var(--tinta2);max-width:560px;line-height:1.45}
.vx-golpe{font-size:clamp(38px,5.2vw,68px);font-weight:700;line-height:1.04;letter-spacing:-1.5px;margin-top:18px}
.vx-golpe .vx-marca{white-space:nowrap}
.vx-marca{background:linear-gradient(transparent 66%,rgba(41,173,255,.55) 66%,rgba(41,173,255,.55) 97%,transparent 97%);padding:0 6px}
.vx-punto{color:var(--naranja)}
.vx-calma{font-size:18px;font-weight:600;color:var(--acento);margin-top:18px}
.vx-ciudades{list-style:none;padding:0;margin-top:34px;display:flex;gap:28px;flex-wrap:wrap;border-top:1px solid var(--borde);padding-top:16px}
.vx-ciudades b{display:block;font-size:12px;letter-spacing:2px;text-transform:uppercase}
.vx-ciudades span{font-size:12px;color:var(--tinta3)}
.vx-login-caja{background:var(--vidrio);border:1px solid var(--borde);border-radius:18px;padding:26px 26px 22px;backdrop-filter:blur(6px)}
.vx-login-caja label{margin-top:12px}
.vx-login-caja .vx-btn{width:100%;margin-top:18px}
.vx-login-caja .vx-aviso{margin-top:10px}

/* ---------- tarjetas */
.vx-tarjetas{display:grid;gap:12px;grid-template-columns:repeat(auto-fill,minmax(250px,1fr))}
.vx-tarjeta{position:relative;text-align:left;background:var(--vidrio);border:1px solid var(--borde);border-radius:var(--radio);padding:16px 16px 14px 20px;color:var(--tinta);font:inherit;transition:.15s;display:block;width:100%}
.vx-tarjeta::before{content:"";position:absolute;left:0;top:14px;bottom:14px;width:3px;border-radius:3px;background:transparent;transition:.15s}
.vx-tarjeta:hover{border-color:var(--borde2);background:var(--vidrio2)}
.vx-tarjeta.sel{border-color:var(--acento);background:rgba(41,173,255,.10)}
.vx-tarjeta.sel::before{background:var(--acento)}
.vx-tarjeta .t{font-weight:700;font-size:15px;line-height:1.25}
.vx-tarjeta .s{font-size:12.5px;color:var(--tinta3);margin-top:4px}
.vx-tarjeta .m{font-size:12px;color:var(--tinta4);margin-top:8px;line-height:1.35}
.vx-tarjeta .ini{width:40px;height:40px;border-radius:50%;display:grid;place-content:center;font-weight:800;font-size:13px;background:rgba(41,173,255,.18);color:var(--acento);margin-bottom:10px;border:1px solid rgba(41,173,255,.35)}
.vx-tarjeta .acciones{display:flex;gap:12px;margin-top:10px}
.vx-tarjeta-nueva{border-style:dashed;display:grid;place-content:center;text-align:center;min-height:120px;color:var(--tinta3)}
.vx-tarjeta-nueva .t{color:var(--acento)}
.vx-vacio{grid-column:1/-1;color:var(--tinta3);font-size:14px;padding:6px 2px}
.vx-etiqueta{display:inline-block;font-size:10px;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;padding:3px 8px;border-radius:6px;background:rgba(41,173,255,.18);color:var(--acento);margin-bottom:8px}
.vx-etiqueta.borrador{background:rgba(243,182,65,.16);color:#ffd98a}

/* ---------- galería de avatares */
.vx-filtros{display:flex;gap:6px;flex-wrap:wrap}
.vx-chip{font:inherit;font-size:12px;font-weight:600;padding:6px 11px;border-radius:999px;border:1px solid var(--borde2);background:transparent;color:var(--tinta2)}
.vx-chip.activo{background:var(--acento);border-color:var(--acento);color:#06152e}
.vx-galeria{display:grid;gap:12px;grid-template-columns:repeat(auto-fill,minmax(168px,1fr))}
.vx-avatar{position:relative;background:var(--vidrio);border:1px solid var(--borde);border-radius:var(--radio);padding:0;overflow:hidden;color:var(--tinta);font:inherit;text-align:left;transition:.15s;width:100%}
.vx-avatar img{display:block;width:100%;aspect-ratio:16/10;object-fit:cover;background:#06152e}
.vx-avatar .cuerpo{padding:9px 11px 11px}
.vx-avatar .t{font-weight:700;font-size:13.5px}
.vx-avatar .s{font-size:11.5px;color:var(--tinta3);line-height:1.3;margin-top:2px}
.vx-avatar:hover{border-color:var(--borde2)}
.vx-avatar.sel{border-color:var(--acento);box-shadow:0 0 0 2px rgba(41,173,255,.45)}
.vx-avatar .sug{position:absolute;top:8px;left:8px;font-size:10px;font-weight:800;letter-spacing:1.5px;text-transform:uppercase;background:var(--acento);color:#06152e;padding:3px 8px;border-radius:6px}

/* ---------- voces */
.vx-voces{display:grid;gap:10px;grid-template-columns:repeat(auto-fill,minmax(230px,1fr))}
.vx-voz{display:flex;align-items:flex-start;gap:10px;background:var(--vidrio);border:1px solid var(--borde);border-radius:12px;padding:12px 14px;color:var(--tinta);font:inherit;text-align:left;width:100%}
.vx-voz .r{width:16px;height:16px;border-radius:50%;border:2px solid var(--borde2);flex:none;margin-top:2px}
.vx-voz.sel{border-color:var(--acento)}
.vx-voz.sel .r{border-color:var(--acento);background:radial-gradient(circle,var(--acento) 45%,transparent 50%)}
.vx-voz .t{font-weight:700;font-size:14px}
.vx-voz .s{font-size:11.5px;color:var(--tinta3);line-height:1.3}

/* ---------- ajustes */
.vx-avanzado summary{list-style:none;display:flex;align-items:baseline;gap:14px;flex-wrap:wrap;cursor:pointer;padding-bottom:10px;border-bottom:1px solid var(--borde)}
.vx-avanzado summary::-webkit-details-marker{display:none}
.vx-avanzado summary h2{font-size:18px;font-weight:700}
.vx-ajustes{display:grid;gap:14px;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));margin-top:16px}

/* ---------- resumen pegajoso */
.vx-resumen{position:sticky;bottom:12px;z-index:5;margin-top:34px;display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;background:rgba(6,21,46,.92);border:1px solid var(--borde2);border-radius:16px;padding:14px 18px;backdrop-filter:blur(10px);box-shadow:0 14px 40px rgba(0,0,0,.35)}
.vx-resumen-texto{font-size:13.5px;color:var(--tinta2);line-height:1.4;flex:1;min-width:220px}
.vx-resumen-texto b{color:var(--tinta)}

/* ---------- sala */
.vx-sala-cab{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;margin-top:18px}
.vx-chipinfo{font-size:13px;color:var(--tinta2);background:var(--vidrio);border:1px solid var(--borde);border-radius:999px;padding:7px 14px}
.vx-chipinfo b{color:var(--tinta)}
.vx-estado{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--tinta3)}
.vx-luz{width:9px;height:9px;border-radius:50%;background:#6b7a8c;flex:none}
.vx-luz.on{background:var(--verde);box-shadow:0 0 10px var(--verde)}
.vx-luz.va{background:var(--ambar)}
.vx-sala-cuerpo{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:18px;margin-top:14px}
.vx-escena{background:#06101d;border-radius:16px;overflow:hidden;position:relative;aspect-ratio:16/9;border:1px solid var(--borde)}
.vx-escena video{width:100%;height:100%;object-fit:cover;display:block}
.vx-escena canvas{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}
.vx-telon{position:absolute;inset:0;display:grid;place-content:center;text-align:center;color:var(--tinta3);gap:8px;padding:24px;background:radial-gradient(ellipse at 50% 40%,#0f2a57,#06101d 70%)}
.vx-telon strong{color:var(--tinta);font-size:18px;font-weight:600}
.vx-hablar{margin-top:14px;background:var(--vidrio);border:1px solid var(--borde);border-radius:16px;padding:16px}
.vx-btn-hablar{width:100%;font:inherit;font-weight:700;font-size:17px;padding:20px;border:0;border-radius:12px;background:var(--acento);color:#06152e;touch-action:none;user-select:none;-webkit-user-select:none;transition:.1s}
.vx-btn-hablar.activo{background:var(--rojo);color:#fff;transform:scale(.99)}
.vx-btn-hablar:disabled{opacity:.4;cursor:not-allowed}
.vx-fila{display:flex;gap:8px;margin-top:10px}
.vx-fila input{flex:1;min-width:0;margin-top:0}
.vx-fila-sec .vx-btn{flex:1}
.vx-panel{background:var(--vidrio);border:1px solid var(--borde);border-radius:16px;padding:16px}
.vx-panel + .vx-panel{margin-top:14px}
.vx-panel .vx-btn{width:100%;margin-top:8px}
.vx-panel label{margin-top:10px}
.vx-reloj{font-size:12.5px;color:var(--tinta3);line-height:1.45}
.vx-saldo{font-size:12px;color:var(--tinta4);margin-top:10px;font-variant-numeric:tabular-nums}
.vx-acta{height:340px;overflow-y:auto;font-size:14px;padding-right:4px}
.vx-turno{padding:8px 0;border-bottom:1px solid var(--borde);overflow-wrap:anywhere}
.vx-turno:last-child{border-bottom:0}
.vx-quien{font-size:10.5px;text-transform:uppercase;letter-spacing:1.5px;color:var(--tinta4);margin-bottom:2px;font-weight:700}
.vx-turno.medico .vx-quien{color:var(--acento)}
.vx-turno.paciente .vx-quien{color:var(--verde)}
.vx-turno.sistema{font-size:13px;color:var(--tinta3)}
.vx-turno.sistema .vx-quien{color:var(--ambar)}

/* ---------- editor */
.vx-form{margin-top:4px}
.vx-form-grid{display:grid;gap:14px;grid-template-columns:repeat(auto-fill,minmax(280px,1fr))}
.vx-label-guion{margin-top:18px;display:flex;align-items:baseline;gap:12px;flex-wrap:wrap}
.vx-label-guion small{flex:1}
.vx textarea{font-size:14px;line-height:1.5;min-height:420px;resize:vertical;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}
.vx-form-pie{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-top:16px}
.vx-form-pie .vx-aviso{margin-top:0;flex:1 1 240px}

/* ---------- animación de entrada */
.vx-pantalla{animation:vx-entra .45s ease both}
@keyframes vx-entra{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.vx-login-texto > *{animation:vx-entra .6s ease both}
.vx-login-texto > :nth-child(2){animation-delay:.08s}.vx-login-texto > :nth-child(3){animation-delay:.16s}.vx-login-texto > :nth-child(4){animation-delay:.24s}

/* ---------- móvil */
@media (max-width:980px){
  .vx-sala-cuerpo{grid-template-columns:1fr}
  .vx-login{grid-template-columns:1fr;gap:28px;padding-top:28px;min-height:0}
}
@media (max-width:600px){
  .vx{font-size:14px}
  .vx-cab{padding:16px 16px 6px}
  .vx .vx-logo{height:40px}.vx .vx-angelini{height:28px}
  .vx-cab-centro{display:none}
  .vx-golpe{letter-spacing:-1px}
  .vx-ciudades{gap:18px}
  .vx-galeria{grid-template-columns:repeat(2,minmax(0,1fr))}
  .vx-btn-hablar{font-size:15px;padding:16px}
  .vx-acta{height:260px}
  .vx-resumen{bottom:8px;padding:12px 14px}
  .vx-btn-grande{width:100%}
  .vx-pie{justify-content:center;text-align:center}
  .vx-pie-der{flex-direction:column;gap:8px}
}

/* ---------- fases de la consulta (2-oct-2026) */
.vx-fases{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:12px}
.vx-fase{display:flex;align-items:center;gap:9px;font:inherit;font-size:13px;font-weight:600;padding:9px 14px 9px 9px;border-radius:999px;border:1px solid var(--borde2);background:var(--vidrio);color:var(--tinta2);cursor:pointer;transition:.15s}
.vx-fase .n{width:24px;height:24px;border-radius:50%;display:grid;place-content:center;font-size:11px;font-weight:800;background:rgba(255,255,255,.12)}
.vx-fase.pasada{opacity:.65}
.vx-fase.activa{background:var(--acento);border-color:var(--acento);color:#06152e}
.vx-fase.activa .n{background:rgba(6,21,46,.18)}
.vx-fase:disabled{opacity:.4;cursor:not-allowed}
.vx-fase:not(:disabled):not(.activa):hover{border-color:var(--acento)}
/* ---------- exploración revelada por nombre */
.vx-exploracion{margin-top:14px}
.vx-exploracion .vx-fila{margin-top:0}
.vx-exploracion .vx-fila .vx-btn{width:auto}
.vx-lista-presentador{font-size:12px;color:#ffd98a;background:rgba(243,182,65,.12);border:1px solid rgba(243,182,65,.4);border-radius:8px;padding:8px 10px;margin-top:8px;user-select:none}
.vx-reveladas{display:grid;gap:10px;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));margin-top:12px}
.vx-reveladas:empty{display:none}
.vx-prueba{background:var(--vidrio);border:1px solid var(--borde);border-radius:12px;padding:0;overflow:hidden;color:var(--tinta);font:inherit;text-align:left;cursor:pointer;transition:.15s;animation:vx-entra .4s ease both}
.vx-prueba img,.vx-prueba .sinimg{display:block;width:100%;aspect-ratio:4/3;object-fit:cover;background:#06152e}
.vx-prueba .sinimg{display:grid;place-content:center;color:var(--tinta4);font-size:12px}
.vx-prueba .cuerpo{padding:8px 10px 10px}
.vx-prueba .t{font-weight:700;font-size:13px;line-height:1.25}
.vx-prueba .s{font-size:11px;color:var(--tinta3);margin-top:2px}
.vx-prueba.nueva{border-color:var(--acento);box-shadow:0 0 0 2px rgba(41,173,255,.45)}
.vx-prueba:hover{border-color:var(--borde2)}
.vx-lightbox{position:fixed;inset:0;z-index:50;background:rgba(3,10,24,.92);display:grid;place-items:center;padding:24px;backdrop-filter:blur(6px)}
.vx-lightbox-caja{max-width:min(1100px,96vw);max-height:92vh;display:flex;flex-direction:column;align-items:center;gap:10px;text-align:center}
.vx-lightbox img{max-width:100%;max-height:70vh;border-radius:12px;border:1px solid var(--borde2);object-fit:contain;background:#000}
.vx-lightbox-titulo{font-size:20px;font-weight:700}
.vx-lightbox-pie{font-size:15px;color:var(--tinta2);max-width:820px;line-height:1.45}
.vx-lightbox .vx-btn{margin-top:4px}

/* ---------- prueba de micrófono y chip técnico */
.vx-fila-micro{align-items:center;margin-top:0}
.vx-fila-micro select{margin-top:0;flex:1;min-width:220px}
.vx-fila-micro .vx-btn{white-space:nowrap}
.vx-nivel{width:140px;height:12px;border-radius:999px;background:rgba(255,255,255,.12);overflow:hidden;flex:none}
.vx-nivel-barra{height:100%;width:0;background:linear-gradient(90deg,var(--verde),var(--ambar));transition:width .08s}
.vx-chipinfo-tec{font-size:12px;color:var(--tinta3)}
@media (max-width:600px){.vx-fila-micro{flex-wrap:wrap}}
