/* Transilix — Chatbot mascotte « Lixy » (flottant, site-wide) */
:root{--lixy-blue:#0B2A4A;--lixy-orange:#F57C00}

/* ===== Lanceur (mascotte) ===== */
.tx-lixy-launcher{position:fixed;right:24px;bottom:24px;width:64px;height:64px;border-radius:50%;border:none;cursor:pointer;background:#fff;box-shadow:0 8px 26px rgba(11,42,74,.30);z-index:10000;display:flex;align-items:center;justify-content:center;padding:0;outline:2.5px solid var(--lixy-orange);outline-offset:1px;transition:transform .25s,box-shadow .25s;animation:tx-lixy-in .4s ease both}
.tx-lixy-launcher:hover{transform:translateY(-3px) scale(1.05);box-shadow:0 12px 30px rgba(245,124,0,.35)}
.tx-lixy-launcher img,.tx-lixy-launcher svg{width:100%;height:100%;border-radius:50%;object-fit:cover}
/* pastille notification */
.tx-lixy-badge{position:absolute;top:-2px;right:-2px;width:18px;height:18px;border-radius:50%;background:var(--lixy-orange);color:#fff;font:700 11px/18px 'Montserrat',sans-serif;text-align:center;border:2px solid #fff}
.tx-lixy-launcher.is-open .tx-lixy-badge{display:none}
@keyframes tx-lixy-in{from{opacity:0;transform:translateY(20px) scale(.6)}to{opacity:1;transform:none}}
/* petit rebond d'appel d'attention */
.tx-lixy-launcher.tx-bounce{animation:tx-lixy-bounce 1s ease}
@keyframes tx-lixy-bounce{0%,100%{transform:none}30%{transform:translateY(-10px)}50%{transform:translateY(0)}70%{transform:translateY(-5px)}}
/* oscillation périodique pour attirer l'attention (saut + balancement) */
.tx-lixy-launcher.tx-wiggle{animation:tx-lixy-wiggle 1.3s ease}
@keyframes tx-lixy-wiggle{
  0%,100%{transform:none}
  15%{transform:translateY(-9px) rotate(-9deg)}
  30%{transform:translateY(0) rotate(8deg)}
  45%{transform:translateY(-5px) rotate(-6deg)}
  60%{transform:translateY(0) rotate(4deg)}
  75%{transform:rotate(-2deg)}
}
/* halo qui pulse en même temps (wiggle + point) */
.tx-lixy-launcher.tx-wiggle::after,.tx-lixy-launcher.tx-point::after{content:"";position:absolute;inset:-4px;border-radius:50%;border:2px solid var(--lixy-orange);animation:tx-lixy-halo 1.3s ease}
@keyframes tx-lixy-halo{0%{opacity:.7;transform:scale(1)}100%{opacity:0;transform:scale(1.35)}}

/* Clin d'œil 😉 (uniquement avatar SVG — l'œil droit se ferme, léger penché de tête) */
.tx-lixy-launcher.tx-wink{animation:tx-lixy-tilt 1.1s ease}
@keyframes tx-lixy-tilt{0%,100%{transform:none}30%{transform:rotate(-8deg)}55%{transform:rotate(-3deg)}}
.tx-lixy-launcher.tx-wink .tx-eye-r{transform-box:fill-box;transform-origin:center;animation:tx-lixy-wink 1.1s ease}
@keyframes tx-lixy-wink{0%,38%,100%{transform:scaleY(1)}15%,26%{transform:scaleY(.12)}}

/* Pointage vers la bulle : la mascotte se penche vers la gauche (la bulle est à gauche) */
.tx-lixy-launcher.tx-point{animation:tx-lixy-point 1.4s ease}
@keyframes tx-lixy-point{0%,100%{transform:none}20%{transform:translateX(-6px) rotate(-13deg)}45%{transform:translateX(-2px) rotate(-6deg)}65%{transform:translateX(-6px) rotate(-13deg)}82%{transform:rotate(-3deg)}}

@media (prefers-reduced-motion:reduce){
  .tx-lixy-launcher.tx-wiggle,.tx-lixy-launcher.tx-bounce,.tx-lixy-launcher.tx-wink,.tx-lixy-launcher.tx-point{animation:none}
  .tx-lixy-launcher.tx-wink .tx-eye-r{animation:none}
  .tx-lixy-launcher.tx-wiggle::after,.tx-lixy-launcher.tx-point::after{display:none}
}

/* ===== Bulle d'accueil ===== */
.tx-lixy-bubble{position:fixed;right:96px;bottom:36px;background:#fff;color:var(--lixy-blue);font:500 13px/1.45 'Poppins',sans-serif;padding:11px 14px;border-radius:14px 14px 4px 14px;box-shadow:0 8px 24px rgba(11,42,74,.18);max-width:230px;z-index:10000;opacity:0;transform:translateX(10px);pointer-events:none;transition:opacity .3s,transform .3s}
.tx-lixy-bubble.is-show{opacity:1;transform:none;pointer-events:auto}
.tx-lixy-bubble b{color:var(--lixy-orange)}
.tx-lixy-bubble .tx-lixy-bubble-x{position:absolute;top:-7px;right:-7px;width:20px;height:20px;border-radius:50%;background:var(--lixy-blue);color:#fff;border:none;cursor:pointer;font-size:12px;line-height:20px;padding:0}

/* ===== Panneau de chat ===== */
.tx-lixy-panel{position:fixed;right:24px;bottom:100px;width:350px;max-width:calc(100vw - 32px);max-height:min(72vh,560px);background:#fff;border-radius:18px;box-shadow:0 18px 50px rgba(11,42,74,.28);z-index:10000;display:flex;flex-direction:column;overflow:hidden;opacity:0;transform:translateY(16px) scale(.97);pointer-events:none;transition:opacity .25s,transform .25s}
.tx-lixy-panel.is-open{opacity:1;transform:none;pointer-events:auto}

.tx-lixy-head{background:var(--lixy-blue);color:#fff;padding:16px 16px 14px;display:flex;align-items:center;gap:12px;position:relative}
.tx-lixy-head .tx-lixy-ava{width:44px;height:44px;border-radius:50%;background:#fff;flex-shrink:0;overflow:hidden;display:flex;align-items:center;justify-content:center}
.tx-lixy-head .tx-lixy-ava img,.tx-lixy-head .tx-lixy-ava svg{width:100%;height:100%;object-fit:cover}
.tx-lixy-head h4{margin:0;font:800 15px/1.1 'Montserrat',sans-serif}
.tx-lixy-head .tx-lixy-sub{display:flex;align-items:center;gap:6px;font:400 11.5px/1 'Poppins',sans-serif;color:rgba(255,255,255,.78);margin-top:4px}
.tx-lixy-head .tx-lixy-sub i{width:8px;height:8px;border-radius:50%;background:#22c55e;display:inline-block;animation:tx-pulse 1.6s infinite}
.tx-lixy-close{position:absolute;top:12px;right:12px;width:28px;height:28px;border:none;background:rgba(255,255,255,.15);color:#fff;border-radius:50%;cursor:pointer;font-size:16px;line-height:1}
.tx-lixy-close:hover{background:rgba(255,255,255,.28)}

.tx-lixy-body{flex:1;overflow-y:auto;padding:16px;background:#F4F5F7;display:flex;flex-direction:column;gap:10px}
.tx-lixy-msg{max-width:85%;padding:10px 13px;font:400 13px/1.5 'Poppins',sans-serif;border-radius:14px 14px 14px 4px;background:#fff;color:#1a1a2e;box-shadow:0 2px 8px rgba(11,42,74,.06);align-self:flex-start;animation:tx-lixy-msg-in .25s ease both}
.tx-lixy-msg.is-user{align-self:flex-end;background:var(--lixy-orange);color:#fff;border-radius:14px 14px 4px 14px}
@keyframes tx-lixy-msg-in{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}

/* réponses rapides (chips) */
.tx-lixy-chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:2px}
.tx-lixy-chip{border:1.5px solid var(--lixy-blue);background:#fff;color:var(--lixy-blue);font:600 12.5px/1 'Montserrat',sans-serif;padding:9px 13px;border-radius:20px;cursor:pointer;transition:all .15s;text-decoration:none;display:inline-block}
.tx-lixy-chip:hover{background:var(--lixy-blue);color:#fff}
.tx-lixy-chip.is-wa{border-color:#25D366;color:#128C45}
.tx-lixy-chip.is-wa:hover{background:#25D366;color:#fff}
.tx-lixy-chip.is-back{border-color:#cbd2dc;color:#64748b}
.tx-lixy-chip.is-back:hover{background:#64748b;color:#fff}

.tx-lixy-foot{padding:8px 14px;text-align:center;font:400 10.5px/1.4 'Poppins',sans-serif;color:#94a3b8;background:#fff;border-top:1px solid #eef1f5}
.tx-lixy-foot b{color:var(--lixy-orange)}

/* indicateur « écrit… » */
.tx-lixy-typing{align-self:flex-start;background:#fff;border-radius:14px;padding:11px 14px;box-shadow:0 2px 8px rgba(11,42,74,.06);display:flex;gap:4px}
.tx-lixy-typing span{width:6px;height:6px;border-radius:50%;background:#cbd2dc;animation:tx-lixy-blink 1.2s infinite}
.tx-lixy-typing span:nth-child(2){animation-delay:.2s}
.tx-lixy-typing span:nth-child(3){animation-delay:.4s}
@keyframes tx-lixy-blink{0%,60%,100%{opacity:.3}30%{opacity:1}}

@media(max-width:600px){
  .tx-lixy-panel{right:12px;bottom:90px;width:calc(100vw - 24px);max-height:74vh}
  .tx-lixy-launcher{right:16px;bottom:16px;width:58px;height:58px}
  .tx-lixy-bubble{right:84px;bottom:26px;max-width:190px}
}
