/* One canonical character, independently animated at its joints. */
.allbee-mascot {
  --mascot-size:72px;
  position:relative; display:inline-grid; place-items:center;
  width:var(--mascot-size); height:var(--mascot-size); flex:none;
  overflow:visible; background:transparent; isolation:isolate; contain:layout style;
}
.allbee-mascot-static {
  display:block; width:100%; height:100%; object-fit:contain;
  opacity:0; user-select:none; pointer-events:none;
}
.allbee-mascot-rig {
  position:absolute; inset:0; width:100%; height:100%; overflow:visible;
  pointer-events:none; filter:drop-shadow(0 4px 6px rgba(9,55,114,.14));
}
.allbee-mascot-rig g { transform-box:view-box; }
.allbee-mascot-body { transform-origin:55.92% 66.06%; animation:allbee-body-rest 5.4s ease-in-out infinite; }
.allbee-mascot-face { transform-origin:58.35% 37.62%; }
.allbee-mascot-arm--left { transform-origin:32.42% 36.70%; transform:rotate(-42deg); }
.allbee-mascot-arm--right { transform-origin:85.82% 46.60%; }
.allbee-mascot-hand--left { transform-origin:21.80% 26.79%; }
.allbee-mascot-hand--right { transform-origin:87.28% 54.68%; }
.allbee-mascot-leg--left { transform-origin:45.38% 63.30%; }
.allbee-mascot-leg--right { transform-origin:63.61% 65.14%; }
.allbee-mascot-mouth { transform-origin:58.91% 35.78%; }
.allbee-mascot-eyelid { transform:scaleY(0); animation:allbee-eye-blink 8.4s linear infinite; }
.allbee-mascot-eyelid--left { transform-origin:51.46% 22.57%; }
.allbee-mascot-eyelid--right { transform-origin:70.50% 28.16%; animation-delay:70ms; }

.allbee-mascot--walking .allbee-mascot-body { animation:allbee-walk-body 1.65s ease-in-out infinite; }
.allbee-mascot--walking .allbee-mascot-leg--left { animation:allbee-step-left 1.65s ease-in-out infinite; }
.allbee-mascot--walking .allbee-mascot-leg--right { animation:allbee-step-right 1.65s ease-in-out infinite; }
.allbee-mascot--walking .allbee-mascot-arm--left { animation:allbee-walk-arm-left 1.65s ease-in-out infinite; }
.allbee-mascot--walking .allbee-mascot-arm--right { animation:allbee-walk-arm-right 1.65s ease-in-out infinite; }
.allbee-mascot--walking .allbee-mascot-hand--left { animation:allbee-hand-swing 1.65s ease-in-out infinite; }
.allbee-mascot--hello .allbee-mascot-arm--left,
.allbee-mascot--wave .allbee-mascot-arm--left,
.allbee-mascot--attention .allbee-mascot-arm--left,
.allbee-mascot--notification .allbee-mascot-arm--left { animation:allbee-arm-wave 1.8s ease-in-out 1 both; }
.allbee-mascot--hello .allbee-mascot-hand--left,
.allbee-mascot--wave .allbee-mascot-hand--left,
.allbee-mascot--attention .allbee-mascot-hand--left { animation:allbee-hand-wave 1.8s ease-in-out 1 both; }
.allbee-mascot--hello .allbee-mascot-mouth,
.allbee-mascot--wave .allbee-mascot-mouth,
.allbee-mascot--attention .allbee-mascot-mouth { animation:allbee-mouth-hello 1.8s ease-in-out 2; }
.allbee-mascot--thinking .allbee-mascot-face,
.allbee-mascot--working .allbee-mascot-face,
.allbee-mascot--curious .allbee-mascot-face { animation:allbee-face-think 2.6s ease-in-out infinite; }
.allbee-mascot--thinking .allbee-mascot-arm--right,
.allbee-mascot--working .allbee-mascot-arm--right,
.allbee-mascot--curious .allbee-mascot-arm--right { animation:allbee-arm-think 2.6s ease-in-out infinite; }
.allbee-mascot--listening .allbee-mascot-face { transform:rotate(-2deg); }
.allbee-mascot--happy .allbee-mascot-body,
.allbee-mascot--success .allbee-mascot-body { animation:allbee-body-happy 1.2s ease-in-out 1; }
.allbee-mascot--breathe .allbee-mascot-body { animation:allbee-body-rest 3s ease-in-out 1; }

/* Slow travel is scheduled in JS only through a clear, bounded corridor. */
.allbee-mascot-launcher {
  position:fixed; right:22px; bottom:24px; z-index:144;
  width:76px; height:76px; pointer-events:none;
  transform:translate3d(var(--mascot-x,0px),var(--mascot-y,0px),0);
  backface-visibility:hidden; -webkit-backface-visibility:hidden;
}
.allbee-mascot-launcher[data-roaming="walking"] { will-change:transform; }
.allbee-mascot-button {
  width:76px; height:76px; padding:0; border:0; border-radius:0;
  background:transparent; box-shadow:none; cursor:pointer; pointer-events:auto;
  display:grid; place-items:center; overflow:visible;
  -webkit-tap-highlight-color:transparent; touch-action:manipulation;
}
.allbee-mascot-launcher.is-covered { visibility:hidden; }
.allbee-mascot-launcher.is-covered .allbee-mascot-button { pointer-events:none; }
.allbee-mascot-button:hover { transform:none; box-shadow:none; }
.allbee-mascot-button:active .allbee-mascot { transform:scale(.98); }
.allbee-mascot-button:focus-visible { outline:3px solid #0078c8; outline-offset:3px; border-radius:14px; }
.allbee-mascot-button:hover .allbee-mascot-rig { filter:drop-shadow(0 6px 10px rgba(9,55,114,.2)); }
.allbee-mascot-greeting {
  position:absolute; right:0; bottom:calc(100% + 8px); box-sizing:border-box;
  width:max-content; max-width:min(224px,calc(100vw - 28px + var(--mascot-x,0px)));
  padding:10px 13px; border:1px solid var(--border,#d6e5ec);
  border-radius:15px 15px 4px 15px; background:var(--surface,#fff);
  color:var(--text,#132d46); box-shadow:0 7px 24px rgba(13,46,88,.14);
  font-size:13px; font-weight:700; line-height:1.4;
  overflow-wrap:anywhere; pointer-events:none; animation:allbee-bubble-appear .18s ease-out both;
}
.allbee-mascot-greeting.is-interactive { min-width:190px; padding-right:29px; pointer-events:auto; }
.allbee-mascot-greeting-hint { display:block; margin-top:5px; font-size:12px; font-weight:400; color:var(--muted,#52687b); }
.allbee-mascot-ask {
  display:flex; align-items:center; justify-content:space-between; gap:16px;
  margin-top:9px; padding:6px 9px; width:100%; border:1px solid rgba(0,139,188,.22);
  border-radius:8px; background:rgba(0,159,190,.08); color:var(--text,#132d46);
  font:inherit; font-size:12px; cursor:pointer; min-height:34px;
}
.allbee-mascot-dismiss {
  position:absolute; top:3px; right:2px; width:27px; height:29px; padding:0;
  border:0; background:transparent; color:var(--muted,#52687b); font-size:20px; cursor:pointer;
}
.allbee-mascot-ask:focus-visible,.allbee-mascot-dismiss:focus-visible { outline:2px solid #0078c8; outline-offset:2px; }
.assistant-welcome > .allbee-mascot { display:grid; margin-bottom:16px; }
.assistant-welcome .assistant-eyebrow { display:block; }
.assistant-thinking .allbee-mascot { flex:none; }
.apn-ai-banner-ic .allbee-mascot { filter:drop-shadow(0 3px 8px rgba(255,255,255,.25)); }
.apn-ai-welcome .allbee-mascot { margin-bottom:8px; }
.web-ai-avatar .allbee-mascot { margin:auto; }

@keyframes allbee-body-rest { 0%,100% { transform:translate(0,0) scale(1); } 50% { transform:translate(0,-3px) scale(1.006); } }
@keyframes allbee-walk-body { 0%,50%,100% { transform:translate(0,0) rotate(-.5deg); } 25%,75% { transform:translate(0,-9px) rotate(.5deg); } }
@keyframes allbee-step-left { 0%,100% { transform:rotate(7deg); } 25% { transform:translate(0,-17px) rotate(-3deg); } 50% { transform:rotate(-7deg); } 75% { transform:rotate(0); } }
@keyframes allbee-step-right { 0%,100% { transform:rotate(-7deg); } 25% { transform:rotate(0); } 50% { transform:rotate(7deg); } 75% { transform:translate(0,-17px) rotate(-3deg); } }
@keyframes allbee-walk-arm-left { 0%,100% { transform:rotate(-34deg); } 50% { transform:rotate(-51deg); } }
@keyframes allbee-walk-arm-right { 0%,100% { transform:rotate(8deg); } 50% { transform:rotate(-8deg); } }
@keyframes allbee-hand-swing { 0%,100% { transform:rotate(-4deg); } 50% { transform:rotate(4deg); } }
@keyframes allbee-arm-wave { 0%,100% { transform:rotate(-42deg); } 20%,55% { transform:rotate(2deg); } 37%,72% { transform:rotate(-10deg); } }
@keyframes allbee-hand-wave { 0%,100% { transform:rotate(0); } 24%,60% { transform:rotate(9deg); } 42%,78% { transform:rotate(-9deg); } }
@keyframes allbee-mouth-hello { 0%,30%,60%,100% { transform:scaleY(1); } 15%,45%,75% { transform:scaleY(.72); } }
@keyframes allbee-eye-blink { 0%,91%,96%,100% { transform:scaleY(0); } 93%,94% { transform:scaleY(1); } }
@keyframes allbee-face-think { 0%,100% { transform:rotate(0); } 50% { transform:rotate(-1.8deg); } }
@keyframes allbee-arm-think { 0%,100% { transform:rotate(0); } 50% { transform:rotate(-8deg); } }
@keyframes allbee-body-happy { 0%,100% { transform:translate(0,0) rotate(0); } 35% { transform:translate(0,-13px) rotate(-1.4deg); } 70% { transform:translate(0,-5px) rotate(1deg); } }
@keyframes allbee-bubble-appear { from { opacity:0; transform:translate(0,4px); } to { opacity:1; transform:translate(0,0); } }

@media(max-width:772px) {
  .allbee-mascot-launcher--apn,.allbee-mascot-launcher--workspace { right:14px; bottom:calc(80px + env(safe-area-inset-bottom)); }
  .allbee-mascot-launcher--client,.allbee-mascot-launcher--login { right:14px; bottom:calc(16px + env(safe-area-inset-bottom)); }
  .allbee-mascot-launcher,.allbee-mascot-button { width:64px; height:64px; }
  .allbee-mascot-button .allbee-mascot { --mascot-size:64px !important; }
  .allbee-mascot-greeting { font-size:12px; padding:8px 10px; }
  .allbee-mascot-greeting.is-interactive { padding-right:28px; }
}
@media(max-width:359px) { .allbee-mascot-launcher { right:9px; } }
@media(prefers-reduced-motion:reduce) {
  .allbee-mascot-rig { display:none; }
  .allbee-mascot-static { opacity:1; }
  .allbee-mascot-rig g,.allbee-mascot-greeting { animation:none !important; }
  .allbee-mascot-button,.allbee-mascot-launcher,.allbee-mascot { transition:none !important; transform:none !important; will-change:auto; }
}

/* Shared website shell overrides legacy per-page chatbot styles. */
#allbee-assistant{font-family:var(--font-body,Arial,sans-serif);color:#132d46;font-size:14px;line-height:1.5}
#allbee-assistant .ab-launcher{position:fixed;right:22px;bottom:calc(22px + env(safe-area-inset-bottom));width:84px;height:84px;z-index:9990;transition:transform 4.5s linear}
#allbee-assistant #chatBtn{position:static;display:grid;place-items:center;width:84px;height:84px;padding:0;border:0;border-radius:0;background:transparent;box-shadow:none;animation:none;cursor:pointer;overflow:visible;transform:none}
#allbee-assistant #chatBtn::before,#allbee-assistant #chatBtn::after{display:none}
#allbee-assistant #chatBtn svg{width:100%;height:100%}
#allbee-assistant .allbee-mascot{--mascot-size:84px}
#allbee-assistant #chatBtn:focus-visible{outline:3px solid #0f7b6e;outline-offset:3px;border-radius:12px}
#allbee-assistant .ab-greeting{position:absolute;right:8px;bottom:90px;max-width:min(240px,calc(100vw - 40px));width:max-content;padding:10px 14px;background:#fff;border:1px solid #cde0dd;border-radius:16px 16px 4px 16px;color:#155d55;box-shadow:0 8px 24px #0c45351a;font-size:13px;font-weight:600;pointer-events:none}
#allbee-assistant #chatWindow{position:fixed;inset:auto 20px calc(120px + env(safe-area-inset-bottom)) auto;width:min(390px,calc(100vw - 32px));height:min(590px,calc(100dvh - 160px));max-height:calc(100dvh - 160px);display:flex;flex-direction:column;background:#fff;border:1px solid #cde0dd;border-radius:22px;box-shadow:0 20px 70px #092c352e;z-index:9995;overflow:hidden;opacity:1;transform:none;visibility:visible;pointer-events:auto}
#allbee-assistant #chatWindow[hidden],#allbee-assistant [hidden]{display:none!important}
#allbee-assistant .ab-chat header{display:flex;align-items:center;gap:9px;padding:14px;background:#eef7f5;border-bottom:1px solid #dbe9e6;flex-shrink:0}
#allbee-assistant .ab-chat header img{object-fit:contain;flex:none}
#allbee-assistant .ab-chat header div{flex:1;min-width:0}
#allbee-assistant .ab-chat header strong{font-size:14px;color:#0c645b;display:block}
#allbee-assistant .ab-chat header span{font-size:10px;color:#52676c;display:block}
#allbee-assistant .ab-chat header button{border:0;background:transparent;font-size:23px;min-width:32px;min-height:36px;color:#145e58;cursor:pointer;padding:0}
#allbee-assistant #chatMsgs{flex:1;min-height:0;padding:16px;overflow-y:auto;overscroll-behavior:contain;display:flex;flex-direction:column;gap:12px;background:#fff}
#allbee-assistant .ab-bubble{padding:11px 13px;border-radius:14px;max-width:94%;white-space:pre-wrap;overflow-wrap:anywhere;font-size:13px;line-height:1.6;flex:none}
#allbee-assistant .ab-bubble.assistant{align-self:flex-start;background:#f1f6f5;color:#233e3c;border:1px solid #e4eeeb}
#allbee-assistant .ab-bubble.user{align-self:flex-end;background:#0f7b6e;color:#fff}
#allbee-assistant .ab-bubble a{color:#07675b;text-decoration:underline}
#allbee-assistant .ab-quick{display:flex;gap:6px;flex-wrap:wrap;padding:8px 14px;flex:none}
#allbee-assistant .ab-quick button{border:1px solid #cde2dc;background:#f7fbfa;color:#17675a;border-radius:100px;padding:7px 10px;font:inherit;font-size:11px;cursor:pointer;min-height:32px}
#allbee-assistant .ab-chat-status{font-size:12px;color:#51746d;padding:0 16px;min-height:18px;flex:none}
#allbee-assistant .ab-composer{display:flex;gap:8px;padding:10px 14px;border-top:1px solid #e1e9e6;align-items:center;flex:none;margin:0}
#allbee-assistant #chatInput{border:1px solid #cddcd8;border-radius:12px;padding:10px;background:#fff;color:#132d46;flex:1;min-width:0;resize:none;font:inherit;font-size:16px;line-height:1.4;max-height:100px}
#allbee-assistant #chatSend,#allbee-assistant .ab-stop{position:static;flex:none;width:auto;min-width:40px;min-height:40px;border:0;border-radius:12px;background:#0f7b6e;color:#fff;font:inherit;font-size:20px;padding:7px 11px;cursor:pointer}
#allbee-assistant .ab-stop{font-size:12px;background:#eef4f2;color:#145e58}
#allbee-assistant button:disabled{opacity:.55;cursor:wait}
#allbee-assistant .ab-note{font-size:10px;color:#677b76;text-align:center;margin:0;padding:0 14px 10px;flex:none}
#allbee-assistant button:focus-visible,#allbee-assistant textarea:focus-visible{outline:2px solid #0f7b6e;outline-offset:2px}
#allbee-assistant.ab-suspended *{animation-play-state:paused!important}
body:has(#allbee-assistant) .wa-float{bottom:120px}
body:has(.mobile-menu.open) #allbee-assistant{visibility:hidden}
@media(max-width:600px){
 #allbee-assistant .ab-launcher{right:12px;bottom:calc(16px + env(safe-area-inset-bottom));width:68px;height:68px}
 #allbee-assistant #chatBtn{width:68px;height:68px}
 #allbee-assistant .allbee-mascot{--mascot-size:68px}
 #allbee-assistant .ab-greeting{bottom:74px}
 #allbee-assistant #chatWindow{right:12px;bottom:calc(94px + env(safe-area-inset-bottom));width:calc(100vw - 24px);height:min(570px,calc(100dvh - 114px));max-height:calc(100dvh - 114px);border-radius:18px}
}
@media(prefers-reduced-motion:reduce){#allbee-assistant .ab-launcher{transition:none}}
@media print{#allbee-assistant{display:none!important}}

/* Global AllBee dark theme */
html[data-site-theme="dark"] #allbee-assistant{color:#dce9e5}
html[data-site-theme="dark"] #allbee-assistant .ab-greeting{
  background:#0d211b;border-color:#24483e;color:#8adfcc;box-shadow:0 12px 34px rgba(0,0,0,.34)
}
html[data-site-theme="dark"] #allbee-assistant #chatWindow{
  background:#091712;border-color:#24483e;box-shadow:0 24px 80px rgba(0,0,0,.48)
}
html[data-site-theme="dark"] #allbee-assistant .ab-chat header{
  background:#0e251e;border-bottom-color:#24483e
}
html[data-site-theme="dark"] #allbee-assistant .ab-chat header strong{color:#8adfcc}
html[data-site-theme="dark"] #allbee-assistant .ab-chat header span,
html[data-site-theme="dark"] #allbee-assistant .ab-chat-status,
html[data-site-theme="dark"] #allbee-assistant .ab-note{color:#9db4ad}
html[data-site-theme="dark"] #allbee-assistant #chatMsgs{background:#091712}
html[data-site-theme="dark"] #allbee-assistant .ab-bubble.assistant{
  background:#10271f;color:#dce9e5;border-color:#21463b
}
html[data-site-theme="dark"] #allbee-assistant .ab-bubble a{color:#79dbc4}
html[data-site-theme="dark"] #allbee-assistant .ab-quick button{
  background:#10271f;color:#9ee3d2;border-color:#285044
}
html[data-site-theme="dark"] #allbee-assistant #chatInput{
  background:#0d211b;color:#f4faf7;border-color:#285044
}
html[data-site-theme="dark"] #allbee-assistant .ab-stop{background:#142b24;color:#9ee3d2}
