/* Pro+ SweetAlert2 theme — alinhado com #2c7be5 */

.proplus-swal-popup.swal2-popup {
  border-radius: 1rem !important;
  padding: 1.75rem 1.5rem 1.5rem !important;
  box-shadow:
    0 24px 48px rgba(15, 40, 80, 0.18),
    0 0 0 1px rgba(44, 123, 229, 0.06) !important;
  font-family: 'Open Sans', system-ui, sans-serif !important;
  max-width: 26rem !important;
  width: calc(100% - 1.5rem) !important;
  background:
    linear-gradient(180deg, #ffffff 0%, #f7fafc 100%) !important;
}

/* Toast — layout compacto (não herdar tipografia/ícone do modal) */
.proplus-swal-popup.swal2-toast,
.proplus-swal-toast.swal2-popup {
  display: flex !important;
  flex-direction: row !important;
  align-items: center !important;
  gap: 0.65rem !important;
  width: auto !important;
  max-width: min(22rem, calc(100vw - 1.5rem)) !important;
  padding: 0.7rem 0.9rem !important;
  border-radius: 0.65rem !important;
  box-shadow:
    0 10px 24px rgba(15, 40, 80, 0.14),
    0 0 0 1px rgba(20, 35, 58, 0.06) !important;
  background: #fff !important;
  font-family: 'Open Sans', system-ui, sans-serif !important;
}

.proplus-swal-popup.swal2-toast .swal2-icon,
.proplus-swal-toast .swal2-icon {
  flex: 0 0 auto !important;
  width: 1.75rem !important;
  height: 1.75rem !important;
  min-width: 1.75rem !important;
  margin: 0 !important;
  border-width: 0.15em !important;
}

.proplus-swal-popup.swal2-toast .swal2-icon.swal2-success,
.proplus-swal-toast .swal2-icon.swal2-success {
  border-color: transparent !important;
}

.proplus-swal-popup.swal2-toast .swal2-success-ring,
.proplus-swal-toast .swal2-success-ring {
  width: 1.75rem !important;
  height: 1.75rem !important;
}

.proplus-swal-popup.swal2-toast .swal2-icon .swal2-icon-content,
.proplus-swal-toast .swal2-icon .swal2-icon-content {
  font-size: 0.9rem !important;
}

.proplus-swal-popup.swal2-toast .proplus-swal-title,
.proplus-swal-popup.swal2-toast .swal2-title,
.proplus-swal-popup.swal2-toast .proplus-swal-toast-title,
.proplus-swal-toast .proplus-swal-title,
.proplus-swal-toast .swal2-title,
.proplus-swal-toast .proplus-swal-toast-title {
  flex: 1 1 auto !important;
  margin: 0 !important;
  padding: 0 !important;
  font-family: 'Open Sans', system-ui, sans-serif !important;
  font-size: 0.875rem !important;
  font-weight: 600 !important;
  line-height: 1.35 !important;
  letter-spacing: 0 !important;
  color: #14233a !important;
  text-align: left !important;
}

.proplus-swal-popup.swal2-toast .swal2-html-container,
.proplus-swal-toast .swal2-html-container {
  margin: 0 !important;
  padding: 0 !important;
  font-size: 0.8rem !important;
  text-align: left !important;
}

.proplus-swal-popup.swal2-toast .swal2-timer-progress-bar-container,
.proplus-swal-toast .swal2-timer-progress-bar-container {
  margin: 0 !important;
}

/* Toast não deve escurecer o ecrã (mais específico que body.swal2-shown) */
body.swal2-toast-shown > .swal2-container,
body.swal2-shown.swal2-toast-shown > .swal2-container {
  background: transparent !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
  pointer-events: none !important;
}
body.swal2-toast-shown > .swal2-container .swal2-popup,
body.swal2-shown.swal2-toast-shown > .swal2-container .swal2-popup {
  pointer-events: auto !important;
}

.proplus-swal-enter {
  animation: proplus-swal-in 0.28s cubic-bezier(0.22, 1, 0.36, 1);
}

@keyframes proplus-swal-in {
  from {
    opacity: 0;
    transform: translateY(10px) scale(0.97);
  }
  to {
    opacity: 1;
    transform: translateY(0) scale(1);
  }
}

.proplus-swal-title {
  font-family: Poppins, 'Open Sans', sans-serif !important;
  font-weight: 600 !important;
  font-size: 1.2rem !important;
  color: #1b2a41 !important;
  letter-spacing: -0.01em !important;
  margin-top: 0.35rem !important;
}

.proplus-swal-html,
.proplus-swal-popup .swal2-html-container {
  font-size: 0.925rem !important;
  color: #5e6e82 !important;
  line-height: 1.5 !important;
  margin-top: 0.35rem !important;
}

.proplus-swal-actions {
  margin-top: 1.35rem !important;
  gap: 0.55rem !important;
}

.proplus-swal-btn {
  border: none !important;
  border-radius: 0.5rem !important;
  font-weight: 600 !important;
  font-size: 0.875rem !important;
  padding: 0.55rem 1.15rem !important;
  min-width: 6.5rem !important;
  box-shadow: none !important;
  transition: background-color 0.15s ease, transform 0.12s ease, box-shadow 0.15s ease !important;
}

.proplus-swal-btn:focus {
  outline: none !important;
  box-shadow: 0 0 0 3px rgba(44, 123, 229, 0.28) !important;
}

.proplus-swal-btn:active {
  transform: translateY(1px) !important;
}

.proplus-swal-btn--confirm {
  background: linear-gradient(180deg, #3d8aef 0%, #2c7be5 100%) !important;
  color: #fff !important;
}

.proplus-swal-btn--confirm:hover {
  background: linear-gradient(180deg, #2c7be5 0%, #1a5bb8 100%) !important;
  color: #fff !important;
}

.proplus-swal-btn--danger {
  background: linear-gradient(180deg, #e63757 0%, #d92550 100%) !important;
  color: #fff !important;
}

.proplus-swal-btn--danger:hover {
  background: linear-gradient(180deg, #d92550 0%, #b81e42 100%) !important;
  color: #fff !important;
}

.proplus-swal-btn--cancel {
  background: #fff !important;
  color: #5e6e82 !important;
  border: 1px solid #d8e2ef !important;
}

.proplus-swal-btn--cancel:hover {
  background: #f5f7fa !important;
  color: #1b2a41 !important;
  border-color: #c5d2e0 !important;
}

.proplus-swal-btn--deny {
  background: #edf2f9 !important;
  color: #1b2a41 !important;
}

.proplus-swal-btn--deny:hover {
  background: #e3ebf6 !important;
  color: #1b2a41 !important;
}

.proplus-swal-btn--soft {
  background: #edf2f9 !important;
  color: #1b2a41 !important;
  border: 1px solid transparent !important;
}

.proplus-swal-btn--soft:hover {
  background: #e3ebf6 !important;
  color: #14233a !important;
}

.proplus-swal-actions--detail {
  flex-wrap: wrap !important;
  justify-content: center !important;
  width: 100% !important;
  gap: 0.5rem !important;
}

.proplus-swal-popup--detail {
  width: 26rem !important;
  padding: 1.5rem 1.35rem 1.25rem !important;
}

.proplus-swal-popup--detail .proplus-swal-title,
.proplus-swal-popup--detail .swal2-title {
  font-size: 1.15rem !important;
  margin-bottom: 0.15rem !important;
}

.proplus-swal-popup--detail .swal2-icon {
  margin-bottom: 0.65rem !important;
  transform: scale(0.85);
  transform-origin: center top;
}

.proplus-swal-detail {
  margin: 0.15rem 0 0;
}

.proplus-swal-detail__row {
  display: flex;
  flex-direction: column;
  gap: 0.15rem;
  padding: 0.75rem 0.9rem;
  background: #f5f7fa;
  border-radius: 0.65rem;
  margin-bottom: 0.55rem;
}

.proplus-swal-detail__label {
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.02em;
  text-transform: uppercase;
  color: #748194;
}

.proplus-swal-detail__value {
  font-size: 0.98rem;
  font-weight: 600;
  color: #1b2a41;
  line-height: 1.35;
}

.proplus-swal-detail__badge {
  display: inline-flex;
  align-items: center;
  font-size: 0.78rem;
  font-weight: 600;
  padding: 0.35rem 0.65rem;
  border-radius: 999px;
  margin-bottom: 0.45rem;
}

.proplus-swal-detail__badge.is-transito {
  background: rgba(246, 195, 67, 0.22);
  color: #8a6d0b;
}

.proplus-swal-detail__badge.is-atual {
  background: rgba(0, 210, 122, 0.14);
  color: #0b7a4b;
}

.proplus-swal-detail__hint {
  font-size: 0.8rem;
  color: #748194;
  line-height: 1.4;
  margin-top: 0.15rem;
}

[data-bs-theme="dark"] .proplus-swal-detail__row {
  background: rgba(255, 255, 255, 0.06);
}

[data-bs-theme="dark"] .proplus-swal-detail__label {
  color: #9da9bb;
}

[data-bs-theme="dark"] .proplus-swal-detail__value {
  color: #edf2f9;
}

[data-bs-theme="dark"] .proplus-swal-btn--soft {
  background: rgba(255, 255, 255, 0.08) !important;
  color: #edf2f9 !important;
}

[data-bs-theme="dark"] .proplus-swal-btn--soft:hover {
  background: rgba(255, 255, 255, 0.14) !important;
}

/* Ícones com anel suave */
.proplus-swal-popup .swal2-icon {
  margin: 0.15rem auto 0.5rem !important;
  border-width: 3px !important;
  width: 4.25rem !important;
  height: 4.25rem !important;
}

.proplus-swal-popup .swal2-icon.swal2-success {
  border-color: rgba(0, 210, 122, 0.35) !important;
  color: #00d27a !important;
}
.proplus-swal-popup .swal2-icon.swal2-success [class^='swal2-success-line'] {
  background-color: #00d27a !important;
}
.proplus-swal-popup .swal2-icon.swal2-success .swal2-success-ring {
  border-color: rgba(0, 210, 122, 0.35) !important;
}

.proplus-swal-popup .swal2-icon.swal2-error {
  border-color: rgba(230, 55, 87, 0.35) !important;
  color: #e63757 !important;
}
.proplus-swal-popup .swal2-icon.swal2-error .swal2-x-mark-line-left,
.proplus-swal-popup .swal2-icon.swal2-error .swal2-x-mark-line-right {
  background-color: #e63757 !important;
}

.proplus-swal-popup .swal2-icon.swal2-warning {
  border-color: rgba(247, 189, 60, 0.45) !important;
  color: #f6c343 !important;
}

.proplus-swal-popup .swal2-icon.swal2-info {
  border-color: rgba(44, 123, 229, 0.35) !important;
  color: #2c7be5 !important;
}

.proplus-swal-popup .swal2-icon.swal2-question {
  border-color: rgba(44, 123, 229, 0.35) !important;
  color: #2c7be5 !important;
}

.proplus-swal-timer {
  background: linear-gradient(90deg, #2c7be5, #3d9a8b) !important;
}

.proplus-swal-close {
  color: #9da9bb !important;
}
.proplus-swal-close:hover {
  color: #1b2a41 !important;
}

/*
 * Acima do ecrã completo da escala/scheduler (z-index 1065) e do picker (1080).
 * Sem isto, Guardar em fullscreen deixa o alerta invisível por baixo.
 */
.swal2-container {
  z-index: 2000 !important;
}

/* Backdrop */
body.swal2-shown > .swal2-container {
  background: rgba(15, 28, 46, 0.48) !important;
  backdrop-filter: blur(3px);
  -webkit-backdrop-filter: blur(3px);
}

/* Toast: nunca herdar o backdrop do modal (tem de vir DEPOIS da regra acima) */
body.swal2-shown.swal2-toast-shown > .swal2-container {
  background: transparent !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
  pointer-events: none !important;
}

/* Dark theme */
[data-bs-theme="dark"] .proplus-swal-popup.swal2-popup {
  background: linear-gradient(180deg, #152238 0%, #0f1a2b 100%) !important;
  box-shadow:
    0 24px 48px rgba(0, 0, 0, 0.45),
    0 0 0 1px rgba(255, 255, 255, 0.08) !important;
}
[data-bs-theme="dark"] .proplus-swal-popup.swal2-toast,
[data-bs-theme="dark"] .proplus-swal-toast.swal2-popup {
  background: #152238 !important;
  box-shadow:
    0 10px 24px rgba(0, 0, 0, 0.4),
    0 0 0 1px rgba(255, 255, 255, 0.08) !important;
}
[data-bs-theme="dark"] .proplus-swal-toast .swal2-title,
[data-bs-theme="dark"] .proplus-swal-toast .proplus-swal-toast-title {
  color: #edf2f9 !important;
}
[data-bs-theme="dark"] .proplus-swal-title {
  color: #edf2f9 !important;
}
[data-bs-theme="dark"] .proplus-swal-html,
[data-bs-theme="dark"] .proplus-swal-popup .swal2-html-container {
  color: #9da9bb !important;
}
[data-bs-theme="dark"] .proplus-swal-btn--cancel {
  background: rgba(255, 255, 255, 0.06) !important;
  color: #b6c1d2 !important;
  border-color: rgba(255, 255, 255, 0.14) !important;
}
[data-bs-theme="dark"] .proplus-swal-btn--cancel:hover {
  background: rgba(255, 255, 255, 0.1) !important;
  color: #edf2f9 !important;
  border-color: rgba(255, 255, 255, 0.22) !important;
}
[data-bs-theme="dark"] .proplus-swal-btn--deny {
  background: rgba(255, 255, 255, 0.08) !important;
  color: #edf2f9 !important;
}
[data-bs-theme="dark"] .proplus-swal-close:hover {
  color: #edf2f9 !important;
}
[data-bs-theme="dark"] body.swal2-shown > .swal2-container {
  background: rgba(5, 10, 18, 0.72) !important;
}

@media (prefers-reduced-motion: reduce) {
  .proplus-swal-enter {
    animation: none;
  }
}
