/* ---------- Assistant Facility Buy (bas droite) ---------- */
.fbb{--fbb-r:22px;position:fixed;right:max(16px,env(safe-area-inset-right,0px));bottom:calc(16px + env(safe-area-inset-bottom,0px));z-index:80;font-family:var(--font-body);color:var(--ink)}

/* Lanceur : le carré incliné du logo */
.fbb-launch{position:relative;width:64px;height:64px;border:0;padding:0;cursor:pointer;background:none;display:grid;place-items:center;-webkit-tap-highlight-color:transparent}
.fbb-launch .sq{position:absolute;inset:0;border-radius:20px;transition:transform .5s cubic-bezier(.2,1.2,.3,1)}
.fbb-launch .sq.back{background:linear-gradient(145deg,#1FE0FF,#0A8EE0);transform:rotate(12deg) translate(3px,-2px)}
.fbb-launch .sq.front{background:linear-gradient(155deg,#0A6BD6,#03307A);transform:rotate(-6deg);box-shadow:0 14px 30px -10px rgba(3,48,122,.7)}
.fbb-launch:hover .sq.back{transform:rotate(18deg) translate(5px,-4px)}
.fbb-launch:hover .sq.front{transform:rotate(-10deg) scale(1.04)}
.fbb-launch svg{position:relative;width:28px;height:28px;color:#fff;transition:transform .45s cubic-bezier(.2,1.2,.3,1),opacity .25s}
.fbb-launch .ic-close{position:absolute;opacity:0;transform:rotate(-90deg) scale(.5)}
.fbb.open .fbb-launch .ic-chat{opacity:0;transform:rotate(90deg) scale(.5)}
.fbb.open .fbb-launch .ic-close{opacity:1;transform:none}
.fbb.open .fbb-launch .sq.front{transform:rotate(0deg)}
.fbb.open .fbb-launch .sq.back{transform:rotate(0deg) scale(.9);opacity:0}
.fbb-launch .ring{position:absolute;inset:-2px;border-radius:24px;border:2px solid #1FE0FF;opacity:0;animation:fbbRing 2.8s 1.2s ease-out infinite}
.fbb-launch .ring + .ring{animation-delay:2.2s}
.fbb.open .fbb-launch .ring,.fbb.seen .fbb-launch .ring{display:none}
@keyframes fbbRing{0%{transform:scale(.9) rotate(-6deg);opacity:.8}100%{transform:scale(1.5) rotate(-6deg);opacity:0}}
.fbb-launch .badge{position:absolute;top:-4px;right:-4px;min-width:22px;height:22px;padding:0 6px;border-radius:11px;background:#FF5A3C;color:#fff;font:700 .75rem/22px var(--font-body);box-shadow:0 0 0 3px var(--bg);transform:scale(0);transition:transform .35s cubic-bezier(.2,1.6,.4,1)}
.fbb.has-unread .fbb-launch .badge{transform:scale(1)}
.fbb-launch.wiggle .sq.front{animation:fbbWiggle .9s ease-in-out}
@keyframes fbbWiggle{0%,100%{transform:rotate(-6deg)}20%{transform:rotate(-16deg) scale(1.06)}40%{transform:rotate(4deg)}60%{transform:rotate(-12deg)}80%{transform:rotate(-3deg)}}

/* Bulle d'accroche */
.fbb-teaser{position:absolute;right:6px;bottom:80px;width:max-content;max-width:min(270px,calc(100vw - 40px));background:var(--surface);border:1px solid var(--line);border-radius:18px 18px 6px 18px;padding:14px 38px 14px 16px;box-shadow:0 20px 40px -18px rgba(4,26,64,.45);font-size:.93rem;line-height:1.4;cursor:pointer;transform-origin:bottom right;animation:fbbTeaser .55s cubic-bezier(.2,1.3,.3,1) both}
.fbb-teaser b{display:block;font-family:var(--font-display);font-weight:600;font-size:1rem;margin-bottom:2px}
.fbb-teaser button{position:absolute;top:8px;right:8px;width:24px;height:24px;border:0;border-radius:8px;background:var(--surface-2);color:var(--muted);cursor:pointer;display:grid;place-items:center}
.fbb-teaser button svg{width:12px;height:12px}
@keyframes fbbTeaser{from{opacity:0;transform:translateY(10px) scale(.85)}to{opacity:1;transform:none}}

/* Panneau */
.fbb-panel{position:absolute;right:0;bottom:80px;width:380px;max-width:calc(100vw - 32px);height:min(620px,calc(100dvh - 120px));display:flex;flex-direction:column;background:var(--surface);border:1px solid var(--line);border-radius:var(--fbb-r);box-shadow:0 40px 80px -30px rgba(4,26,64,.55),0 8px 24px -12px rgba(4,26,64,.25);overflow:hidden;transform-origin:bottom right;transform:translateY(16px) scale(.9);opacity:0;visibility:hidden;transition:transform .45s cubic-bezier(.2,1.1,.3,1),opacity .25s,visibility 0s .45s}
.fbb.open .fbb-panel{transform:none;opacity:1;visibility:visible;transition:transform .45s cubic-bezier(.2,1.1,.3,1),opacity .25s,visibility 0s}

.fbb-head{position:relative;display:flex;align-items:center;gap:12px;padding:16px 14px 16px 16px;color:#fff;background:radial-gradient(300px 160px at 0% 0%,rgba(31,224,255,.55),transparent 70%),linear-gradient(150deg,#0068D0,#041A40);overflow:hidden}
.fbb-head::after{content:"";position:absolute;right:-40px;top:-50px;width:150px;height:150px;border-radius:36px;background:rgba(255,255,255,.08);transform:rotate(18deg)}
.fbb-ava{position:relative;flex:none;width:44px;height:44px;border-radius:14px;background:#fff;display:grid;place-items:center;transform:rotate(-6deg)}
.fbb-ava img{width:32px;height:32px;transform:rotate(6deg)}
.fbb-ava::after{content:"";position:absolute;right:-3px;bottom:-3px;width:12px;height:12px;border-radius:50%;background:#2BD67B;box-shadow:0 0 0 2.5px #0B4FA8}
.fbb-title{flex:1;min-width:0}
.fbb-title b{display:block;font:600 1.08rem/1.2 var(--font-display)}
.fbb-title span{font-size:.8rem;opacity:.8}
.fbb-hbtn{position:relative;z-index:1;width:34px;height:34px;border:0;border-radius:10px;background:rgba(255,255,255,.12);color:#fff;cursor:pointer;display:grid;place-items:center;transition:background .2s}
.fbb-hbtn:hover{background:rgba(255,255,255,.22)}
.fbb-hbtn svg{width:16px;height:16px}

.fbb-log{flex:1;overflow-y:auto;overscroll-behavior:contain;padding:18px 14px 8px;display:flex;flex-direction:column;gap:10px;background:linear-gradient(180deg,var(--surface-2),var(--surface) 140px);scroll-behavior:smooth}
.fbb-log > *{flex-shrink:0}
.fbb-msg{max-width:86%;padding:11px 14px;border-radius:18px;font-size:.93rem;line-height:1.45;white-space:pre-line;animation:fbbIn .35s cubic-bezier(.2,1,.3,1) both;overflow-wrap:anywhere}
.fbb-msg.bot{align-self:flex-start;background:var(--surface);border:1px solid var(--line);border-bottom-left-radius:6px}
.fbb-msg.me{align-self:flex-end;background:linear-gradient(140deg,#0A6BD6,#0057B8);color:#fff;border-bottom-right-radius:6px}
.fbb-msg strong{font-weight:700}
@keyframes fbbIn{from{opacity:0;transform:translateY(8px) scale(.97)}to{opacity:1;transform:none}}

.fbb-typing{align-self:flex-start;display:flex;gap:5px;padding:14px 16px;border-radius:18px;border-bottom-left-radius:6px;background:var(--surface);border:1px solid var(--line);animation:fbbIn .25s both}
.fbb-typing i{width:7px;height:7px;border-radius:50%;background:var(--cyan);animation:fbbDot 1s infinite ease-in-out}
.fbb-typing i:nth-child(2){animation-delay:.15s}
.fbb-typing i:nth-child(3){animation-delay:.3s}
@keyframes fbbDot{0%,60%,100%{transform:translateY(0);opacity:.5}30%{transform:translateY(-5px);opacity:1}}

/* Carte d'offre dans la conversation */
.fbb-card{align-self:stretch;border-radius:18px;overflow:hidden;border:1px solid var(--line);background:var(--surface);animation:fbbIn .4s cubic-bezier(.2,1,.3,1) both}
.fbb-card .top{padding:14px 16px;color:#fff;background:linear-gradient(135deg,#0057B8,#0A8EE0 70%,#19C9F5)}
.fbb-card .top small{display:block;font-size:.78rem;opacity:.85}
.fbb-card .top b{font:600 1.05rem var(--font-display)}
.fbb-card .top .big{display:block;margin-top:6px;font:500 1.7rem/1 var(--font-mono);letter-spacing:-.02em}
.fbb-card .top .big em{font:600 .8rem var(--font-body);font-style:normal;opacity:.85;margin-left:4px}
.fbb-card ul{list-style:none;margin:0;padding:10px 16px 12px;display:grid;gap:6px;font-size:.86rem}
.fbb-card li{display:flex;justify-content:space-between;gap:10px}
.fbb-card li span:first-child{color:var(--muted)}
.fbb-card li span:last-child{font-family:var(--font-mono);font-variant-numeric:tabular-nums}
.fbb-card li.tot{border-top:1px dashed var(--line);padding-top:8px;font-weight:600}
.fbb-card li.tot span:first-child{color:var(--ink)}

.fbb-chips{display:flex;flex-wrap:wrap;gap:7px;padding-top:2px;animation:fbbIn .4s .05s cubic-bezier(.2,1,.3,1) both}
.fbb-chip{border:1.5px solid var(--line);background:var(--surface);color:var(--accent-text);border-radius:999px;padding:8px 13px;font:600 .86rem/1.2 var(--font-body);cursor:pointer;transition:transform .15s,background .2s,border-color .2s;text-align:left}
.fbb-chip:hover{border-color:var(--cyan);transform:translateY(-1px)}
.fbb-chip.primary{background:var(--royal);border-color:var(--royal);color:#fff}
.fbb-chip.wa{background:#1FAF5A;border-color:#1FAF5A;color:#fff;display:inline-flex;align-items:center;gap:7px;text-decoration:none}
.fbb-chip.wa svg{width:16px;height:16px}
.fbb-chip small{display:block;font-weight:500;font-size:.74rem;color:var(--muted)}
.fbb-chip.primary small{color:rgba(255,255,255,.8)}
.fbb-chips.used .fbb-chip{opacity:.45;pointer-events:none}

.fbb-form{display:flex;gap:8px;padding:10px 12px 12px;border-top:1px solid var(--line);background:var(--surface)}
.fbb-form input{flex:1;min-width:0;border:1.5px solid var(--line);background:var(--bg);border-radius:14px;padding:12px 14px;font-size:16px;color:var(--ink)}
.fbb-form input:focus{outline:none;border-color:var(--cyan);box-shadow:0 0 0 3px rgba(0,200,245,.18)}
.fbb-form button{flex:none;width:46px;border:0;border-radius:14px;background:var(--royal);color:#fff;cursor:pointer;display:grid;place-items:center;transition:transform .15s,background .2s}
.fbb-form button:hover{background:var(--royal-2)}
.fbb-form button:active{transform:scale(.94)}
.fbb-form button svg{width:18px;height:18px}
.fbb-foot{padding:0 12px 10px;font-size:.72rem;color:var(--muted);text-align:center;background:var(--surface)}

@media (max-width:520px){
  .fbb-panel{position:fixed;left:8px;right:8px;bottom:calc(88px + env(safe-area-inset-bottom,0px));width:auto;max-width:none;height:calc(100dvh - 104px - env(safe-area-inset-bottom,0px) - env(safe-area-inset-top,0px))}
  .fbb-launch{width:58px;height:58px}
  .fbb-teaser{bottom:72px}
}
@media (prefers-reduced-motion:reduce){
  .fbb *{animation:none!important;transition:none!important}
}
.fbb-chip.store-chip{display:inline-flex;align-items:center;gap:8px;background:#050B16;border-color:#050B16;color:#fff;text-decoration:none}
.fbb-chip.store-chip svg{width:16px;height:16px}
