:root {
	--mfa-navy: #190a52;
	--mfa-blue: #98b1fd;
	--mfa-blue-light: #eef2ff;
	--mfa-pink: #ffc6dd;
	--mfa-pink-light: #fff1f6;
	--mfa-yellow: #fdeb4b;
	--mfa-yellow-light: #fffbd9;
	--mfa-green: #47d183;
	--mfa-green-light: #e9fbf1;
	--mfa-white: #ffffff;
	--mfa-muted: #625d74;
	--mfa-border: #dcd5ee;
}
.mfa-shell {
	align-items: flex-start;
	background: linear-gradient(145deg, var(--mfa-blue-light), var(--mfa-pink-light));
	display: flex;
	justify-content: center;
	min-height: 100vh;
	padding: 9vh 20px 64px;
}

.mfa-card {
	background: var(--mfa-white);
	border: 1px solid rgba(25, 10, 82, 0.12);
	border-radius: 18px;
	box-shadow: 0 24px 70px rgba(25, 10, 82, 0.14);
	color: var(--mfa-navy);
	max-width: 500px;
	padding: 34px;
	width: 100%;
}

.mfa-card h1,
.mfa-card h2 {
	color: var(--mfa-navy);
	font-weight: 700;
	line-height: 1.2;
	margin: 0 0 12px;
	text-transform: none;
}

.mfa-card h1 { font-size: 30px; }
.mfa-card h2 { font-size: 23px; }
.mfa-card p,
.mfa-card li { color: var(--mfa-muted); line-height: 1.55; }

.mfa-brand-mark {
	align-items: center;
	background: var(--mfa-navy);
	border-radius: 12px;
	color: var(--mfa-white);
	display: flex;
	font-size: 22px;
	font-weight: 800;
	height: 44px;
	justify-content: center;
	margin-bottom: 22px;
	width: 44px;
}

.mfa-subtitle { margin: 0 0 28px; }
.mfa-card form { margin-top: 22px; }
.mfa-card label,
.mfa-label {
	color: var(--mfa-navy);
	display: block;
	font-size: 14px;
	font-weight: 700;
	margin: 17px 0 7px;
}

.mfa-card input[type="email"],
.mfa-card input[type="password"],
.mfa-card input[type="text"] {
	background: var(--mfa-white);
	border: 1px solid var(--mfa-border);
	border-radius: 9px;
	box-sizing: border-box;
	color: var(--mfa-navy);
	font-size: 17px;
	height: 48px;
	padding: 10px 13px;
	width: 100%;
}

.mfa-card input:focus,
.mfa-card button:focus,
.mfa-card a:focus {
	box-shadow: 0 0 0 3px rgba(152, 177, 253, 0.55);
	outline: 2px solid transparent;
}

.mfa-button {
	border: 0;
	border-radius: 9px;
	cursor: pointer;
	font-size: 15px;
	font-weight: 700;
	min-height: 44px;
	padding: 11px 17px;
}

.mfa-button-primary {
	background: var(--mfa-navy);
	color: var(--mfa-white);
	margin-top: 22px;
	width: 100%;
}

.mfa-button-secondary {
	background: var(--mfa-blue-light);
	border: 1px solid var(--mfa-blue);
	color: var(--mfa-navy);
}

.mfa-button[disabled] { cursor: not-allowed; opacity: 0.55; }
.mfa-link-button {
	background: transparent;
	border: 0;
	color: var(--mfa-navy);
	cursor: pointer;
	display: block;
	font-weight: 700;
	margin: 18px auto 0;
	text-decoration: underline;
}

.mfa-alert {
	border-radius: 9px;
	margin: 18px 0;
	padding: 12px 14px;
}

.mfa-alert-error { background: var(--mfa-pink-light); border-left: 4px solid var(--mfa-pink); color: var(--mfa-navy); }
.mfa-alert-warning { background: var(--mfa-yellow-light); border-left: 4px solid var(--mfa-yellow); color: var(--mfa-navy); }
.mfa-alert-success { background: var(--mfa-green-light); border-left: 4px solid var(--mfa-green); color: var(--mfa-navy); }

.mfa-steps { padding-left: 22px; }
.mfa-qr {
	align-items: center;
	background: var(--mfa-white);
	border: 1px solid var(--mfa-border);
	border-radius: 12px;
	display: flex;
	justify-content: center;
	margin: 22px auto;
	max-width: 310px;
	min-height: 250px;
	padding: 14px;
}

.mfa-qr svg { display: block; height: auto; max-width: 100%; width: 280px; }
.mfa-secret-row {
	align-items: center;
	background: var(--mfa-blue-light);
	border-radius: 9px;
	display: flex;
	gap: 14px;
	justify-content: space-between;
	padding: 12px;
}

.mfa-secret-row .mfa-label { margin: 0 0 4px; }
.mfa-secret-row code { color: var(--mfa-navy); overflow-wrap: anywhere; }
.mfa-recovery-list {
	background: var(--mfa-blue-light);
	border: 1px solid var(--mfa-blue);
	border-radius: 9px;
	color: var(--mfa-navy);
	font-size: 16px;
	line-height: 1.75;
	padding: 18px;
	white-space: pre-wrap;
}

.mfa-button-row { display: flex; flex-wrap: wrap; gap: 10px; }
.mfa-check { align-items: flex-start; display: flex !important; gap: 10px; margin: 22px 0 0 !important; }
.mfa-check input { margin-top: 4px; }
.mfa-footer-links { border-top: 1px solid var(--mfa-border); display: flex; flex-direction: column; gap: 9px; margin-top: 28px; padding-top: 20px; }
.mfa-footer-links a { color: var(--mfa-navy); }

/* The legacy public layout applies white text broadly; keep every light login state readable. */
.landing-pages.bg-blue .mfa-card,
.landing-pages.bg-blue .mfa-card h1,
.landing-pages.bg-blue .mfa-card h2,
.landing-pages.bg-blue .mfa-card p,
.landing-pages.bg-blue .mfa-card li,
.landing-pages.bg-blue .mfa-card label,
.landing-pages.bg-blue .mfa-card span,
.landing-pages.bg-blue .mfa-card small,
.landing-pages.bg-blue .mfa-card div,
.landing-pages.bg-blue .mfa-card code,
.landing-pages.bg-blue .mfa-card a,
.landing-pages.bg-blue .mfa-card .mfa-link-button { color: var(--mfa-navy); }
.landing-pages.bg-blue .mfa-card .mfa-subtitle,
.landing-pages.bg-blue .mfa-card [data-mfa-state] > p { color: var(--mfa-muted); }
.landing-pages.bg-blue .mfa-card .mfa-button-primary { color: var(--mfa-white); }
.landing-pages.bg-blue .mfa-card .mfa-brand-mark { color: var(--mfa-white); }

.mfa-security-layout { display: grid; gap: 24px; grid-template-columns: minmax(190px, 240px) minmax(0, 680px); margin-bottom: 60px; }
.mfa-security-panel { background: var(--mfa-white); border: 1px solid var(--mfa-border); border-radius: 14px; padding: 26px; }
.mfa-status-badge { background: var(--mfa-blue-light); border-radius: 999px; color: var(--mfa-navy); display: inline-block; font-size: 13px; font-weight: 700; padding: 6px 11px; }
.mfa-status-badge.is-enabled { background: var(--mfa-green-light); }
.mfa-danger-zone { background: var(--mfa-pink-light); border: 1px solid var(--mfa-pink); border-radius: 10px; margin-top: 24px; padding: 18px; }
.mfa-inline-action { display: inline-block; margin-top: 12px; text-decoration: none; }
.mfa-button-fit { margin-top: 0; width: auto; }
.mfa-policy-toggle {
	align-items: center;
	background: var(--mfa-blue-light);
	border: 1px solid var(--mfa-blue);
	border-radius: 12px;
	cursor: pointer;
	display: flex;
	gap: 24px;
	justify-content: space-between;
	margin-top: 22px;
	padding: 18px;
}
.mfa-policy-toggle strong,
.mfa-policy-toggle small { color: var(--mfa-navy); display: block; }
.mfa-policy-toggle small { font-weight: 400; line-height: 1.45; margin-top: 6px; }
.mfa-policy-toggle input {
	accent-color: var(--mfa-navy);
	flex: 0 0 auto;
	height: 24px;
	width: 44px;
}
.mfa-dialog-backdrop {
	align-items: center;
	background: rgba(25, 10, 82, 0.6);
	display: flex;
	inset: 0;
	justify-content: center;
	padding: 20px;
	position: fixed;
	z-index: 1050;
}
.mfa-dialog-backdrop[hidden] { display: none; }
.mfa-dialog {
	background: var(--mfa-white);
	border-radius: 16px;
	box-shadow: 0 24px 70px rgba(25, 10, 82, 0.3);
	color: var(--mfa-navy);
	max-width: 520px;
	padding: 28px;
	width: 100%;
}
.mfa-dialog h2 { color: var(--mfa-navy); margin-top: 0; }
.mfa-dialog label { color: var(--mfa-navy); display: block; font-weight: 700; margin: 17px 0 7px; }
.mfa-dialog input {
	border: 1px solid var(--mfa-border);
	border-radius: 9px;
	box-sizing: border-box;
	color: var(--mfa-navy);
	font-size: 17px;
	height: 48px;
	padding: 10px 13px;
	width: 100%;
}
.mfa-dialog input:focus,
.mfa-policy-toggle input:focus { box-shadow: 0 0 0 3px rgba(152, 177, 253, 0.55); outline: 2px solid transparent; }

@media (max-width: 720px) {
	.mfa-shell { padding: 28px 12px; }
	.mfa-card { border-radius: 14px; padding: 24px 20px; }
	.mfa-security-layout { grid-template-columns: 1fr; }
	.mfa-secret-row { align-items: stretch; flex-direction: column; }
	.mfa-policy-toggle { align-items: flex-start; }
	.mfa-dialog { padding: 22px 18px; }
}
