#boubaFab{position:fixed;right:18px;bottom:92px;z-index:10020;border:0;border-radius:999px;background:linear-gradient(135deg,#e11d2e,#b90f22);color:#fff;font-weight:900;padding:13px 18px;box-shadow:0 12px 30px rgba(185,15,34,.32);cursor:pointer}
#boubaModal{display:none;position:fixed;inset:0;z-index:10030;background:rgba(15,23,42,.55);padding:12px}
#boubaModal.open{display:flex;align-items:center;justify-content:center}
.bouba-shell{width:min(760px,100%);height:min(760px,92vh);background:#fff;border-radius:22px;overflow:hidden;display:flex;flex-direction:column;box-shadow:0 24px 70px rgba(0,0,0,.25)}
.bouba-head{padding:14px 16px;background:linear-gradient(135deg,#0b4aa2,#073578);color:#fff;display:flex;align-items:center;gap:12px}.bouba-head h3{margin:0;font-size:20px}.bouba-head small{display:block;opacity:.86}.bouba-close{margin-left:auto;border:0;background:rgba(255,255,255,.16);color:#fff;width:38px;height:38px;border-radius:50%;font-size:24px}
.bouba-status{padding:10px 14px;background:#eff6ff;border-bottom:1px solid #dbeafe;font-weight:800;color:#1e3a8a;display:flex;justify-content:space-between;gap:8px;flex-wrap:wrap}
.bouba-messages{flex:1;overflow:auto;padding:16px;background:#f8fafc}.bouba-msg{max-width:86%;padding:11px 13px;border-radius:16px;margin:8px 0;line-height:1.45;white-space:pre-wrap}.bouba-ai{background:#fff;border:1px solid #e2e8f0}.bouba-user{margin-left:auto;background:#0b4aa2;color:#fff}.bouba-source{font-size:11px;opacity:.65;margin-top:6px}
.bouba-daily{padding:12px 14px;border-top:1px solid #e5e7eb;background:#fff}.bouba-q{font-weight:850;margin-bottom:8px}.bouba-row{display:flex;gap:8px}.bouba-row input,.bouba-compose textarea{flex:1;border:1px solid #cbd5e1;border-radius:12px;padding:11px;font:inherit}.bouba-row button,.bouba-compose button{border:0;border-radius:12px;background:#e11d2e;color:#fff;font-weight:900;padding:10px 14px}.bouba-skip{background:#64748b!important}
.bouba-compose{display:flex;gap:8px;padding:12px;border-top:1px solid #e5e7eb;background:#fff}.bouba-compose textarea{min-height:46px;max-height:120px;resize:vertical}.bouba-note{font-size:12px;color:#64748b;padding:0 14px 10px;background:#fff}
@media(max-width:640px){#boubaFab{left:12px;right:auto;bottom:84px}.bouba-shell{height:96vh;border-radius:18px}.bouba-msg{max-width:92%}}

/* v15.131 — ti pèsonaj komik Bouba, fèt sèlman ak CSS (pa foto/videyo/odyo) */
#boubaFab{display:flex;align-items:center;gap:10px;overflow:visible;isolation:isolate}
.bouba-fab-text{position:relative;z-index:2}
.bouba-mini{position:relative;width:38px;height:38px;flex:0 0 38px;display:grid;place-items:center;animation:boubaFloat 2.4s ease-in-out infinite}
.bouba-mini-face,.bouba-avatar-face{position:relative;display:block;background:#fff;border:3px solid #0b4aa2;border-radius:48% 52% 46% 54%/52% 46% 54% 48%;box-shadow:inset 0 -4px 0 rgba(11,74,162,.08)}
.bouba-mini-face{width:34px;height:34px}
.bouba-avatar{width:46px;height:46px;display:grid;place-items:center;flex:0 0 46px;animation:boubaFloat 2.8s ease-in-out infinite}
.bouba-avatar-face{width:42px;height:42px;border-color:#fff;background:#ffefc7;box-shadow:inset 0 -5px 0 rgba(255,255,255,.2)}
.bouba-eye{position:absolute;top:10px;width:5px;height:7px;border-radius:999px;background:#0f172a;animation:boubaBlink 4.8s infinite}
.bouba-mini-face .bouba-eye{top:8px;width:4px;height:6px}
.bouba-eye-left{left:9px}.bouba-eye-right{right:9px}
.bouba-mini-face .bouba-eye-left{left:8px}.bouba-mini-face .bouba-eye-right{right:8px}
.bouba-smile{position:absolute;left:50%;bottom:8px;width:16px;height:8px;transform:translateX(-50%);border:2px solid #0f172a;border-top:0;border-left-color:transparent;border-right-color:transparent;border-radius:0 0 18px 18px}
.bouba-mini-face .bouba-smile{bottom:7px;width:13px;height:6px}
.bouba-mini-hand{position:absolute;right:-2px;bottom:3px;width:10px;height:14px;border:2px solid #0b4aa2;border-radius:8px;background:#fff;transform-origin:bottom center;animation:boubaWave 1.8s ease-in-out infinite}
.bouba-comic-pop{position:absolute;right:8px;top:-30px;background:#fff;color:#0b4aa2;border:2px solid #0b4aa2;border-radius:12px 12px 12px 4px;padding:5px 8px;font-size:11px;font-weight:900;box-shadow:0 6px 16px rgba(15,23,42,.18);opacity:0;transform:translateY(5px) scale(.92);animation:boubaPop 7s ease-in-out infinite;pointer-events:none;white-space:nowrap}
.bouba-comic-pop:after{content:"";position:absolute;left:10px;bottom:-6px;width:10px;height:10px;background:#fff;border-right:2px solid #0b4aa2;border-bottom:2px solid #0b4aa2;transform:rotate(45deg)}
#boubaFab:hover .bouba-mini,#boubaFab:focus-visible .bouba-mini{animation-duration:1.1s}
#boubaFab:hover .bouba-mini-hand,#boubaFab:focus-visible .bouba-mini-hand{animation-duration:.65s}
@keyframes boubaFloat{0%,100%{transform:translateY(0) rotate(-1deg)}50%{transform:translateY(-4px) rotate(2deg)}}
@keyframes boubaWave{0%,100%{transform:rotate(-8deg)}25%{transform:rotate(22deg)}50%{transform:rotate(-14deg)}75%{transform:rotate(18deg)}}
@keyframes boubaBlink{0%,46%,50%,100%{transform:scaleY(1)}48%{transform:scaleY(.12)}}
@keyframes boubaPop{0%,10%,62%,100%{opacity:0;transform:translateY(5px) scale(.92)}16%,50%{opacity:1;transform:translateY(0) scale(1)}}
@media(max-width:640px){#boubaFab{padding:10px 13px}.bouba-fab-text{font-size:13px}.bouba-comic-pop{right:3px}}
@media(prefers-reduced-motion:reduce){.bouba-mini,.bouba-avatar,.bouba-mini-hand,.bouba-eye,.bouba-comic-pop{animation:none!important}.bouba-comic-pop{display:none}}


/* v15.139 — Guest registration gate */
.bouba-guest-actions{margin:14px 0 4px;display:grid;gap:10px;padding:0 4px 12px}
.bouba-guest-actions button{border:0;border-radius:14px;padding:14px 16px;font-size:16px;font-weight:800;cursor:pointer;background:#1454ad;color:#fff}
.bouba-guest-actions button.secondary{background:#eef4ff;color:#16468d;border:1px solid #b8cae8}
.bouba-guest-help{font-size:13px;line-height:1.45;color:#5e6f8e;text-align:center;padding:4px 8px}

/* v15.143 — iPhone safe-area + optional learning */
.bouba-learning-label{font-size:12px;font-weight:800;color:#64748b;margin-bottom:5px}
@media(max-width:640px){#boubaModal{padding:max(8px,env(safe-area-inset-top)) 8px max(8px,env(safe-area-inset-bottom));align-items:flex-start}.bouba-shell{height:calc(100dvh - max(16px,env(safe-area-inset-top)) - max(16px,env(safe-area-inset-bottom)));max-height:none;border-radius:16px}.bouba-head{position:sticky;top:0;z-index:3;flex:0 0 auto}.bouba-status{flex:0 0 auto}}

/* v15.168 — Bouba adaptatif sou mobil.
   Banner enstalasyon vizib: kenbe bouton konplè a agoch.
   Banner pa vizib: tounen mini chat avatar anba adwat. */
@media(max-width:640px){
  #boubaFab.bouba-install-visible{
    left:max(12px,env(safe-area-inset-left));
    right:auto;
    bottom:84px;
    width:auto;
    height:auto;
    padding:10px 13px;
    border:0;
    background:linear-gradient(135deg,#e11d2e,#b90f22);
    gap:10px;
  }
  #boubaFab.bouba-install-visible .bouba-fab-text{display:inline;}
  #boubaFab.bouba-install-visible .bouba-mini-hand{display:block;}

  #boubaFab.bouba-compact{
    left:auto;
    right:max(14px,env(safe-area-inset-right));
    bottom:calc(100px + env(safe-area-inset-bottom));
    width:52px;
    height:52px;
    min-width:52px;
    min-height:52px;
    padding:0;
    display:grid;
    place-items:center;
    gap:0;
    border:2px solid #e11d2e;
    border-radius:50%;
    background:#fff;
    box-shadow:0 10px 26px rgba(15,23,42,.20);
  }
  #boubaFab.bouba-compact .bouba-fab-text,
  #boubaFab.bouba-compact .bouba-mini-hand,
  #boubaFab.bouba-compact .bouba-comic-pop{display:none!important;}
  #boubaFab.bouba-compact .bouba-mini{
    width:40px;
    height:40px;
    flex-basis:40px;
  }
  #boubaFab.bouba-compact .bouba-mini-face{
    width:38px;
    height:38px;
  }
}
