body {
	background-color: var(--primary-surface, #0d1516);
	margin: 0px;
}

@media (max-width: 768px) {
	.left-panel {
		display: none !important;
	}

	.page-row {
		align-items: flex-start;
		justify-content: center;
	}

	.right-panel {
		max-width: 80vw !important;
	}
}

.page-row {
	display: flex;
	flex-direction: row;
	min-height: 100vh;
}

.left-panel {
	flex: 30% 0 0;
	min-height: 100vh;
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	justify-content: center;

	background-image: url("/files/dropins/dibAuthenticate/images/login-graphic.jpg");
	background-size: cover;
	background-position: center;
	background-repeat: no-repeat;
	position: relative;
}

.right-panel {
	display: flex;
	flex-direction: column;
	justify-content: flex-start;
	align-items: center;
	flex: 70% 1 1;
	font-family: "Rubik", sans-serif;
	color: var(--font-color, white);
	margin-top: 10%;

	.login-form {
		width: 100%;
		max-width: 400px;
		margin-top: 40px;
	}

	.form-inputs {
		display: flex;
		flex-direction: column;
		gap: 10px;
		margin-bottom: 20px;
	}

	.login-hdr {
		text-align: left;

		.login-hdr_subtext {
			margin: 5px 0px 20px 0px;
			color: var(--secondary-color, #cbd5e1);
		}

		.login-hdr_maintext {
			margin: 20px 0px 10px 0px;
		}
	}

	.copyright {
		font-size: 12px;
		color: var(--secondary-color, #cbd5e1);
		position: absolute;
		bottom: 10px;
	}
}

.btn-primary {
	width: -webkit-fill-available !important;
	background-color: var(--primary-color);
	color: var(--icon-color);
	border: none;
	padding: 15px 20px;
	border-radius: var(--card-radius);
	cursor: pointer;
	transition: background-color 0.3s ease;
	font-weight: 600 !important;
	font-size: 0.9rem;
	font-family: "Rubik", sans-serif;

	&:hover {
		background-color: color-mix(in srgb, var(--primary-color) 90%, white 10%);
	}

	&:has(div.loader) {
		display: flex;
		flex-direction: column;
		justify-content: center;
		align-items: center;
	}
}

.std-input-field {
	position: relative;

	i {
		position: absolute;
		color: var(--icon-color);
		font-size: 1.2rem;
		top: 10px;

		&:not(i[id="togglePassword"]):not(i[id="togglePassword2"]) {
			left: 5px;
		}
	}

	i[id="togglePassword"],
	i[id="togglePassword2"] {
		cursor: pointer;
		right: 10px;
	}

	input {
		text-indent: 20px;
		padding: 12px 10px !important;
	}

	input[required] {
		border-color: var(--inputs-border) !important;
	}
}

input[required] {
	outline: 0 none !important;
}

.sub-link {
	color: var(--icon-color);
	font-size: 0.8rem;
}

.field-caption-row {
	display: flex;
	justify-content: space-between;
}

/* Username Popup Styling */
.popup-overlay {
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background-color: rgba(0, 0, 0, 0.5);
	z-index: 10000;
	display: flex;
	justify-content: center;
	align-items: center;
	opacity: 0;
	transition: opacity 0.3s;
}

.username-popup {
	background: var(--primary-surface);
	color: var(--font-color);
	padding: var(--card-padding);
	border-radius: var(--card-radius);
	border: var(--inputs-border);
	box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3);
	min-width: 400px;
	max-width: 500px;
	transform: scale(0.9);
	transition: transform 0.3s;
	font-family: "Rubik", sans-serif;

	.popup-content {
		border-radius: var(--card-radius);
		padding: var(--card-padding);
	}
}

.username-popup h3 {
	margin: 0 0 20px 0;
	text-align: center;
	font-weight: 600;
}

.username-popup .std-input-field {
	margin-bottom: 20px;
}

.username-popup .std-input-field input {
	padding: 8px 10px;
	border-radius: var(--inputs-border-radius);
	border: var(--inputs-border);
	font-family: "Rubik", sans-serif;
	color: var(--font-color);
	background-color: var(--inputs-color);
	outline: 0 none;
	outline-offset: 0;
	transition: border-color 0.3s, box-shadow 0.3s;
}

.username-popup .std-input-field input:focus {
	outline: 0 none;
	outline-offset: 0;
	box-shadow: 0 0 0 0.2rem #07b6d559;
	border-color: var(--primary-color);
}

.username-popup .std-input-field input:hover:not(:focus) {
	border-color: var(--primary-color);
}

.popup-buttons {
	display: flex;
	gap: 12px;
	justify-content: center;
	align-items: center;
}

.btn-secondary {
	padding: 15px 20px;
	border: 2px solid var(--secondary-color);
	border-radius: var(--card-radius);
	background: transparent;
	color: var(--secondary-color);
	cursor: pointer;
	transition: all 0.3s ease;
	font-weight: 600;
	font-size: 0.9rem;
	font-family: "Rubik", sans-serif;
}

.btn-secondary:hover {
	background: var(--secondary-color);
	color: var(--primary-surface);
}

.hidden {
	display: none;
}

/* OTP Input Styling */
.otp-container {
	display: flex;
	gap: 15px;
	justify-content: center;
	align-items: center;
	margin: 20px 0;
}

.otp-input {
	width: 50px !important;
	height: 50px !important;
	text-align: center !important;
	font-size: 1.5rem !important;
	font-weight: 600 !important;
	font-family: "Rubik", sans-serif !important;
	border: 2px solid var(--inputs-border-color, #374151) !important;
	border-radius: var(--inputs-border-radius, 8px) !important;
	background-color: var(--inputs-color, #1f2937) !important;
	color: var(--font-color, white) !important;
	text-indent: 0 !important;
	padding: 0 !important;
	transition: all 0.3s ease !important;
	outline: none !important;
}

.otp-input:focus {
	border-color: var(--primary-color, #07b6d5) !important;
	box-shadow: 0 0 0 0.2rem rgba(7, 182, 213, 0.35) !important;
	transform: scale(1.05);
}

.otp-input:hover:not(:focus) {
	border-color: var(--primary-color, #07b6d5) !important;
}

.otp-input.filled {
	background-color: color-mix(
		in srgb,
		var(--primary-color, #07b6d5) 10%,
		var(--inputs-color, #1f2937) 90%
	) !important;
	border-color: var(--primary-color, #07b6d5) !important;
}

.otp-input.error {
	border-color: #ef4444 !important;
	box-shadow: 0 0 0 0.2rem rgba(239, 68, 68, 0.35) !important;
	animation: shake 0.5s ease-in-out;
}

@keyframes shake {
	0%,
	100% {
		transform: translateX(0);
	}
	25% {
		transform: translateX(-5px);
	}
	75% {
		transform: translateX(5px);
	}
}

/* Mobile responsiveness for OTP inputs */
@media (max-width: 768px) {
	.otp-container {
		gap: 10px;
	}

	.otp-input {
		width: 45px !important;
		height: 45px !important;
		font-size: 1.3rem !important;
	}
}

@media (max-width: 480px) {
	.otp-container {
		gap: 8px;
	}

	.otp-input {
		width: 40px !important;
		height: 40px !important;
		font-size: 1.2rem !important;
	}
}

/* Device Trust Dialog Styling */
.device-trust-popup {
	font-family: "Rubik", sans-serif !important;
}

.device-trust-popup .swal2-html-container {
	margin: 0 !important;
	padding: 0 !important;
}

.device-trust-popup .swal2-title {
	font-size: 1.5rem !important;
	font-weight: 600 !important;
	color: var(--font-color, white) !important;
	margin-bottom: 20px !important;
}

.device-trust-popup .swal2-actions {
	margin-top: 25px !important;
	gap: 15px !important;
}

.device-trust-popup .btn-primary {
	background-color: var(--primary-color, #07b6d5) !important;
	color: var(--icon-color, white) !important;
	border: none !important;
	padding: 12px 24px !important;
	border-radius: var(--card-radius, 8px) !important;
	font-weight: 600 !important;
	font-size: 0.9rem !important;
	font-family: "Rubik", sans-serif !important;
	cursor: pointer !important;
	transition: all 0.3s ease !important;
	display: flex !important;
	align-items: center !important;
	gap: 8px !important;
}

.device-trust-popup .btn-primary:hover {
	background-color: color-mix(in srgb, var(--primary-color, #07b6d5) 85%, white 15%) !important;
	transform: translateY(-1px) !important;
}

.device-trust-popup .btn-secondary {
	background: transparent !important;
	color: var(--secondary-color, #cbd5e1) !important;
	border: 2px solid var(--secondary-color, #cbd5e1) !important;
	padding: 12px 24px !important;
	border-radius: var(--card-radius, 8px) !important;
	font-weight: 600 !important;
	font-size: 0.9rem !important;
	font-family: "Rubik", sans-serif !important;
	cursor: pointer !important;
	transition: all 0.3s ease !important;
	display: flex !important;
	align-items: center !important;
	gap: 8px !important;
}

.device-trust-popup .btn-secondary:hover {
	background: var(--secondary-color, #cbd5e1) !important;
	color: var(--primary-surface, #0d1516) !important;
	transform: translateY(-1px) !important;
}

/* Mobile responsiveness for device trust dialog */
@media (max-width: 768px) {
	.device-trust-popup {
		width: 90vw !important;
		max-width: 400px !important;
	}

	.device-trust-popup .swal2-actions {
		flex-direction: column !important;
		gap: 10px !important;
	}

	.device-trust-popup .btn-primary,
	.device-trust-popup .btn-secondary {
		width: 100% !important;
		justify-content: center !important;
	}
}

/* Resend Counter Styling */
#resend-counter {
	font-size: 0.85rem;
	font-family: "Rubik", sans-serif;
	text-align: center;
	margin-top: 10px;
	font-weight: 500;
	transition: color 0.3s ease;
}

.form-actions {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 10px;
	margin-top: 20px;
}

.btn-primary[style*="opacity: 0.6"] {
	transform: none !important;
}

.btn-primary[style*="opacity: 0.6"]:hover {
	transform: none !important;
}

.loader {
	width: 15px;
	aspect-ratio: 1;
	border-radius: 50%;
	animation: l5 1s infinite linear alternate;
}
@keyframes l5 {
	0% {
		box-shadow: 20px 0 #000, -20px 0 #0002;
		background: #000;
	}
	33% {
		box-shadow: 20px 0 #000, -20px 0 #0002;
		background: #0002;
	}
	66% {
		box-shadow: 20px 0 #0002, -20px 0 #000;
		background: #0002;
	}
	100% {
		box-shadow: 20px 0 #0002, -20px 0 #000;
		background: #000;
	}
}
