.boxfcw-widget,
.boxfcw-widget * {
  box-sizing: border-box !important;
}

.boxfcw-widget {
  position: fixed !important;
  bottom: var(--boxfcw-bottom) !important;
  z-index: var(--boxfcw-z) !important;
  font-family: inherit !important;
  line-height: 1 !important;
  width: var(--boxfcw-size) !important;
  height: var(--boxfcw-size) !important;
  min-width: var(--boxfcw-size) !important;
  min-height: var(--boxfcw-size) !important;
  max-width: var(--boxfcw-size) !important;
  max-height: var(--boxfcw-size) !important;
  display: block !important;
  pointer-events: none !important;
}

.boxfcw-pos-right { right: var(--boxfcw-side) !important; left: auto !important; }
.boxfcw-pos-left { left: var(--boxfcw-side) !important; right: auto !important; }

.boxfcw-main {
  width: var(--boxfcw-size) !important;
  height: var(--boxfcw-size) !important;
  min-width: var(--boxfcw-size) !important;
  min-height: var(--boxfcw-size) !important;
  max-width: var(--boxfcw-size) !important;
  max-height: var(--boxfcw-size) !important;
  aspect-ratio: 1 / 1 !important;
  border: 0 !important;
  border-radius: var(--boxfcw-radius) !important;
  padding: 0 !important;
  margin: 0 !important;
  cursor: pointer !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  background: linear-gradient(135deg,var(--boxfcw-main-1),var(--boxfcw-main-2)) !important;
  box-shadow: var(--boxfcw-shadow) !important;
  position: relative !important;
  overflow: hidden !important;
  transition: transform .22s ease, box-shadow .22s ease !important;
  outline: 0 !important;
  pointer-events: auto !important;
  text-decoration: none !important;
  appearance: none !important;
  -webkit-appearance: none !important;
}

.boxfcw-main:hover { transform: scale(1.06) !important; }
.boxfcw-main:before {
  content:"" !important;
  position:absolute !important;
  inset:8px !important;
  border-radius:inherit !important;
  background:rgba(255,255,255,.18) !important;
  opacity:.35 !important;
}

.boxfcw-main-icon {
  position: absolute !important;
  left: 50% !important;
  top: 50% !important;
  width: var(--boxfcw-icon) !important;
  height: var(--boxfcw-icon) !important;
  max-width: var(--boxfcw-icon) !important;
  max-height: var(--boxfcw-icon) !important;
  min-width: var(--boxfcw-icon) !important;
  min-height: var(--boxfcw-icon) !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  color: var(--boxfcw-main-icon-color) !important;
  opacity: 0 !important;
  transform: translate(-50%,-50%) scale(.78) rotate(-8deg) !important;
  transition: opacity .35s ease, transform .35s ease !important;
  filter: drop-shadow(0 3px 8px rgba(0,0,0,.16)) !important;
  z-index: 2 !important;
}
.boxfcw-main-icon.is-active {
  opacity: 1 !important;
  transform: translate(-50%,-50%) scale(1) rotate(0) !important;
}
.boxfcw-main-icon img,
.boxfcw-main-icon svg {
  width: 100% !important;
  height: 100% !important;
  max-width: 100% !important;
  max-height: 100% !important;
  object-fit: contain !important;
  display: block !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  box-shadow: none !important;
}
.boxfcw-svg,
.boxfcw-svg * {
  fill: currentColor !important;
  stroke: currentColor !important;
}

.boxfcw-menu {
  position: absolute !important;
  width: var(--boxfcw-menu-width) !important;
  max-width: calc(100vw - 32px) !important;
  bottom: calc(var(--boxfcw-size) + var(--boxfcw-gap)) !important;
  display: flex !important;
  flex-direction: column !important;
  gap: var(--boxfcw-item-gap) !important;
  padding: 10px !important;
  border-radius: calc(var(--boxfcw-item-radius) + 8px) !important;
  background: var(--boxfcw-menu-bg) !important;
  box-shadow: var(--boxfcw-shadow) !important;
  opacity: 0 !important;
  visibility: hidden !important;
  pointer-events: none !important;
  transform: translateY(10px) scale(.96) !important;
  transition: opacity .2s ease, visibility .2s ease, transform .2s ease !important;
}
.boxfcw-pos-right .boxfcw-menu { right: 0 !important; left: auto !important; }
.boxfcw-pos-left .boxfcw-menu { left: 0 !important; right: auto !important; }
.boxfcw-widget.is-open .boxfcw-menu,
.boxfcw-open-hover:hover .boxfcw-menu {
  opacity: 1 !important;
  visibility: visible !important;
  pointer-events: auto !important;
  transform: translateY(0) scale(1) !important;
}


.boxfcw-menu-header {
  width: 100% !important;
  padding: var(--boxfcw-menu-header-py) var(--boxfcw-menu-header-px) !important;
  border-radius: var(--boxfcw-menu-header-radius) !important;
  background: var(--boxfcw-menu-header-bg) !important;
  text-align: left !important;
  margin: 0 !important;
  overflow: hidden !important;
}
.boxfcw-menu-header-center { text-align: center !important; }
.boxfcw-menu-header-right { text-align: right !important; }
.boxfcw-menu-title {
  display: block !important;
  margin: 0 !important;
  padding: 0 !important;
  color: var(--boxfcw-menu-title-color) !important;
  font-size: var(--boxfcw-menu-title-size) !important;
  font-weight: 800 !important;
  line-height: 1.2 !important;
  letter-spacing: 0 !important;
  white-space: normal !important;
}
.boxfcw-menu-subtitle {
  display: block !important;
  margin: 4px 0 0 !important;
  padding: 0 !important;
  color: var(--boxfcw-menu-subtitle-color) !important;
  font-size: var(--boxfcw-menu-subtitle-size) !important;
  font-weight: 500 !important;
  line-height: 1.25 !important;
  white-space: normal !important;
}

.boxfcw-menu-item {
  width: 100% !important;
  height: var(--boxfcw-item-height) !important;
  min-height: var(--boxfcw-item-height) !important;
  max-height: var(--boxfcw-item-height) !important;
  display: flex !important;
  align-items: center !important;
  justify-content: flex-start !important;
  gap: 12px !important;
  padding: 0 var(--boxfcw-item-px) !important;
  border-radius: var(--boxfcw-item-radius) !important;
  background: var(--boxfcw-item-bg) !important;
  color: var(--boxfcw-item-text) !important;
  text-decoration: none !important;
  font-weight: 700 !important;
  font-size: 15px !important;
  line-height: 1 !important;
  box-shadow: none !important;
  border: 0 !important;
  outline: 0 !important;
  transition: background .18s ease, transform .18s ease !important;
}
.boxfcw-menu-item:hover {
  background: var(--boxfcw-item-bg-hover) !important;
  transform: translateY(-1px) !important;
  color: var(--boxfcw-item-text) !important;
}

.boxfcw-menu-icon {
  width: 34px !important;
  height: 34px !important;
  min-width: 34px !important;
  min-height: 34px !important;
  max-width: 34px !important;
  max-height: 34px !important;
  border-radius: 999px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  background: var(--boxfcw-channel-icon-bg, #fff) !important;
  color: var(--boxfcw-channel-icon-color, #111827) !important;
  flex: 0 0 34px !important;
  box-shadow: 0 4px 12px rgba(0,0,0,.08) !important;
  overflow: hidden !important;
}
.boxfcw-menu-icon img,
.boxfcw-menu-icon svg {
  width: 22px !important;
  height: 22px !important;
  max-width: 22px !important;
  max-height: 22px !important;
  object-fit: contain !important;
  display: block !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  box-shadow: none !important;
}
.boxfcw-menu-label { display: block !important; white-space: nowrap !important; overflow: hidden !important; text-overflow: ellipsis !important; }

.boxfcw-anim-pulse .boxfcw-main { animation: boxfcwPulse 1.8s ease-in-out infinite !important; }
.boxfcw-anim-float .boxfcw-main { animation: boxfcwFloat 2.4s ease-in-out infinite !important; }
.boxfcw-anim-shake .boxfcw-main { animation: boxfcwShake 2.4s ease-in-out infinite !important; }

@keyframes boxfcwPulse { 0%,100%{ box-shadow:var(--boxfcw-shadow),0 0 0 0 rgba(48,141,255,.35) } 70%{ box-shadow:var(--boxfcw-shadow),0 0 0 15px rgba(48,141,255,0) } }
@keyframes boxfcwFloat { 0%,100%{ transform:translateY(0) } 50%{ transform:translateY(-8px) } }
@keyframes boxfcwShake { 0%,88%,100%{ transform:rotate(0) } 90%{ transform:rotate(-8deg) } 92%{ transform:rotate(8deg) } 94%{ transform:rotate(-6deg) } 96%{ transform:rotate(6deg) } 98%{ transform:rotate(0) } }

@media(max-width:767px){
  .boxfcw-widget { bottom: max(16px,var(--boxfcw-bottom)) !important; }
  .boxfcw-pos-right { right: 16px !important; }
  .boxfcw-pos-left { left: 16px !important; }
  .boxfcw-main:hover { transform: none !important; }
}
