:root {
	--login-bg: #0f172a;
	--login-bg-soft: #172554;
	--login-accent: #2563eb;
	--login-accent-2: #38bdf8;
	--login-text: #0f172a;
	--login-muted: #64748b;
	--login-border: rgba(148, 163, 184, 0.2);
}

body.login-page {
	min-height: 100vh;
	background:
		radial-gradient(circle at top left, rgba(56, 189, 248, 0.18), transparent 34%),
		radial-gradient(circle at right center, rgba(37, 99, 235, 0.22), transparent 28%),
		linear-gradient(135deg, #081120 0%, #0f172a 45%, #111827 100%);
	color: var(--login-text);
}

.login-shell {
	position: relative;
	overflow: hidden;
}

.login-backdrop {
	position: absolute;
	border-radius: 999px;
	filter: blur(18px);
	opacity: 0.35;
	pointer-events: none;
}

.login-backdrop-one {
	width: 240px;
	height: 240px;
	background: rgba(56, 189, 248, 0.35);
	top: 5%;
	left: -60px;
}

.login-backdrop-two {
	width: 320px;
	height: 320px;
	background: rgba(37, 99, 235, 0.3);
	right: -90px;
	bottom: 8%;
}

.login-card {
	border-radius: 1.5rem;
	background: rgba(255, 255, 255, 0.96);
	backdrop-filter: blur(18px);
}

.login-visual {
	background:
		linear-gradient(160deg, rgba(37, 99, 235, 0.95), rgba(14, 165, 233, 0.82)),
		radial-gradient(circle at top right, rgba(255, 255, 255, 0.22), transparent 28%);
	position: relative;
}

.login-visual::after {
	content: '';
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, rgba(255, 255, 255, 0.05), transparent 50%);
	pointer-events: none;
}

.brand-mark {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 0.65rem 1rem;
	border: 1px solid rgba(255, 255, 255, 0.22);
	border-radius: 999px;
	font-weight: 700;
	letter-spacing: 0.14em;
	font-size: 0.85rem;
	background: rgba(15, 23, 42, 0.12);
}

.login-visual-note {
	padding: 1rem 1.1rem;
	border-radius: 1rem;
	background: rgba(15, 23, 42, 0.16);
	border: 1px solid rgba(255, 255, 255, 0.12);
}

.login-card .form-label {
	color: #1e293b;
}

.login-card .form-control {
	height: 3.5rem;
	border-radius: 0.95rem;
	border: 1px solid #dbe4f0;
	background: #f8fafc;
	box-shadow: none;
}

.login-card .form-control:focus {
	border-color: rgba(37, 99, 235, 0.55);
	box-shadow: 0 0 0 0.25rem rgba(37, 99, 235, 0.12);
	background: #fff;
}

.login-card .form-check-input:checked {
	background-color: var(--login-accent);
	border-color: var(--login-accent);
}

.login-link {
	color: var(--login-accent);
	font-weight: 600;
}

.login-link:hover {
	color: var(--login-accent-2);
}

.login-alert {
	border-radius: 1rem;
	background: #fef2f2;
	color: #b91c1c;
}

.login-submit {
	height: 3.5rem;
	border-radius: 0.95rem;
	border: none;
	background: linear-gradient(135deg, var(--login-accent) 0%, var(--login-accent-2) 100%);
	box-shadow: 0 1rem 2rem rgba(37, 99, 235, 0.25);
	font-weight: 700;
}

.login-submit:hover,
.login-submit:focus {
	background: linear-gradient(135deg, #1d4ed8 0%, #0ea5e9 100%);
	box-shadow: 0 1.25rem 2.5rem rgba(37, 99, 235, 0.3);
}

@media (max-width: 991.98px) {
	.login-visual {
		min-height: 240px;
	}
}

@media (max-width: 575.98px) {
	.login-card {
		border-radius: 1.15rem;
	}

	.login-visual,
	.login-card .bg-white {
		padding-left: 1.25rem !important;
		padding-right: 1.25rem !important;
	}
}
