body.login {
	align-items: center;
	background-attachment: fixed;
	display: flex;
	font-family: Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
	min-height: 100vh;
	overflow-x: hidden;
	perspective: 1400px;
}

body.login:before {
	content: "";
	inset: 0;
	position: fixed;
	z-index: 0;
}

#login {
	box-sizing: border-box;
	display: flex;
	flex-direction: column;
	margin: 0 auto;
	padding: 32px 0;
	position: relative;
	transform: rotateX(var(--kavach-rotate-x, 0deg)) rotateY(var(--kavach-rotate-y, 0deg));
	transform-style: preserve-3d;
	transition: transform .18s ease-out;
	z-index: 1;
}

#login > * {
	order: 1;
}

#login .privacy-policy-page-link {
	margin-top: auto;
	order: 99;
}

.kavach-auth-scene {
	inset: 0;
	overflow: hidden;
	pointer-events: none;
	position: fixed;
	transform-style: preserve-3d;
	z-index: 0;
}

.kavach-grid-floor {
	background-image: linear-gradient(rgba(250, 181, 13, .12) 1px, transparent 1px), linear-gradient(90deg, rgba(250, 181, 13, .12) 1px, transparent 1px);
	background-size: 54px 54px;
	bottom: -22vh;
	filter: drop-shadow(0 0 18px rgba(250, 181, 13, .22));
	height: 48vh;
	left: -10vw;
	opacity: .34;
	position: absolute;
	right: -10vw;
	transform: rotateX(68deg) translateZ(-120px);
	transform-origin: center top;
}

.kavach-core,
.kavach-orbit,
.kavach-node,
.kavach-dna,
.kavach-med-cross,
.kavach-capsule,
.kavach-bio-field {
	position: absolute;
}

.kavach-bio-field {
	background:
		radial-gradient(circle at 20% 20%, rgba(72, 220, 190, .16), transparent 22%),
		radial-gradient(circle at 78% 30%, rgba(250, 181, 13, .18), transparent 24%),
		radial-gradient(circle at 52% 78%, rgba(80, 180, 255, .12), transparent 26%);
	filter: blur(8px);
	inset: -10%;
	opacity: .92;
	transform: translateZ(-420px);
}

.kavach-dna {
	background:
		radial-gradient(circle, rgba(250, 181, 13, .92) 0 3px, transparent 4px) 0 0 / 28px 42px,
		radial-gradient(circle, rgba(78, 220, 190, .82) 0 3px, transparent 4px) 14px 21px / 28px 42px,
		linear-gradient(115deg, transparent 0 43%, rgba(250, 181, 13, .28) 45% 55%, transparent 57% 100%) 0 0 / 28px 42px;
	height: 72vh;
	opacity: .44;
	top: 11vh;
	width: 130px;
}

.kavach-dna-left {
	left: 7vw;
	transform: rotateY(64deg) rotateZ(-9deg) translateZ(-140px);
}

.kavach-dna-right {
	right: 7vw;
	transform: rotateY(-64deg) rotateZ(9deg) translateZ(-140px);
}

.kavach-core {
	background: radial-gradient(circle at 38% 35%, #fff7d2 0 3%, #fab50d 14%, rgba(250, 181, 13, .22) 34%, transparent 68%);
	border-radius: 50%;
	filter: blur(.2px) drop-shadow(0 0 var(--kavach-glow-size) rgba(250, 181, 13, .56));
	height: 34vmin;
	left: 50%;
	opacity: .62;
	top: 50%;
	transform: translate3d(-50%, -50%, -260px);
	width: 34vmin;
}

.kavach-orbit {
	border: 1px solid rgba(250, 181, 13, .34);
	border-radius: 50%;
	height: 58vmin;
	left: 50%;
	top: 50%;
	transform: translate(-50%, -50%) rotateX(64deg) rotateZ(18deg);
	width: 58vmin;
}

.kavach-orbit-two {
	height: 76vmin;
	transform: translate(-50%, -50%) rotateX(72deg) rotateY(24deg) rotateZ(-18deg);
	width: 76vmin;
}

.kavach-node {
	background: #fab50d;
	border-radius: 999px;
	box-shadow: 0 0 24px rgba(250, 181, 13, .62);
	height: 5px;
	opacity: var(--kavach-node-opacity);
	width: 5px;
}

.kavach-node-1 { left: 14%; top: 16%; }
.kavach-node-2 { left: 22%; top: 72%; }
.kavach-node-3 { left: 36%; top: 24%; }
.kavach-node-4 { left: 48%; top: 82%; }
.kavach-node-5 { left: 62%; top: 18%; }
.kavach-node-6 { left: 72%; top: 66%; }
.kavach-node-7 { left: 84%; top: 28%; }
.kavach-node-8 { left: 9%; top: 48%; }
.kavach-node-9 { left: 91%; top: 54%; }
.kavach-node-10 { left: 55%; top: 42%; }
.kavach-node-11 { left: 30%; top: 54%; }
.kavach-node-12 { left: 70%; top: 36%; }
.kavach-node-13 { left: 18%; top: 34%; }
.kavach-node-14 { left: 80%; top: 82%; }
.kavach-node-15 { left: 42%; top: 12%; }
.kavach-node-16 { left: 58%; top: 74%; }
.kavach-node-17 { left: 6%; top: 80%; }
.kavach-node-18 { left: 94%; top: 18%; }
.kavach-node-19 { left: 45%; top: 62%; }
.kavach-node-20 { left: 66%; top: 52%; }
.kavach-node-21 { left: 26%; top: 10%; }
.kavach-node-22 { left: 76%; top: 8%; }
.kavach-node-23 { left: 12%; top: 62%; }
.kavach-node-24 { left: 88%; top: 72%; }

.kavach-med-cross {
	height: 54px;
	opacity: .38;
	width: 54px;
}

.kavach-med-cross:before,
.kavach-med-cross:after {
	background: linear-gradient(180deg, rgba(250, 181, 13, .95), rgba(78, 220, 190, .72));
	border-radius: 4px;
	content: "";
	left: 50%;
	position: absolute;
	top: 50%;
	transform: translate(-50%, -50%);
}

.kavach-med-cross:before {
	height: 54px;
	width: 14px;
}

.kavach-med-cross:after {
	height: 14px;
	width: 54px;
}

.kavach-med-cross-one { left: 16vw; top: 22vh; }
.kavach-med-cross-two { right: 14vw; bottom: 18vh; }

.kavach-capsule {
	background: linear-gradient(90deg, #fab50d 0 50%, rgba(255, 255, 255, .92) 50% 100%);
	border: 1px solid rgba(255, 255, 255, .3);
	border-radius: 999px;
	box-shadow: 0 0 28px rgba(250, 181, 13, .22);
	height: 22px;
	opacity: .54;
	width: 76px;
}

.kavach-capsule-one { left: 20vw; bottom: 18vh; transform: rotate(-24deg); }
.kavach-capsule-two { right: 20vw; top: 18vh; transform: rotate(28deg); }

.kavach-auth:not(.kavach-animation-off) .kavach-orbit-one {
	animation: kavach-orbit-one var(--kavach-orbit-one-speed) linear infinite;
}

.kavach-auth:not(.kavach-animation-off) .kavach-orbit-two {
	animation: kavach-orbit-two var(--kavach-orbit-two-speed) linear infinite;
}

.kavach-auth:not(.kavach-animation-off) .kavach-node {
	animation: kavach-float var(--kavach-float-speed) ease-in-out infinite alternate;
}

.kavach-auth:not(.kavach-animation-off) .kavach-core {
	animation: kavach-core-pulse 4.8s ease-in-out infinite;
}

.kavach-auth:not(.kavach-animation-off) .kavach-dna {
	animation: kavach-dna-flow 8s linear infinite;
}

.kavach-auth:not(.kavach-animation-off) .kavach-med-cross {
	animation: kavach-med-drift 7s ease-in-out infinite alternate;
}

.kavach-auth:not(.kavach-animation-off) .kavach-capsule {
	animation: kavach-capsule-drift 9s ease-in-out infinite alternate;
}

@keyframes kavach-orbit-one {
	to { transform: translate(-50%, -50%) rotateX(64deg) rotateZ(378deg); }
}

@keyframes kavach-orbit-two {
	to { transform: translate(-50%, -50%) rotateX(72deg) rotateY(24deg) rotateZ(-378deg); }
}

@keyframes kavach-float {
	to { transform: translate3d(var(--kavach-parallax-x, 0px), var(--kavach-parallax-y, -12px), 80px); }
}

@keyframes kavach-core-pulse {
	0%, 100% { opacity: .48; transform: translate3d(-50%, -50%, -260px) scale(.92); }
	50% { opacity: .78; transform: translate3d(-50%, -50%, -220px) scale(1.08); }
}

@keyframes kavach-dna-flow {
	to { background-position: 0 84px, 14px 105px, 0 84px; }
}

@keyframes kavach-med-drift {
	to { filter: drop-shadow(0 0 28px rgba(78, 220, 190, .42)); transform: translate3d(18px, -26px, 120px) rotate(12deg); }
}

@keyframes kavach-capsule-drift {
	to { filter: drop-shadow(0 0 24px rgba(250, 181, 13, .52)); transform: translate3d(-22px, 26px, 80px) rotate(42deg); }
}

.kavach-screen-copy {
	background: linear-gradient(145deg, rgba(250, 181, 13, .15), rgba(255, 255, 255, .04));
	border: 1px solid rgba(250, 181, 13, .28);
	border-radius: 8px;
	box-shadow: 0 20px 60px rgba(0, 0, 0, .24);
	margin: 0 0 16px;
	padding: 18px;
	text-align: left;
	transform: translateZ(42px);
}

.kavach-screen-copy strong {
	color: #fab50d;
	display: block;
	font-size: 24px;
	line-height: 1.15;
	margin-bottom: 6px;
}

.kavach-screen-copy span {
	color: var(--kavach-text);
	display: block;
	font-size: 14px;
	line-height: 1.5;
}

.login h1 a {
	background-position: center;
	background-repeat: no-repeat;
	margin-top: 40px;
	margin-bottom: 24px;
}

.kavach-role-select select,
.kavach-role-select select.input,
select#knec_user_type {
	background-color: rgba(10, 10, 10, 0.85) !important;
	background-image: linear-gradient(45deg, transparent 50%, var(--kavach-accent) 50%), linear-gradient(135deg, var(--kavach-accent) 50%, transparent 50%) !important;
	background-position: calc(100% - 18px) 50%, calc(100% - 12px) 50% !important;
	background-size: 6px 6px, 6px 6px !important;
	background-repeat: no-repeat !important;
	color: var(--kavach-text) !important;
	border: 1px solid rgba(250, 181, 13, 0.35) !important;
	border-radius: var(--kavach-input-radius) !important;
	padding: 10px 36px 10px 14px !important;
	appearance: none !important;
	-webkit-appearance: none !important;
	-moz-appearance: none !important;
	box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.4) !important;
}

.kavach-role-select select:focus {
	border-color: var(--kavach-accent) !important;
	box-shadow: 0 0 0 2px rgba(250, 181, 13, 0.35) !important;
	outline: none !important;
}

.kavach-role-select select option {
	background-color: #0d0d0d;
	color: var(--kavach-text);
}

.kavach-role-select label {
	color: var(--kavach-text);
}

.login form {
	border: 1px solid rgba(250, 181, 13, .28);
	color: var(--kavach-text);
	margin-top: 0;
	padding: 28px;
	position: relative;
	transform: translateZ(34px);
	transform-style: preserve-3d;
}

.login form:before {
	background: linear-gradient(90deg, transparent, rgba(250, 181, 13, .72), transparent);
	content: "";
	height: 1px;
	left: 18px;
	position: absolute;
	right: 18px;
	top: 0;
}

.login label,
.login #backtoblog a,
.login #nav a,
.login .privacy-policy-page-link a {
	color: var(--kavach-text);
}

.login form .input,
.login input[type="text"],
.login input[type="password"],
.login input[type="email"] {
	background: rgba(255, 255, 255, .94);
	border: 1px solid rgba(250, 181, 13, .38);
	border-radius: var(--kavach-input-radius);
	box-shadow: none;
	color: #000000;
	min-height: 44px;
	transform: translateZ(16px);
	transition: border-color .18s ease, box-shadow .18s ease, transform .18s ease, background .18s ease;
}

.login form .input:focus,
.login input[type="text"]:focus,
.login input[type="password"]:focus,
.login input[type="email"]:focus {
	background: #ffffff;
	border-color: var(--kavach-accent);
	box-shadow: 0 0 0 1px var(--kavach-accent), 0 18px 30px rgba(250, 181, 13, .14);
	transform: translateZ(34px) scale(1.015);
}

.wp-core-ui .button-primary {
	background: var(--kavach-accent);
	border-color: var(--kavach-accent);
	border-radius: 6px;
	box-shadow: 0 10px 24px rgba(250, 181, 13, .22);
	color: var(--kavach-button-text);
	font-weight: 700;
	min-height: 40px;
	overflow: hidden;
	position: relative;
	transform: translateZ(30px);
	transition: transform .2s ease, box-shadow .2s ease, background .2s ease;
	text-shadow: none;
}

.wp-core-ui .button-primary:hover,
.wp-core-ui .button-primary:focus {
	background: #ffd15c;
	border-color: #ffd15c;
	color: #000000;
	box-shadow: 0 18px 36px rgba(250, 181, 13, .34);
	transform: translateZ(46px) translateY(-1px);
}

.wp-core-ui .button-primary:after {
	background: linear-gradient(90deg, transparent, rgba(255,255,255,.72), transparent);
	content: "";
	inset: 0;
	position: absolute;
	transform: translateX(-120%);
}

.kavach-auth-submitting .wp-core-ui .button-primary:after {
	animation: kavach-button-scan .82s ease-in-out infinite;
}

.kavach-auth-submitting #login {
	animation: knec-warp .72s ease-in-out infinite alternate;
}

@keyframes kavach-button-scan {
	to { transform: translateX(120%); }
}

@keyframes knec-warp {
	to { filter: drop-shadow(0 0 34px rgba(250, 181, 13, .38)); transform: rotateX(0deg) rotateY(0deg) translateZ(24px) scale(1.012); }
}

.kavach-2fa-choice {
	background: linear-gradient(145deg, rgba(78, 220, 190, .1), rgba(250, 181, 13, .12));
	border: 1px solid rgba(250, 181, 13, .26);
	border-radius: 8px;
	margin: 0 0 18px;
	padding: 14px;
	transform: translateZ(28px);
}

.kavach-2fa-choice strong,
.kavach-2fa-choice span {
	display: block;
}

.kavach-2fa-choice strong {
	color: #fab50d;
	font-size: 13px;
	text-transform: uppercase;
}

.kavach-2fa-choice span {
	color: var(--kavach-text);
	font-size: 12px;
	line-height: 1.45;
}

.kavach-2fa-options {
	display: grid;
	gap: 8px;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	margin-top: 12px;
}

.kavach-2fa-options label {
	align-items: center;
	background: rgba(0, 0, 0, .28);
	border: 1px solid rgba(250, 181, 13, .24);
	border-radius: 7px;
	display: flex;
	gap: 6px;
	justify-content: center;
	min-height: 36px;
	padding: 6px;
	transition: border-color .18s ease, transform .18s ease, background .18s ease;
}

.kavach-2fa-options label:has(input:checked),
.kavach-2fa-options label:hover {
	background: rgba(250, 181, 13, .16);
	border-color: rgba(250, 181, 13, .7);
	transform: translateY(-1px);
}

.login .message,
.login .notice,
.login #login_error {
	background: rgba(255, 255, 255, .94);
	border-left-color: var(--kavach-accent);
	border-radius: 6px;
	color: #111111;
}

.login #nav,
.login #backtoblog,
.login .privacy-policy-page-link {
	text-align: center;
}

.kavach-totp-setup {
	background: rgba(0, 0, 0, .26);
	border: 1px solid rgba(250, 181, 13, .24);
	border-radius: 8px;
	margin: 0 0 16px;
	padding: 14px;
	text-align: center;
}

.kavach-totp-setup p {
	margin: 0 0 10px;
}

.kavach-totp-setup img {
	display: block;
	margin: 8px auto 10px;
}

.kavach-totp-setup code {
	background: rgba(255, 255, 255, .12);
	border-radius: 4px;
	display: inline-block;
	font-size: 13px;
	letter-spacing: 1px;
	margin-top: 4px;
	padding: 4px 6px;
	word-break: break-all;
}

.kavach-lostpassword-disabled #nav a[href*="lostpassword"],
.kavach-lostpassword-disabled #nav a[href="#"] {
	display: none;
}

.kavach-style-glass_depth .login form {
	background: rgba(255, 255, 255, .08) !important;
}

.kavach-style-minimal_secure .kavach-auth-scene {
	opacity: .35;
}

.kavach-fields-outlined .login form .input,
.kavach-fields-outlined .login input[type="text"],
.kavach-fields-outlined .login input[type="password"] {
	background: rgba(0, 0, 0, .28);
	color: var(--kavach-text);
}

.kavach-fields-solid .login form .input,
.kavach-fields-solid .login input[type="text"],
.kavach-fields-solid .login input[type="password"] {
	background: #ffffff;
	border-color: transparent;
}

@media (max-width: 720px) {
	body.login {
		perspective: none;
	}

	#login {
		transform: none;
	}

	.kavach-screen-copy strong {
		font-size: 21px;
	}

	.kavach-dna,
	.kavach-capsule,
	.kavach-med-cross {
		opacity: .24;
	}

	.kavach-2fa-options {
		grid-template-columns: 1fr;
	}
}

/* v1.4.1 — Reorder login: logo overlaps form, warnings/nav below the box */
#login {
	display: flex;
	flex-direction: column;
}

#login h1 {
	order: 1;
	position: relative;
	z-index: 5;
	margin-bottom: -32px; /* overlap the top of the form box */
	pointer-events: none;
}
#login h1 a { pointer-events: auto; }

#login form,
.login form#loginform,
.login form#registerform,
.login form#lostpasswordform,
.login form#resetpassform { order: 2; }

#login .message,
#login #login_error,
#login .notice,
.login .message,
.login #login_error { order: 3; margin-top: 16px; }

#login #nav, #login #backtoblog,
.login #nav, .login #backtoblog { order: 4; }

/* Hide WordPress.com / Jetpack SSO safe-mode notice */
#login .message:has(a[href*="wordpress.com"]),
#login .message:has(a[href*="jetpack"]),
.jetpack-sso-msg,
#login .message.jetpack-sso-msg { display: none !important; }

/* ==============================================================
   KNEC Two-Factor Authentication (2FA) Themed Challenge Screen
   ============================================================== */
.login-action-knec_2fa #login {
	max-width: 440px;
}

.login-action-knec_2fa #login form#loginform {
	background: rgba(15, 17, 23, 0.94) !important;
	border: 1px solid rgba(250, 181, 13, 0.35) !important;
	box-shadow: 0 24px 60px rgba(0, 0, 0, 0.65), 0 0 30px rgba(250, 181, 13, 0.15) !important;
	border-radius: 14px !important;
	padding: 32px 28px !important;
	position: relative;
	overflow: hidden;
}

.login-action-knec_2fa #login form#loginform::before {
	content: '';
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	height: 3px;
	background: linear-gradient(90deg, #fab50d, #ffdd77, #fab50d);
}

.kavach-otp-input-wrap input#knec_2fa_code {
	background: rgba(8, 10, 15, 0.85) !important;
	border: 1.5px solid rgba(250, 181, 13, 0.4) !important;
	color: #ffffff !important;
	text-align: center !important;
	font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace !important;
	font-size: 26px !important;
	font-weight: 700 !important;
	letter-spacing: 10px !important;
	padding: 12px 14px !important;
	border-radius: 10px !important;
	box-shadow: inset 0 2px 8px rgba(0, 0, 0, 0.5) !important;
	transition: all 0.2s ease !important;
}

.kavach-otp-input-wrap input#knec_2fa_code:focus {
	border-color: #fab50d !important;
	box-shadow: 0 0 0 3px rgba(250, 181, 13, 0.25), inset 0 2px 8px rgba(0, 0, 0, 0.5) !important;
	outline: none !important;
}

.login-action-knec_2fa #login .submit button[type="submit"] {
	background: linear-gradient(135deg, #fab50d 0%, #d49506 100%) !important;
	border: none !important;
	border-radius: 8px !important;
	color: #0b0e14 !important;
	font-weight: 700 !important;
	font-size: 15px !important;
	padding: 12px !important;
	box-shadow: 0 6px 18px rgba(250, 181, 13, 0.35) !important;
	cursor: pointer !important;
	transition: all 0.2s ease !important;
}

.login-action-knec_2fa #login .submit button[type="submit"]:hover {
	background: linear-gradient(135deg, #ffc42e 0%, #fab50d 100%) !important;
	box-shadow: 0 8px 24px rgba(250, 181, 13, 0.5) !important;
	transform: translateY(-1px);
}

.login-action-knec_2fa .kavach-2fa-resend button {
	background: rgba(255, 255, 255, 0.05) !important;
	border: 1px solid rgba(255, 255, 255, 0.15) !important;
	border-radius: 6px !important;
	color: #e5e7eb !important;
	padding: 8px 14px !important;
	font-size: 13px !important;
	transition: all 0.15s ease !important;
}

.login-action-knec_2fa .kavach-2fa-resend button:hover {
	background: rgba(250, 181, 13, 0.15) !important;
	border-color: rgba(250, 181, 13, 0.4) !important;
	color: #fab50d !important;
}

.login-action-knec_2fa .kavach-2fa-switch button {
	color: #9ca3af !important;
	font-size: 12.5px !important;
	transition: color 0.15s ease !important;
}

.login-action-knec_2fa .kavach-2fa-switch button:hover {
	color: #fab50d !important;
}

.login-action-knec_2fa .kavach-2fa-back a {
	color: #9ca3af !important;
	text-decoration: none !important;
	font-size: 13px !important;
	transition: color 0.15s ease !important;
}

.login-action-knec_2fa .kavach-2fa-back a:hover {
	color: #fab50d !important;
}
