#bulle{position:fixed;right:22px;bottom:22px;z-index:60;width:60px;height:60px;border-radius:50%;
  border:1px solid rgba(232,176,75,.35);background:linear-gradient(180deg,#151a26,#0e121b);
  cursor:pointer;display:grid;place-items:center;color:var(--or);
  box-shadow:0 14px 40px -12px rgba(0,0,0,.9),0 0 0 0 rgba(232,176,75,.4);
  transition:transform .2s ease,box-shadow .2s ease}
#bulle:hover{transform:scale(1.06)}
#bulle .fermer{display:none}
#bulle.ouvert .ouvrir{display:none}
#bulle.ouvert .fermer{display:block}
#panneau{position:fixed;right:22px;bottom:96px;z-index:59;width:min(408px,calc(100vw - 32px));
  height:min(584px,calc(100vh - 140px));background:#0b0e15;border:1px solid var(--bord2);
  border-radius:18px;display:none;flex-direction:column;overflow:hidden;
  box-shadow:0 32px 80px -24px rgba(0,0,0,.95)}
#panneau.ouvert{display:flex;animation:monter .22s cubic-bezier(.2,.8,.3,1)}
@keyframes monter{from{opacity:0;transform:translateY(14px) scale(.98)}to{opacity:1;transform:none}}
.tete-chat{padding:15px 18px;border-bottom:1px solid var(--bord);display:flex;gap:11px;align-items:center;
  background:linear-gradient(180deg,#10141d,#0b0e15)}
.tete-chat .oeil{width:26px;height:26px;flex:none}
.tete-chat b{font-size:14.5px;display:block;letter-spacing:-.005em}
.tete-chat span{font-size:12px;color:var(--doux);display:flex;align-items:center;gap:6px}
.vivant{width:6px;height:6px;border-radius:50%;background:var(--vert)}
#fil{flex:1;overflow-y:auto;padding:18px;display:flex;flex-direction:column;gap:13px;scroll-behavior:smooth}
.msg{max-width:88%;padding:11px 14px;border-radius:14px;font-size:14.5px;line-height:1.58;
  white-space:pre-wrap;word-wrap:break-word;animation:apparaitre .2s ease}
@keyframes apparaitre{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:none}}
.msg.lui{background:#141924;border:1px solid var(--bord);border-bottom-left-radius:5px;align-self:flex-start}
.msg.moi{background:linear-gradient(180deg,#2a2416,#221d12);border:1px solid rgba(232,176,75,.25);
  border-bottom-right-radius:5px;align-self:flex-end;color:#f0e6d4}
.msg.erreur{background:rgba(242,119,122,.09);border:1px solid rgba(242,119,122,.3);color:#f3a2a4;
  align-self:stretch;max-width:100%;font-size:13.5px}
.msg code{background:#0d1119}
.points{display:inline-flex;gap:4px;align-items:center;height:18px}
.points i{width:5px;height:5px;border-radius:50%;background:var(--doux);animation:sauter 1.3s infinite}
.points i:nth-child(2){animation-delay:.16s}.points i:nth-child(3){animation-delay:.32s}
@keyframes sauter{0%,60%,100%{opacity:.3;transform:translateY(0)}30%{opacity:1;transform:translateY(-4px)}}
.suggestions{display:flex;flex-wrap:wrap;gap:7px;padding:0 18px 14px}
.suggestions button{font-family:inherit;font-size:12.5px;color:var(--doux);background:#111621;
  border:1px solid var(--bord);border-radius:100px;padding:7px 13px;cursor:pointer;transition:.15s}
.suggestions button:hover{color:var(--texte);border-color:var(--bord2)}
.saisie{border-top:1px solid var(--bord);padding:12px;display:flex;gap:9px;align-items:flex-end;
  background:#0a0d14}
.saisie textarea{flex:1;background:#111621;border:1px solid var(--bord);border-radius:11px;
  color:var(--texte);font-family:inherit;font-size:14.5px;padding:11px 13px;resize:none;
  max-height:120px;line-height:1.5;outline:none;transition:border-color .15s}
.saisie textarea:focus{border-color:rgba(232,176,75,.45)}
.saisie button{flex:none;width:40px;height:40px;border-radius:11px;border:0;cursor:pointer;
  background:linear-gradient(180deg,#f0bd5f,#dda23c);color:#1a1305;display:grid;place-items:center}
.saisie button:disabled{opacity:.4;cursor:default}
.mention{font-size:11.5px;color:#5f6779;text-align:center;padding:0 18px 11px;line-height:1.5}
@media(max-width:520px){#panneau{right:12px;left:12px;width:auto;bottom:88px;height:min(560px,calc(100dvh - 120px))}#bulle{right:16px;bottom:16px}}