/*!
 * El asistente del minisitio.
 *
 * Vivía dentro de widget.blade.php, escrito en un <style>. Eran 28 KB que
 * viajaban con CADA página del sitio y que ningún navegador podía guardar,
 * porque lo que va dentro del HTML no se cachea.
 *
 * EL COLOR DEL VENDEDOR NO ESTÁ AQUÍ, y es lo único que no podía estar: se
 * escribe en una línea suelta en el blade, sobre `--bcai-color`, y este fichero
 * lo lee con `var(--bcai-color, #33D5C5)`. Así el fichero es el mismo para
 * todos los vendedores y se cachea una vez para todos.
 *
 * SE DESPLIEGA CON SU BLADE. Igual que su JavaScript: subir uno sin el otro
 * deja el asistente mudo o sin vestir.
 */
/* El widget dice de sí mismo que no depende de nada de fuera, y
   esta línea es parte de cumplirlo: todas las medidas de aquí
   —44px de alto para la caja de escribir, 38px para los
   botones— están pensadas contando el borde y el relleno
   dentro. Sin esto sale de otro tamaño en cualquier sitio que
   no traiga el reset puesto, y son justo los tamaños que hacen
   que se pueda tocar con el pulgar. */
.bcai,.bcai *,.bcai-launch,.bcai-launch *{box-sizing:border-box;}

.bcai{
    --bcai-tint: var(--bcai-color, #33D5C5);
    max-width:640px;margin:0 auto;padding:14px;
    border-radius:18px;
    background:rgba(255,255,255,.80);
    -webkit-backdrop-filter:blur(22px) saturate(180%);
    backdrop-filter:blur(22px) saturate(180%);
    color:#1c1c1e;
    box-shadow:0 2px 18px rgba(0,0,0,.10), 0 0 0 1px rgba(0,0,0,.04);
    font-size:14px;line-height:1.5;text-align:left;
}
/* ── Modo flotante ─────────────────────────────────────── */
/* El lanzador en el centro es una píldora con el nombre, no un
   círculo: en medio de la pantalla un círculo suelto parece un
   error de maquetación, y con el nombre se lee como una
   invitación. En las esquinas vuelve a ser círculo, que es lo
   que la gente reconoce ahí. */
.bcai-launch{
    position:fixed;bottom:16px;z-index:9998;
    border:0;cursor:pointer;
    background:var(--bcai-tint);color:#fff;font-size:16px;
    /* De la escala compartida, con el valor de antes como reserva.
       La reserva no sobra: este widget también se sirve embebido en webs
       ajenas, donde no carga public_html/css/tokens.css y por tanto no hay
       ningún --rc-shadow-lg que leer. Allí sigue exactamente igual que hasta
       ahora; dentro de nuestras páginas, comparte sombra con el botón de
       reservar de al lado, que llevaba la suya escrita aparte. */
    box-shadow:var(--rc-shadow-lg, 0 4px 14px rgba(0,0,0,.20));
    display:flex;align-items:center;justify-content:center;gap:7px;
    transition:bottom .3s cubic-bezier(.4,0,.2,1);
}
/* El `<i>` de FontAwesome se dimensionaba solo con el
   font-size heredado; un `<svg>` sin caja propia se estira al
   ancho disponible y tapa el botón entero. Es el mismo tropiezo
   que la marca del hilo de Cowork. */
.bcai-launch svg{display:block;flex:0 0 auto;width:21px;height:21px;}
.bcai-launch span{display:none;}
.bcai-launch.hidden{display:none;}

.bcai-launch.bcai-pos-derecha,
.bcai-launch.bcai-pos-izquierda{width:46px;height:46px;border-radius:50%;}
.bcai-launch.bcai-pos-derecha{right:16px;}
.bcai-launch.bcai-pos-izquierda{left:16px;}
.bcai-launch.bcai-pos-centro{
    left:50%;transform:translateX(-50%);
    height:40px;padding:0 16px;border-radius:20px;font-size:15px;
}
.bcai-launch.bcai-pos-centro svg{width:17px;height:17px;}
.bcai-launch.bcai-pos-centro span{
    display:inline;font-size:13px;font-weight:600;white-space:nowrap;
}

/* Apartado de la barra de reservar de la ficha.

   Cuánto sube no está escrito aquí: lo mide el script sobre la
   barra de verdad y lo deja en `--bcai-alza`. Un número fijo no
   sirve porque esa barra no mide siempre lo mismo —lleva una
   línea más si hay valoración, y en un teléfono con barra de
   gestos se le suma el hueco del aparato—. Los 80px de reserva
   son solo por si el script no llegara a correr.

   La clase la pone y la quita mirando si la barra se ve de
   verdad, no si la página es la ficha: allí esa barra entra y
   sale sola al bajar, y un lanzador subido con nada debajo se
   lee como un botón flotando torcido. Sube y baja con ella, y a
   la misma velocidad —.3s— para que parezcan una sola cosa
   moviéndose. */
.bcai-launch.bcai-alza{bottom:var(--bcai-alza, 80px);}

/* En la ficha, el lanzador no vive solo: sale y se esconde CON
   la barra de reservar, como una sola pieza. `bcai-sigue` la
   pone el script cuando la barra existe y este ancho la deja
   verse; mientras la barra está escondida (sin `bcai-alza`) el
   lanzador se apaga, y al salir ella aparece ya subido encima,
   a la misma velocidad para que no se crucen nunca. */
.bcai-launch.bcai-sigue{
    opacity:0;pointer-events:none;
    transition:bottom .3s cubic-bezier(.4,0,.2,1), opacity .3s cubic-bezier(.4,0,.2,1);
}
.bcai-launch.bcai-sigue.bcai-alza{opacity:1;pointer-events:auto;}

@media (prefers-reduced-motion:reduce){
    .bcai-launch{transition:none;}
}

/* ── Abierto es la pantalla entera ─────────────────────
   El chat abierto no es una tarjeta en una esquina: es LA
   pantalla, como una app de chat nativa. Ocupa todo el
   viewport encima de la página en cualquier tamaño, con la
   conversación en una columna centrada de lectura (760px) y
   la barra de escribir pegada abajo. La posición configurada
   (derecha/izquierda/centro) sigue mandando en el lanzador,
   pero abierto ya no hay esquinas que valgan.

   El margen de la columna se calcula una vez aquí y lo usan
   cabecera, hilo, atajos y barra: así el borde izquierdo de
   todo queda alineado, que es lo que hace que se lea como
   una sola app y no como piezas apiladas. */
.bcai-float{
    position:fixed;inset:0;z-index:9999;
    width:auto;max-width:none;margin:0;padding:0;
    height:100vh;
    height:var(--bcai-alto, 100dvh);
    border-radius:0;box-shadow:none;
    display:none;flex-direction:column;
    overflow:hidden;
    --bcai-margen:max(16px, calc((100% - 760px) / 2));
}
.bcai-float.bcai-pos-derecha,
.bcai-float.bcai-pos-izquierda,
.bcai-float.bcai-pos-centro{left:0;right:0;width:auto;transform:none;}
.bcai-float.open{
    display:flex;
    animation:bcai-abre .25s cubic-bezier(.2,.7,.3,1);
}
@keyframes bcai-abre{
    from{opacity:0;transform:translateY(14px);}
    to{opacity:1;transform:none;}
}
@media (prefers-reduced-motion:reduce){
    .bcai-float.open{animation:none;}
}
/* La equis, arriba a la derecha de la pantalla y generosa:
   36px de blanco sobre un círculo oscuro. Cerrar tiene que
   ser un gesto sin puntería, porque es la única salida —a
   pantalla completa no hay «tocar fuera». */
.bcai-x{
    position:absolute;top:11px;right:14px;z-index:2;
    display:flex;align-items:center;justify-content:center;
    width:36px;height:36px;border-radius:50%;
    border:0;cursor:pointer;
    background:rgba(0,0,0,.35);
    -webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);
    color:#fff;font-size:20px;line-height:1;opacity:1;
}
.bcai-x:hover{background:rgba(0,0,0,.5);}
.bcai-head{display:flex;align-items:center;gap:8px;margin-bottom:10px;}
/* Cabecera de app: fija arriba, con su línea, y el texto
   alineado con la columna de la conversación. El hueco de la
   derecha es el de la equis, para que el «responde al
   momento» no se le meta debajo. */
.bcai-float .bcai-head{
    flex:0 0 auto;margin:0;
    padding:15px calc(var(--bcai-margen) + 44px) 13px var(--bcai-margen);
    border-bottom:1px solid rgba(0,0,0,.06);
}
/* Lo único que se desplaza es la conversación. `min-height:0`
   es lo que le da permiso a un hijo flexible para encogerse
   y scrollear por dentro; sin él, empuja la barra fuera. */
.bcai-float .bcai-thread{
    flex:1 1 auto;min-height:0;max-height:none;
    padding:16px var(--bcai-margen) 12px;
}
.bcai-float .bcai-msg{max-width:85%;font-size:15px;}
/* Los atajos, en una fila que rueda de lado sobre la barra. */
.bcai-float .bcai-chips{
    flex:0 0 auto;flex-wrap:nowrap;
    overflow-x:auto;scrollbar-width:none;
    margin:0;padding:2px var(--bcai-margen) 10px;
}
.bcai-float .bcai-chips::-webkit-scrollbar{display:none;}
.bcai-float .bcai-chips button{flex:0 0 auto;padding:9px 15px;font-size:13.5px;}
/* La barra de escribir, pegada abajo con fondo y línea
   propios, caja grande tipo app de chat. Los 16px de letra no
   son capricho: por debajo, el Safari del iPhone hace zoom al
   tocar la caja y deja la página ampliada y corrida. El
   relleno de abajo suma el hueco del aparato, o en un iPhone
   la caja queda debajo de la rayita de inicio. */
.bcai-float .bcai-bar{
    flex:0 0 auto;margin:0;gap:8px;
    padding:10px var(--bcai-margen) calc(10px + env(safe-area-inset-bottom));
    border-top:1px solid rgba(0,0,0,.07);
    background:rgba(255,255,255,.72);
    -webkit-backdrop-filter:blur(18px) saturate(180%);
    backdrop-filter:blur(18px) saturate(180%);
}
.bcai-float .bcai-bar input{
    font-size:16px;min-height:46px;padding:12px 18px;border-radius:23px;
}
.bcai-float .bcai-bar button{width:46px;height:46px;font-size:15px;}
.bcai-float .bcai-mic{width:46px !important;height:46px !important;}
/* Con el teclado abierto quedan unos trescientos píxeles:
   fuera los atajos y la cabecera encogida. Solo pasa en el
   móvil, que es el único sitio donde hay teclado en pantalla. */
.bcai-float.bcai-teclado .bcai-chips{display:none;}
.bcai-float.bcai-teclado .bcai-head{padding-top:10px;padding-bottom:8px;}
@media (prefers-color-scheme:dark){
    .bcai-float .bcai-head{border-bottom-color:rgba(255,255,255,.08);}
    .bcai-float .bcai-bar{
        background:rgba(28,28,30,.72);
        border-top-color:rgba(255,255,255,.08);
    }
}
.bcai-head strong{font-size:15px;}
.bcai-sub{font-size:12px;opacity:.55;margin-left:auto;}
.bcai-dot{
    width:8px;height:8px;border-radius:50%;background:#34c759;
    box-shadow:0 0 0 3px rgba(52,199,89,.18);flex:0 0 auto;
}
.bcai-thread{
    display:flex;flex-direction:column;gap:8px;
    max-height:320px;overflow-y:auto;padding:4px 2px;
    /* Al llegar al final de la conversación, el dedo dejaba de
       mover el hilo y empezaba a mover la web de detrás. Desde
       fuera eso no se lee como «llegué al tope», se lee como
       que el chat no scrollea: se sigue arrastrando y lo que
       se va es la página. `contain` corta ahí el arrastre.
       El `-webkit-` es por el Safari viejo del iPhone, que es
       justo donde más se nota. */
    overscroll-behavior:contain;
    -webkit-overflow-scrolling:touch;
}
/* AQUÍ DENTRO NO SE ENCOGE NADIE. El hilo es una columna flex
   con tope de alto, y un hijo de flex se aplasta antes que
   dejar desbordar al padre. Los globos de texto se salvan
   solos —el texto no se puede comprimir—, pero la ficha lleva
   `overflow:hidden`, y a un hijo con overflow propio el flex le
   da mínimo automático CERO: la encoge hasta donde haga falta.
   Y como lo encogido ya cabe, el hilo cree que no desborda y
   tampoco scrollea.
   Se veía así: conversación corta, la ficha entera; cuatro
   turnos después, esa misma ficha reducida a una franja, y de
   ahí en adelante ni la foto. Ni siquiera se pedía al
   servidor: una imagen `loading=lazy` sin superficie que
   pintar no llega a dispararse. El cliente pedía ver el auto,
   el chat contestaba «aquí lo tienes» y debajo no había nada.
   Con `flex:0 0 auto` cada pieza ocupa lo suyo, el hilo
   desborda de verdad y el scroll hace su trabajo. */
.bcai-thread > *{flex:0 0 auto;}
.bcai-msg{
    max-width:82%;padding:9px 13px;border-radius:16px;
    word-break:break-word;white-space:pre-wrap;
}
.bcai-them{
    align-self:flex-start;background:#f2f2f7;
    border-bottom-left-radius:6px;
}
.bcai-me{
    align-self:flex-end;background:var(--bcai-tint);color:#fff;
    border-bottom-right-radius:6px;
}
.bcai-msg a{color:inherit;text-decoration:underline;font-weight:600;}
.bcai-chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px;}
.bcai-chips button{
    padding:7px 14px;border-radius:18px;cursor:pointer;
    border:1.5px solid var(--bcai-tint);color:var(--bcai-tint);
    background:transparent;font-size:13px;font-weight:600;
}
/* ── Elegir sin escribir ───────────────────────────────
   En fila y envolviendo, como los atajos de arriba: cuatro
   píldoras con el nombre de un auto caben en dos líneas, y una
   por línea se comía media ventana de chat justo cuando lo que
   hay que ver es lo que el asistente acaba de decir.

   Cada una mide lo que mide su texto, así que la fila se lee
   como una fila de opciones y no como una lista de botones
   iguales. El número va dentro, delante del texto: es la otra
   forma de contestar, para quien ya tiene el teclado abierto y
   no quiere subir el dedo. */
.bcai-opts{display:flex;flex-wrap:wrap;gap:6px;align-self:stretch;}
.bcai-wa {
justify-content: center;
font-weight: 600;
text-decoration: none;
}

.bcai-opt{
    display:inline-flex;align-items:center;gap:7px;
    max-width:100%;padding:7px 13px 7px 8px;
    border-radius:18px;cursor:pointer;
    border:1.5px solid var(--bcai-tint);
    background:rgba(255,255,255,.55);color:inherit;
    font:inherit;font-size:13px;font-weight:600;
    line-height:1.25;text-align:left;
}
.bcai-opt:hover{background:var(--bcai-tint);color:#fff;}
.bcai-opt-n{
    flex:0 0 auto;width:19px;height:19px;border-radius:50%;
    display:inline-flex;align-items:center;justify-content:center;
    background:var(--bcai-tint);color:#fff;
    font-size:11px;font-weight:700;
}
.bcai-opt:hover .bcai-opt-n{background:rgba(255,255,255,.28);}
.bcai-opts-hint{font-size:11px;opacity:.5;margin:-2px 0 0;padding:0 4px;}
.bcai-bar{display:flex;gap:6px;align-items:center;margin-top:10px;}
.bcai-bar input{
    flex:1;min-width:0;padding:10px 14px;border-radius:20px;
    border:1.5px solid rgba(0,0,0,.12);background:rgba(255,255,255,.6);
    color:#1c1c1e;font-size:14px;outline:none;
}
.bcai-bar input:focus{border-color:var(--bcai-tint);}
.bcai-bar button{
    flex:0 0 auto;width:38px;height:38px;border-radius:50%;
    border:0;cursor:pointer;background:var(--bcai-tint);
    color:#fff;font-size:14px;
}
.bcai-bar button:disabled{opacity:.45;cursor:default;}
/* El micrófono es secundario: escribir sigue siendo lo normal,
   así que no compite en color con el botón de enviar. */
.bcai-mic{
    background:transparent !important;
    color:inherit !important;opacity:.55;
    width:38px !important;height:38px !important;
}
.bcai-mic:hover{opacity:.9;}
/* Grabando: rojo y latiendo. Tiene que quedar clarísimo que el
   micrófono está abierto — es lo mínimo que se le debe a
   alguien cuyo micrófono estás usando. */
.bcai-mic.rec{
    background:#ff3b30 !important;color:#fff !important;opacity:1;
    animation:bcai-pulse 1.1s infinite;
}
/* ── La ficha dentro de la burbuja ─────────────────────
   Va suelta en el hilo y no dentro del globo de texto: un
   globo tiene 82% de ancho y esquinas de conversación, y la
   foto metida ahí se lee como un adjunto. Suelta y a todo lo
   ancho se lee como lo que es, un escaparate de una sola
   pieza que además se puede tocar. */
.bcai-card{
    align-self:stretch;margin:2px 0 4px;
    border:1px solid rgba(0,0,0,.08);border-radius:14px;
    overflow:hidden;background:#fff;
    box-shadow:0 1px 6px rgba(0,0,0,.06);
    animation:bcai-card-in .28s cubic-bezier(.2,.7,.3,1) both;
}
@keyframes bcai-card-in{
    from{opacity:0;transform:translateY(6px);}
    to{opacity:1;transform:none;}
}
@media (prefers-reduced-motion:reduce){
    .bcai-card{animation:none;}
}
.bcai-card-media{position:relative;display:block;}
.bcai-card-img{
    display:block;width:100%;height:150px;object-fit:cover;background:#f0f0f0;
}
/* El vídeo solo se carga si lo tocan. Un iframe de YouTube por
   ficha son cientos de kilobytes y cookies de terceros puestas
   sin que nadie haya pedido ver nada. */
.bcai-card-play{
    position:absolute;inset:0;display:flex;align-items:center;justify-content:center;
    border:0;background:rgba(0,0,0,.28);cursor:pointer;color:#fff;font-size:34px;
}
.bcai-card-play:hover{background:rgba(0,0,0,.38);}
.bcai-card-video{display:block;width:100%;height:190px;border:0;background:#000;}
/* La tira de fotos rueda de lado. Apiladas, tres fotos dejaban
   el precio y el botón fuera de pantalla en el móvil, que es
   justo lo que hay que ver. */
.bcai-card-strip{
    display:flex;gap:4px;padding:4px;overflow-x:auto;scrollbar-width:none;
}
.bcai-card-strip::-webkit-scrollbar{display:none;}
.bcai-card-strip img{
    flex:0 0 auto;width:62px;height:46px;object-fit:cover;
    border-radius:6px;background:#f0f0f0;cursor:pointer;
}
.bcai-card-body{padding:10px 12px 12px;}
.bcai-card-title{
    margin:0 0 3px;font-size:14px;font-weight:600;color:#1c1c1e;line-height:1.3;
}
.bcai-card-desc{
    margin:0 0 8px;font-size:12px;color:#666;line-height:1.4;
}
.bcai-card-price{
    margin:0 0 10px;font-size:15px;font-weight:700;color:var(--bcai-tint);
}
.bcai-card-price del{color:#999;font-weight:400;font-size:13px;margin-right:5px;}
.bcai-card-btn{
    display:block;padding:9px;border-radius:9px;
    background:var(--bcai-tint);color:#fff !important;
    font-size:13px;font-weight:700;text-align:center;text-decoration:none !important;
}
.bcai-card-btn:hover{opacity:.9;}
/* Los dos, en una fila y del mismo ancho. Uno encima de otro
   son dos franjas iguales que hay que leer para distinguir;
   lado a lado se ve de un vistazo que son dos caminos, y en el
   móvil ninguno de los dos queda fuera de pantalla.
   RESERVAR VA MACIZO Y VERLO HUECO: es la acción que cierra la
   venta, y la otra saca al cliente del chat. Con los dos
   pintados igual, el dedo va al de la izquierda. */
.bcai-card-acciones{display:flex;gap:8px;}
.bcai-card-acciones .bcai-card-btn{
    flex:1 1 0;min-width:0;border:0;cursor:pointer;
    font-family:inherit;line-height:1.2;
}
/* La ficha que hay que aprobar. Es una ficha de servicio con
   otro trabajo, así que reusa su caja y cambia lo que cambia:
   un encabezado que dice para qué está, las líneas de datos, y
   debajo el sí y el «cambiar algo».
   EL BORDE DE COLOR NO ES ADORNO: en un hilo largo, esta caja y
   el escaparate de un auto se parecen demasiado, y confundirlas
   es tocar «sí» creyendo que se está mirando otra foto. */
.bcai-repasa{box-shadow:0 0 0 2px var(--bcai-tint), 0 1px 6px rgba(0,0,0,.06);}
.bcai-repasa-h{
    margin:0 0 6px;font-size:11px;font-weight:700;letter-spacing:.04em;
    text-transform:uppercase;color:var(--bcai-tint);
}
.bcai-repasa-fila{
    display:flex;gap:10px;justify-content:space-between;align-items:baseline;
    padding:5px 0;border-top:1px solid rgba(0,0,0,.06);font-size:13px;
}
.bcai-repasa-fila span{color:#666;flex:0 0 auto;}
.bcai-repasa-fila strong{font-weight:600;text-align:right;word-break:break-word;}
.bcai-repasa .bcai-card-price{margin:10px 0;}
/* Debajo de los botones y en pequeño: es lo que tranquiliza a
   quien duda si tocar, y puesto encima se lee como una
   condición que hay que entender antes de seguir. */
.bcai-repasa-nota{margin:8px 0 0;font-size:11px;opacity:.55;text-align:center;}
.bcai-card-ver{
    background:transparent;color:var(--bcai-tint) !important;
    box-shadow:inset 0 0 0 1.5px var(--bcai-tint);
}
/* El botón de pagar. Es el único de todo el chat que se pinta
   ancho y macizo, y a propósito: compite con el enlace suelto
   dentro del párrafo, que en un móvil es una línea azul que hay
   que acertar con el dedo justo en el paso donde no se puede
   fallar. */
.bcai-pay{
    display:flex;flex-direction:column;align-items:center;gap:2px;
    align-self:stretch;padding:12px 14px;border-radius:12px;
    background:var(--bcai-tint);color:#fff !important;
    font-size:14px;font-weight:700;text-align:center;
    text-decoration:none !important;
}
.bcai-pay:hover{opacity:.92;}
.bcai-pay-sub{font-size:12px;font-weight:600;opacity:.85;}
/* El aviso de que se va a mover de página.
   Con cuenta atrás y con «Quedarme» a la vista: irse del chat
   es lo bastante brusco como para que haya que poder frenarlo
   sin buscar dónde. Tres segundos son los que tarda en leerse
   la frase y decidir que no. */
.bcai-go{
    align-self:stretch;margin:2px 0 4px;padding:11px 13px;
    display:flex;align-items:center;gap:10px;
    border-radius:12px;background:rgba(0,0,0,.05);
    font-size:13px;
}
.bcai-go-txt{flex:1;min-width:0;}
.bcai-go-n{
    flex:0 0 auto;width:24px;height:24px;border-radius:50%;
    display:flex;align-items:center;justify-content:center;
    background:var(--bcai-tint);color:#fff;font-size:12px;font-weight:700;
}
.bcai-go-no{
    flex:0 0 auto;border:0;background:transparent;cursor:pointer;
    color:inherit;opacity:.6;font-size:12px;font-weight:600;
    text-decoration:underline;padding:4px;
}
.bcai-go-no:hover{opacity:1;}
@media (prefers-color-scheme: dark){
    .bcai-go{background:rgba(255,255,255,.08);}
}
@media (prefers-color-scheme: dark){
    .bcai-card{background:rgba(44,44,46,.7);border-color:rgba(255,255,255,.09);}
    .bcai-card-title{color:#f2f2f7;}
    .bcai-card-desc{color:#a1a1a6;}
    .bcai-repasa-fila{border-top-color:rgba(255,255,255,.10);color:#f2f2f7;}
    .bcai-repasa-fila span{color:#a1a1a6;}
}
@keyframes bcai-pulse{
    0%,100%{box-shadow:0 0 0 0 rgba(255,59,48,.55);}
    70%{box-shadow:0 0 0 10px rgba(255,59,48,0);}
}
.bcai-typing{display:flex;gap:5px;padding:14px 16px;align-self:flex-start;}
.bcai-typing span{
    width:7px;height:7px;border-radius:50%;background:#c7c7cc;
    animation:bcai-bounce .9s infinite;
}
.bcai-typing span:nth-child(2){animation-delay:.18s;}
.bcai-typing span:nth-child(3){animation-delay:.36s;}
@keyframes bcai-bounce{
    0%,60%,100%{transform:translateY(0);}
    30%{transform:translateY(-5px);}
}
@media (prefers-color-scheme: dark){
    .bcai{
        background:rgba(28,28,30,.78);color:#f2f2f7;
        box-shadow:0 2px 18px rgba(0,0,0,.4), 0 0 0 1px rgba(255,255,255,.06);
    }
    .bcai-them{background:rgba(44,44,46,.85);}
    .bcai-bar input{background:rgba(44,44,46,.6);color:#f2f2f7;border-color:rgba(255,255,255,.14);}
    .bcai-chips button{background:transparent;}
    .bcai-opt{background:rgba(44,44,46,.6);}
}

/* ── «Reservar con IA» en los formularios de reservar ────────
Debajo del botón de reservar de la ficha (Agent::frontend.reservar-ia).
Sin asistente en la página no se pinta: la clase `bcai-on` en el
<html> la pone agente-widget.js al arrancar, y sólo arranca si el
asistente está de verdad. El color es el del vendedor: el blade lo
escribe en `--bcai-color` para este botón igual que para el panel.
EL `display:none` DE PARTIDA VIVE EN app.css, no aquí: esta hoja sólo
carga con el asistente pintado, y sin él el botón se veía en la ficha
y no llevaba a nada (visto en rentcarx.com el 07/09/2026). */
.bc-ia-book{display:none;}
html.bcai-on .bc-ia-book{
display:flex;align-items:center;justify-content:center;gap:8px;
width:100%;margin:10px 0 0;min-height:44px;padding:0 16px;
border-radius:12px;
border:1.5px solid color-mix(in srgb, var(--bcai-color,#33D5C5) 45%, transparent);
background:color-mix(in srgb, var(--bcai-color,#33D5C5) 9%, transparent);
color:var(--bcai-color,#33D5C5);
font-size:14px;font-weight:600;line-height:1.2;
text-transform:none;letter-spacing:0;
cursor:pointer;box-shadow:none;
}
html.bcai-on .bc-ia-book svg{width:18px;height:18px;flex:0 0 auto;}
@media (hover:hover){
html.bcai-on .bc-ia-book:hover{background:color-mix(in srgb, var(--bcai-color,#33D5C5) 16%, transparent);}
}
