/* =========================================================
   Carioca SweetAlert2 Theme
   Matches site: Inter/Poppins, #213545 navy, #1d1d1f, soft cards
   ========================================================= */

.swal2-container {
  z-index: 100000 !important;
  padding: 1rem !important;
}

.swal2-container.swal2-backdrop-show,
.swal2-container.swal2-noanimation {
  background: rgba(15, 23, 42, 0.55) !important;
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
}

.swal2-popup,
.carioca-swal-popup,
.swal2-popup-custom {
  font-family: 'Inter', 'Poppins', sans-serif !important;
  border-radius: 22px !important;
  padding: 1.75rem 1.6rem 1.5rem !important;
  width: 26rem !important;
  max-width: calc(100vw - 2rem) !important;
  background:
    linear-gradient(180deg, #ffffff 0%, #fafbfc 100%) !important;
  border: 1px solid #eef0f3 !important;
  box-shadow:
    0 28px 64px rgba(15, 23, 42, 0.22),
    0 8px 20px rgba(15, 23, 42, 0.08) !important;
  position: relative;
  overflow: hidden;
}

.swal2-popup::before,
.carioca-swal-popup::before,
.swal2-popup-custom::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 4px;
  background: linear-gradient(90deg, #213545 0%, #3e66db 55%, #0071e3 100%);
}

.swal2-title,
.carioca-swal-title {
  font-family: 'Inter', 'Poppins', sans-serif !important;
  font-size: 1.2rem !important;
  font-weight: 700 !important;
  color: #1d1d1f !important;
  letter-spacing: -0.02em !important;
  line-height: 1.35 !important;
  padding: 0.35rem 0 0 !important;
  margin: 0 0 0.35rem !important;
}

.swal2-html-container,
.swal2-html-container.carioca-swal-content,
.carioca-swal-content {
  font-family: 'Inter', 'Poppins', sans-serif !important;
  font-size: 0.92rem !important;
  color: #6b7280 !important;
  line-height: 1.55 !important;
  margin: 0.35rem 0 0.15rem !important;
  padding: 0 !important;
}

.swal2-html-container p,
.carioca-swal-desc {
  color: #6b7280;
  font-size: 0.9rem;
  line-height: 1.55;
  margin: 0 0 0.85rem;
}

.carioca-swal-lead {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.65rem;
  margin-bottom: 0.35rem;
}

.carioca-swal-badge {
  width: 56px;
  height: 56px;
  border-radius: 16px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.35rem;
  flex-shrink: 0;
}

.carioca-swal-badge--warn {
  background: #fff7ed;
  color: #ea580c;
  border: 1px solid #ffedd5;
}

.carioca-swal-badge--lock {
  background: #eff6ff;
  color: #2563eb;
  border: 1px solid #dbeafe;
}

.carioca-swal-badge--info {
  background: #f0f7ff;
  color: #0071e3;
  border: 1px solid #dbeafe;
}

.carioca-swal-badge--success {
  background: #ecfdf5;
  color: #059669;
  border: 1px solid #d1fae5;
}

.carioca-swal-badge--error {
  background: #fef2f2;
  color: #dc2626;
  border: 1px solid #fecaca;
}

/* ---- Icons ---- */
.swal2-icon {
  margin: 0.4rem auto 0.85rem !important;
  border-width: 3px !important;
  width: 4.2rem !important;
  height: 4.2rem !important;
}

.swal2-icon.swal2-warning {
  border-color: #fdba74 !important;
  color: #ea580c !important;
  background: #fff7ed !important;
}

.swal2-icon.swal2-warning .swal2-icon-content {
  color: #ea580c !important;
  font-weight: 700 !important;
}

.swal2-icon.swal2-error {
  border-color: #fca5a5 !important;
  background: #fef2f2 !important;
}

.swal2-icon.swal2-error [class^='swal2-x-mark-line'] {
  background-color: #dc2626 !important;
}

.swal2-icon.swal2-success {
  border-color: #6ee7b7 !important;
  background: #ecfdf5 !important;
}

.swal2-icon.swal2-success [class^='swal2-success-line'],
.swal2-icon.swal2-success .swal2-success-ring {
  background-color: #10b981 !important;
  border-color: #10b981 !important;
}

.swal2-icon.swal2-success .swal2-success-ring {
  background: transparent !important;
}

.swal2-icon.swal2-success .swal2-success-line-tip,
.swal2-icon.swal2-success .swal2-success-line-long {
  background-color: #10b981 !important;
}

.swal2-icon.swal2-info {
  border-color: #93c5fd !important;
  color: #0071e3 !important;
  background: #eff6ff !important;
}

.swal2-icon.swal2-info .swal2-icon-content {
  color: #0071e3 !important;
}

.swal2-icon.swal2-question {
  border-color: #c7d2fe !important;
  color: #4338ca !important;
  background: #eef2ff !important;
}

/* ---- Inputs ---- */
.swal2-input,
.swal2-textarea,
.swal2-select,
.carioca-swal-input {
  box-sizing: border-box !important;
  width: 100% !important;
  margin: 0.45rem 0 !important;
  padding: 0.8rem 1rem !important;
  font-size: 0.92rem !important;
  font-family: 'Inter', 'Poppins', sans-serif !important;
  color: #1d1d1f !important;
  background: #f5f5f7 !important;
  border: 1.5px solid #e5e7eb !important;
  border-radius: 12px !important;
  box-shadow: none !important;
  transition: border-color 0.2s ease, box-shadow 0.2s ease, background 0.2s ease !important;
}

.swal2-input:focus,
.swal2-textarea:focus,
.swal2-select:focus,
.carioca-swal-input:focus {
  background: #ffffff !important;
  border-color: #213545 !important;
  box-shadow: 0 0 0 3px rgba(33, 53, 69, 0.12) !important;
  outline: none !important;
}

.swal2-textarea {
  min-height: 96px !important;
  resize: vertical;
}

.swal2-validation-message,
.carioca-swal-validation {
  background: #fef2f2 !important;
  color: #b91c1c !important;
  border-radius: 10px !important;
  margin: 0.6rem 0 0 !important;
  padding: 0.65rem 0.85rem !important;
  font-size: 0.84rem !important;
  font-weight: 500 !important;
  border: 1px solid #fecaca !important;
  box-shadow: none !important;
}

.swal2-validation-message::before {
  background: #dc2626 !important;
  color: #fff !important;
  border-radius: 50%;
}

/* ---- Actions / Buttons ---- */
.swal2-actions,
.carioca-swal-actions {
  margin: 1.25rem 0 0 !important;
  gap: 0.55rem !important;
  width: 100%;
  flex-wrap: wrap;
}

.swal2-styled,
.swal2-confirm,
.swal2-cancel,
.swal2-deny,
.carioca-swal-btn,
.swal2-confirm-custom {
  font-family: 'Inter', 'Poppins', sans-serif !important;
  font-size: 0.9rem !important;
  font-weight: 600 !important;
  letter-spacing: 0.01em !important;
  border-radius: 12px !important;
  padding: 0.72rem 1.35rem !important;
  margin: 0 !important;
  min-width: 7.5rem;
  border: none !important;
  box-shadow: none !important;
  transition: transform 0.18s ease, box-shadow 0.18s ease, background 0.18s ease, color 0.18s ease !important;
  cursor: pointer !important;
}

.swal2-styled:focus,
.carioca-swal-btn:focus {
  box-shadow: 0 0 0 3px rgba(33, 53, 69, 0.18) !important;
}

.swal2-confirm,
.carioca-swal-btn--confirm,
.swal2-confirm-custom {
  background: #213545 !important;
  color: #ffffff !important;
  box-shadow: 0 8px 20px rgba(33, 53, 69, 0.28) !important;
}

.swal2-confirm:hover,
.carioca-swal-btn--confirm:hover,
.swal2-confirm-custom:hover {
  background: #2d4a5e !important;
  transform: translateY(-1px);
  box-shadow: 0 12px 26px rgba(33, 53, 69, 0.34) !important;
}

.swal2-confirm:active,
.carioca-swal-btn--confirm:active {
  transform: translateY(0);
}

.swal2-cancel,
.carioca-swal-btn--cancel {
  background: #ffffff !important;
  color: #4b5563 !important;
  border: 1.5px solid #e5e7eb !important;
  box-shadow: none !important;
}

.swal2-cancel:hover,
.carioca-swal-btn--cancel:hover {
  background: #f8fafc !important;
  border-color: #d1d5db !important;
  color: #1d1d1f !important;
  transform: translateY(-1px);
}

.swal2-deny,
.carioca-swal-btn--deny {
  background: #fef2f2 !important;
  color: #dc2626 !important;
  border: 1.5px solid #fecaca !important;
}

.swal2-deny:hover,
.carioca-swal-btn--deny:hover {
  background: #fee2e2 !important;
}

/* Danger confirm (remove / destructive) */
.swal2-popup.carioca-swal--danger .swal2-confirm,
.carioca-swal-btn--danger {
  background: #dc2626 !important;
  box-shadow: 0 8px 20px rgba(220, 38, 38, 0.28) !important;
}

.swal2-popup.carioca-swal--danger .swal2-confirm:hover,
.carioca-swal-btn--danger:hover {
  background: #b91c1c !important;
}

/* Amber / notify confirm */
.swal2-popup.carioca-swal--amber .swal2-confirm {
  background: #d97706 !important;
  box-shadow: 0 8px 20px rgba(217, 119, 6, 0.28) !important;
}

.swal2-popup.carioca-swal--amber .swal2-confirm:hover {
  background: #b45309 !important;
}

/* Blue / primary CTA */
.swal2-popup.carioca-swal--blue .swal2-confirm {
  background: #0071e3 !important;
  box-shadow: 0 8px 20px rgba(0, 113, 227, 0.28) !important;
}

.swal2-popup.carioca-swal--blue .swal2-confirm:hover {
  background: #005bb5 !important;
}

/* ---- Close / loader ---- */
.swal2-close {
  color: #9ca3af !important;
  font-size: 1.6rem !important;
  transition: color 0.2s, background 0.2s !important;
  border-radius: 10px !important;
  width: 2.1rem !important;
  height: 2.1rem !important;
}

.swal2-close:hover {
  color: #1d1d1f !important;
  background: #f3f4f6 !important;
}

.swal2-loader {
  border-color: #213545 transparent #213545 transparent !important;
}

.swal2-timer-progress-bar {
  background: #213545 !important;
}

/* Wide content (contracts etc.) */
.swal2-popup.swal2-popup--wide,
.carioca-swal-popup--wide {
  width: min(36rem, calc(100vw - 2rem)) !important;
}

.swal2-popup .swal2-html-container[style*="overflow"],
.carioca-swal-scroll {
  text-align: left !important;
  max-height: 320px;
  overflow-y: auto;
  padding: 0.85rem 1rem !important;
  background: #f8f9fa;
  border: 1px solid #eef0f3;
  border-radius: 14px;
  margin-top: 0.75rem !important;
  scrollbar-width: thin;
  scrollbar-color: #d1d5db transparent;
}

/* Footer */
.swal2-footer {
  border-top: 1px solid #f0f0f0 !important;
  color: #9ca3af !important;
  font-size: 0.8rem !important;
  margin-top: 1rem !important;
  padding-top: 0.85rem !important;
}

/* Mobile */
@media (max-width: 480px) {
  .swal2-popup,
  .carioca-swal-popup,
  .swal2-popup-custom {
    padding: 1.45rem 1.15rem 1.25rem !important;
    border-radius: 18px !important;
  }

  .swal2-title,
  .carioca-swal-title {
    font-size: 1.08rem !important;
  }

  .swal2-actions,
  .carioca-swal-actions {
    flex-direction: column-reverse;
    width: 100%;
  }

  .swal2-styled,
  .carioca-swal-btn {
    width: 100%;
    min-width: 0;
  }
}

/* Entrance polish */
@keyframes carioca-swal-in {
  from {
    opacity: 0;
    transform: scale(0.94) translateY(10px);
  }
  to {
    opacity: 1;
    transform: scale(1) translateY(0);
  }
}

.swal2-show {
  animation: carioca-swal-in 0.28s cubic-bezier(0.22, 1, 0.36, 1) !important;
}
