*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
body.sitefort-2fa-body {
	font-family: 'Inter', -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
	background: #f9fafb;
	display: flex; align-items: center; justify-content: center;
	min-height: 100vh; padding: 24px;
	-webkit-font-smoothing: antialiased;
}
.sitefort-2fa-wrap { width: 100%; max-width: 400px; }
.sitefort-2fa-card {
	background: #fff; border-radius: 8px; border: 1px solid #e5e7eb;
	box-shadow: 0 1px 3px 0 rgb(0 0 0/0.1), 0 1px 2px -1px rgb(0 0 0/0.1);
	padding: 40px 36px 36px;
}
.sitefort-2fa-head { text-align: center; margin-bottom: 32px; }
.sitefort-2fa-icon { width: 44px; height: 44px; margin: 0 auto 14px; display: block; }
.sitefort-2fa-title { font-size: 22px; font-weight: 700; color: #111827; margin: 0 0 4px; letter-spacing: 0; }
.sitefort-2fa-site { font-size: 14px; color: #6b7280; margin: 0; }
.sitefort-2fa-alert { padding: 10px 14px; border-radius: 6px; font-size: 14px; line-height: 1.5; margin-bottom: 20px; }
.sitefort-2fa-alert-error { background: #fef2f2; color: #991b1b; border: 1px solid #fecaca; }
.sitefort-2fa-alert-info { background: #eff6ff; color: #1e40af; border: 1px solid #bfdbfe; }
.sitefort-2fa-alert-success { background: #f0fdf4; color: #166534; border: 1px solid #bbf7d0; }
.sitefort-2fa-group { margin-bottom: 20px; }
.sitefort-2fa-label { display: block; font-size: 14px; font-weight: 500; color: #374151; margin-bottom: 6px; }
.sitefort-2fa-input {
	width: 100%; padding: 10px 14px;
	font-size: 18px; font-family: ui-monospace, SFMono-Regular, "SF Mono", Menlo, monospace;
	letter-spacing: 0.2em; text-align: center;
	border: 1px solid #d1d5db; border-radius: 6px;
	outline: none; background: #fff; color: #111827;
	box-shadow: 0 1px 2px 0 rgb(0 0 0/0.05);
	transition: border-color 0.15s, box-shadow 0.15s;
}
.sitefort-2fa-input:focus { border-color: #00CC66; box-shadow: 0 0 0 3px rgba(0,204,102,0.15); }
.sitefort-2fa-input::placeholder { color: #d1d5db; letter-spacing: 0.35em; }
.sitefort-2fa-input-recovery { font-size: 15px; letter-spacing: 0.08em; text-align: left; }
.sitefort-2fa-help { font-size: 14px; color: #6b7280; margin-top: 8px; text-align: center; }
.sitefort-2fa-link {
	background: none; border: none; color: #2563eb; font-size: 14px;
	cursor: pointer; padding: 0; text-decoration: underline; text-underline-offset: 2px;
}
.sitefort-2fa-link:hover { color: #1d4ed8; }
.sitefort-2fa-toggle { display: inline-block; font-size: 14px; color: #2563eb; text-decoration: none; margin-bottom: 20px; }
.sitefort-2fa-toggle:hover { color: #1d4ed8; text-decoration: underline; }
.sitefort-2fa-remember { display: flex; align-items: center; gap: 8px; margin-bottom: 24px; }
.sitefort-2fa-remember input[type="checkbox"] { width: 16px; height: 16px; accent-color: #00CC66; cursor: pointer; border-radius: 4px; }
.sitefort-2fa-remember label { font-size: 14px; color: #374151; cursor: pointer; user-select: none; }
.sitefort-2fa-btn {
	display: block; width: 100%; padding: 12px;
	font-size: 15px; font-weight: 600; color: #fff;
	background: #071C2C; border: none; border-radius: 6px;
	cursor: pointer; transition: background 0.15s;
}
.sitefort-2fa-btn:hover { background: #0f2d42; }
.sitefort-2fa-btn:focus-visible { outline: 2px solid #00CC66; outline-offset: 2px; }
.sitefort-2fa-divider { height: 1px; background: #e5e7eb; margin: 24px 0 20px; }
.sitefort-2fa-footer { text-align: center; }
.sitefort-2fa-footer a { font-size: 14px; color: #6b7280; text-decoration: none; }
.sitefort-2fa-footer a:hover { color: #374151; }
.sitefort-2fa-branding { text-align: center; margin-top: 24px; }
.sitefort-2fa-branding span { font-size: 14px; color: #9ca3af; }
