/* =============================================================================
   Assistant — composant visuel seul.
   Aucune requête réseau n'est émise en phase 1 : le scénario est joué en local
   pour valider l'ergonomie avant tout branchement d'API.
   ============================================================================= */

.chat-launch{
  display:inline-flex; align-items:center; gap:.55em; min-height:48px;
  padding:.75rem 1.4rem; border-radius:var(--r-md); border:1px solid var(--c-navy);
  background:var(--c-navy); color:#fff; font-size:var(--fs-sm); font-weight:650;
  cursor:pointer; font-family:inherit;
}
.chat-launch:hover{background:var(--c-navy-soft)}
.chat-launch svg{flex:0 0 auto}

.chat{
  position:fixed; inset:auto var(--sp-4) var(--sp-4) auto; z-index:80;
  width:min(400px,calc(100vw - 2rem)); max-height:min(620px,calc(100vh - 2rem));
  display:flex; flex-direction:column;
  background:#fff; border:1px solid var(--c-line); border-radius:var(--r-lg);
  box-shadow:0 18px 48px -18px rgba(15,27,45,.4);
}
.chat[hidden]{display:none}
.chat__head{
  display:flex; align-items:center; gap:var(--sp-3);
  padding:var(--sp-4); border-bottom:1px solid var(--c-line);
  background:var(--c-navy); color:#fff; border-radius:var(--r-lg) var(--r-lg) 0 0;
}
.chat__title{font-size:var(--fs-sm); font-weight:700; margin:0; flex:1; line-height:1.3}
.chat__sub{display:block; font-size:var(--fs-xs); font-weight:400; opacity:.75}
.chat__close{
  width:36px; height:36px; display:inline-flex; align-items:center; justify-content:center;
  background:rgba(255,255,255,.12); border:0; border-radius:var(--r-sm);
  color:#fff; cursor:pointer; font-size:18px; line-height:1;
}
.chat__close:hover{background:rgba(255,255,255,.22)}
.chat__log{
  flex:1; overflow-y:auto; padding:var(--sp-4); display:flex;
  flex-direction:column; gap:var(--sp-3); background:var(--c-bg-soft);
}
.chat__msg{max-width:86%; padding:.7rem .9rem; border-radius:var(--r-md);
  font-size:var(--fs-sm); line-height:1.55}
.chat__msg--bot{background:#fff; border:1px solid var(--c-line); align-self:flex-start}
.chat__msg--user{background:var(--c-accent); color:#fff; align-self:flex-end}
.chat__choices{display:flex; gap:var(--sp-2); flex-wrap:wrap; align-self:flex-start}
.chat__choice{
  font-size:var(--fs-xs); background:#fff; border:1px solid var(--c-line);
  border-radius:var(--r-full); padding:.35rem .8rem; cursor:pointer; font-family:inherit;
  color:var(--c-ink);
}
.chat__choice:hover{border-color:var(--c-accent); color:var(--c-accent)}
.chat__form{display:flex; gap:var(--sp-2); padding:var(--sp-3); border-top:1px solid var(--c-line)}
.chat__form input{
  flex:1; min-width:0; padding:.65rem .8rem; font:inherit; font-size:var(--fs-sm);
  border:1px solid var(--c-line); border-radius:var(--r-sm);
}
.chat__form input:focus{outline:none; border-color:var(--c-accent); box-shadow:0 0 0 3px var(--c-accent-soft)}
.chat__send{
  min-width:44px; min-height:44px; border:0; border-radius:var(--r-sm);
  background:var(--c-accent); color:#fff; cursor:pointer; font-family:inherit; font-weight:650;
}
.chat__send:hover{background:var(--c-accent-dark)}
.chat__note{
  padding:0 var(--sp-3) var(--sp-3); font-size:var(--fs-xs); color:var(--c-muted); margin:0;
}
.chat__recap{background:#fff; border:1px solid var(--c-line); border-radius:var(--r-md);
  padding:var(--sp-3); font-size:var(--fs-xs); align-self:stretch}
.chat__recap dl{display:grid; grid-template-columns:auto 1fr; gap:.3rem .8rem; margin:.5rem 0 0}
.chat__recap dt{color:var(--c-muted)}
.chat__recap dd{margin:0; color:var(--c-ink); font-weight:600}

@media (max-width:520px){
  .chat{inset:auto var(--sp-2) var(--sp-2) var(--sp-2); width:auto; max-height:calc(100vh - 1rem)}
}
