:root {
	--sl-bg: #f5f7fb;
	--sl-header: #cfe3fb;
	--sl-text: #111827;
	--sl-muted: #566273;
	--sl-primary: #0d6efd;
	--sl-primary-dark: #003366;
	--sl-border: rgba(23, 32, 51, 0.12);
	--sl-shadow: 0 18px 45px rgba(13, 110, 253, 0.1);
}

html,
body {
	min-height: 100%;
}

body.login-page {
	min-height: 100vh;
	min-height: 100dvh;
	margin: 0;
	color: var(--sl-text);
	background:
		radial-gradient(circle at 50% 45%, rgba(173, 211, 255, 0.52), transparent 42%),
		linear-gradient(180deg, #f7f9fc, #eef5ff 55%, #f5f7fb);
	font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
	-webkit-font-smoothing: antialiased;
}

.login-page-shell {
	min-height: 100vh;
	min-height: 100dvh;
}

.login-page-main {
	padding-top: 4vh;
	align-items: flex-start;
}

.login-page-main .container {
	width: 100%;
	max-width: 420px;
	padding-left: 0;
	padding-right: 0;
}

.max-w-420 {
	max-width: 420px;
}

.login-logo {
	max-width: 80%;
	height: auto;
	margin: 0 auto 2.5rem;
}

.btn-primary {
	background: var(--sl-primary);
	border-color: var(--sl-primary);
	box-shadow: 0 12px 27px rgba(13, 110, 253, 0.22);
	font-weight: 750;
}

.btn-primary:hover,
.btn-primary:focus {
	background: var(--sl-primary-dark);
	border-color: var(--sl-primary-dark);
	box-shadow: 0 16px 32px rgba(13, 110, 253, 0.28);
}

.form-control {
	border-color: #cbd6e2;
	border-radius: 6px;
}

.form-control:focus {
	border-color: var(--sl-primary);
	box-shadow: 0 0 0 3px rgba(13, 110, 253, 0.1);
}

.card {
	border-color: var(--sl-border);
	box-shadow: var(--sl-shadow);
}

.login-page-footer footer {
	margin-bottom: 0 !important;
	padding-top: 0.5rem;
	border-top: none;
	background: transparent;
	box-shadow: none;
	color: var(--sl-muted);
}

.login-page-footer a {
	color: inherit;
	text-decoration: none;
}

.login-page-footer a:hover {
	color: var(--sl-primary);
}

.footer-logo {
	height: 18px;
	width: auto;
	vertical-align: text-bottom;
	margin-right: 0.35rem;
}
