﻿html, body {
	margin: 0;
	padding: 0;
	background-color: var(--bg);
	color: var(--fg);
	font-family: var(--font-body);
	height: 100%;
}

#btnLogin {
	background-color: var(--accent);
	border-color: var(--accent);
	color: #fff;
}

/* Top-aligned wrapper with generous spacing */
.centered-wrapper {
	display: flex;
	justify-content: center;
	align-items: flex-start;
	min-height: 100vh;
	padding: 8vh 1rem 2rem 1rem;
	background-color: var(--surface);
}

@media (max-height: 480px) {
	.centered-wrapper {
		padding-top: 2vh;
	}
}


/* Login card styling */
.login-card {
	background-color: var(--surface-elev);
	color: var(--fg);
	border-radius: 6px;
	box-shadow: 0 6px 24px rgba(0, 0, 0, 0.08);
	width: 100%;
	max-width: 420px;
	position: relative;
	overflow: hidden;
}

.login-header {
	position: relative;
	background-color: var(--surfacebrand);
	padding: 1rem;
	border-top-left-radius: 6px;
	border-top-right-radius: 6px;
}

.login-content {
	padding: 2rem;
	padding-top: .5rem;
}
/* Heading */
.login-card h2 {
	text-align: center;
	font-weight: 600;
	font-size: 1.25rem;
	font-family: var(--font-heading);
}

/* Close button */
.close-btn {
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	right: 12px;
	background: none;
	border: none;
	font-size: 1.75rem;
	line-height: 1;
	cursor: pointer;
	padding: 6px 8px;
	color: var(--muted);
	border-radius: 4px;
	transition: background-color 0.2s ease, color 0.2s ease;
}

	.close-btn:hover {
		color: var(--fg);
		background-color: rgba(0, 0, 0, 0.05); /* subtle hover cue */
	}


/* Message area */
.message {
	margin: .5rem 0;
	min-height: 0;
}

	.message:empty {
		display: none;
	}

#litMessage, .alert {
	color: #880909; /* muted warning text */
}



/* Form layout */
.form-group {
	margin-bottom: 1rem;
}

	.form-group label {
		display: block;
		margin-bottom: 0.35rem;
		font-size: 0.95rem;
		color: var(--fg);
	}

	.form-group input {
		width: 100%;
		padding: 0.55rem 0.65rem;
		box-sizing: border-box;
		border: 1px solid var(--border);
		border-radius: 4px;
		font-size: 1rem;
		background-color: var(--surface);
		color: var(--fg);
	}

		.form-group input:focus {
			outline: none;
			border-color: var(--link);
			box-shadow: 0 0 0 3px rgba(0, 120, 212, 0.15);
		}

/* Primary button */
.btn-primary {
	width: 100%;
	padding: 0.65rem;
	background-color: var(--link);
	color: #fff;
	border: none;
	border-radius: 4px;
	cursor: pointer;
	font-size: 1rem;
	font-weight: 600;
}

	.btn-primary:hover {
		background-color: var(--link-hover);
	}

.btn-wrapper {
	width: 100%;
	max-width: 100%;
}
/* OAuth buttons */
.btn-oauth {
	width: 100%;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 10px 0px;
	border: 1px solid #dadce0;
	border-radius: 4px;
	background-color: #fff;
	color: #3c4043;
	font-family: system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
	font-size: 1rem;
	font-weight: 700;
	cursor: pointer;
	transition: box-shadow 0.2s ease;
}

	.btn-oauth:hover {
		background-color: var(--surface);
	}

/* Link styling */
.link {
	display: block;
	margin-top: 0.75rem;
	text-align: center;
	font-size: 0.95rem;
	color: var(--link);
}

	.link a {
		display: inline-block;
		padding: 8px 0;
	}

		.link a:hover {
			color: var(--link-hover);
		}

/* Accessibility: keyboard focus */
a:focus, button:focus {
	outline: 3px solid rgba(0, 120, 212, 0.35);
	outline-offset: 2px;
}

/* Honeypot field */
.hp {
	display: none !important;
}

.link-row {
	display: flex;
	justify-content: space-between;
	margin-top: 0.75rem;
	font-size: 0.95rem;
}

.link-left,
.link-right {
	width: 50%;
	color: var(--link);
	text-decoration: none;
	padding: 8px 0;
}

.link-left {
	text-align: left;
}

.link-right {
	text-align: right;
}

	.link-left:hover,
	.link-right:hover {
		color: var(--link-hover);
	}


.oauth-note {
	margin-top: .1rem;
}

.divider {
	text-align: center;
	margin: 0rem 0 1rem;
	font-size: 1rem;
	color: var(--muted);
	font-weight: 700;
}
