* {
	margin: 0;
	padding: 0;
	box-sizing: border-box;
}

body {
	font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
	background: #e8e8e8;
	min-height: 100vh;
	display: flex;
}

.container {
	display: flex;
	width: 100%;
	min-height: 100vh;
}

/* LEFT PANEL */
.left-panel {
	flex: 0 0 520px;
	background: #fff;
	display: flex;
	flex-direction: column;
	justify-content: center;
	padding: 36px 50px;
	overflow-y: auto;
}

.logo {
	width: 240px;
	display: block;
	margin: 0 auto 24px;
}

.welcome-text {
	color: #1B365D;
	font-size: 15px;
	margin-bottom: 18px;
	line-height: 1.5;
	text-align: center;
}

.welcome-text strong {
	color: #0099D2;
}

/* FIRST TIME BANNER — default state */
.first-time-banner {
	background: #E8F4FD;
	border-left: 4px solid #0099D2;
	padding: 12px 16px;
	margin-bottom: 16px;
	font-size: 13px;
	color: #1B365D;
	line-height: 1.6;
	border-radius: 0 4px 4px 0;
	text-align: center;
}

.first-time-banner a {
	color: #0099D2;
	font-weight: 600;
	text-decoration: none;
	display: block;
	margin-top: 4px;
}

.first-time-banner a:hover {
	text-decoration: underline;
}

/* FIRST TIME BANNER — enhanced after failed login */
.first-time-banner.enhanced {
	background: #FFF8E1;
	border-left-color: #F9A825;
	padding: 18px 20px;
	font-size: 14px;
}

.first-time-banner.enhanced .banner-title {
	font-weight: 700;
	color: #E65100;
	margin-bottom: 6px;
	font-size: 14px;
}

.first-time-banner.enhanced a {
	color: #E65100;
	font-size: 14px;
	font-weight: 700;
	display: inline-block;
	margin-top: 6px;
	padding: 8px 16px;
	background: #FFF3E0;
	border: 1px solid #F9A825;
	border-radius: 4px;
	transition: background 0.2s;
}

.first-time-banner.enhanced a:hover {
	background: #FFE0B2;
	text-decoration: none;
}

/* FORM ELEMENTS */
.form-group {
	margin-bottom: 14px;
}

.form-group label {
	display: block;
	font-size: 13px;
	color: #666;
	margin-bottom: 4px;
}

.form-input,
.form-select {
	width: 100%;
	padding: 8px 0;
	border: none;
	border-bottom: 1px solid #ccc;
	font-size: 15px;
	color: #333;
	background: transparent;
	outline: none;
	transition: border-color 0.2s;
	font-family: inherit;
}

.form-input:focus,
.form-select:focus {
	border-bottom-color: #0099D2;
}

.form-input::placeholder {
	color: #aaa;
}

.form-select {
	appearance: none;
	-webkit-appearance: none;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%23666' d='M6 8L1 3h10z'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right 4px center;
	padding-right: 24px;
	cursor: pointer;
}

.forgot-link {
	display: block;
	text-align: right;
	margin-top: 10px;
	font-size: 13px;
	color: #0099D2;
	text-decoration: none;
}

.forgot-link:hover {
	text-decoration: underline;
}

/* ERROR MESSAGES */
.messageTable {
	border: none !important;
	background: transparent !important;
	margin-bottom: 12px;
}

.messageTable td {
	border: none !important;
	padding: 0 !important;
	color: #D32F2F !important;
	font-size: 13px !important;
}

.messageTable .messageCell h4 {
	display: none;
}

.login-hint {
	background: #FFF0F0;
	border-left: 4px solid #D32F2F;
	padding: 12px 16px;
	margin-bottom: 18px;
	font-size: 13px;
	color: #555;
	border-radius: 0 4px 4px 0;
	line-height: 1.5;
}

.login-hint strong {
	color: #D32F2F;
	display: block;
	margin-bottom: 4px;
}

/* BUTTONS */
.btn-primary {
	width: 100%;
	padding: 14px;
	background: #1B365D;
	color: #fff;
	border: none;
	border-radius: 4px;
	font-size: 15px;
	font-weight: 600;
	cursor: pointer;
	transition: background 0.2s;
	font-family: inherit;
	margin-top: 4px;
}

.btn-primary:hover {
	background: #142a4a;
}

.btn-legacy {
	display: block;
	width: 100%;
	padding: 10px;
	background: #fff;
	color: #1B365D;
	border: 2px solid #1B365D;
	border-radius: 4px;
	font-size: 14px;
	font-weight: 600;
	text-align: center;
	text-decoration: none;
	cursor: pointer;
	transition: all 0.2s;
}

.btn-legacy:hover {
	background: #f5f7fa;
}

.btn-signup {
	display: block;
	width: 100%;
	padding: 10px;
	background: #fff;
	color: #0099D2;
	border: 2px solid #0099D2;
	border-radius: 4px;
	font-size: 14px;
	font-weight: 600;
	text-align: center;
	text-decoration: none;
	cursor: pointer;
	transition: all 0.2s;
}

.btn-signup:hover {
	background: #E8F4FD;
}

.btn-reg-submit {
	width: 100%;
	padding: 14px;
	background: #1B365D;
	color: #fff;
	border: none;
	border-radius: 4px;
	font-size: 15px;
	font-weight: 600;
	cursor: pointer;
	transition: background 0.2s;
	font-family: inherit;
	margin-top: 8px;
}

.btn-reg-submit:hover {
	background: #142a4a;
}

.btn-reg-submit:disabled,
.btn-reg-submit.is-loading {
	background: #7d8ca1;
	cursor: wait;
	opacity: 0.95;
}

.btn-back {
	display: inline-block;
	margin-top: 16px;
	font-size: 13px;
	color: #0099D2;
	text-decoration: none;
	cursor: pointer;
	background: none;
	border: none;
	font-family: inherit;
}

.btn-back:hover {
	text-decoration: underline;
}

/* DIVIDER */
.divider {
	display: flex;
	align-items: center;
	margin: 14px 0;
	color: #999;
	font-size: 13px;
}

.divider::before,
.divider::after {
	content: '';
	flex: 1;
	border-bottom: 1px solid #ddd;
}

.divider span {
	padding: 0 14px;
}

/* SIGNUP PROMPT */
.signup-prompt {
	text-align: center;
	font-size: 13px;
	color: #666;
	margin-bottom: 8px;
}

/* REGISTRATION SECTION */
.reg-title {
	color: #1B365D;
	font-size: 20px;
	font-weight: 700;
	margin-bottom: 8px;
	line-height: 1.3;
	text-align: center;
}

.reg-subtitle {
	color: #555;
	font-size: 14px;
	margin-bottom: 24px;
	line-height: 1.5;
	text-align: center;
}

.reg-consent {
	font-size: 12px;
	color: #666;
	margin-top: 18px;
	margin-bottom: 8px;
	line-height: 1.5;
}

/* SUCCESS MESSAGE */
.success-box {
	background: #E8F8E8;
	border-left: 4px solid #2E7D32;
	padding: 18px;
	border-radius: 0 4px 4px 0;
	margin-bottom: 24px;
}

.success-box h3 {
	color: #2E7D32;
	font-size: 16px;
	margin-bottom: 8px;
}

.success-box p {
	color: #333;
	font-size: 14px;
	line-height: 1.5;
}

/* RIGHT PANEL */
.right-panel {
	flex: 1;
	background-image: url('https://bostawedappl0003.blob.core.windows.net/b2c/background.png');
	background-size: cover;
	background-position: center;
	background-color: #1B365D;
	position: relative;
}

.right-overlay {
	position: absolute;
	bottom: 40px;
	left: 40px;
	color: #fff;
}

.right-overlay .tagline-top {
	font-size: 36px;
	font-weight: 300;
	opacity: 0.7;
}

.right-overlay .tagline-bottom {
	font-size: 36px;
	font-weight: 700;
}

/* HIDDEN SECTION */
.hidden {
	display: none !important;
}

/* FOOTER */
.footer {
	text-align: center;
	font-size: 11px;
	color: #999;
	margin-top: 20px;
}

/* MFA VERIFICATION LOGIN FLOW */
.verification-title {
	color: #1B365D;
	font-size: 24px;
	font-weight: 700;
	margin-bottom: 10px;
	text-align: center;
}

.verification-copy {
	color: #4E5F6F;
	font-size: 14px;
	line-height: 1.5;
	margin-bottom: 20px;
	text-align: center;
}

.verification-message {
	border-left: 4px solid #0099D2;
	background: #E8F4FD;
	color: #1B365D;
	font-size: 13px;
	line-height: 1.5;
	margin-bottom: 16px;
	padding: 12px 16px;
	border-radius: 0 4px 4px 0;
}

.verification-message.error {
	border-left-color: #D32F2F;
	background: #FFF0F0;
	color: #D32F2F;
}

.verification-message-link {
	color: #0099D2;
	font-size: inherit;
	text-decoration: none;
}

.verification-message-link:hover {
	text-decoration: underline;
}

.verification-actions {
	margin-top: 12px;
	text-align: center;
}

.btn-link {
	background: none;
	border: none;
	color: #0099D2;
	cursor: pointer;
	font-family: inherit;
	font-size: 13px;
	padding: 0;
	text-decoration: none;
}

.btn-link:hover {
	text-decoration: underline;
}

/* MOBILE */
@media (max-width: 960px) {
	.right-panel {
		display: none;
	}

	.left-panel {
		flex: 1;
		max-width: 100%;
	}
}

@media (max-width: 560px) {
	.left-panel {
		padding: 40px 24px;
	}

	.logo {
		width: 200px;
	}
}