/* Barcode04 — WhatsApp Floating (frontend) */
#b04wf{
  position:fixed;
  inset:auto;
  /* NOTE: keep below most site overlays by default (TaxWave header drawer uses 9999/10000) */
  z-index:var(--b04wf-z, 9800);
  font-family: ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Inter, Helvetica, Arial, sans-serif;
  pointer-events:none;
  -webkit-tap-highlight-color: transparent;
}

/*
  Overlay safety:
  when TaxWave mobile drawer is open, body gets .ax-nav-lock.
  We hide/disable the widget so it never sits above the menu.
*/
body.ax-nav-lock #b04wf{
  z-index:1 !important;
  opacity:0 !important;
  visibility:hidden !important;
  transform:translateY(8px) !important;
}
body.ax-nav-lock #b04wf .b04wf-btn,
body.ax-nav-lock #b04wf .b04wf-bubble{
  pointer-events:none !important;
}

#b04wf *{ box-sizing:border-box; }

#b04wf.b04wf-pos-br{ right:var(--b04wf-offset-x,18px); bottom:var(--b04wf-offset-y,18px); }
#b04wf.b04wf-pos-bl{ left: var(--b04wf-offset-x,18px); bottom:var(--b04wf-offset-y,18px); }
#b04wf.b04wf-pos-tr{ right:var(--b04wf-offset-x,18px); top:   var(--b04wf-offset-y,18px); }
#b04wf.b04wf-pos-tl{ left: var(--b04wf-offset-x,18px); top:   var(--b04wf-offset-y,18px); }

#b04wf .b04wf-btn{
  width:var(--b04wf-size-desktop,58px);
  height:var(--b04wf-size-desktop,58px);
  display:grid;
  place-items:center;
  border-radius:999px;
  background: var(--b04wf-color, #25D366);
  box-shadow: 0 14px 38px rgba(0,0,0,.18);
  text-decoration:none;
  pointer-events:auto;
  position:relative;
  overflow:visible;
  transform: translateZ(0);
  transition: transform .18s ease, box-shadow .18s ease, filter .18s ease;
}

#b04wf .b04wf-btn:focus-visible{
  outline: 3px solid rgba(0,0,0,.25);
  outline-offset: 3px;
}

#b04wf .b04wf-btn:hover{
  transform: translateY(-2px);
  box-shadow: 0 18px 46px rgba(0,0,0,.22);
}

#b04wf .b04wf-ico{
  width: calc(var(--b04wf-size-desktop,58px) * .48);
  height: calc(var(--b04wf-size-desktop,58px) * .48);
  filter: drop-shadow(0 1px 0 rgba(0,0,0,.06));
}

#b04wf .b04wf-img{
  width: calc(var(--b04wf-size-desktop,58px) * .48);
  height: calc(var(--b04wf-size-desktop,58px) * .48);
  display:block;
  object-fit:contain;
}

/* Bubble */
#b04wf .b04wf-bubble{
  pointer-events:auto;
  position:absolute;
  min-width: 220px;
  max-width: 290px;
  padding: 12px 12px 12px 12px;
  border-radius: 16px;
  background: var(--b04wf-bubble-bg, #111);
  color: var(--b04wf-bubble-txt, #fff);
  box-shadow: 0 18px 50px rgba(0,0,0,.22);
  opacity:0;
  transform: translateY(6px) scale(.98);
  transition: opacity .22s ease, transform .22s ease;
  visibility:hidden;
}

#b04wf.is-bubble-on .b04wf-bubble{
  opacity:1;
  transform: translateY(0) scale(1);
  visibility:visible;
}

#b04wf .b04wf-btxt{
  font-size: 13px;
  line-height: 1.35;
  opacity: .92;
  padding-right: 22px;
}

#b04wf .b04wf-bcta{
  display:inline-flex;
  align-items:center;
  gap:8px;
  margin-top:10px;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .02em;
  text-decoration:none;
  color: var(--b04wf-bubble-cta-txt, #111);
  background: var(--b04wf-bubble-cta-bg, #fff);
  border-radius: 999px;
  padding: 8px 10px;
}

#b04wf .b04wf-x{
  position:absolute;
  top:6px; right:8px;
  width:26px;height:26px;
  border:0;
  border-radius: 999px;
  background: var(--b04wf-bubble-x-bg, rgba(255,255,255,.10));
  color: var(--b04wf-bubble-txt, #fff);
  cursor:pointer;
  display:grid;
  place-items:center;
  line-height: 1;
}

#b04wf .b04wf-x:hover{ background: var(--b04wf-bubble-x-bg-h, rgba(255,255,255,.16)); }

/* Bubble positioning relative to button */
#b04wf.b04wf-pos-br .b04wf-bubble,
#b04wf.b04wf-pos-tr .b04wf-bubble{ right:0; }
#b04wf.b04wf-pos-bl .b04wf-bubble,
#b04wf.b04wf-pos-tl .b04wf-bubble{ left:0; }

#b04wf.b04wf-pos-br .b04wf-bubble{ bottom: calc(var(--b04wf-size-desktop,58px) + 12px); }
#b04wf.b04wf-pos-bl .b04wf-bubble{ bottom: calc(var(--b04wf-size-desktop,58px) + 12px); }
#b04wf.b04wf-pos-tr .b04wf-bubble{ top: calc(var(--b04wf-size-desktop,58px) + 12px); }
#b04wf.b04wf-pos-tl .b04wf-bubble{ top: calc(var(--b04wf-size-desktop,58px) + 12px); }

/* Themes */
#b04wf.b04wf-theme-classic .b04wf-btn{
  box-shadow: 0 14px 38px rgba(0,0,0,.18);
}

#b04wf.b04wf-theme-glass .b04wf-btn{
  background: color-mix(in srgb, var(--b04wf-color, #25D366) 86%, rgba(255,255,255,.9));
}
@supports ((-webkit-backdrop-filter: blur(10px)) or (backdrop-filter: blur(10px))){
  #b04wf.b04wf-theme-glass .b04wf-btn{
    background: rgba(255,255,255,.14);
    border: 1px solid rgba(255,255,255,.22);
    -webkit-backdrop-filter: blur(10px);
    backdrop-filter: blur(10px);
  }
  #b04wf.b04wf-theme-glass .b04wf-btn::before{
    content:"";
    position:absolute; inset:-1px;
    border-radius:999px;
    background: radial-gradient(120% 120% at 30% 30%, rgba(255,255,255,.35), rgba(255,255,255,0) 55%);
    pointer-events:none;
  }
}

#b04wf.b04wf-theme-neon .b04wf-btn{
  box-shadow: 0 18px 52px rgba(0,0,0,.26);
}
#b04wf.b04wf-theme-neon .b04wf-btn::after{
  content:"";
  position:absolute;
  inset:-8px;
  border-radius:999px;
  background: radial-gradient(closest-side, rgba(37,211,102,.0), rgba(37,211,102,.18), rgba(37,211,102,0));
  filter: blur(2px);
  opacity:.9;
  pointer-events:none;
  animation: b04wfPulse 3.6s ease-in-out infinite;
}
@keyframes b04wfPulse{
  0%,100%{ transform: scale(.96); opacity:.55; }
  50%{ transform: scale(1.08); opacity:.95; }
}

#b04wf.b04wf-theme-pixel .b04wf-btn{
  border-radius: 14px;
  box-shadow: 0 12px 0 rgba(0,0,0,.22), 0 20px 40px rgba(0,0,0,.22);
  transform: translateZ(0);
}
#b04wf.b04wf-theme-pixel .b04wf-btn:hover{
  transform: translateY(-2px);
  box-shadow: 0 14px 0 rgba(0,0,0,.22), 0 24px 48px rgba(0,0,0,.22);
}
#b04wf.b04wf-theme-pixel .b04wf-btn::before{
  content:"";
  position:absolute; inset:-2px;
  border-radius: 16px;
  background: rgba(0,0,0,.18);
  pointer-events:none;
}

#b04wf.b04wf-theme-soft .b04wf-btn{
  box-shadow: 0 10px 28px rgba(0,0,0,.18);
  filter: saturate(1.06);
}
#b04wf.b04wf-theme-soft .b04wf-btn::before{
  content:"";
  position:absolute; inset:0;
  border-radius:999px;
  background: radial-gradient(120% 120% at 30% 28%, rgba(255,255,255,.28), rgba(255,255,255,0) 52%);
  pointer-events:none;
}

/* Mobile sizing */
@media (max-width: 780px){
  #b04wf .b04wf-btn{
    width:var(--b04wf-size-mobile,54px);
    height:var(--b04wf-size-mobile,54px);
  }
  #b04wf.b04wf-pos-br .b04wf-bubble,
  #b04wf.b04wf-pos-bl .b04wf-bubble{
    bottom: calc(var(--b04wf-size-mobile,54px) + 10px);
  }
  #b04wf.b04wf-pos-tr .b04wf-bubble,
  #b04wf.b04wf-pos-tl .b04wf-bubble{
    top: calc(var(--b04wf-size-mobile,54px) + 10px);
  }
  #b04wf .b04wf-ico,
  #b04wf .b04wf-img{
    width: calc(var(--b04wf-size-mobile,54px) * .48);
    height: calc(var(--b04wf-size-mobile,54px) * .48);
  }
}

/* Reduce motion */
@media (prefers-reduced-motion: reduce){
  #b04wf .b04wf-btn,
  #b04wf .b04wf-bubble{ transition:none !important; }
  #b04wf.b04wf-theme-neon .b04wf-btn::after{ animation:none !important; }
}


/* Context-aware visibility */
#b04wf.is-hidden-by-context{
  opacity:0 !important;
  visibility:hidden !important;
  pointer-events:none !important;
  transform: translateY(10px) !important;
}

body.brc04-app #b04wf,
body.brc04-app-login #b04wf,
body.brc04-app-shell #b04wf{
  display:none !important;
}
