:root{
  --rox-start:#4F2AA6;
  --rox-mid:#6B49E3;
  --rox-end:#7B3FF3;
  --rox-shadow:rgba(123,63,243,.35);
  --txt:#1E1E2A;
  --white:#fff;
}

.dmw-wrap{
  position:fixed;
  z-index:999999;
  bottom:18px;
}
.dmw-pos-right{ right:18px; }
.dmw-pos-left{ left:18px; }

.dmw-fab{
  position:relative;
  width:64px;height:64px;
  border-radius:50%;
  border:none;
  cursor:pointer;
  color:#fff;
  background:linear-gradient(135deg,var(--rox-start),var(--rox-end));
  box-shadow:0 10px 24px rgba(0,0,0,.18), 0 0 0 8px var(--rox-shadow);
  display:flex;align-items:center;justify-content:center;
  transition:transform .15s ease, box-shadow .2s ease;
}
.dmw-fab:hover{ transform:translateY(-2px); }
.dmw-icon{ pointer-events:none; display:block; width:40px; height:40px; }

.dmw-fab-wave,
.dmw-fab-wave-2{
  position:absolute; inset:0;
  border-radius:50%;
  box-shadow:0 0 0 0 rgba(123,63,243,.45);
  animation:dmwPulse 2.2s infinite ease-out;
}
.dmw-fab-wave-2{ animation-delay:.8s; }
@keyframes dmwPulse{
  0%{ box-shadow:0 0 0 0 rgba(123,63,243,.45); }
  70%{ box-shadow:0 0 0 18px rgba(123,63,243,0); }
  100%{ box-shadow:0 0 0 0 rgba(123,63,243,0); }
}

.dmw-modal[hidden]{ display:none; }
.dmw-modal{ position:fixed; inset:0; z-index:999998; }

.dmw-backdrop{
  z-index:1;
  position:absolute; inset:0;
  background:rgba(20,16,31,.28);
  backdrop-filter:none;
}

.dmw-card{
  z-index:2;
  position:absolute;
  bottom:96px;
  width:min(92vw,360px);
  background:var(--white);
  border-radius:18px;
  box-shadow:0 20px 50px rgba(0,0,0,.25);
  overflow:hidden;
}
.dmw-pos-right .dmw-card{
  z-index:2; right:10px; }
.dmw-pos-left  .dmw-card{
  z-index:2; left:10px; }

.dmw-card-head{
  display:flex; align-items:center; justify-content:space-between;
  background:linear-gradient(135deg,var(--rox-start),var(--rox-mid));
  color:#fff; padding:12px 14px;
}
.dmw-head-left{ display:flex; gap:8px; align-items:center; }
.dmw-head-left strong{ font-weight:700; }

.dmw-close{ margin-right:6px; margin-top:2px;
  font-size:22px; line-height:1; border:none; background:transparent; color:#fff;
  width:34px;height:34px;border-radius:8px; cursor:pointer;
}
.dmw-close:hover{ background:rgba(255,255,255,.12); }

.dmw-card-body{ padding:14px; background:#faf9ff; }

.dmw-bubble{
  position:relative;
  background:#fff; color:var(--txt);
  border-radius:14px; padding:14px; box-shadow:0 6px 18px rgba(123,63,243,.12);
  margin:6px 6px 14px 6px;
}
.dmw-bubble::before{
  content:""; position:absolute; left:14px; top:-10px;
  border:10px solid transparent; border-bottom-color:#fff;
}

.dmw-cta{
  display:inline-flex; align-items:center; justify-content:center;
  width:160px; height:44px;
  background:linear-gradient(135deg,var(--rox-start),var(--rox-end));
  color:#fff; text-decoration:none; font-weight:700; border-radius:12px;
  box-shadow:0 10px 24px rgba(111,61,235,.24);
  transition:transform .15s ease, box-shadow .2s ease;
}
.dmw-cta:hover{ transform:translateY(-1px); box-shadow:0 12px 28px rgba(111,61,235,.32); }

@media (max-width:480px){
  .dmw-card{
  z-index:2; bottom:88px; }
}
/* ==== Balloon (tooltip) ==== */
.dmw-balloon{
  position:fixed;
  bottom:96px;
  right:18px;
  max-width:240px;
  background:#fff;
  color:var(--txt);
  border-radius:14px;
  padding:12px 14px;
  box-shadow:0 10px 26px rgba(0,0,0,.18);
  border:1px solid rgba(111,61,235,.12);
  z-index:999997;
  opacity:0; transform:translateY(8px);
  pointer-events:none;
  transition:opacity .25s ease, transform .25s ease;
}
.dmw-balloon.show{ opacity:1; transform:translateY(0); pointer-events:auto; }
.dmw-balloon::after{
  content:"";
  position:absolute;
  bottom:-10px; right:24px;
  border:10px solid transparent;
  border-top-color:#fff;
  filter:drop-shadow(0 -1px 0 rgba(111,61,235,.12));
}
.dmw-balloon .dmw-balloon-close{
  appearance:none; border:none; background:transparent; font-size:16px; line-height:1; cursor:pointer; color:#8b8b95; float:right;
}
.dmw-balloon .dmw-balloon-text{ margin-right:8px; }
@media (max-width:480px){
  .dmw-balloon{ right:12px; bottom:88px; }
}
