/* Container and wrapper must never intercept clicks */
.notyf,
.notyf__wrapper {
  pointer-events: none !important;
}

/* Base toast styling - match navbar box-shadow token */
.notyf__toast {
  border-radius: 14px !important;
  box-shadow: var(--bs-box-shadow) !important;
  cursor: pointer;
  pointer-events: auto !important;
  user-select: none;
  -webkit-user-select: none;
  will-change: transform;
}

/* Smooth slide down from top with fade-in entrance keyframe */
@keyframes notyf-slide-down-fade {
  0% {
    opacity: 0;
    transform: translate3d(0, -32px, 0) scale(0.96);
  }
  65% {
    opacity: 0.92;
  }
  100% {
    opacity: 1;
    transform: translate3d(0, 0, 0) scale(1);
  }
}

/* Smooth slide up with fade-out exit keyframe */
@keyframes notyf-slide-up-fade {
  0% {
    opacity: 1;
    transform: translate3d(0, 0, 0) scale(1);
  }
  100% {
    opacity: 0;
    transform: translate3d(0, -22px, 0) scale(0.95);
  }
}

/* Resting position: smooth slide down from top with gentle fade */
.notyf__toast {
  will-change: transform, opacity;
  animation: notyf-slide-down-fade 0.36s cubic-bezier(0.16, 1, 0.3, 1) forwards !important;
  backdrop-filter: blur(12px) !important;
  -webkit-backdrop-filter: blur(12px) !important;
}

.notyf__toast.notyf__toast--upper,
.notyf__toast.notyf__toast--lower {
  animation: notyf-slide-down-fade 0.36s cubic-bezier(0.16, 1, 0.3, 1) forwards !important;
}

/* Exit animation: smooth slide up with fade */
.notyf__toast.notyf__toast--disappear {
  animation: notyf-slide-up-fade 0.26s cubic-bezier(0.4, 0, 0.2, 1) forwards !important;
  animation-delay: 0s !important;
}

/* While user is dragging/swiping: eliminate all delays, keyframes, and transitions */
.notyf__toast.alert-swiping,
.app-swipe-alert.alert-swiping,
.alert-dismissible.alert-swiping {
  animation: none !important;
  -webkit-animation: none !important;
  transition: none !important;
  cursor: grabbing !important;
}

/* Prevent child elements or Notyf defaults from conflicting during dismiss or swipe */
.notyf__toast.alert-swiping *,
.notyf__toast.alert-dismissing-up,
.notyf__toast.alert-dismissing-up * {
  animation: none !important;
  -webkit-animation: none !important;
}

.notyf__toast .icon-base {
  color: inherit !important;
}
.notyf__wrapper {
  padding: 10px 0 !important;
}

/* Remove button (close) styling - hide it */
.notyf__toast .notyf__button,
.notyf__toast .notyf__dismiss,
.notyf__toast .notyf__dismiss-btn {
  display: none !important;
}

.notyf__message {
  line-height: 1.3em !important;
}

.notyf__icon {
  margin-right: 10px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  flex-shrink: 0 !important;
}

/* Success specific */
.notyf__toast.notyf__success--custom {
  background-color: color-mix(
    in sRGB,
    var(--bs-paper-bg) 85%,
    var(--bs-success)
  ) !important;
  border: 1.6px solid
    color-mix(in sRGB, var(--bs-paper-bg) 70%, var(--bs-success)) !important;
  color: var(--bs-success) !important;
}

/* Error specific */
.notyf__toast.notyf__error--custom {
  background-color: color-mix(
    in sRGB,
    var(--bs-paper-bg) 85%,
    var(--bs-danger)
  ) !important;
  border: 1.6px solid
    color-mix(in sRGB, var(--bs-paper-bg) 70%, var(--bs-danger)) !important;
  color: var(--bs-danger) !important;
}

/* Warning specific */
.notyf__toast.notyf__warning--custom {
  background-color: color-mix(
    in sRGB,
    var(--bs-paper-bg) 85%,
    var(--bs-warning)
  ) !important;
  border: 1.6px solid
    color-mix(in sRGB, var(--bs-paper-bg) 70%, var(--bs-warning)) !important;
  color: var(--bs-warning) !important;
}

/* Info specific */
.notyf__toast.notyf__info--custom {
  background-color: color-mix(
    in sRGB,
    var(--bs-paper-bg) 85%,
    var(--bs-info)
  ) !important;
  border: 1.6px solid color-mix(in sRGB, var(--bs-paper-bg) 70%, var(--bs-info)) !important;
  color: var(--bs-info) !important;
}

.notyf__toast--upper {
  margin-bottom: 20px !important;
  margin-top: -4px !important;
  margin-right: 6px !important;
}

/* Mobile - floating toast with safe margins and preserved border radius / full border */
@media (max-width: 767.98px) {
  .notyf {
    padding: 12px 16px !important;
    padding-top: max(12px, env(safe-area-inset-top, 12px)) !important;
    z-index: 99999 !important;
    box-sizing: border-box !important;
  }

  .notyf__toast {
    border-radius: 14px !important;
    width: 100% !important;
    max-width: 100% !important;
    box-shadow: var(--bs-box-shadow) !important;
    touch-action: none;
  }
  .notyf__toast:active {
    cursor: grabbing;
  }

  .notyf__toast--upper {
    margin-bottom: 12px !important;
    margin-top: 0 !important;
    margin-right: 0 !important;
  }
}
