/* =====================================================================
   ASISTENTE VIRTUAL – estilos del chat flotante
   Usa las variables de style.css (--red, --dark, --yellow, --font).
   Todo está bajo .gs-chat para no afectar al resto del sitio.

   Escala de formas (para que todo sea simétrico):
     ventana 20px · tarjetas, campos y botones 14px · íconos 12px
   Espaciado base: 18px
   ===================================================================== */
.gs-chat{
 --gs-red:var(--red,#b1363a);
 --gs-red-d:#8f2a2e;
 --gs-red-l:#c9454a;
 --gs-tint:#fbefef;          /* rojo muy suave para fondos de íconos */
 --gs-dark:var(--dark,#2f2f2f);
 --gs-yellow:var(--yellow,#ffb400);
 --gs-link:#2c6bcf;
 --gs-line:#e4e4e9;
 --gs-soft:#f4f4f7;          /* fondo del cuerpo */
 --gs-mute:#6b6b78;
 --gs-ok:#2e9e54;
 --gs-bad:#d12e2e;
 --gs-r:14px;
 font-family:var(--font,Arial,Helvetica,sans-serif);
 font-size:14.5px;line-height:1.45;color:var(--gs-dark);
 -webkit-font-smoothing:antialiased;
}
.gs-chat *,.gs-chat *::before,.gs-chat *::after{box-sizing:border-box}
.gs-chat [hidden]{display:none!important}

/* ---------------------------------------------------------------------
   Botón flotante: píldora con ícono y texto; al abrir se contrae a círculo
   --------------------------------------------------------------------- */
.gs-launcher{
 position:fixed;right:20px;bottom:20px;z-index:200;
 height:60px;min-width:60px;padding:10px;border:0;border-radius:999px;
 display:flex;align-items:center;justify-content:center;gap:0;
 background:linear-gradient(135deg,var(--gs-red-l) 0%,var(--gs-red) 55%,var(--gs-red-d) 100%);
 color:#fff;cursor:pointer;font:inherit;
 box-shadow:0 10px 26px rgba(143,42,46,.42),0 2px 6px rgba(0,0,0,.14),inset 0 1px 0 rgba(255,255,255,.22);
 transition:transform .22s ease,box-shadow .22s ease,padding .3s ease,gap .3s ease;
}
.gs-launcher:hover{
 transform:translateY(-2px);
 box-shadow:0 14px 32px rgba(143,42,46,.5),0 3px 8px rgba(0,0,0,.16),inset 0 1px 0 rgba(255,255,255,.25);
}
.gs-launcher:active{transform:translateY(0) scale(.98)}
.gs-launcher:focus-visible,.gs-chat button:focus-visible,.gs-chat a:focus-visible{outline:3px solid var(--gs-yellow);outline-offset:3px}

/* Aro de atención: solo 3 pulsos al cargar la página */
.gs-launcher::after{
 content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;
 animation:gs-ring 2.6s ease-out 2.5s 3 both;
}
@keyframes gs-ring{
 0%{box-shadow:0 0 0 0 rgba(177,54,58,.5);opacity:1}
 70%{box-shadow:0 0 0 20px rgba(177,54,58,0);opacity:1}
 100%{box-shadow:0 0 0 20px rgba(177,54,58,0);opacity:0}
}
.gs-launcher[aria-expanded="true"]::after{animation:none}

/* Ícono dentro de un círculo */
.gs-l-ico{
 width:40px;height:40px;border-radius:50%;flex-shrink:0;
 display:flex;align-items:center;justify-content:center;
 background:rgba(255,255,255,.2);font-size:19px;line-height:1;
}
.gs-l-ico i{display:block;line-height:1}
.gs-launcher .gs-i-close{display:none}
.gs-launcher[aria-expanded="true"] .gs-i-open{display:none}
.gs-launcher[aria-expanded="true"] .gs-i-close{display:block}

/* Texto: visible cerrado, se pliega al abrir */
.gs-l-txt{
 max-width:190px;overflow:hidden;white-space:nowrap;
 font-weight:700;font-size:15px;letter-spacing:.1px;
 margin:0 12px 0 12px;opacity:1;
 transition:max-width .3s ease,margin .3s ease,opacity .2s ease;
}
.gs-launcher[aria-expanded="true"] .gs-l-txt{max-width:0;margin:0;opacity:0}

/* ---------------------------------------------------------------------
   Ventana
   --------------------------------------------------------------------- */
.gs-panel{
 position:fixed;right:20px;bottom:94px;z-index:200;
 width:392px;max-width:calc(100vw - 24px);
 height:min(650px,calc(100vh - 120px));height:min(650px,calc(100dvh - 120px));
 display:flex;flex-direction:column;background:#fff;
 border-radius:20px;overflow:hidden;
 box-shadow:0 28px 64px rgba(40,12,14,.3),0 4px 14px rgba(0,0,0,.1);
 transform-origin:right bottom;
 animation:gs-in .26s cubic-bezier(.2,.8,.3,1);
}
@keyframes gs-in{from{opacity:0;transform:translateY(16px) scale(.96)}to{opacity:1;transform:none}}

/* Cabecera */
.gs-top{
 position:relative;overflow:hidden;flex-shrink:0;
 display:flex;align-items:center;gap:14px;
 padding:18px 14px 18px 18px;color:#fff;
 background:linear-gradient(135deg,var(--gs-red-l) 0%,var(--gs-red) 50%,var(--gs-red-d) 100%);
}
.gs-top::before,.gs-top::after{content:"";position:absolute;border-radius:50%;pointer-events:none;background:rgba(255,255,255,.08)}
.gs-top::before{width:150px;height:150px;right:-44px;top:-70px}
.gs-top::after{width:84px;height:84px;right:60px;bottom:-52px;background:rgba(255,255,255,.06)}
.gs-top>*{position:relative;z-index:1}

.gs-avatar{
 position:relative;width:46px;height:46px;border-radius:50%;flex-shrink:0;
 display:flex;align-items:center;justify-content:center;
 background:#fff;color:var(--gs-red);font-size:20px;
 box-shadow:0 3px 10px rgba(0,0,0,.2);
}
.gs-avatar::after{
 content:"";position:absolute;right:0;bottom:0;width:13px;height:13px;border-radius:50%;
 background:#3ddc84;border:2.5px solid var(--gs-red);
}
.gs-top-t{display:flex;flex-direction:column;flex:1;min-width:0}
.gs-top-t strong{font-size:17.5px;line-height:1.2;font-weight:700;letter-spacing:.1px}
.gs-top-t small{font-size:13px;opacity:.88;margin-top:3px}
.gs-x{
 background:rgba(255,255,255,.14);border:0;color:#fff;font-size:17px;
 width:38px;height:38px;border-radius:50%;cursor:pointer;
 display:flex;align-items:center;justify-content:center;flex-shrink:0;
 transition:background .18s,transform .18s;
}
.gs-x:hover{background:rgba(255,255,255,.28);transform:rotate(90deg)}

/* Cuerpo */
.gs-body{
 flex:1;overflow-y:auto;padding:18px;background:var(--gs-soft);overscroll-behavior:contain;
 scrollbar-width:thin;scrollbar-color:#cbcbd3 transparent;
}
.gs-body::-webkit-scrollbar{width:8px}
.gs-body::-webkit-scrollbar-thumb{background:#cbcbd3;border-radius:8px;border:2px solid var(--gs-soft)}

.gs-msg{
 background:#fff;border:1px solid #ececf1;border-radius:6px 18px 18px 18px;
 padding:14px 16px;margin:0 0 18px;max-width:94%;
 box-shadow:0 2px 6px rgba(30,30,50,.05);color:var(--gs-dark);line-height:1.55;
}
.gs-msg strong{color:var(--gs-red)}
.gs-msg a,.gs-result a:not(.gs-btn){color:var(--gs-link);font-weight:700;text-decoration:underline;text-underline-offset:2px;word-break:break-word}
.gs-h{font-size:17px;color:var(--gs-dark);font-weight:700;margin:2px 0 14px;letter-spacing:.1px}
.gs-sec{
 font-size:13.5px;color:var(--gs-red);font-weight:700;
 margin:22px 0 12px;padding-bottom:8px;border-bottom:1px solid var(--gs-line);
}
.gs-note{font-size:13px;color:var(--gs-mute);margin:0 0 16px;line-height:1.55}

/* Opciones del menú: tarjetas de igual alto, ícono en baldosa, flecha a la derecha */
.gs-opts{display:flex;flex-direction:column;gap:10px;margin:0;padding:0;list-style:none}
.gs-opt{
 position:relative;width:100%;min-height:76px;
 display:flex;align-items:center;gap:14px;text-align:left;
 background:#fff;border:1px solid var(--gs-line);border-radius:var(--gs-r);
 padding:11px 38px 11px 12px;
 font:700 14.5px/1.3 var(--font,Arial,sans-serif);color:var(--gs-dark);cursor:pointer;
 box-shadow:0 1px 2px rgba(30,30,50,.04);
 transition:border-color .18s,box-shadow .18s,transform .18s,background .18s;
}
.gs-opt i{
 width:40px;height:40px;border-radius:12px;flex-shrink:0;
 display:inline-flex;align-items:center;justify-content:center;
 background:var(--gs-tint);color:var(--gs-red);font-size:17px;line-height:1;
 transition:background .18s,color .18s,transform .18s;
}
.gs-opt::after{
 content:"";position:absolute;right:17px;top:50%;width:8px;height:8px;
 border-right:2px solid #b4b4bf;border-top:2px solid #b4b4bf;
 transform:translateY(-50%) rotate(45deg);transition:border-color .18s,right .18s;
}
.gs-opt:hover{border-color:var(--gs-red);box-shadow:0 8px 20px rgba(143,42,46,.14);transform:translateY(-1px)}
.gs-opt:hover i{background:var(--gs-red);color:#fff;transform:scale(1.04)}
.gs-opt:hover::after{border-color:var(--gs-red);right:14px}
.gs-opt:active{transform:translateY(0)}

/* Formularios */
.gs-form{margin:0}
.gs-field{margin:0 0 16px}
.gs-label{display:block;font-weight:700;font-size:13.5px;margin:0 0 7px;color:var(--gs-dark)}
.gs-req{color:var(--gs-red);margin-left:3px}
.gs-ctl{
 display:block;width:100%;height:48px;padding:0 14px;margin:0;background:#fff;
 border:1.5px solid #d9d9e0;border-radius:var(--gs-r);
 font:14.5px/1.3 var(--font,Arial,sans-serif);color:var(--gs-dark);
 transition:border-color .18s,box-shadow .18s;
}
select.gs-ctl{
 appearance:none;-webkit-appearance:none;padding-right:42px;cursor:pointer;
 background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='9' viewBox='0 0 14 9'%3E%3Cpath d='M1.5 1.5l5.5 5.5 5.5-5.5' fill='none' stroke='%23b1363a' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
 background-repeat:no-repeat;background-position:right 16px center;
}
textarea.gs-ctl{height:auto;min-height:96px;padding:13px 14px;resize:vertical;line-height:1.45}
.gs-ctl:hover{border-color:#bfbfc9}
.gs-ctl:focus{outline:0;border-color:var(--gs-red);box-shadow:0 0 0 4px rgba(177,54,58,.14)}
.gs-ctl::placeholder{color:#9b9ba7}
.gs-form.was-validated .gs-ctl:invalid{border-color:var(--gs-bad);background-color:#fff6f6}
.gs-hint{display:block;font-size:12.5px;color:var(--gs-mute);margin-top:6px}

/* Botones */
.gs-btn{
 display:inline-flex;align-items:center;justify-content:center;gap:10px;width:100%;
 min-height:50px;padding:14px 20px;
 background:linear-gradient(135deg,var(--gs-red-l),var(--gs-red) 55%,var(--gs-red-d));
 color:#fff;border:0;border-radius:var(--gs-r);
 font:700 15px/1.2 var(--font,Arial,sans-serif);letter-spacing:.2px;
 cursor:pointer;text-decoration:none;
 box-shadow:0 8px 18px rgba(143,42,46,.28),inset 0 1px 0 rgba(255,255,255,.18);
 transition:transform .18s,box-shadow .18s,filter .18s,background .18s;
}
.gs-btn i{font-size:16px}
.gs-btn:hover{color:#fff;transform:translateY(-1px);box-shadow:0 12px 24px rgba(143,42,46,.34),inset 0 1px 0 rgba(255,255,255,.18);filter:brightness(1.04)}
.gs-btn:active{transform:translateY(0)}
.gs-btn.gs-dark{background:linear-gradient(135deg,#46464c,var(--gs-dark));box-shadow:0 8px 18px rgba(0,0,0,.2),inset 0 1px 0 rgba(255,255,255,.1)}
.gs-btn.gs-dark:hover{box-shadow:0 12px 24px rgba(0,0,0,.26),inset 0 1px 0 rgba(255,255,255,.1)}
.gs-btn.gs-ghost{background:#fff;color:var(--gs-dark);border:1.5px solid var(--gs-line);box-shadow:none}
.gs-btn.gs-ghost:hover{background:var(--gs-soft);color:var(--gs-dark);box-shadow:none}
.gs-btn[disabled]{opacity:.6;cursor:wait;transform:none}
.gs-btn+.gs-btn{margin-top:10px}

/* Resultados (grúa, póliza, mensajes): fondo tintado según el estado */
.gs-result{
 background:#fff8e6;border:1px solid #f3dfa6;border-left:5px solid var(--gs-yellow);
 border-radius:var(--gs-r);padding:14px 16px;margin:16px 0 0;line-height:1.65;
}
.gs-result.gs-bad{background:#fff3f3;border-color:#f3c5c5;border-left-color:var(--gs-bad)}
.gs-result.gs-good{background:#eefaf2;border-color:#bfe6cc;border-left-color:var(--gs-ok)}
.gs-result p{margin:0}
.gs-result .gs-btn{margin-top:14px}
.gs-back-link{
 display:inline-flex;align-items:center;gap:8px;margin:0 0 16px;padding:8px 14px;
 background:var(--gs-tint);border:0;border-radius:999px;
 color:var(--gs-red);font:700 13px var(--font,Arial,sans-serif);cursor:pointer;text-decoration:none;
 transition:background .18s;
}
.gs-back-link:hover{background:#f6dcdd}

/* Pie con botón Inicio */
.gs-foot{padding:12px 18px;background:#fff;border-top:1px solid var(--gs-line);flex-shrink:0}
.gs-foot .gs-btn{min-height:46px;padding:11px 18px;font-size:14.5px}
.gs-foot .gs-btn.gs-dark{background:var(--gs-soft);color:var(--gs-dark);box-shadow:none;border:1.5px solid var(--gs-line)}
.gs-foot .gs-btn.gs-dark i{color:var(--gs-red)}
.gs-foot .gs-btn.gs-dark:hover{background:var(--gs-tint);border-color:#f0c9cb;filter:none;transform:none;box-shadow:none}

/* ---- Celulares ---- */
@media (max-width:480px){
 .gs-launcher{right:14px;bottom:14px;height:58px;min-width:58px}
 .gs-l-ico{width:38px;height:38px}
 .gs-l-txt{display:none}
 .gs-panel{
  left:10px;right:10px;bottom:84px;width:auto;max-width:none;border-radius:18px;
  height:calc(100vh - 104px);height:calc(100dvh - 104px);
 }
 .gs-ctl{font-size:16px}   /* evita el zoom automático de iOS */
}
@media (prefers-reduced-motion:reduce){
 .gs-panel{animation:none}
 .gs-launcher::after{animation:none}
 .gs-launcher,.gs-l-txt,.gs-opt,.gs-opt i,.gs-btn,.gs-x,.gs-ctl{transition:none}
}
@media print{.gs-chat{display:none}}
