/* [CHANGE][2026-11-10] Site-wide SweetAlert2 (v8) theme, moved out of custom-styles.css.
 * Loaded by views/template/head/_swal_theme.php on every page that loads assets/lib/js/sweetalert.min.js.
 * Selectors start with .swal2-container so they outrank the CSS SweetAlert2 injects at runtime. */
.swal2-container.swal2-shown {
	background-color: rgba(7, 5, 37, .55);
	-webkit-backdrop-filter: blur(4px);
	backdrop-filter: blur(4px);
}

.swal2-container .swal2-popup:not(.swal2-toast) {
	--swal-surface: #ffffff;
	--swal-border: #e7e3f6;
	--swal-title: #1d1b3a;
	--swal-text: #5b5f7a;
	--swal-accent-1: 168, 85, 247;
	--swal-accent-2: 124, 58, 237;
	position: relative;
	width: min(26em, calc(100vw - 32px));
	padding: 1.75em 1.5em 1.5em;
	overflow: hidden;
	font-family: inherit;
	background: var(--swal-surface);
	border: 1px solid var(--swal-border);
	border-radius: 20px;
	box-shadow: 0 24px 60px -16px rgba(var(--swal-accent-2), .35), 0 0 0 1px rgba(var(--swal-accent-1), .06);
}

[data-theme="dark"] .swal2-container .swal2-popup:not(.swal2-toast) {
	--swal-surface: #171d2f;
	--swal-border: #232a40;
	--swal-title: #ffffff;
	--swal-text: #9098b8;
	background: var(--swal-surface);
	box-shadow: 0 24px 60px -12px rgba(var(--swal-accent-2), .45), 0 0 0 1px rgba(var(--swal-accent-1), .12);
}

.swal2-container .swal2-popup:not(.swal2-toast)::before {
	content: "";
	position: absolute;
	top: 0;
	right: 0;
	left: 0;
	height: 3px;
	background: linear-gradient(90deg, rgb(var(--swal-accent-1)), rgb(var(--swal-accent-2)));
}

.swal2-container .swal2-popup:not(.swal2-toast) .swal2-icon {
	margin: .5em auto 1.25em;
	transform: scale(.8);
}

.swal2-container .swal2-popup .swal2-title {
	margin: 0 0 .4em;
	color: var(--swal-title);
	font-size: 1.25em;
	font-weight: 800;
	line-height: 1.5;
}

.swal2-container .swal2-popup .swal2-content {
	color: var(--swal-text);
	font-size: 1em;
	font-weight: 500;
	line-height: 1.9;
}

.swal2-container .swal2-popup .swal2-actions {
	gap: 8px;
	margin-top: 1.5em;
}

.swal2-container .swal2-popup .swal2-styled {
	margin: 0;
	padding: .7em 1.6em;
	font-family: inherit;
	font-size: .95em;
	font-weight: 800;
	border-radius: 12px;
	transition: transform .2s, box-shadow .2s, background-color .2s;
}

.swal2-container .swal2-popup .swal2-styled.swal2-confirm {
	color: #ffffff;
	background: linear-gradient(135deg, rgb(var(--swal-accent-1)), rgb(var(--swal-accent-2))) !important;
	border: 0 !important;
	box-shadow: 0 8px 20px -8px rgba(var(--swal-accent-2), .7);
}

.swal2-container .swal2-popup .swal2-styled.swal2-cancel {
	color: rgb(var(--swal-accent-2));
	background: rgba(var(--swal-accent-1), .1) !important;
	border: 1px solid rgba(var(--swal-accent-1), .3) !important;
}

[data-theme="dark"] .swal2-container .swal2-popup .swal2-styled.swal2-cancel {
	color: rgb(var(--swal-accent-1));
}

.swal2-container .swal2-popup .swal2-styled:hover {
	transform: translateY(-1px);
}

.swal2-container .swal2-popup .swal2-styled:focus {
	box-shadow: 0 0 0 3px rgba(var(--swal-accent-1), .35);
}

/* The animated success icon masks its ring with pieces painted in the popup colour */
.swal2-container .swal2-popup .swal2-icon.swal2-success [class^="swal2-success-circular-line"],
.swal2-container .swal2-popup .swal2-icon.swal2-success .swal2-success-fix {
	background-color: var(--swal-surface);
}

.swal2-container .swal2-popup .swal2-icon.swal2-success {
	border-color: #22c55e;
}

.swal2-container .swal2-popup .swal2-icon.swal2-success .swal2-success-ring {
	border-color: rgba(34, 197, 94, .25);
}

.swal2-container .swal2-popup .swal2-icon.swal2-success [class^="swal2-success-line"] {
	background-color: #22c55e;
}

.swal2-container .swal2-popup .swal2-icon.swal2-error {
	border-color: rgba(239, 68, 68, .35);
}

.swal2-container .swal2-popup .swal2-icon.swal2-error [class^="swal2-x-mark-line"] {
	background-color: #ef4444;
}

.swal2-container .swal2-popup .swal2-icon.swal2-warning {
	color: #f59e0b;
	border-color: rgba(245, 158, 11, .4);
}

.swal2-container .swal2-popup .swal2-icon.swal2-info {
	color: #06b6d4;
	border-color: rgba(6, 182, 212, .4);
}

.swal2-container .swal2-popup .swal2-icon.swal2-question {
	color: rgb(var(--swal-accent-2));
	border-color: rgba(var(--swal-accent-1), .4);
}

/* Icon geometry pinned to SweetAlert2 v8's own values. The portal login stylesheet
 * (assets/portal/css/styles.css) carries rules for a newer SweetAlert2 that resize the
 * icon and move its lines with logical insets, which hides the v8 error/success marks. */
.swal2-container .swal2-popup:not(.swal2-toast) .swal2-icon {
	width: 5em;
	height: 5em;
	line-height: 5em;
}

.swal2-container .swal2-popup:not(.swal2-toast) .swal2-title {
	padding: 0;
}

.swal2-container .swal2-popup:not(.swal2-toast) .swal2-icon.swal2-error [class^="swal2-x-mark-line"] {
	top: 2.3125em;
	width: 2.9375em;
	height: .3125em;
}

.swal2-container .swal2-popup:not(.swal2-toast) .swal2-icon.swal2-error [class^="swal2-x-mark-line"][class$="left"] {
	right: auto;
	left: 1.0625em;
}

.swal2-container .swal2-popup:not(.swal2-toast) .swal2-icon.swal2-error [class^="swal2-x-mark-line"][class$="right"] {
	right: 1em;
	left: auto;
}

.swal2-container .swal2-popup:not(.swal2-toast) .swal2-icon.swal2-success [class^="swal2-success-line"][class$="tip"] {
	top: 2.875em;
	right: auto;
	left: .875em;
	width: 1.5625em;
}

.swal2-container .swal2-popup:not(.swal2-toast) .swal2-icon.swal2-success [class^="swal2-success-line"][class$="long"] {
	top: 2.375em;
	right: .5em;
	left: auto;
	width: 2.9375em;
}
