/* ---------- Assistant IA - bulle de chat flottante ---------- */
#ai-chat-btn{
  position:fixed; bottom:64px; right:14px; z-index:101;
  display:flex; align-items:center; justify-content:center;
  width:56px; height:56px; border-radius:50%;
  background:var(--brick); color:var(--paper);
  border:none; cursor:pointer;
  box-shadow:0 4px 14px rgba(0,0,0,0.25);
  transition:transform .15s ease, background .15s ease;
}
#ai-chat-btn:hover{background:var(--brick-dark); transform:scale(1.06);}
#ai-chat-btn svg{width:26px; height:26px; flex-shrink:0;}
#ai-chat-btn .ai-chat-badge{
  position:absolute; top:-2px; right:-2px; width:14px; height:14px;
  border-radius:50%; background:var(--amber); border:2px solid var(--paper);
  display:none;
}
#ai-chat-btn.has-unread .ai-chat-badge{display:block;}

#ai-chat-avatar{
  position:fixed; bottom:126px; right:8px; z-index:100;
  width:100px; height:auto; cursor:pointer;
  filter:drop-shadow(0 6px 12px rgba(0,0,0,0.3));
  animation:ai-chat-avatar-in .5s ease-out, ai-chat-avatar-float 3.2s ease-in-out .5s infinite;
}
#ai-chat-avatar.ai-chat-hidden{display:none;}
@keyframes ai-chat-avatar-in{
  from{opacity:0; transform:translateY(12px) scale(.9);}
  to{opacity:1; transform:translateY(0) scale(1);}
}
@keyframes ai-chat-avatar-float{
  0%,100%{transform:translateY(0);}
  50%{transform:translateY(-5px);}
}

#ai-chat-panel{
  position:fixed; bottom:130px; right:14px; z-index:101;
  width:360px; max-width:92vw; height:min(520px,70vh);
  background:var(--navy-deep); color:var(--cream);
  border:1px solid var(--line-dark); border-radius:10px;
  box-shadow:0 12px 32px rgba(0,0,0,0.35);
  display:none; flex-direction:column; overflow:hidden;
  font-family:inherit;
}
#ai-chat-panel.open{display:flex;}

#ai-chat-header{
  display:flex; align-items:center; justify-content:space-between;
  padding:12px 14px; background:var(--navy); border-bottom:1px solid var(--line-dark);
  flex-shrink:0;
}
#ai-chat-header .ai-chat-title{display:flex; flex-direction:column; gap:2px;}
#ai-chat-header .ai-chat-title strong{font-size:14px; color:var(--paper);}
#ai-chat-header .ai-chat-title span{font-size:11px; color:var(--amber);}
#ai-chat-close{
  background:none; border:none; color:var(--ink-soft); cursor:pointer;
  width:28px; height:28px; display:flex; align-items:center; justify-content:center;
  border-radius:50%; flex-shrink:0;
}
#ai-chat-close:hover{background:rgba(255,255,255,0.08); color:var(--paper);}

#ai-chat-messages{
  flex:1; overflow-y:auto; padding:14px; display:flex; flex-direction:column; gap:10px;
}
.ai-chat-msg{max-width:85%; font-size:13.5px; line-height:1.45; padding:9px 12px; border-radius:10px; white-space:pre-wrap;}
.ai-chat-msg.bot{align-self:flex-start; background:var(--navy-mid); color:var(--cream); border-bottom-left-radius:2px;}
.ai-chat-msg.user{align-self:flex-end; background:var(--brick); color:var(--paper); border-bottom-right-radius:2px;}
.ai-chat-msg.typing{align-self:flex-start; background:var(--navy-mid); color:var(--ink-soft); font-style:italic;}

#ai-chat-consent{
  font-size:10.5px; color:var(--ink-soft); padding:0 14px 8px; line-height:1.4; flex-shrink:0;
}
#ai-chat-consent a{color:var(--amber);}

#ai-chat-form{
  display:flex; gap:8px; padding:10px; border-top:1px solid var(--line-dark); flex-shrink:0;
}
#ai-chat-input{
  flex:1; resize:none; background:var(--navy); color:var(--paper);
  border:1px solid var(--line-dark); border-radius:6px; padding:9px 10px;
  font-size:13.5px; font-family:inherit; max-height:80px;
}
#ai-chat-input:focus{outline:none; border-color:var(--brick);}
#ai-chat-send{
  background:var(--brick); color:var(--paper); border:none; border-radius:6px;
  width:40px; flex-shrink:0; cursor:pointer; display:flex; align-items:center; justify-content:center;
}
#ai-chat-send:hover{background:var(--brick-dark);}
#ai-chat-send:disabled{opacity:0.5; cursor:default;}
#ai-chat-send svg{width:17px; height:17px;}

@media (max-width:480px){
  #ai-chat-panel{right:8px; left:8px; width:auto; bottom:118px;}
  #ai-chat-btn{right:10px; bottom:58px;}
  #ai-chat-avatar{width:56px; bottom:120px; right:12px;}
}
