@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap');

html.login-page-root,
body.login-page {
	font-family: 'Inter', 'Roboto', sans-serif;
	margin: 0;
	height: 100%;
	overflow: hidden;
	background: #1a3040;
}

.login-page .login-bg {
	position: fixed;
	inset: 0;
	z-index: 0;
	background:
		linear-gradient(135deg, rgba(15, 35, 50, 0.92) 0%, rgba(20, 55, 65, 0.88) 50%, rgba(25, 45, 60, 0.9) 100%),
		linear-gradient(-45deg, #2a5a6a, #1e4048, #3d6a72, #254550);
	background-size: 100% 100%, 400% 400%;
	animation: loginBgShift 16s ease infinite;
}

.login-page .login-bg-overlay {
	position: absolute;
	inset: 0;
	background: radial-gradient(ellipse at 30% 20%, rgba(91, 191, 184, 0.15) 0%, transparent 50%),
		radial-gradient(ellipse at 70% 80%, rgba(132, 188, 65, 0.1) 0%, transparent 45%);
}

@keyframes loginBgShift {
	0% { background-position: 0% 0%, 0% 50%; }
	50% { background-position: 0% 0%, 100% 50%; }
	100% { background-position: 0% 0%, 0% 50%; }
}

.login-page .login-bg-icons {
	position: absolute;
	inset: 0;
	overflow: hidden;
	pointer-events: none;
}

.login-page .login-float-icon {
	position: absolute;
	color: rgba(255, 255, 255, 0.18);
	line-height: 1;
}

.login-page .login-float-icon.icon-1 { top: 6%; left: 5%; font-size: 4rem; animation: floatDrift1 20s ease-in-out infinite; }
.login-page .login-float-icon.icon-2 { top: 15%; right: 8%; font-size: 3rem; animation: floatDrift2 24s ease-in-out infinite; }
.login-page .login-float-icon.icon-3 { bottom: 18%; left: 10%; font-size: 3.5rem; animation: floatDrift3 22s ease-in-out infinite; }
.login-page .login-float-icon.icon-4 { bottom: 8%; right: 12%; font-size: 2.8rem; animation: floatDrift4 18s ease-in-out infinite; }
.login-page .login-float-icon.icon-5 { top: 45%; left: 3%; font-size: 2.5rem; animation: floatDrift2 26s ease-in-out infinite reverse; }
.login-page .login-float-icon.icon-6 { top: 60%; right: 4%; font-size: 3rem; animation: floatDrift1 21s ease-in-out infinite reverse; }
.login-page .login-float-icon.icon-7 { top: 30%; left: 18%; font-size: 2.2rem; animation: floatDrift3 19s ease-in-out infinite 2s; }
.login-page .login-float-icon.icon-8 { bottom: 35%; right: 20%; font-size: 2.4rem; animation: floatDrift4 23s ease-in-out infinite 1s; }

.login-page .login-lens {
	position: absolute;
	border: 2px solid rgba(255, 255, 255, 0.12);
	border-radius: 50%;
	background: radial-gradient(circle at 35% 35%, rgba(255, 255, 255, 0.15), transparent 70%);
}

.login-page .login-lens.lens-1 { width: 120px; height: 120px; top: 10%; left: 25%; animation: lensPulse 9s ease-in-out infinite; }
.login-page .login-lens.lens-2 { width: 80px; height: 80px; bottom: 25%; right: 18%; animation: lensPulse 11s ease-in-out infinite 1s; }
.login-page .login-lens.lens-3 { width: 55px; height: 55px; top: 70%; left: 20%; animation: lensPulse 8s ease-in-out infinite 0.5s; }
.login-page .login-lens.lens-4 { width: 95px; height: 95px; top: 22%; right: 25%; animation: lensPulse 10s ease-in-out infinite 2s; }

@keyframes floatDrift1 {
	0%, 100% { transform: translate(0, 0) rotate(0deg); }
	50% { transform: translate(20px, -25px) rotate(10deg); }
}

@keyframes floatDrift2 {
	0%, 100% { transform: translate(0, 0); }
	50% { transform: translate(-25px, 18px) rotate(-8deg); }
}

@keyframes floatDrift3 {
	0%, 100% { transform: scale(1); }
	50% { transform: scale(1.1) translate(12px, -15px); }
}

@keyframes floatDrift4 {
	0%, 100% { transform: translate(0, 0) rotate(0deg); }
	50% { transform: translate(15px, 22px) rotate(12deg); }
}

@keyframes lensPulse {
	0%, 100% { transform: scale(1); opacity: 0.4; }
	50% { transform: scale(1.1); opacity: 0.75; }
}

.login-page .wrapper,
.login-page .section-authentication-cover,
.login-page .section-authentication-cover > div {
	height: 100vh;
	overflow: hidden;
	position: relative;
	z-index: 1;
}

.login-page .login-screen {
	height: 100vh;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 1rem;
}

.login-page .login-card {
	width: 100%;
	max-width: 400px;
	background: linear-gradient(165deg, rgba(48, 58, 72, 0.92) 0%, rgba(32, 40, 52, 0.95) 100%);
	border: 1px solid rgba(255, 255, 255, 0.1);
	border-radius: 18px;
	padding: 0;
	box-shadow:
		0 24px 64px rgba(0, 0, 0, 0.5),
		0 0 0 1px rgba(255, 255, 255, 0.04) inset;
	backdrop-filter: blur(20px);
	overflow: hidden;
	position: relative;
}

.login-page .login-card::before {
	content: '';
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	height: 3px;
	background: linear-gradient(90deg, #84bc41, #5bbfb8, #3d9a94);
}

.login-page .login-card-header {
	padding: 1.75rem 2rem 1.25rem;
	text-align: center;
}

.login-page .login-card-divider {
	height: 1px;
	margin: 0 1.5rem;
	background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.12), transparent);
}

.login-page .login-logo-wrap {
	margin-bottom: 0.75rem;
}

.login-page .login-logo {
	width: 115px;
	max-width: 100%;
	height: auto;
	object-fit: contain;
	filter: drop-shadow(0 4px 12px rgba(0, 0, 0, 0.3));
}

.login-page .login-hint {
	color: rgba(255, 255, 255, 0.6);
	font-size: 0.8rem;
	margin: 0 0 0.35rem;
	font-weight: 400;
}

.login-page .login-brand {
	background: linear-gradient(135deg, #ffffff 0%, #b8e8e4 100%);
	-webkit-background-clip: text;
	-webkit-text-fill-color: transparent;
	background-clip: text;
	font-size: 1.4rem;
	font-weight: 700;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	margin: 0;
	line-height: 1.3;
}

.login-page .form-body {
	text-align: left;
	padding: 1.35rem 2rem 1.75rem;
}

.login-page .form-body .row {
	--bs-gutter-y: 0.85rem;
}

.login-page .field-label {
	display: block;
	color: rgba(255, 255, 255, 0.75);
	font-size: 0.78rem;
	font-weight: 500;
	margin-bottom: 0.35rem;
	letter-spacing: 0.02em;
}

.login-page .input-icon-wrap {
	position: relative;
}

.login-page .input-icon-wrap .form-control {
	background: #f8fafb !important;
	border: 1px solid rgba(255, 255, 255, 0.9) !important;
	border-radius: 10px;
	color: #1a3344 !important;
	padding: 0.62rem 2.6rem 0.62rem 0.95rem;
	font-size: 0.875rem;
	box-shadow: 0 2px 6px rgba(0, 0, 0, 0.06) !important;
	width: 100%;
	transition: border-color 0.2s, box-shadow 0.2s;
}

.login-page .input-icon-wrap .form-control::placeholder {
	color: #94a8b8 !important;
	opacity: 1 !important;
}

.login-page .input-icon-wrap .form-control:focus {
	background: #ffffff !important;
	border-color: #5bbfb8 !important;
	box-shadow: 0 0 0 3px rgba(91, 191, 184, 0.3) !important;
	outline: none;
}

.login-page .input-icon-wrap .field-icon {
	position: absolute;
	right: 13px;
	top: 50%;
	transform: translateY(-50%);
	color: #5bbfb8;
	font-size: 1.1rem;
	pointer-events: none;
	opacity: 0.85;
}

.login-page .show-pwd-btn {
	display: inline-flex;
	align-items: center;
	gap: 0.3rem;
	background: transparent;
	border: none;
	color: #7dd3cc;
	font-size: 0.75rem;
	padding: 0.35rem 0;
	margin-top: 0.3rem;
	cursor: pointer;
	transition: color 0.2s;
}

.login-page .show-pwd-btn:hover {
	color: #a8ebe4;
}

.login-page .login-card-options {
	display: flex;
	align-items: center;
	justify-content: space-between;
	flex-wrap: wrap;
	gap: 0.5rem;
	margin-top: 0.15rem;
}

.login-page .form-check {
	padding-left: 0;
	display: flex;
	align-items: center;
	gap: 0.45rem;
	margin: 0;
}

.login-page .form-check-input {
	width: 1rem;
	height: 1rem;
	margin: 0;
	background-color: rgba(255, 255, 255, 0.12);
	border-color: rgba(255, 255, 255, 0.35);
	cursor: pointer;
	flex-shrink: 0;
}

.login-page .form-check-input:checked {
	background-color: #3d9a94;
	border-color: #3d9a94;
}

.login-page .form-check-label {
	color: rgba(255, 255, 255, 0.8);
	font-size: 0.82rem;
	cursor: pointer;
}

.login-page .forgot-link {
	color: #7dd3cc;
	font-size: 0.82rem;
	text-decoration: none;
	transition: color 0.2s;
}

.login-page .forgot-link:hover {
	color: #a8ebe4;
}

.login-page .btn-login {
	background: linear-gradient(135deg, #1a3344 0%, #0f2230 100%);
	border: 1px solid rgba(91, 191, 184, 0.25);
	border-radius: 10px;
	color: #ffffff;
	font-weight: 600;
	font-size: 0.92rem;
	padding: 0.72rem 1rem;
	width: 100%;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.45rem;
	transition: all 0.2s;
	margin-top: 0.35rem;
	box-shadow: 0 4px 14px rgba(0, 0, 0, 0.25);
}

.login-page .btn-login:hover {
	background: linear-gradient(135deg, #3d9a94 0%, #2d7a75 100%);
	border-color: rgba(91, 191, 184, 0.5);
	color: #ffffff;
	transform: translateY(-1px);
	box-shadow: 0 6px 20px rgba(61, 154, 148, 0.35);
}

.login-page .btn-login i {
	font-size: 1.15rem;
}

@media (max-height: 680px) {
	.login-page .login-card-header {
		padding: 1.25rem 1.5rem 1rem;
	}

	.login-page .form-body {
		padding: 1rem 1.5rem 1.35rem;
	}

	.login-page .login-logo {
		width: 95px;
	}

	.login-page .login-brand {
		font-size: 1.2rem;
	}
}

@media (prefers-reduced-motion: reduce) {
	.login-page .login-bg {
		animation: none;
	}

	.login-page .login-float-icon,
	.login-page .login-lens {
		animation: none;
	}
}

@media (max-width: 400px) {
	.login-page .login-card-header,
	.login-page .form-body {
		padding-left: 1.25rem;
		padding-right: 1.25rem;
	}

	.login-page .login-card-divider {
		margin: 0 1rem;
	}
}
