/* FlashTréso assistant widget — autonome, namespace ftb-*
   Tout est placé à l'intérieur de #ft-chatbot. Les éléments fixés au viewport
   (lanceur, panneau, teaser) utilisent position:fixed donc leur position dans
   le DOM est sans incidence ; ils restent ancrés en bas à droite. */

#ft-chatbot, #ft-chatbot *{box-sizing:border-box;margin:0;padding:0}
#ft-chatbot{font-family:'Plus Jakarta Sans',-apple-system,BlinkMacSystemFont,sans-serif}

/* Mode "dismiss" : on cache tout le widget pour la session */
#ft-chatbot.ftb-dismissed{display:none}

/* ---------- LANCEUR ---------- */
#ft-chatbot .ftb-launcher-wrap{
  position:fixed;bottom:24px;right:24px;z-index:99999;
  opacity:0;transform:translateY(20px) scale(.9);
  transition:opacity .45s cubic-bezier(.16,1,.3,1),transform .45s cubic-bezier(.16,1,.3,1)
}
#ft-chatbot .ftb-launcher-wrap.ftb-revealed{opacity:1;transform:translateY(0) scale(1)}
#ft-chatbot .ftb-launcher-wrap.ftb-hidden{opacity:0;transform:translateY(20px) scale(.9);pointer-events:none}

#ft-chatbot .ftb-launcher{
  display:flex;align-items:center;gap:11px;
  background:linear-gradient(135deg,#FFD84D 0%,#FFC525 100%);
  color:#0B1120;
  border:none;border-radius:50px;padding:13px 24px 13px 14px;
  font-family:inherit;font-weight:800;font-size:.93rem;cursor:pointer;
  box-shadow:0 12px 32px rgba(255,197,37,.45),0 4px 12px rgba(11,17,32,.18);
  transition:transform .22s cubic-bezier(.16,1,.3,1),box-shadow .22s
}
#ft-chatbot .ftb-launcher:hover{
  transform:translateY(-2px);
  box-shadow:0 16px 40px rgba(255,197,37,.55),0 6px 16px rgba(11,17,32,.22)
}
#ft-chatbot .ftb-launcher:active{transform:translateY(0)}

#ft-chatbot .ftb-launcher-ic{
  width:32px;height:32px;border-radius:50%;
  background:linear-gradient(135deg,#1A6BFF 0%,#0d4dcc 100%);
  display:flex;align-items:center;justify-content:center;flex-shrink:0;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.3),0 2px 6px rgba(26,107,255,.4);
  position:relative
}

#ft-chatbot .ftb-online{
  position:absolute;top:-2px;right:-2px;
  width:11px;height:11px;border-radius:50%;
  background:#2EC4A0;border:2.5px solid #FFD84D;
  animation:ftbPulse 2s infinite
}
@keyframes ftbPulse{0%,100%{transform:scale(1);opacity:1}50%{transform:scale(1.18);opacity:.7}}

/* Bouton "ne plus afficher" — petite croix à côté du lanceur */
#ft-chatbot .ftb-dismiss{
  position:absolute;top:-6px;right:-6px;
  width:22px;height:22px;border-radius:50%;
  background:#fff;border:1.5px solid #d8e3f5;color:#6B7A99;
  font-size:14px;line-height:1;font-weight:700;
  display:flex;align-items:center;justify-content:center;
  cursor:pointer;padding:0;
  box-shadow:0 2px 6px rgba(11,17,32,.15);
  transition:all .18s;opacity:0
}
#ft-chatbot .ftb-launcher-wrap:hover .ftb-dismiss,
#ft-chatbot .ftb-dismiss:focus{opacity:1}
#ft-chatbot .ftb-dismiss:hover{background:#0B1120;color:#fff;border-color:#0B1120;transform:scale(1.08)}

/* ---------- TEASER BUBBLE ---------- */
#ft-chatbot .ftb-teaser{
  position:fixed;bottom:90px;right:24px;z-index:99998;
  max-width:280px;
  background:#fff;color:#0B1120;
  padding:14px 38px 14px 16px;border-radius:16px;
  box-shadow:0 16px 40px rgba(11,17,32,.18),0 2px 8px rgba(11,17,32,.08);
  font-size:.88rem;line-height:1.5;font-weight:500;
  opacity:0;transform:translateY(8px) scale(.96);pointer-events:none;
  transition:opacity .35s cubic-bezier(.16,1,.3,1),transform .35s cubic-bezier(.16,1,.3,1)
}
#ft-chatbot .ftb-teaser.ftb-revealed{opacity:1;transform:translateY(0) scale(1);pointer-events:auto}
#ft-chatbot .ftb-teaser strong{color:#0B1120;font-weight:800}
#ft-chatbot .ftb-teaser::after{
  content:"";position:absolute;bottom:-7px;right:34px;
  width:14px;height:14px;background:#fff;transform:rotate(45deg);
  box-shadow:4px 4px 8px rgba(11,17,32,.06)
}
#ft-chatbot .ftb-teaser-close{
  position:absolute;top:6px;right:8px;
  background:none;border:none;color:#9aa7bd;
  font-size:18px;line-height:1;font-weight:600;cursor:pointer;
  width:24px;height:24px;border-radius:6px;
  display:flex;align-items:center;justify-content:center;
  transition:background .18s,color .18s
}
#ft-chatbot .ftb-teaser-close:hover{background:#F8FAFF;color:#0B1120}

/* ---------- PANNEAU ---------- */
#ft-chatbot .ftb-panel{
  position:fixed;bottom:24px;right:24px;z-index:99999;
  width:380px;max-width:calc(100vw - 28px);height:600px;max-height:calc(100vh - 48px);
  background:#fff;border-radius:22px;overflow:hidden;
  display:flex;flex-direction:column;
  box-shadow:0 24px 70px rgba(11,17,32,.35),0 4px 16px rgba(11,17,32,.15);
  opacity:0;transform:translateY(16px) scale(.98);pointer-events:none;
  transition:opacity .28s cubic-bezier(.16,1,.3,1),transform .28s cubic-bezier(.16,1,.3,1)
}
#ft-chatbot .ftb-panel.ftb-open{opacity:1;transform:translateY(0) scale(1);pointer-events:auto}

/* En-tête */
#ft-chatbot .ftb-head{
  background:linear-gradient(135deg,#0d1a3a,#0B1120);color:#fff;
  padding:16px 18px;display:flex;align-items:center;gap:12px;flex-shrink:0
}
#ft-chatbot .ftb-head-ic{width:38px;height:38px;flex-shrink:0}
#ft-chatbot .ftb-head-txt{flex:1;min-width:0}
#ft-chatbot .ftb-head-name{font-weight:800;font-size:.98rem;line-height:1.2}
#ft-chatbot .ftb-head-name span{color:#FFD84D}
#ft-chatbot .ftb-head-sub{font-size:.7rem;color:rgba(255,255,255,.55);margin-top:2px;display:flex;align-items:center;gap:6px}
#ft-chatbot .ftb-head-sub::before{content:"";width:7px;height:7px;border-radius:50%;background:#2EC4A0;animation:ftbPulse 2s infinite}
#ft-chatbot .ftb-head-btn{
  background:rgba(255,255,255,.1);border:none;color:#fff;
  width:32px;height:32px;border-radius:9px;cursor:pointer;font-size:1.1rem;line-height:1;
  display:flex;align-items:center;justify-content:center;transition:background .2s
}
#ft-chatbot .ftb-head-btn:hover{background:rgba(255,255,255,.2)}

/* Corps */
#ft-chatbot .ftb-body{
  flex:1;overflow-y:auto;padding:20px 16px 8px;background:#F8FAFF;
  display:flex;flex-direction:column;gap:10px;scroll-behavior:smooth
}
#ft-chatbot .ftb-body::-webkit-scrollbar{width:6px}
#ft-chatbot .ftb-body::-webkit-scrollbar-thumb{background:#d6deec;border-radius:3px}

#ft-chatbot .ftb-msg{
  max-width:86%;padding:11px 15px;border-radius:16px;font-size:.9rem;line-height:1.55;
  animation:ftbIn .35s cubic-bezier(.16,1,.3,1) both
}
@keyframes ftbIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
#ft-chatbot .ftb-bot{align-self:flex-start;background:#fff;color:#0B1120;border:1px solid #E8F0FF;border-bottom-left-radius:5px}
#ft-chatbot .ftb-bot strong{color:#0B1120}
#ft-chatbot .ftb-bot .ftb-warn{color:#b45309}
#ft-chatbot .ftb-user{align-self:flex-end;background:#1A6BFF;color:#fff;border-bottom-right-radius:5px;font-weight:600}

/* Indicateur de saisie */
#ft-chatbot .ftb-typing{align-self:flex-start;background:#fff;border:1px solid #E8F0FF;border-bottom-left-radius:5px;padding:14px 16px;display:flex;gap:5px}
#ft-chatbot .ftb-typing span{width:7px;height:7px;border-radius:50%;background:#9fb2cf;animation:ftbBounce 1.2s infinite}
#ft-chatbot .ftb-typing span:nth-child(2){animation-delay:.2s}
#ft-chatbot .ftb-typing span:nth-child(3){animation-delay:.4s}
@keyframes ftbBounce{0%,60%,100%{transform:translateY(0);opacity:.5}30%{transform:translateY(-5px);opacity:1}}

/* Zone de réponses */
#ft-chatbot .ftb-replies{
  flex-shrink:0;padding:12px 16px 16px;background:#F8FAFF;border-top:1px solid #E8F0FF;
  display:flex;flex-direction:column;gap:8px
}
#ft-chatbot .ftb-reply{
  background:#fff;border:1.5px solid #d8e3f5;color:#0B1120;
  font-family:inherit;font-weight:700;font-size:.86rem;text-align:left;
  padding:11px 15px;border-radius:11px;cursor:pointer;
  transition:all .18s;animation:ftbIn .3s both
}
#ft-chatbot .ftb-reply:hover{border-color:#1A6BFF;background:#EEF5FF}
#ft-chatbot .ftb-reply:active{transform:scale(.98)}
#ft-chatbot .ftb-reply.ftb-cta{background:#FFD84D;border-color:#FFD84D;color:#0B1120;text-align:center;box-shadow:0 6px 18px rgba(255,216,77,.35)}
#ft-chatbot .ftb-reply.ftb-cta:hover{background:#E8C030;border-color:#E8C030}
#ft-chatbot .ftb-reply.ftb-ghost{background:transparent;border-color:transparent;color:#6B7A99;text-align:center;font-weight:600;font-size:.8rem;padding:6px}
#ft-chatbot .ftb-reply.ftb-ghost:hover{background:#EEF5FF;color:#1A6BFF}

#ft-chatbot .ftb-disclaimer{
  flex-shrink:0;text-align:center;font-size:.66rem;color:#9aa7bd;
  padding:0 16px 10px;background:#F8FAFF;line-height:1.4
}

/* ---------- MINI-SIMULATEUR ---------- */
#ft-chatbot .ftb-simu{display:flex;flex-direction:column;gap:8px;animation:ftbIn .3s both}
#ft-chatbot .ftb-simu-lbl{font-size:.78rem;font-weight:700;color:#0B1120;margin-top:2px}
#ft-chatbot .ftb-simu-row{position:relative;display:flex;align-items:center}
#ft-chatbot .ftb-simu-row input,
#ft-chatbot .ftb-simu select{
  width:100%;font-family:inherit;font-size:.92rem;font-weight:600;color:#0B1120;
  background:#fff;border:1.5px solid #d8e3f5;border-radius:10px;
  padding:10px 12px;-webkit-appearance:none;appearance:none
}
#ft-chatbot .ftb-simu-row input{padding-right:80px}
#ft-chatbot .ftb-simu-row input:focus,
#ft-chatbot .ftb-simu select:focus{outline:none;border-color:#1A6BFF;box-shadow:0 0 0 3px rgba(26,107,255,.12)}
#ft-chatbot .ftb-simu select{
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'><path fill='%236B7A99' d='M6 8L0 0h12z'/></svg>");
  background-repeat:no-repeat;background-position:right 14px center;padding-right:34px
}
#ft-chatbot .ftb-simu-unit{
  position:absolute;right:12px;font-size:.78rem;font-weight:600;color:#6B7A99;
  pointer-events:none
}
#ft-chatbot .ftb-simu-go{margin-top:4px}
#ft-chatbot .ftb-simu-result{
  margin-top:6px;padding:14px;background:#fff;border:1px solid #E8F0FF;border-radius:12px;
  animation:ftbIn .35s both
}
#ft-chatbot .ftb-simu-err{color:#b91c1c;font-size:.85rem;font-weight:600}
#ft-chatbot .ftb-simu-range{
  display:flex;flex-direction:column;gap:2px;
  padding:10px 12px;margin:-4px -4px 10px;border-radius:10px;
  background:linear-gradient(135deg,#0d1a3a,#0B1120);color:#fff
}
#ft-chatbot .ftb-simu-range-lbl{font-size:.7rem;text-transform:uppercase;letter-spacing:.5px;opacity:.6;font-weight:700}
#ft-chatbot .ftb-simu-range strong{font-size:1.15rem;color:#FFD84D;font-weight:800}
#ft-chatbot .ftb-simu-detail{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin-bottom:6px}
#ft-chatbot .ftb-simu-detail > div{
  background:#F8FAFF;border-radius:8px;padding:8px 6px;text-align:center;
  display:flex;flex-direction:column;gap:1px
}
#ft-chatbot .ftb-simu-detail span{font-size:.66rem;color:#6B7A99;font-weight:600;text-transform:uppercase;letter-spacing:.3px}
#ft-chatbot .ftb-simu-detail b{font-size:.85rem;color:#0B1120;font-weight:800}
#ft-chatbot .ftb-simu-detail small{font-size:.62rem;color:#9aa7bd}
#ft-chatbot .ftb-simu-note{font-size:.7rem;color:#9aa7bd;margin:6px 0 0;line-height:1.4}
#ft-chatbot .ftb-simu-actions{margin-top:4px}

/* ---------- FORMULAIRE LEAD ---------- */
#ft-chatbot .ftb-form{display:flex;flex-direction:column;gap:9px;animation:ftbIn .3s both}
#ft-chatbot .ftb-form-row{display:flex;flex-direction:column;gap:4px}
#ft-chatbot .ftb-form-row label{font-size:.78rem;font-weight:700;color:#0B1120}
#ft-chatbot .ftb-form-row label em{font-style:normal;font-weight:500;color:#9aa7bd;font-size:.72rem}
#ft-chatbot .ftb-form input,
#ft-chatbot .ftb-form textarea{
  font-family:inherit;font-size:.9rem;color:#0B1120;
  background:#fff;border:1.5px solid #d8e3f5;border-radius:10px;
  padding:10px 12px;resize:vertical
}
#ft-chatbot .ftb-form input:focus,
#ft-chatbot .ftb-form textarea:focus{outline:none;border-color:#1A6BFF;box-shadow:0 0 0 3px rgba(26,107,255,.12)}
#ft-chatbot .ftb-form input:invalid:not(:placeholder-shown){border-color:#fca5a5}
#ft-chatbot .ftb-form-honey{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
#ft-chatbot .ftb-form-err{
  background:#FEF2F2;border:1px solid #FECACA;color:#b91c1c;
  padding:8px 12px;border-radius:8px;font-size:.82rem;font-weight:600
}
#ft-chatbot .ftb-form-submit{margin-top:2px;text-align:center}
#ft-chatbot .ftb-form-submit:disabled{opacity:.6;cursor:wait}
#ft-chatbot .ftb-form-rgpd{font-size:.7rem;color:#9aa7bd;margin:2px 0 0;line-height:1.4;text-align:center}
#ft-chatbot .ftb-form-rgpd a{color:#1A6BFF;text-decoration:underline}

/* ---------- SUGGESTIONS CONTEXTUELLES ---------- */
#ft-chatbot .ftb-suggest{
  align-self:stretch;background:#fff;border:1px dashed #C7D7F0;border-radius:14px;
  padding:10px 12px;margin:2px 0 4px;animation:ftbIn .35s both;
  display:flex;flex-direction:column;gap:6px
}
#ft-chatbot .ftb-suggest-title{
  font-size:.72rem;font-weight:800;color:#6B7A99;text-transform:uppercase;letter-spacing:.4px
}
#ft-chatbot .ftb-suggest-card{
  display:flex;align-items:center;gap:10px;
  padding:9px 11px;border-radius:10px;background:#F8FAFF;
  text-decoration:none;color:#0B1120;border:1px solid transparent;
  transition:border-color .15s,background .15s
}
#ft-chatbot .ftb-suggest-card:hover{border-color:#1A6BFF;background:#EEF5FF}
#ft-chatbot .ftb-suggest-card-txt{flex:1;min-width:0}
#ft-chatbot .ftb-suggest-card-lbl{font-size:.84rem;font-weight:700;color:#0B1120;line-height:1.25}
#ft-chatbot .ftb-suggest-card-hint{font-size:.72rem;color:#6B7A99;margin-top:2px}
#ft-chatbot .ftb-suggest-card-arrow{
  flex-shrink:0;width:24px;height:24px;border-radius:50%;
  background:#1A6BFF;color:#fff;font-weight:800;font-size:.85rem;
  display:flex;align-items:center;justify-content:center
}

/* ---------- SÉPARATEUR DE REPRISE ---------- */
#ft-chatbot .ftb-resume-sep{
  align-self:center;font-size:.7rem;color:#9aa7bd;font-style:italic;font-weight:600;
  padding:6px 14px;margin:6px 0;
  background:#fff;border-radius:20px;border:1px dashed #d8e3f5
}

/* ---------- V2 : CHAMP LIBRE (smart router) ---------- */
#ft-chatbot .ftb-freetext{
  margin-top:10px;padding-top:10px;border-top:1px dashed #d8e3f5;
  display:flex;flex-direction:column;gap:6px
}
#ft-chatbot .ftb-freetext-divider{
  text-align:center;font-size:.7rem;color:#9aa7bd;font-style:italic;
  margin-bottom:2px
}
#ft-chatbot .ftb-freetext-row{
  display:flex;gap:6px;align-items:stretch
}
#ft-chatbot .ftb-freetext-input{
  flex:1;min-width:0;
  font-family:inherit;font-size:.85rem;
  padding:9px 12px;border:1.5px solid #d8e3f5;border-radius:18px;
  background:#fff;color:#0B1120;
  outline:none;transition:border-color .15s,box-shadow .15s
}
#ft-chatbot .ftb-freetext-input:focus{
  border-color:#1A6BFF;box-shadow:0 0 0 3px rgba(26,107,255,.12)
}
#ft-chatbot .ftb-freetext-input::placeholder{color:#9aa7bd}
#ft-chatbot .ftb-freetext-go{
  flex-shrink:0;width:38px;height:38px;border-radius:50%;
  border:none;cursor:pointer;
  background:#1A6BFF;color:#fff;
  font-size:1rem;font-weight:800;
  display:flex;align-items:center;justify-content:center;
  transition:background-color .15s,transform .15s
}
#ft-chatbot .ftb-freetext-go:hover{background:#0d4dcc;transform:scale(1.05)}
#ft-chatbot .ftb-freetext-go:active{transform:scale(.95)}

/* ---------- V2 : MESSAGE STOP CONTACT ---------- */
#ft-chatbot .ftb-stop-confirm{
  padding:16px 18px;background:#f5f9ff;border:1px solid #d8e3f5;border-radius:14px;
  text-align:center
}
#ft-chatbot .ftb-stop-confirm p{margin:0;font-size:.9rem;line-height:1.45;color:#0B1120}
#ft-chatbot .ftb-stop-confirm p + p{margin-top:8px}
#ft-chatbot .ftb-stop-note{color:#6B7A99}
#ft-chatbot .ftb-stop-note a{color:#1A6BFF;text-decoration:underline}

/* ---------- MOBILE ---------- */
@media(max-width:480px){
  #ft-chatbot .ftb-panel{bottom:0;right:0;width:100vw;max-width:100vw;height:100dvh;max-height:100dvh;border-radius:0}
  #ft-chatbot .ftb-launcher-wrap{bottom:18px;right:18px}
  #ft-chatbot .ftb-teaser{bottom:82px;right:18px;left:18px;max-width:none}
  #ft-chatbot .ftb-teaser::after{right:32px}
  /* Sur mobile le bouton dismiss reste visible (pas de hover) */
  #ft-chatbot .ftb-dismiss{opacity:1}
  /* Champ libre : input plus grand pour faciliter le tap (anti-zoom iOS) */
  #ft-chatbot .ftb-freetext-input{font-size:16px;padding:10px 14px}
  #ft-chatbot .ftb-freetext-go{width:42px;height:42px}
}

/* Respecte prefers-reduced-motion */
@media(prefers-reduced-motion:reduce){
  #ft-chatbot *, #ft-chatbot *::before, #ft-chatbot *::after{
    animation-duration:.01ms !important;transition-duration:.01ms !important
  }
}
