/* Bibiballoonz — chat widget styles */
#bibi-chat .chat-fab{position:fixed;right:22px;bottom:22px;z-index:9998;width:60px;height:60px;border-radius:50%;
  border:var(--border-w) solid var(--ink);background:var(--sun);box-shadow:var(--shadow-sm);font-size:28px;
  cursor:pointer;transition:transform .12s,box-shadow .12s;line-height:1;}
#bibi-chat .chat-fab:hover{transform:translate(2px,2px);box-shadow:var(--shadow-xs);}
#bibi-chat .chat-panel{position:fixed;right:22px;bottom:94px;z-index:9999;width:360px;max-width:calc(100vw - 32px);
  height:520px;max-height:calc(100vh - 130px);background:var(--paper);border:var(--border-w) solid var(--ink);
  border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);display:none;flex-direction:column;overflow:hidden;}
#bibi-chat .chat-panel.open{display:flex;}
#bibi-chat .chat-head{background:var(--ink);color:var(--white);padding:14px 44px 14px 18px;position:relative;}
#bibi-chat .chat-head-title{font-family:var(--font-display);font-weight:700;font-size:16px;display:block;}
#bibi-chat .chat-head-sub{font-size:12px;color:#c9c3da;}
#bibi-chat .chat-close{position:absolute;top:12px;right:14px;background:none;border:none;color:var(--white);font-size:18px;cursor:pointer;}
#bibi-chat .chat-body{flex:1;overflow-y:auto;padding:16px;display:flex;flex-direction:column;gap:10px;}
#bibi-chat .chat-msg{max-width:82%;padding:10px 14px;border-radius:16px;font-size:14px;line-height:1.5;border:2px solid var(--ink);}
#bibi-chat .chat-msg.user{align-self:flex-end;background:var(--sky);color:var(--ink);border-bottom-right-radius:4px;}
#bibi-chat .chat-msg.bot{align-self:flex-start;background:var(--white);border-bottom-left-radius:4px;}
#bibi-chat .chat-msg.typing{color:var(--muted);letter-spacing:2px;}
#bibi-chat .chat-msg .chat-link{color:var(--pink-dark);text-decoration:underline;text-underline-offset:2px;}
#bibi-chat .chat-msg .chat-link:hover{color:var(--pink);}
#bibi-chat .chat-input{display:flex;gap:8px;padding:12px;border-top:2px solid var(--ink);background:var(--paper);}
#bibi-chat .chat-input input{flex:1;padding:11px 14px;border:2px solid var(--ink);border-radius:var(--radius-pill);font-size:14px;background:var(--white);}
#bibi-chat .chat-input input:focus{outline:none;border-color:var(--pink);}
#bibi-chat .chat-input button{width:44px;border:2px solid var(--ink);border-radius:50%;background:var(--pink);color:var(--white);font-size:16px;cursor:pointer;flex-shrink:0;}
@media(max-width:480px){#bibi-chat .chat-panel{right:16px;left:16px;width:auto;bottom:88px;}}

/* ── Attention behaviors: float, boing, unread dot, proactive bubble ────────── */
#bibi-chat .chat-fab{overflow:visible;}
#bibi-chat .chat-fab-ico{display:inline-block;animation:bibiFloat 3.2s ease-in-out infinite;will-change:transform;}
#bibi-chat .chat-fab-ico.is-boing{animation:bibiBoing .55s ease;}
@keyframes bibiFloat{0%,100%{transform:translateY(0);}50%{transform:translateY(-5px);}}
@keyframes bibiBoing{
  0%{transform:translateY(0) scale(1,1);}
  15%{transform:translateY(1px) scale(1.18,.82);}
  40%{transform:translateY(-9px) scale(.88,1.16);}
  70%{transform:translateY(0) scale(1.06,.94);}
  100%{transform:translateY(0) scale(1,1);}
}

/* Unread dot */
#bibi-chat .chat-fab-dot{position:absolute;top:-3px;right:-3px;width:16px;height:16px;border-radius:50%;
  background:var(--sky);border:2px solid var(--ink);display:none;}
#bibi-chat .chat-fab-dot.show{display:block;animation:bibiDot 1.7s ease-in-out infinite;}
@keyframes bibiDot{0%,100%{box-shadow:0 0 0 0 rgba(56,198,244,.55);}70%{box-shadow:0 0 0 9px rgba(56,198,244,0);}}

/* Proactive "chat with me" bubble */
#bibi-chat .chat-nudge{position:fixed;right:20px;bottom:96px;z-index:9998;max-width:238px;
  background:var(--white);border:var(--border-w) solid var(--ink);border-radius:16px;box-shadow:var(--shadow-sm);
  padding:12px 32px 12px 14px;font-size:13.5px;line-height:1.42;color:var(--ink);cursor:pointer;
  display:none;transform-origin:bottom right;}
#bibi-chat .chat-nudge.show{display:block;animation:bibiNudgeIn .35s cubic-bezier(.2,1.3,.5,1);}
#bibi-chat .chat-nudge b{font-family:var(--font-display);font-weight:700;}
#bibi-chat .chat-nudge::after{content:'';position:absolute;right:22px;bottom:-10px;width:15px;height:15px;
  background:var(--white);border-right:var(--border-w) solid var(--ink);border-bottom:var(--border-w) solid var(--ink);
  transform:rotate(45deg);}
#bibi-chat .chat-nudge-x{position:absolute;top:5px;right:8px;background:none;border:none;font-size:13px;color:var(--muted);
  cursor:pointer;line-height:1;padding:2px;}
#bibi-chat .chat-nudge-x:hover{color:var(--ink);}
@keyframes bibiNudgeIn{0%{opacity:0;transform:translateY(8px) scale(.85);}100%{opacity:1;transform:translateY(0) scale(1);}}
@media(max-width:480px){#bibi-chat .chat-nudge{max-width:200px;}}

/* Respect reduced-motion: keep the cues, drop the movement */
@media(prefers-reduced-motion:reduce){
  #bibi-chat .chat-fab-ico,
  #bibi-chat .chat-fab-ico.is-boing,
  #bibi-chat .chat-fab-dot.show,
  #bibi-chat .chat-nudge.show{animation:none;}
}
