/* NexSecure login — bold gradient + floating glass card (scoped to login page) */
body[data-path="login"] {
	background: linear-gradient(135deg, #020617 0%, #0F172A 45%, #1E1B4B 80%, #020617 100%);
	background-attachment: fixed;
	min-height: 100vh;
}
body[data-path="login"] .navbar,
body[data-path="login"] .web-footer,
body[data-path="login"] footer,
body[data-path="login"] .footer-powered {
	display: none !important;
}
body[data-path="login"] .page_content,
body[data-path="login"] .content {
	padding: 0 !important;
	margin: 0 !important;
	max-width: none !important;
}

.ns-login {
	min-height: 100vh;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	position: relative;
	overflow: hidden;
	padding: 20px 16px 12px;
}
.ns-orb {
	position: absolute;
	border-radius: 50%;
	filter: blur(90px);
	opacity: 0.5;
	pointer-events: none;
}
.ns-orb-a {
	width: 480px; height: 480px;
	background: radial-gradient(circle, rgba(99,102,241,0.5), transparent 70%);
	top: -140px; right: -120px;
	animation: ns-float 11s ease-in-out infinite;
}
.ns-orb-b {
	width: 520px; height: 520px;
	background: radial-gradient(circle, rgba(14,165,233,0.38), transparent 70%);
	bottom: -180px; left: -140px;
	animation: ns-float 13s ease-in-out infinite reverse;
}
@keyframes ns-float {
	0%, 100% { transform: translateY(0) scale(1); }
	50% { transform: translateY(28px) scale(1.06); }
}

.ns-login-card {
	display: flex;
	width: min(920px, 100%);
	border-radius: 22px;
	overflow: hidden;
	background: rgba(15, 23, 42, 0.66);
	border: 1px solid rgba(99, 102, 241, 0.28);
	box-shadow: 0 30px 80px rgba(0, 0, 0, 0.6);
	backdrop-filter: blur(18px);
	-webkit-backdrop-filter: blur(18px);
	animation: ns-rise 0.7s cubic-bezier(0.22, 1, 0.36, 1);
}
@keyframes ns-rise {
	from { opacity: 0; transform: translateY(26px); }
	to { opacity: 1; transform: translateY(0); }
}

/* hero panel */
.ns-hero {
	flex: 0 0 380px;
	background:
		linear-gradient(160deg, rgba(2, 6, 23, 0.78), rgba(30, 27, 75, 0.66)),
		url("/assets/nexsecure_erp/images/login-hero-bg.png") center / cover no-repeat;
	padding: 28px 38px;
	display: flex;
	flex-direction: column;
	color: #E2E8F0;
	border-right: 1px solid rgba(255, 255, 255, 0.08);
}
.ns-hero-logo { width: 148px; height: auto; margin-bottom: 14px; }
.ns-hero-brand {
	font-size: 12.5px; font-weight: 700; letter-spacing: 2.5px;
	text-transform: uppercase; color: #A5B4FC; margin-bottom: 8px;
}
.ns-hero-title {
	font-size: 26px; font-weight: 700; letter-spacing: 0.3px;
	color: #fff; margin: 0 0 8px;
}
.ns-hero-tag { font-size: 13px; line-height: 1.45; color: rgba(226, 232, 240, 0.8); margin-bottom: 12px; }
.ns-hero-points { list-style: none; padding: 0; margin: 0 0 10px; }
.ns-hero-points li {
	font-size: 13px; color: rgba(226, 232, 240, 0.9);
	padding: 4px 0 4px 24px; position: relative;
}
.ns-hero-points li::before {
	content: "";
	position: absolute; left: 0; top: 12px;
	width: 14px; height: 8px;
	border-left: 2px solid #6366F1;
	border-bottom: 2px solid #6366F1;
	transform: rotate(-45deg);
	border-radius: 1px;
}
.ns-hero-foot {
	margin-top: auto; font-size: 12px; letter-spacing: 1.5px;
	color: #818CF8; text-transform: uppercase;
}

/* form panel */
.ns-form {
	flex: 1;
	background: #0F172A;
	padding: 28px 44px;
	display: flex;
	flex-direction: column;
	justify-content: center;
}
.ns-form .page-card { box-shadow: none !important; background: transparent !important; padding: 0 !important; }
.ns-form .page-card-head-text h4 {
	font-size: 22px; font-weight: 700; color: #F8FAFC; letter-spacing: 0.2px;
}
.ns-form .page-card-subtitle { color: #64748B; font-size: 13.5px; }
.ns-form .form-label { font-size: 12px; font-weight: 600; color: #CBD5E1; text-transform: uppercase; letter-spacing: 0.6px; }
.ns-form .form-control {
	height: 46px; border-radius: 6px; border: 1px solid #334155;
	background: #020617; color: #F8FAFC; font-size: 14px; transition: border-color 0.2s, box-shadow 0.2s;
}
.ns-form .form-control::placeholder { color: #64748B; }
.ns-form .form-control:focus {
	border-color: #4F46E5; background: #020617;
	box-shadow: 0 0 0 3px rgba(79, 70, 229, 0.15);
}
.ns-form .btn-login, .ns-form .btn-forgot, .ns-form .btn-signup {
	height: 48px; border-radius: 8px; font-size: 15px; font-weight: 700;
	letter-spacing: 0.5px; border: none; color: #FFFFFF;
	background: linear-gradient(135deg, #6366F1, #4F46E5);
	box-shadow: 0 10px 24px rgba(79, 70, 229, 0.3);
	transition: transform 0.15s, box-shadow 0.15s;
}
.ns-form .btn-login:hover, .ns-form .btn-forgot:hover {
	transform: translateY(-2px);
	box-shadow: 0 14px 30px rgba(79, 70, 229, 0.4);
	background: linear-gradient(135deg, #4F46E5, #4338CA);
}
.ns-form .forgot-password-message a, .ns-form .sign-up-message a { color: #818CF8; font-weight: 600; }
.ns-foot {
	margin-top: 12px;
	text-align: center; font-size: 12px; color: rgba(100, 116, 139, 0.9);
	letter-spacing: 0.4px;
	position: relative;
}

@media (max-width: 860px) {
	.ns-hero-title { font-size: 22px; }
	.ns-hero-tag { display: none; }
	.ns-hero-brand { margin-bottom: 4px; }
	.ns-login-card { flex-direction: column; width: min(440px, 100%); }
	.ns-hero { flex: none; padding: 26px 26px 20px; border-right: none; border-bottom: 1px solid rgba(255,255,255,0.08); }
	.ns-hero-logo { width: 132px; margin-bottom: 12px; }
	.ns-hero-points { display: none; }
	.ns-hero-foot { display: none; }
	.ns-form { padding: 26px 24px; }
}

/* phones: single-screen login */
@media (max-width: 480px) {
	.ns-login { padding: 10px 10px 8px; }
	.ns-login-card { border-radius: 16px; }
	.ns-hero { padding: 16px 20px 14px; }
	.ns-hero-logo { width: 96px; margin-bottom: 8px; }
	.ns-hero-brand { font-size: 10.5px; letter-spacing: 1.8px; margin-bottom: 2px; }
	.ns-hero-title { font-size: 19px; margin-bottom: 0; }
	.ns-form { padding: 20px 20px; }
	.ns-form h2, .ns-form .page-card-head h4 { font-size: 19px !important; margin-bottom: 2px; }
	.ns-form .page-card-head p, .ns-form .text-medium { font-size: 12px !important; }
	.ns-foot { margin-top: 10px; font-size: 11px; }
}

/* kill frappe's page-card min-height so the login fits the viewport */
body[data-path="login"] .page-card,
body[data-path="login"] .page-card-body,
body[data-path="login"] .ns-form {
	min-height: 0 !important;
}
body[data-path="login"] .ns-login-card { height: auto; }

/* bulletproof: form never stretches vertically on any device/browser */
body[data-path="login"] .ns-login {
	min-height: 100vh; min-height: 100dvh;
	box-sizing: border-box;
}
body[data-path="login"] .ns-login-card { align-self: center; }
@media (max-width: 860px) {
	body[data-path="login"] .ns-form { flex: none; }
}

/* frappe wrapper padding double-counts against the 100vh login container */
body[data-path="login"] .page-content-wrapper {
	padding: 0 !important;
	min-height: 0 !important;
}

/* enforce dark inputs/buttons over frappe's login.bundle.css */
body[data-path="login"] .ns-form .form-control,
body[data-path="login"] .for-login .form-control {
	background: #020617 !important;
	color: #F8FAFC !important;
	border: 1px solid #334155 !important;
	border-radius: 6px !important;
}
body[data-path="login"] .ns-form .form-control:focus {
	border-color: #4F46E5 !important;
	box-shadow: 0 0 0 3px rgba(79, 70, 229, 0.15) !important;
}
body[data-path="login"] .ns-form .btn-login {
	background: linear-gradient(135deg, #6366F1, #4F46E5) !important;
	color: #FFFFFF !important;
	border: none !important;
}
body[data-path="login"] .ns-form .btn-login:hover {
	background: linear-gradient(135deg, #4F46E5, #4338CA) !important;
}
body[data-path="login"] .ns-form .btn-login-option,
body[data-path="login"] .ns-form .btn-default.btn-login-option {
	background: #1E293B !important;
	color: #E2E8F0 !important;
	border: 1px solid #334155 !important;
}
body[data-path="login"] .ns-form .btn-login-option:hover {
	background: #334155 !important;
}
body[data-path="login"] .ns-form .toggle-password, body[data-path="login"] .ns-form .field-icon { color: #64748B; }
