/* ==========================================================================
   Inventiv Labs WordPress Admin Theme – login
   Layouts: split panel · centered card · full image
   ========================================================================== */

:root {
	--nsl-font: "Plus Jakarta Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
	--nsl-primary: #ff6a13;
	--nsl-primary-rgb: 255, 106, 19;
	--nsl-bg: #f7f5f2;
	--nsl-panel: #10302b;
	--nsl-g1: #ff6a13;
	--nsl-g2: #ffb36b;
	--nsl-g3: #7cc6b8;
	--nsl-logo-w: 160px;
	--nsl-logo-h: 48px;
	--nsl-image: linear-gradient(135deg, var(--nsl-g1), var(--nsl-g2) 55%, var(--nsl-g3));
	--nsl-heading: #0a2540;
	--nsl-text: #30313d;
	--nsl-muted: #6a7383;
	--nsl-border: #e0e3e8;
	--nsl-aside-w: min(46vw, 760px);
}

body.nsa-login {
	background: var(--nsl-bg);
	color: var(--nsl-text);
	font-family: var(--nsl-font);
	-webkit-font-smoothing: antialiased;
	min-height: 100vh;
	height: auto;
}
.nsa-login input, .nsa-login button, .nsa-login select, .nsa-login label { font-family: var(--nsl-font); }

.nsa-login #login {
	position: relative; z-index: 2;
	width: 400px; max-width: calc(100% - 40px);
	margin: 0 auto; padding: max(48px, 12vh) 0 0;
}

/* ---------- Logo ---------- */
.nsa-login h1 { text-align: left; }
.nsa-login h1 a {
	width: var(--nsl-logo-w); height: var(--nsl-logo-h); max-width: 100%;
	background-size: contain; background-position: left center; margin: 0 0 32px;
}
.nsa-no-logo h1 a {
	background: none !important; text-indent: 0; width: auto; height: auto; overflow: visible;
	display: inline-flex; align-items: center; gap: 10px;
	font-size: 17px; font-weight: 600; letter-spacing: -.01em; color: var(--nsl-heading);
}
.nsa-no-logo h1 a::before {
	content: ""; width: 34px; height: 34px; border-radius: 11px 11px 11px 4px; flex: 0 0 auto;
	background: linear-gradient(135deg, var(--nsl-g1), var(--nsl-g2));
	box-shadow: inset 0 -4px 0 rgba(0, 0, 0, .12);
}
.nsa-login h1 a:focus { box-shadow: 0 0 0 3px rgba(var(--nsl-primary-rgb), .3); border-radius: 8px; }

/* ---------- Heading ---------- */
.nsa-heading h2 {
	font-size: 22px; line-height: 1.15; font-weight: 600; letter-spacing: -.01em;
	color: var(--nsl-heading); margin: 0 0 10px;
}
.nsa-heading p { font-size: 13.5px; line-height: 1.55; color: var(--nsl-muted); margin: 0 0 30px; }

/* ---------- Form ---------- */
.nsa-login form,
.nsa-login #loginform, .nsa-login #lostpasswordform, .nsa-login #registerform, .nsa-login #resetpassform {
	background: transparent; border: 0; box-shadow: none; padding: 0; margin: 0; overflow: visible;
}
.nsa-login form p { margin-bottom: 0; }
.nsa-login label { font-size: 13px; font-weight: 500; color: var(--nsl-text); line-height: 1.5; margin-bottom: 6px; }
.nsa-login form .input,
.nsa-login input[type=text],
.nsa-login input[type=email],
.nsa-login input[type=password] {
	font-size: 13.5px; line-height: 1.4; min-height: 42px; padding: 9px 12px; margin: 2px 0 20px;
	border: 1px solid var(--nsl-border); border-radius: 10px; background: #fff; color: var(--nsl-heading);
	box-shadow: 0 1px 2px rgba(16, 24, 40, .04); transition: border-color .15s, box-shadow .15s;
}
.nsa-login form .input:hover, .nsa-login input[type=text]:hover, .nsa-login input[type=password]:hover { border-color: #c9ced6; }
.nsa-login form .input:focus,
.nsa-login input[type=text]:focus,
.nsa-login input[type=email]:focus,
.nsa-login input[type=password]:focus {
	border-color: var(--nsl-primary); outline: none;
	box-shadow: 0 0 0 4px rgba(var(--nsl-primary-rgb), .15), 0 1px 2px rgba(16, 24, 40, .04);
}

/* Password field + show/hide button */
.nsa-login .wp-pwd { position: relative; }
.nsa-login .wp-pwd input { padding-right: 52px; }
.nsa-login .button.wp-hide-pw {
	top: 4px; right: 3px; width: 36px; min-width: 36px; height: 36px; border: 0; border-radius: 8px;
	background: transparent; color: var(--nsl-muted); box-shadow: none;
}
.nsa-login .button.wp-hide-pw:hover { background: #f3f4f6; color: var(--nsl-heading); }
.nsa-login .button.wp-hide-pw:focus { box-shadow: 0 0 0 3px rgba(var(--nsl-primary-rgb), .25); border: 0; background: transparent; }
.nsa-login .button.wp-hide-pw .dashicons { top: 0; width: 20px; height: 20px; font-size: 20px; color: inherit; }

/* Remember me */
.nsa-login .forgetmenot { float: none; display: flex; align-items: center; margin: 0 0 22px; }
.nsa-login .forgetmenot label { font-weight: 500; color: var(--nsl-muted); margin: 0; display: inline-flex; align-items: center; gap: 4px; }
.nsa-login input[type=checkbox] {
	width: 18px; height: 18px; border-radius: 5px; border: 1px solid #c9ced6; box-shadow: none; margin: 0 8px 0 0;
}
.nsa-login input[type=checkbox]:checked { background: var(--nsl-primary); border-color: var(--nsl-primary); }
.nsa-login input[type=checkbox]:checked::before {
	content: url("data:image/svg+xml;utf8,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2020%2020%27%3E%3Cpath%20d%3D%27M14.83%204.89l1.34.94-5.81%208.38H9.02L5.78%209.67l1.34-1.25%202.57%202.4z%27%20fill%3D%27%23ffffff%27%2F%3E%3C%2Fsvg%3E");
	margin: -2px 0 0 -2px; width: 20px; height: 20px;
}
.nsa-login input[type=checkbox]:focus { box-shadow: 0 0 0 3px rgba(var(--nsl-primary-rgb), .25); border-color: var(--nsl-primary); }

/* Submit */
.nsa-login .submit { clear: both; }
body.nsa-login .button.button-primary,
body.nsa-login #wp-submit {
	float: none; display: block; width: 100%; min-height: 44px; padding: 0 20px;
	font-size: 13.5px; font-weight: 500; letter-spacing: .01em; line-height: 44px;
	color: #fff; background: var(--nsl-primary); border: 0; border-radius: 10px; text-shadow: none;
	box-shadow: 0 1px 2px rgba(16, 24, 40, .12), 0 10px 22px -10px rgba(var(--nsl-primary-rgb), .85), inset 0 1px 0 rgba(255, 255, 255, .15);
	transition: transform .15s ease, filter .15s ease, box-shadow .15s ease;
}
body.nsa-login .button.button-primary:hover,
body.nsa-login #wp-submit:hover { background: var(--nsl-primary); color: #fff; filter: brightness(.94); transform: translateY(-1px); }
body.nsa-login .button.button-primary:active { transform: translateY(0); filter: brightness(.9); }
body.nsa-login .button.button-primary:focus {
	background: var(--nsl-primary); color: #fff; outline: none;
	box-shadow: 0 0 0 4px rgba(var(--nsl-primary-rgb), .3);
}
.nsa-login .button.button-secondary { border-radius: 10px; min-height: 40px; }
.nsa-login #pass-strength-result { border-radius: 8px; margin: -10px 0 18px; width: 100%; box-sizing: border-box; }
.nsa-login .pw-weak { margin-bottom: 16px; }

/* Messages */
.nsa-login #login_error,
.nsa-login .message,
.nsa-login .notice,
.nsa-login .success {
	margin: 0 0 22px; padding: 12px 16px; font-size: 13px; line-height: 1.5;
	border: 1px solid rgba(var(--nsl-primary-rgb), .22); border-left: 4px solid var(--nsl-primary);
	border-radius: 12px; background: rgba(var(--nsl-primary-rgb), .06); box-shadow: none; color: var(--nsl-text);
}
.nsa-login #login_error, .nsa-login .notice-error {
	border-color: #fecdca; border-left-color: #f04438; background: #fef3f2; color: #912018;
}
.nsa-login #login_error a { color: #912018; font-weight: 500; }
.nsa-login .success, .nsa-login .notice-success { border-color: #abefc6; border-left-color: #12b76a; background: #ecfdf3; color: #05603a; }

/* Links under the form */
.nsa-login #nav,
.nsa-login #backtoblog { margin: 20px 0 0; padding: 0; text-align: center; font-size: 13px; color: var(--nsl-muted); }
.nsa-login #nav a { color: var(--nsl-primary); font-weight: 500; text-decoration: none; }
.nsa-login #nav a:hover { text-decoration: underline; color: var(--nsl-primary); }
.nsa-login #backtoblog { margin-top: 10px; }
.nsa-login #backtoblog a { color: var(--nsl-muted); text-decoration: none; }
.nsa-login #backtoblog a:hover { color: var(--nsl-heading); }
.nsa-login #nav a:focus, .nsa-login #backtoblog a:focus { box-shadow: 0 0 0 3px rgba(var(--nsl-primary-rgb), .25); border-radius: 4px; }
.nsa-login .privacy-policy-page-link { margin: 18px 0 0; text-align: center; }
.nsa-login .privacy-policy-page-link a { color: var(--nsl-muted); }

.nsa-login .language-switcher { position: relative; z-index: 2; margin: 24px auto 0; }
.nsa-login .language-switcher select { border-radius: 10px; border-color: var(--nsl-border); min-height: 38px; }
.nsa-login .language-switcher .button { border-radius: 10px; min-height: 38px; }

.nsa-login-foot {
	position: relative; z-index: 2; display: flex; justify-content: center; flex-wrap: wrap; gap: 8px 18px;
	max-width: 400px; margin: 36px auto 40px; padding: 0 20px; font-size: 12px; color: var(--nsl-muted); text-align: center;
}
.nsa-secure { display: inline-flex; align-items: center; gap: 4px; }
.nsa-secure .dashicons { font-size: 14px; width: 14px; height: 14px; }

/* ==========================================================================
   Layout: split panel
   ========================================================================== */
.nsa-layout-split { background: #fff; padding-left: var(--nsl-aside-w); box-sizing: border-box; }

.nsa-aside {
	position: fixed; top: 0; left: 0; bottom: 0; width: var(--nsl-aside-w); box-sizing: border-box;
	display: flex; flex-direction: column; padding: 44px clamp(32px, 4.5vw, 72px);
	background-color: var(--nsl-panel); color: #fff; overflow: hidden; z-index: 1;
}
.nsa-has-image .nsa-aside {
	background:
		linear-gradient(180deg, color-mix(in srgb, var(--nsl-panel) 40%, transparent) 0%, var(--nsl-panel) 92%),
		var(--nsl-image) center / cover no-repeat;
}
.nsa-aside-glow {
	position: absolute; inset: -10%; pointer-events: none;
	background:
		radial-gradient(50% 42% at 92% 96%, color-mix(in srgb, var(--nsl-g1) 85%, transparent), transparent 70%),
		radial-gradient(42% 38% at 4% 100%, color-mix(in srgb, var(--nsl-g3) 70%, transparent), transparent 70%),
		radial-gradient(36% 30% at 88% 6%, color-mix(in srgb, var(--nsl-g2) 40%, transparent), transparent 70%);
	filter: blur(20px);
	animation: nslDrift 18s ease-in-out infinite alternate;
}
.nsa-has-image .nsa-aside-glow { opacity: .55; }
.nsa-aside::after {
	content: ""; position: absolute; inset: 0; pointer-events: none;
	background-image:
		linear-gradient(rgba(255, 255, 255, .06) 1px, transparent 1px),
		linear-gradient(90deg, rgba(255, 255, 255, .06) 1px, transparent 1px);
	background-size: 48px 48px;
	-webkit-mask-image: radial-gradient(ellipse 80% 60% at 30% 30%, #000 10%, transparent 75%);
	mask-image: radial-gradient(ellipse 80% 60% at 30% 30%, #000 10%, transparent 75%);
}
.nsa-aside > * { position: relative; z-index: 1; }
.nsa-aside > .nsa-aside-glow { position: absolute; z-index: 0; }

.nsa-aside-brand { display: flex; align-items: center; gap: 12px; font-size: 17px; font-weight: 600; letter-spacing: -.01em; }
.nsa-aside-brand .nsa-logo-img { display: block; width: auto; max-width: 220px; }
.nsa-aside .nsa-mark {
	display: inline-flex; align-items: center; justify-content: center; width: 38px; height: 38px;
	border-radius: 12px 12px 12px 4px; background: #fff; color: var(--nsl-panel); font-weight: 800; font-size: 19px;
}

.nsa-aside-body { margin-top: auto; padding-top: 40px; }
.nsa-aside-body h2 {
	font-size: clamp(22px, 2vw, 32px); line-height: 1.1; font-weight: 600; letter-spacing: -.01em;
	color: #fff; margin: 0 0 18px; max-width: 540px;
}
.nsa-aside-body p { font-size: 14px; line-height: 1.6; color: rgba(255, 255, 255, .72); margin: 0; max-width: 470px; }
.nsa-points { list-style: none; margin: 28px 0 0; padding: 0; }
.nsa-points li { display: flex; align-items: center; gap: 12px; margin: 0 0 14px; font-size: 13.5px; color: rgba(255, 255, 255, .92); }
.nsa-check {
	position: relative; flex: 0 0 auto; width: 24px; height: 24px; border-radius: 50%;
	background: rgba(255, 255, 255, .14); box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .18);
}
.nsa-check::after {
	content: ""; position: absolute; left: 8px; top: 6px; width: 5px; height: 9px;
	border: solid #fff; border-width: 0 2px 2px 0; transform: rotate(45deg);
}

/* Decorative glass dashboard */
.nsa-aside-visual { position: relative; height: 190px; margin-top: 40px; }
.nsa-mock {
	position: absolute; left: 0; bottom: 0; width: min(380px, 86%); box-sizing: border-box; padding: 18px;
	border-radius: 18px; background: rgba(255, 255, 255, .09); border: 1px solid rgba(255, 255, 255, .16);
	-webkit-backdrop-filter: blur(16px); backdrop-filter: blur(16px);
	box-shadow: 0 30px 60px -30px rgba(0, 0, 0, .6);
}
.nsa-mock-head { display: flex; gap: 6px; margin-bottom: 14px; }
.nsa-mock-head i { width: 8px; height: 8px; border-radius: 50%; background: rgba(255, 255, 255, .35); }
.nsa-mock-row { display: flex; gap: 10px; margin-bottom: 16px; }
.nsa-mock-row b { height: 8px; border-radius: 4px; background: rgba(255, 255, 255, .7); width: 34%; }
.nsa-mock-row b + b { background: rgba(255, 255, 255, .3); width: 22%; }
.nsa-mock-bars { display: flex; align-items: flex-end; gap: 9px; height: 74px; }
.nsa-mock-bars i { flex: 1; border-radius: 6px 6px 2px 2px; background: linear-gradient(180deg, rgba(255, 255, 255, .9), rgba(255, 255, 255, .25)); }
.nsa-mock-bars i:nth-child(6) { background: linear-gradient(180deg, var(--nsl-g2), var(--nsl-g1)); }
.nsa-mock-small {
	left: auto; right: 4%; bottom: 120px; width: auto; display: flex; align-items: center; gap: 12px; padding: 12px 16px;
	animation: nslFloat 6s ease-in-out infinite;
}
.nsa-mock-dot { width: 32px; height: 32px; border-radius: 50%; background: linear-gradient(135deg, var(--nsl-g1), var(--nsl-g2)); }
.nsa-mock-small b, .nsa-mock-small i { display: block; height: 7px; border-radius: 4px; background: rgba(255, 255, 255, .8); width: 86px; }
.nsa-mock-small i { margin-top: 7px; width: 54px; background: rgba(255, 255, 255, .35); }

.nsa-aside-foot { margin-top: 32px; font-size: 12.5px; color: rgba(255, 255, 255, .55); }

@media (max-height: 760px) { .nsa-aside-visual { display: none; } }
@media (max-width: 960px) {
	.nsa-layout-split { padding-left: 0; background: var(--nsl-bg); }
	.nsa-aside { display: none; }
}

/* ==========================================================================
   Layout: centered card
   ========================================================================== */
.nsa-layout-centered { overflow-x: hidden; }
.nsa-stripes {
	position: absolute; left: 0; right: 0; top: -220px; height: 620px; z-index: 0; overflow: hidden;
	background: linear-gradient(150deg, var(--nsl-g1) 15%, var(--nsl-g2) 62%, var(--nsl-g3) 95%);
	transform: skewY(-12deg); transform-origin: 0;
}
.nsa-stripes span { position: absolute; height: 190px; }
.nsa-stripes span:nth-child(1) { width: 33.3%; left: -16.6%; bottom: 380px; background: rgba(255, 255, 255, .1); }
.nsa-stripes span:nth-child(2) { width: 33.3%; left: 16.6%; bottom: 190px; background: rgba(255, 255, 255, .14); }
.nsa-stripes span:nth-child(3) { width: 33.3%; right: 0; bottom: 190px; background: color-mix(in srgb, var(--nsl-g3) 55%, transparent); }
.nsa-stripes span:nth-child(4) { width: 33.3%; left: 0; bottom: 0; background: color-mix(in srgb, var(--nsl-g1) 55%, transparent); }
.nsa-stripes span:nth-child(5) { width: 33.3%; right: -16.6%; bottom: 0; background: rgba(255, 255, 255, .12); }

.nsa-layout-centered #login {
	width: 448px; box-sizing: border-box; margin-top: calc(10vh + var(--nsl-logo-h) + 32px); padding: 44px 48px 34px;
	background: #fff; border-radius: 16px;
	box-shadow: 0 15px 35px rgba(50, 50, 93, .1), 0 5px 15px rgba(0, 0, 0, .07);
}
.nsa-layout-centered #login h1 { position: absolute; left: 4px; bottom: 100%; margin-bottom: 26px; }
.nsa-layout-centered #login h1 a { margin: 0; }
.nsa-layout-centered.nsa-no-logo h1 a { color: #fff; }
.nsa-layout-centered.nsa-no-logo h1 a::before { background: #fff; }
.nsa-layout-centered .nsa-heading h2 { font-size: 20px; }
.nsa-layout-centered .nsa-heading p { margin-bottom: 26px; }
.nsa-layout-centered #nav { border-top: 1px solid #edf0f4; margin-top: 28px; padding-top: 22px; }
@media (max-width: 520px) {
	.nsa-layout-centered #login { padding: 32px 24px 26px; }
}

/* ==========================================================================
   Layout: full image with glass card
   ========================================================================== */
.nsa-image-bg {
	position: fixed; inset: 0; z-index: 0;
	background: var(--nsl-image) center / cover no-repeat;
}
.nsa-image-bg::after {
	content: ""; position: absolute; inset: 0;
	background: linear-gradient(180deg, rgba(0, 0, 0, .05), rgba(0, 0, 0, .35));
}
.nsa-layout-image #login {
	width: 440px; box-sizing: border-box; margin-top: 10vh; padding: 40px 44px 32px;
	background: rgba(255, 255, 255, .9); border-radius: 22px;
	-webkit-backdrop-filter: blur(22px) saturate(1.4); backdrop-filter: blur(22px) saturate(1.4);
	box-shadow: 0 30px 70px -30px rgba(0, 0, 0, .55), inset 0 0 0 1px rgba(255, 255, 255, .6);
}
.nsa-layout-image .nsa-login-foot,
.nsa-layout-image .nsa-login-foot .nsa-secure { color: rgba(255, 255, 255, .85); }
.nsa-layout-image .language-switcher label .dashicons { color: #fff; }
@media (max-width: 520px) {
	.nsa-layout-image #login { padding: 30px 24px 26px; }
}

/* Re-auth modal inside wp-admin: keep it plain */
.interim-login.nsa-login { padding-left: 0; background: #fff; }
.interim-login .nsa-aside, .interim-login .nsa-stripes, .interim-login .nsa-image-bg, .interim-login .nsa-login-foot { display: none; }
.interim-login.nsa-login #login { margin-top: 0; padding: 24px; box-shadow: none; background: #fff; }
.interim-login.nsa-login #login h1 { position: static; }

@keyframes nslDrift { from { transform: translate3d(0, 0, 0) scale(1); } to { transform: translate3d(-3%, -4%, 0) scale(1.08); } }
@keyframes nslFloat { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-8px); } }
@media (prefers-reduced-motion: reduce) { .nsa-aside-glow, .nsa-mock-small { animation: none; } }

/* ==========================================================================
   Dark mode (body.nsa-login-dark)
   ========================================================================== */
body.nsa-login-dark {
	color-scheme: dark;
	--nsl-heading: #f5f4ef;
	--nsl-text: #dedcd4;
	--nsl-muted: #a29f95;
	--nsl-border: #3e3d39;
	--nsl-field: #1f1e1c;
	--nsl-card: #302f2c;
	background: var(--nsl-bg);
}
.nsa-login-dark form .input,
.nsa-login-dark input[type=text],
.nsa-login-dark input[type=email],
.nsa-login-dark input[type=password],
.nsa-login-dark input[type=checkbox] { background: var(--nsl-field); color: var(--nsl-heading); box-shadow: none; }
.nsa-login-dark form .input:hover, .nsa-login-dark input[type=text]:hover, .nsa-login-dark input[type=password]:hover { border-color: #4d4c47; }
.nsa-login-dark input[type=checkbox]:checked { background: var(--nsl-primary); }
.nsa-login-dark .button.wp-hide-pw:hover { background: rgba(255, 255, 255, .06); color: var(--nsl-heading); }
.nsa-login-dark #nav a { color: var(--nsl-primary); }
.nsa-login-dark #backtoblog a:hover { color: var(--nsl-heading); }
.nsa-login-dark .message, .nsa-login-dark .notice, .nsa-login-dark .success { background: rgba(var(--nsl-primary-rgb), .1); color: var(--nsl-text); }
.nsa-login-dark #login_error, .nsa-login-dark .notice-error { background: rgba(240, 68, 56, .12); border-color: rgba(240, 68, 56, .3); border-left-color: #ef5b4f; color: #f7b4ae; }
.nsa-login-dark #login_error a { color: #f7b4ae; }
.nsa-login-dark .success, .nsa-login-dark .notice-success { background: rgba(63, 185, 122, .12); border-color: rgba(63, 185, 122, .3); color: #8fe0b4; }
.nsa-login-dark .language-switcher select { background-color: var(--nsl-field); color: var(--nsl-text); }
.nsa-login-dark.nsa-no-logo h1 a { color: var(--nsl-heading); }

.nsa-login-dark.nsa-layout-split { background: var(--nsl-bg); }
.nsa-login-dark .nsa-aside { box-shadow: inset -1px 0 0 rgba(255, 255, 255, .05); }

.nsa-login-dark.nsa-layout-centered #login { background: var(--nsl-card); box-shadow: 0 0 0 1px rgba(255, 255, 255, .05), 0 24px 60px -20px rgba(0, 0, 0, .6); }
.nsa-login-dark.nsa-layout-centered #nav { border-top-color: var(--nsl-border); }
.nsa-login-dark .nsa-stripes { opacity: .9; }

.nsa-login-dark.nsa-layout-image #login { background: rgba(38, 38, 36, .82); box-shadow: 0 30px 70px -30px rgba(0, 0, 0, .7), inset 0 0 0 1px rgba(255, 255, 255, .08); }
.nsa-login-dark.interim-login.nsa-login, .nsa-login-dark.interim-login.nsa-login #login { background: var(--nsl-bg); }
