/* = Nguyễn Hiếu Makeup Chat Buttons v1.5.0
   Rise(0.5s) → Visible(custom) → Sink(0.5s) → Gap(custom), no overlap
============================================================== */

.cute-chat-box{
  position:fixed;
  bottom:80px;
  right:25px;
  display:flex;
  flex-direction:column;
  align-items:flex-end;
  font-family:"Poppins",sans-serif;
  z-index:999999;
  pointer-events:none;
}
.ccb-stack{
  position:relative;
  display:flex;
  flex-direction:column;
  align-items:flex-end;
  z-index:999999;
  pointer-events:auto;
}

/* Bubble base */
.chat-bubble{
  position:absolute;
  bottom:calc(100% + var(--bubble-offset,10px));
  right:0;
  background:linear-gradient(145deg,#fff0f8,#ffe6f3);
  border:2px solid #ffb6d9;
  border-radius:var(--bubble-radius,18px);
  padding:var(--bubble-padding-v,10px) var(--bubble-padding-h,18px);
  color:#c04b86;
  font-size:var(--bubble-font-size,15px);
  font-weight:600;
  text-align:center;
  line-height:1.35;
  max-width:var(--bubble-max-width,320px);
  white-space:normal;
  pointer-events:none;
  filter: drop-shadow(0 6px 18px rgba(255,160,220,.45));
  opacity:0;
  transform:translateY(12px) scale(.98);
  transition:opacity .5s ease-in-out, transform .5s ease-in-out, filter .5s ease-in-out;
}

/* Halo glow */
.chat-bubble.nhm-cute::before{
  content:"";
  position:absolute;
  inset:-2px;
  border-radius:inherit;
  background:conic-gradient(from 180deg, rgba(255,150,220,.12), rgba(160,120,255,.12), rgba(255,150,220,.12));
  filter: blur(8px);
  z-index:-1;
}

/* Tail */
.chat-bubble::after{
  content:"";
  position:absolute;
  bottom:-8px;
  right:25px;
  border-width:8px 8px 0 8px;
  border-style:solid;
  border-color:#ffe6f3 transparent transparent transparent;
}

/* State: entering (rise) */
.chat-bubble.state-enter{
  opacity:1;
  transform:translateY(0) scale(1);
  filter: drop-shadow(0 10px 24px rgba(200,130,255,.55));
}

/* State: visible (gentle breathing) */
.chat-bubble.state-visible{
  opacity:1;
  transform:translateY(0) scale(1);
  animation:nhm-breathe 2.2s ease-in-out infinite;
}
@keyframes nhm-breathe{
  0%{ filter: drop-shadow(0 6px 18px rgba(255,160,220,.45)); }
  50%{ filter: drop-shadow(0 12px 28px rgba(200,130,255,.55)); }
  100%{ filter: drop-shadow(0 6px 18px rgba(255,160,220,.45)); }
}

/* State: exiting (sink) */
.chat-bubble.state-exit{
  opacity:0;
  transform:translateY(12px) scale(.98);
  animation:none;
}

/* Buttons */
.btn-chat{
  position:relative;
  color:#fff;
  text-decoration:none;
  padding:14px 0;
  border-radius:60px;
  font-size:16px;
  font-weight:600;
  text-align:center;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  margin-top:12px;
  overflow:hidden;
  transition:transform .25s ease, box-shadow .25s ease;
  box-shadow:0 6px 20px rgba(0,0,0,.12);
  pointer-events:auto;
}
.btn-chat:hover{ transform:translateY(-2px) scale(1.04); box-shadow:0 10px 28px rgba(0,0,0,.16); }

.fb-btn{ background:linear-gradient(135deg,#f57edc,#a875ff); box-shadow:0 0 25px rgba(230,140,255,.55); }
.zalo-btn{ background:linear-gradient(135deg,#61b3ff,#9bd3ff); box-shadow:0 0 25px rgba(120,190,255,.4); }
.call-btn{ background:linear-gradient(135deg,#ff8b7e,#ff5289); box-shadow:0 0 25px rgba(255,140,170,.5); }

/* Shine sweep */
.btn-chat::before{
  content:"";
  position:absolute;
  top:0; left:-75%;
  width:50%; height:100%;
  background:linear-gradient(120deg,rgba(255,255,255,.15) 0%,rgba(255,255,255,.8) 50%,rgba(255,255,255,.15) 100%);
  transform:skewX(-25deg);
  animation:shine 3.5s infinite;
}
@keyframes shine{ 0%{left:-75%;} 50%,100%{left:125%;} }

@media (max-width:480px){
  .cute-chat-box{ right:16px; bottom:72px; }
  .btn-chat{ font-size:15px; padding:12px 0; }
}
