.app-dialog-layer {
  position: fixed;
  inset: 0;
  z-index: 50000;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 22px;
  background: rgba(24, 25, 36, 0.38);
  opacity: 0;
  visibility: hidden;
  transition: 0.2s ease;
  backdrop-filter: blur(5px);
  -webkit-backdrop-filter: blur(5px);
}
.app-dialog-layer.is-open {
  opacity: 1;
  visibility: visible;
}
.app-dialog-card {
  position: relative;
  width: min(86vw, 360px);
  padding: 25px 22px 21px;
  background: #fff;
  border: 1px solid rgba(255, 111, 139, 0.16);
  border-radius: 24px;
  box-shadow: 0 24px 70px rgba(35, 30, 48, 0.24);
  text-align: center;
  transform: translateY(12px) scale(0.97);
  transition: 0.22s ease;
  overflow: hidden;
}
.app-dialog-layer.is-open .app-dialog-card {
  transform: none;
}
.app-dialog-card:before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 4px;
  background: linear-gradient(90deg, #ff5f7e, #ff8d78, #8b63f6);
}
.app-dialog-icon {
  width: 54px;
  height: 54px;
  margin: 0 auto 13px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 18px;
  background: linear-gradient(145deg, #fff0f4, #f4efff);
  font-size: 26px;
}
.app-dialog-title {
  margin: 0;
  color: #20243a;
  font-size: 21px;
  font-weight: 900;
}
.app-dialog-message {
  margin: 10px 0 0;
  color: #686575;
  font-size: 14px;
  line-height: 1.7;
  white-space: normal;
  overflow-wrap: anywhere;
}
.app-dialog-actions {
  display: flex;
  gap: 10px;
  margin-top: 20px;
}
.app-dialog-button {
  flex: 1;
  height: 45px;
  border: 0;
  border-radius: 14px;
  font-size: 14px;
  font-weight: 800;
  cursor: pointer;
}
.app-dialog-cancel {
  color: #686575;
  background: #f3f3f6;
}
.app-dialog-confirm {
  color: #fff;
  background: linear-gradient(135deg, #ff607e, #8b63f6);
  box-shadow: 0 9px 20px rgba(255, 95, 126, 0.22);
}
.app-dialog-progress {
  position: absolute;
  left: 0;
  bottom: 0;
  height: 3px;
  background: linear-gradient(90deg, #ff607e, #8b63f6);
  animation: appDialogProgress var(--app-dialog-duration, 2400ms) linear
    forwards;
}
.app-dialog-layer[data-type="success"] .app-dialog-icon {
  color: #13895d;
  background: #eaf8f1;
}
.app-dialog-layer[data-type="error"] .app-dialog-icon {
  color: #d63d51;
  background: #fff0f3;
}
.app-dialog-layer[data-type="warning"] .app-dialog-icon {
  color: #d88712;
  background: #fff7df;
}
@keyframes appDialogProgress {
  from {
    width: 100%;
  }
  to {
    width: 0;
  }
}
@media (max-width: 380px) {
  .app-dialog-layer {
    padding: 15px;
  }
  .app-dialog-card {
    width: 92vw;
    padding: 22px 18px 18px;
  }
  .app-dialog-title {
    font-size: 19px;
  }
}
