:root{
  --bbb-navy:#21372b;
  --bbb-navy-2:#2e4a3b;
  --bbb-gold:#b8893a;
  --bbb-cream:#f5efe6;
  --bbb-ink:#1f2421;
}

#bbb-chat-bubble{
  position:fixed;bottom:24px;right:24px;width:64px;height:64px;border-radius:50%;
  border:3px solid var(--bbb-navy);background:var(--bbb-navy) center/cover no-repeat;
  cursor:pointer;z-index:99998;padding:0;box-shadow:0 6px 18px rgba(0,0,0,.22);
  transition:box-shadow .2s ease;
}
#bbb-chat-bubble img{width:100%;height:100%;border-radius:50%;object-fit:cover;display:block;}
#bbb-chat-bubble:hover,#bbb-chat-bubble:focus-visible{
  box-shadow:0 6px 18px rgba(0,0,0,.22),0 0 0 4px rgba(184,137,58,.55);outline:none;
}
#bbb-chat-bubble.bbb-bounce{animation:bbb-bounce .6s ease 2;}
@keyframes bbb-bounce{
  0%,100%{transform:translateY(0);}
  20%{transform:translateY(-10px);}
  40%{transform:translateY(0);}
  60%{transform:translateY(-6px);}
  80%{transform:translateY(0);}
}
@media (prefers-reduced-motion:reduce){
  #bbb-chat-bubble.bbb-bounce{animation:none;}
}

#bbb-chat-overlay{
  position:fixed;inset:0;background:rgba(0,0,0,.4);z-index:99999;
  display:flex;align-items:center;justify-content:center;
  opacity:0;pointer-events:none;transition:opacity .15s ease;
}
#bbb-chat-overlay.bbb-open{opacity:1;pointer-events:auto;}

#bbb-chat-modal{
  width:420px;max-width:calc(100vw - 24px);max-height:640px;height:min(640px,80vh);
  background:#fff;border-radius:16px;overflow:hidden;display:flex;flex-direction:column;
  box-shadow:0 20px 60px rgba(0,0,0,.35);
  transform:scale(.94);opacity:0;transition:transform .15s ease,opacity .15s ease;
  font-family:'Inter',ui-sans-serif,system-ui,sans-serif;
}
#bbb-chat-overlay.bbb-open #bbb-chat-modal{transform:scale(1);opacity:1;}

@media (max-width:480px){
  #bbb-chat-modal{width:calc(100vw - 24px);height:min(640px,85vh);}
}

#bbb-chat-header{
  display:flex;align-items:center;gap:.7rem;padding:.9rem 1rem;background:var(--bbb-navy);
  color:#fff;border-bottom:3px solid var(--bbb-gold);flex-shrink:0;position:relative;
}
#bbb-chat-header img{width:40px;height:40px;border-radius:50%;object-fit:cover;flex-shrink:0;}
#bbb-chat-header-text{display:flex;flex-direction:column;line-height:1.25;}
#bbb-chat-header-text strong{font-size:.95rem;font-weight:600;}
#bbb-chat-header-text span{font-size:.75rem;color:rgba(245,239,230,.75);}
#bbb-chat-close{
  margin-left:auto;background:transparent;border:0;color:#fff;font-size:1.3rem;line-height:1;
  cursor:pointer;padding:.25rem .5rem;opacity:.85;
}
#bbb-chat-close:hover{opacity:1;}

#bbb-chat-messages{
  flex:1;overflow-y:auto;padding:1rem;display:flex;flex-direction:column;gap:.6rem;
  background:var(--bbb-cream);
}
.bbb-msg{max-width:82%;padding:.55rem .8rem;border-radius:14px;font-size:.88rem;line-height:1.45;
  word-wrap:break-word;white-space:pre-wrap;}
.bbb-msg-agent{align-self:flex-start;background:#e9e6e0;color:var(--bbb-ink);border-bottom-left-radius:4px;}
.bbb-msg-user{align-self:flex-end;background:var(--bbb-navy);color:#fff;border-bottom-right-radius:4px;}

.bbb-typing{align-self:flex-start;display:flex;gap:4px;padding:.6rem .8rem;background:#e9e6e0;
  border-radius:14px;border-bottom-left-radius:4px;}
.bbb-typing span{width:6px;height:6px;border-radius:50%;background:#8a8a86;animation:bbb-typing 1s infinite ease-in-out;}
.bbb-typing span:nth-child(2){animation-delay:.15s;}
.bbb-typing span:nth-child(3){animation-delay:.3s;}
@keyframes bbb-typing{0%,60%,100%{transform:translateY(0);opacity:.5;}30%{transform:translateY(-4px);opacity:1;}}

#bbb-chat-form{
  display:flex;gap:.5rem;padding:.75rem;border-top:1px solid #e2dccf;background:#fff;flex-shrink:0;
}
#bbb-chat-input{
  flex:1;border:1px solid #d9cfbf;border-radius:10px;padding:.6rem .75rem;font-size:.88rem;
  font-family:inherit;outline:none;
}
#bbb-chat-input:focus{border-color:var(--bbb-gold);}
#bbb-chat-send{
  background:var(--bbb-gold);color:#1f2421;border:0;border-radius:10px;padding:0 1rem;
  font-weight:600;font-size:.88rem;cursor:pointer;flex-shrink:0;
}
#bbb-chat-send:hover{opacity:.92;}
#bbb-chat-send:disabled{opacity:.5;cursor:not-allowed;}
