/*
 * Login fallback styling for NamGov HRMS.
 * This is intentionally small and scoped to the login page so Frappe/ERPNext
 * remains the primary UI provider while the deployment is protected from raw
 * unstyled login rendering when cached bundles are stale or missing.
 */

body[data-path="login"],
body.namgov-login-page,
body.namgov-raw-branding-page,
body:has(input[name="usr"]),
body:has(#login_email),
body:has(.for-login),
body:has(.login-content) {
	background: #f6f8fb;
	color: #18212f;
	font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
	margin: 0;
	min-height: 100vh;
}

body[data-path="login"] > img:first-child,
body.namgov-login-page > img:first-child,
body.namgov-raw-branding-page > img:first-child,
body:has(input[name="usr"]) > img:first-child,
body:has(#login_email) > img:first-child,
body:has(.for-login) > img:first-child,
body:has(.login-content) > img:first-child,
body[data-path="login"] .page-card-head img,
body.namgov-login-page .page-card-head img,
body.namgov-raw-branding-page img,
body:has(input[name="usr"]) img,
body:has(#login_email) img,
body:has(.for-login) img,
body:has(.login-content) img {
	display: block;
	height: auto !important;
	margin: 36px auto 18px;
	max-height: 112px !important;
	max-width: 112px !important;
	object-fit: contain;
	width: auto !important;
}

body[data-path="login"] .page-card,
body.namgov-login-page .page-card,
body.namgov-login-page .login-content,
body.namgov-login-page .for-login,
body:has(input[name="usr"]) form,
body:has(#login_email) form,
body:has(.for-login) form,
body:has(.login-content) form {
	background: #fff;
	border: 1px solid #d8dee8;
	border-radius: 8px;
	box-shadow: 0 14px 36px rgba(16, 24, 40, 0.1);
	box-sizing: border-box;
	margin: 0 auto 18px;
	max-width: 420px;
	padding: 24px;
}

body.namgov-login-page > h1,
body.namgov-login-page > h2,
body.namgov-login-page > h3,
body.namgov-raw-branding-page > h1,
body.namgov-raw-branding-page > h2,
body.namgov-raw-branding-page > h3,
body[data-path="login"] > h1,
body[data-path="login"] > h2,
body[data-path="login"] > h3 {
	color: #18212f;
	font-size: 20px;
	font-weight: 700;
	margin: 0 auto 18px;
	max-width: 420px;
	text-align: center;
}

body[data-path="login"] input,
body.namgov-login-page input,
body:has(input[name="usr"]) input,
body:has(#login_email) input,
body:has(.for-login) input,
body:has(.login-content) input {
	border: 1px solid #cfd6e3;
	border-radius: 6px;
	box-sizing: border-box;
	font: inherit;
	min-height: 38px;
	padding: 8px 10px;
	width: 100%;
}

body[data-path="login"] button,
body.namgov-login-page button,
body:has(input[name="usr"]) button,
body:has(#login_email) button,
body:has(.for-login) button,
body:has(.login-content) button {
	border-radius: 6px;
	font: inherit;
	min-height: 38px;
	padding: 8px 12px;
}

body[data-path="login"] .btn-primary,
body.namgov-login-page .btn-primary,
body[data-path="login"] button[type="submit"],
body.namgov-login-page button[type="submit"],
body:has(input[name="usr"]) button[type="submit"],
body:has(#login_email) button[type="submit"],
body:has(.for-login) button[type="submit"],
body:has(.login-content) button[type="submit"] {
	background: #0f766e;
	border: 1px solid #0f766e;
	color: #fff;
	cursor: pointer;
	width: 100%;
}

body[data-path="login"] a,
body.namgov-login-page a,
body:has(input[name="usr"]) a,
body:has(#login_email) a,
body:has(.for-login) a,
body:has(.login-content) a {
	color: #0f766e;
}

body.namgov-raw-branding-page {
	align-items: center;
	box-sizing: border-box;
	display: flex;
	flex-direction: column;
	padding: 32px 16px;
}

body.namgov-login-loading {
	align-items: center;
	box-sizing: border-box;
	display: flex;
	flex-direction: column;
	justify-content: center;
	min-height: 100vh;
	padding: 32px 16px;
}

body.namgov-login-loading img {
	display: none !important;
}

body.namgov-login-loading::before {
	animation: namgov-login-spinner 0.8s linear infinite;
	border: 3px solid #d8dee8;
	border-radius: 999px;
	border-top-color: #0f766e;
	content: "";
	display: block;
	height: 42px;
	margin: 0 auto 14px;
	width: 42px;
}

body.namgov-raw-branding-page::after,
body.namgov-login-loading::after {
	color: #667085;
	content: "Loading NamGov HRMS...";
	display: block;
	font-size: 14px;
	margin: 6px auto 0;
	text-align: center;
}

@keyframes namgov-login-spinner {
	to {
		transform: rotate(360deg);
	}
}

.namgov-login-powered {
	color: #667085;
	font-size: 12px;
	margin: 12px auto 24px;
	max-width: 420px;
	text-align: center;
}

.namgov-login-powered a {
	color: #0f766e;
	font-weight: 650;
}
