/* ============================================================
   SweetAlert2 bertema Nexstadia (dipakai bersama nx-dialog.js).
   Navy untuk aksi utama, lime sebagai aksen, merah untuk aksi
   berbahaya. Salinan berkas ini ada di Hub dan Venue.
   ============================================================ */
.swal2-container { z-index: 2000; }
.swal2-container.swal2-backdrop-show { background: rgb(10 20 38 / .55); backdrop-filter: blur(2px); }
/* Toast tidak boleh menggelapkan atau mengaburkan layar. */
body.swal2-toast-shown .swal2-container { background: transparent !important; backdrop-filter: none !important; }

.nx-swal.swal2-popup {
  position: relative; overflow: hidden;
  width: min(30rem, calc(100vw - 2rem));
  padding: 1.75rem 1.5rem 1.4rem;
  border-radius: 20px;
  background: #FFFFFF; color: #2B3548;
  font-family: 'Inter', 'Plus Jakarta Sans', system-ui, sans-serif;
  box-shadow: 0 24px 60px rgb(16 29 53 / .28);
}
.nx-swal.swal2-popup::before {
  content: ""; position: absolute; left: 0; right: 0; top: 0; height: 5px;
  background: linear-gradient(90deg, #D4F53C 0%, #D4F53C 35%, #36C5F0 100%);
}
.nx-swal .nx-swal-title { font-family: 'Plus Jakarta Sans', 'Inter', sans-serif; font-weight: 800; font-size: 1.3rem; color: #101D35; padding: .4rem 0 0; }
.nx-swal .nx-swal-text { font-size: .95rem; color: #5B6475; line-height: 1.55; white-space: pre-line; margin-top: .5rem; }
.nx-swal .swal2-icon { margin-top: .6rem; border-width: 3px; transform: scale(.82); }
.nx-swal .swal2-icon.swal2-success { border-color: rgb(18 128 92 / .35); color: #12805C; }
.nx-swal .swal2-icon.swal2-success [class^='swal2-success-line'] { background-color: #12805C; }
.nx-swal .swal2-icon.swal2-success .swal2-success-ring { border-color: rgb(18 128 92 / .3); }
.nx-swal .swal2-icon.swal2-warning { border-color: #F2B33D; color: #C27C0E; }
.nx-swal .swal2-icon.swal2-error { border-color: #F3A6A4; }
.nx-swal .swal2-icon.swal2-error [class^='swal2-x-mark-line'] { background-color: #C2322F; }
.nx-swal .swal2-icon.swal2-info, .nx-swal .swal2-icon.swal2-question { border-color: #9DB8F5; color: #1D4ED8; }

.nx-swal .nx-swal-actions { gap: .6rem; margin-top: 1.4rem; width: 100%; }
.nx-swal-btn {
  min-width: 7.5rem; padding: .7rem 1.2rem; border-radius: 12px; border: 1px solid transparent;
  font-weight: 700; font-size: .92rem; cursor: pointer; transition: background .15s ease, box-shadow .15s ease, transform .1s ease;
}
.nx-swal-btn:active { transform: translateY(1px); }
.nx-swal-confirm { background: #101D35; color: #FFFFFF; }
.nx-swal-confirm:hover { background: #1B2B4D; box-shadow: 0 0 0 3px rgb(212 245 60 / .45); }
.nx-swal-confirm:focus-visible, .nx-swal-cancel:focus-visible, .nx-swal-deny:focus-visible { outline: none; box-shadow: 0 0 0 3px rgb(212 245 60 / .7); }
.nx-swal-danger { background: #C2322F; color: #FFFFFF; }
.nx-swal-danger:hover { background: #A72825; box-shadow: 0 0 0 3px rgb(194 50 47 / .25); }
.nx-swal-cancel { background: #EAEFF6; color: #101D35; }
.nx-swal-cancel:hover { background: #F2FBCF; border-color: rgb(157 186 18 / .45); }
.nx-swal-deny { background: #FFFFFF; color: #101D35; border-color: #C9D3E3; }

.nx-swal .nx-swal-input { border-radius: 12px; border: 1px solid #DCE3EE; font-size: .95rem; box-shadow: none; margin: 1rem auto .2rem; width: 100%; }
.nx-swal .nx-swal-input:focus { border-color: #9DBA12; box-shadow: 0 0 0 3px rgb(212 245 60 / .35); }
.nx-swal .nx-swal-validation { background: #FBE8E7; color: #C2322F; border-radius: 10px; }
.swal2-timer-progress-bar { background: #D4F53C; }

/* Toast */
.nx-swal.nx-swal-toast.swal2-popup { width: auto; padding: .75rem 1rem; border-radius: 14px; box-shadow: 0 12px 30px rgb(16 29 53 / .18); }
.nx-swal.nx-swal-toast .swal2-title { font-size: .92rem; font-weight: 700; color: #101D35; margin: 0 .5rem; }
.nx-swal.nx-swal-toast .swal2-icon { transform: scale(.7); margin: 0; }

/* Mode gelap (panel). */
[data-bs-theme="dark"] .nx-swal.swal2-popup { background: #111D33; color: #C5CEE0; }
[data-bs-theme="dark"] .nx-swal .nx-swal-title, [data-bs-theme="dark"] .nx-swal.nx-swal-toast .swal2-title { color: #EAF0FA; }
[data-bs-theme="dark"] .nx-swal .nx-swal-text { color: #8A97B3; }
[data-bs-theme="dark"] .nx-swal-confirm { background: #D4F53C; color: #101D35; }
[data-bs-theme="dark"] .nx-swal-cancel { background: #1A2946; color: #EAF0FA; }
