/* Self-hosted fonts (SIL OFL): Poppins, Archivo - latin + latin-ext subsets */
@font-face{font-family:'Archivo';font-style:normal;font-weight:400;font-display:swap;src:url(fonts/archivo-latin-ext.woff2) format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF}
@font-face{font-family:'Archivo';font-style:normal;font-weight:400;font-display:swap;src:url(fonts/archivo-latin.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
@font-face{font-family:'Archivo';font-style:normal;font-weight:500;font-display:swap;src:url(fonts/archivo-latin-ext.woff2) format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF}
@font-face{font-family:'Archivo';font-style:normal;font-weight:500;font-display:swap;src:url(fonts/archivo-latin.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
@font-face{font-family:'Archivo';font-style:normal;font-weight:600;font-display:swap;src:url(fonts/archivo-latin-ext.woff2) format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF}
@font-face{font-family:'Archivo';font-style:normal;font-weight:600;font-display:swap;src:url(fonts/archivo-latin.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
@font-face{font-family:'Archivo';font-style:normal;font-weight:700;font-display:swap;src:url(fonts/archivo-latin-ext.woff2) format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF}
@font-face{font-family:'Archivo';font-style:normal;font-weight:700;font-display:swap;src:url(fonts/archivo-latin.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
@font-face{font-family:'Poppins';font-style:normal;font-weight:300;font-display:swap;src:url(fonts/poppins-300-latin-ext.woff2) format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF}
@font-face{font-family:'Poppins';font-style:normal;font-weight:300;font-display:swap;src:url(fonts/poppins-300-latin.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
@font-face{font-family:'Poppins';font-style:normal;font-weight:400;font-display:swap;src:url(fonts/poppins-400-latin-ext.woff2) format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF}
@font-face{font-family:'Poppins';font-style:normal;font-weight:400;font-display:swap;src:url(fonts/poppins-400-latin.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
@font-face{font-family:'Poppins';font-style:normal;font-weight:500;font-display:swap;src:url(fonts/poppins-500-latin-ext.woff2) format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF}
@font-face{font-family:'Poppins';font-style:normal;font-weight:500;font-display:swap;src:url(fonts/poppins-500-latin.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
@font-face{font-family:'Poppins';font-style:normal;font-weight:600;font-display:swap;src:url(fonts/poppins-600-latin-ext.woff2) format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF}
@font-face{font-family:'Poppins';font-style:normal;font-weight:600;font-display:swap;src:url(fonts/poppins-600-latin.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
@font-face{font-family:'Poppins';font-style:normal;font-weight:700;font-display:swap;src:url(fonts/poppins-700-latin-ext.woff2) format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF}
@font-face{font-family:'Poppins';font-style:normal;font-weight:700;font-display:swap;src:url(fonts/poppins-700-latin.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}

/* Modell Módszertani és Képzési Intézmény - EGroupware login (narancs.felnottkepzes.hu), 2026-11-07.
 * Design: Nexux animation/box system (FH THEM -ANIMACIO-SPEC.md). Page accent pair: [#4f60fa, #7c5cff].
 * Scoped to #narancsLogin so pixelegg.min.css login rules (#loginMainDiv, #centerBox) do not apply. */

#narancsLogin {
	--bg: #00031c;
	--bg2: #070726;
	--box: #080a26;
	--box2: #06081f;
	--line: #1a1d40;
	--line2: #202568;
	--line3: #2a2d7a;
	--ink: #f4f7ff;
	--muted: #8a90b8;
	--kicker: #a3abff;
	--accA: #4f60fa;
	--accB: #7c5cff;
	--accGrad: linear-gradient(135deg, #4f60fa, #7c5cff);
	--accGrad90: linear-gradient(90deg, #4f60fa, #7c5cff);
	--accSoft: linear-gradient(135deg, #4f60fa1f, #7c5cff0d);
	--accBand: linear-gradient(180deg, #4f60fa14, #7c5cff0a);
	--accNum: linear-gradient(120deg, #ffffff, #7c5cff);
	--danger: #e0556b;
	--ok: #34d399;

	position: fixed;
	inset: 0;
	z-index: 10;
	overflow-x: hidden;
	overflow-y: auto;
	background: var(--bg);
	color: var(--ink);
	font-family: 'Poppins', -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Arial, sans-serif;
	font-size: 15px;
	font-weight: 400;
	line-height: 1.5;
	text-align: left;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
}
#narancsLogin *, #narancsLogin *::before, #narancsLogin *::after { box-sizing: border-box; }
#narancsLogin ::selection { background: #4f60fa; color: #fff; }
#narancsLogin h1, #narancsLogin h2, #narancsLogin h3, #narancsLogin p, #narancsLogin ul { margin: 0; padding: 0; }
#narancsLogin ul { list-style: none; }
#narancsLogin svg { display: block; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }

/* background layer (replaces the spec's background.png) */
#narancsLogin .nl-bgfx {
	position: absolute;
	top: 0; left: 0; right: 0;
	height: 1150px;
	min-height: 100%;
	z-index: 0;
	pointer-events: none;
	background:
		radial-gradient(ellipse 55% 45% at 18% 8%, rgba(79, 96, 250, .22), transparent 70%),
		radial-gradient(ellipse 45% 40% at 88% 22%, rgba(124, 92, 255, .18), transparent 70%),
		radial-gradient(ellipse 50% 40% at 60% 100%, rgba(58, 141, 255, .10), transparent 70%),
		linear-gradient(180deg, var(--bg) 0%, var(--bg2) 60%, var(--bg) 100%);
}
#narancsLogin .nl-bgfx::after {
	content: "";
	position: absolute;
	inset: 0;
	background-image:
		linear-gradient(rgba(163, 171, 255, .045) 1px, transparent 1px),
		linear-gradient(90deg, rgba(163, 171, 255, .045) 1px, transparent 1px);
	background-size: 56px 56px;
	-webkit-mask-image: radial-gradient(ellipse 80% 70% at 40% 30%, #000 30%, transparent 75%);
	mask-image: radial-gradient(ellipse 80% 70% at 40% 30%, #000 30%, transparent 75%);
}

/* skip link + focus (spec §11) */
#narancsLogin .nx-skip {
	position: absolute;
	top: -60px;
	left: 16px;
	z-index: 50;
	padding: 10px 16px;
	border-radius: 10px;
	background: #4f60fa;
	color: #fff;
	font-weight: 600;
	text-decoration: none;
}
#narancsLogin .nx-skip:focus { top: 16px !important; outline: 2px solid #fff; }
#narancsLogin a:focus-visible,
#narancsLogin input:focus-visible,
#narancsLogin button:focus-visible,
#narancsLogin label:focus-visible {
	outline: 2px solid #8a93ff;
	outline-offset: 2px;
	border-radius: 6px;
}

/* ---------- layout ---------- */
#narancsLogin .nl-shell {
	position: relative;
	z-index: 1;
	display: grid;
	grid-template-columns: minmax(0, 1.25fr) minmax(400px, 460px);
	grid-template-areas: "brand auth" "hero auth";
	grid-template-rows: auto 1fr;
	column-gap: clamp(32px, 5vw, 88px);
	max-width: 1360px;
	min-height: calc(100% - 64px);
	margin: 0 auto;
	padding: 40px clamp(24px, 4vw, 56px) 24px;
}
#narancsLogin .nl-brand { grid-area: brand; }
#narancsLogin .nl-hero { grid-area: hero; }
#narancsLogin .nl-auth { grid-area: auth; }

/* ---------- brand row ---------- */
#narancsLogin .nl-brand {
	display: flex;
	align-items: center;
	gap: 14px;
	padding-bottom: 8px;
}
#narancsLogin .nl-mark {
	flex: 0 0 auto;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 46px;
	height: 46px;
	border-radius: 13px;
	background: var(--accGrad);
	box-shadow: 0 10px 30px -10px rgba(79, 96, 250, .8), inset 0 1px 0 rgba(255, 255, 255, .25);
	font-family: 'Archivo', sans-serif;
	font-size: 22px;
	font-weight: 700;
	color: #fff;
}
#narancsLogin .nl-org {
	font-size: 15px;
	font-weight: 600;
	letter-spacing: -.2px;
	color: var(--ink);
}
#narancsLogin .nl-sys { font-size: 12.5px; color: var(--muted); }

/* ---------- hero ---------- */
#narancsLogin .nl-hero {
	position: relative;
	display: flex;
	align-items: center;
	margin: 0 -24px;
	padding: 24px;
	border-radius: 28px;
}
#narancsLogin .nl-hero-inner { position: relative; z-index: 1; width: 100%; padding: 32px 0 24px; }
#narancsLogin .nl-kicker {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	margin-bottom: 16px;
	font-family: 'Archivo', sans-serif;
	font-size: 12px;
	font-weight: 500;
	letter-spacing: 2px;
	text-transform: uppercase;
	color: var(--kicker);
}
#narancsLogin .nl-hero h1 {
	max-width: 720px;
	font-family: 'Archivo', sans-serif;
	font-size: clamp(34px, 3.6vw, 52px);
	font-weight: 700;
	line-height: 1.08;
	letter-spacing: -1px;
	color: var(--ink);
}
#narancsLogin .nl-grad {
	background: linear-gradient(100deg, #a3abff, #7c5cff 45%, #c46ff8);
	-webkit-background-clip: text;
	background-clip: text;
	color: transparent;
}
#narancsLogin .nl-lead {
	max-width: 600px;
	margin-top: 18px;
	font-size: 16px;
	font-weight: 300;
	line-height: 1.65;
	color: #b9bee0;
}

/* stat strip (spec §7) */
#narancsLogin .nl-stats {
	position: relative;
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 18px;
	margin-top: 30px;
	padding: 22px 18px;
	border-radius: 18px;
	background: var(--accBand);
	border: 1px solid var(--line2);
	overflow: hidden;
}
#narancsLogin .nl-stats-line { position: absolute; top: 0; left: 0; width: 100%; height: 3px; background: var(--accGrad90); }
#narancsLogin .nl-stat { text-align: center; }
#narancsLogin .nl-stat-num {
	font-family: 'Archivo', sans-serif;
	font-size: 32px;
	font-weight: 700;
	line-height: 1.1;
	background: var(--accNum);
	-webkit-background-clip: text;
	background-clip: text;
	color: transparent;
}
#narancsLogin .nl-stat-label { margin-top: 6px; font-size: 13px; color: var(--muted); }

/* feature boxes (spec §1) */
#narancsLogin .nl-features {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	align-items: stretch;
	gap: 14px;
	margin-top: 22px;
}
#narancsLogin .nl-feature {
	border-radius: 18px;
	background: linear-gradient(180deg, var(--box), var(--box2));
	border: 1px solid var(--line);
	padding: 20px;
}
#narancsLogin .nl-ico {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 42px;
	height: 42px;
	border-radius: 12px;
	color: #fff;
}
#narancsLogin .nl-ico svg { width: 21px; height: 21px; }
#narancsLogin .nl-feature h3 {
	margin-top: 14px;
	font-size: 16px;
	font-weight: 600;
	letter-spacing: -.3px;
	color: var(--ink);
}
#narancsLogin .nl-feature p { margin-top: 5px; font-size: 13px; line-height: 1.45; color: var(--muted); }

/* ---------- auth card ---------- */
#narancsLogin .nl-auth {
	display: flex;
	align-items: flex-start;
	padding: 46px 0 24px;
}
#narancsLogin .nl-auth .nl-card { position: sticky; top: 24px; }
#narancsLogin .nl-card {
	position: relative;
	width: 100%;
	padding: 32px 34px 26px;
	border-radius: 22px;
	background: linear-gradient(180deg, rgba(10, 12, 44, .92), rgba(6, 8, 31, .96));
	border: 1px solid var(--line3);
	box-shadow: 0 30px 80px -30px rgba(79, 96, 250, .55), 0 0 0 1px rgba(255, 255, 255, .02) inset;
	-webkit-backdrop-filter: blur(14px);
	backdrop-filter: blur(14px);
	overflow: hidden;
}
#narancsLogin .nl-card-line {
	position: absolute;
	top: 0;
	left: 50%;
	transform: translateX(-50%);
	width: 64px;
	height: 3px;
	border-radius: 0 0 3px 3px;
	background: var(--accGrad90);
}
#narancsLogin .nl-kicker-sm { margin-bottom: 10px; font-size: 11px; }
#narancsLogin .nl-lock { width: 14px; height: 14px; color: var(--ok); }
#narancsLogin .nl-card h2 {
	font-family: 'Archivo', sans-serif;
	font-size: 30px;
	font-weight: 700;
	line-height: 1.15;
	letter-spacing: -.6px;
	color: var(--ink);
}
#narancsLogin .nl-card-sub { margin-top: 8px; font-size: 14px; line-height: 1.55; color: var(--muted); }

/* status / error message ({cd}) - overrides pixelegg message box */
#narancsLogin .egw_message_wrapper {
	position: static;
	display: block;
	width: auto;
	min-width: 0;
	max-width: none;
	max-height: none;
	overflow: visible;
	margin: 18px 0 6px;
	padding: 0;
	background: none;
	border: 0;
	box-shadow: none;
}
#narancsLogin #egw_message {
	position: relative;
	display: block;
	width: auto;
	min-width: 0;
	min-height: 0;
	margin: 0;
	padding: 0;
	background: none;
	background-image: none;
	border: 0;
	border-left: 0 !important;
	box-shadow: none;
	font-size: 13.5px;
	font-weight: 400;
	line-height: 1.45;
	color: var(--muted);
	text-align: left;
	white-space: pre-line;
}
#narancsLogin #egw_message.error_message,
#narancsLogin #egw_message.warning_message {
	padding: 11px 38px 11px 14px;
	border-radius: 12px;
	font-weight: 500;
}
#narancsLogin #egw_message.error_message {
	color: #ffb3bf;
	background: rgba(224, 85, 107, .12);
	border: 1px solid rgba(224, 85, 107, .45);
	border-left: 3px solid var(--danger) !important;
}
#narancsLogin #egw_message.warning_message {
	color: #ffd89a;
	background: rgba(255, 184, 77, .10);
	border: 1px solid rgba(255, 184, 77, .4);
	border-left: 3px solid #ffb84d !important;
}
#narancsLogin #egw_message .close { display: none; }
#narancsLogin #egw_message.error_message .close,
#narancsLogin #egw_message.warning_message .close {
	display: block;
	position: absolute;
	top: 50%;
	right: 12px;
	width: 18px;
	height: 18px;
	margin-top: -9px;
	padding: 0;
	cursor: pointer;
	background: none;
	border: 0;
	opacity: .7;
}
#narancsLogin #egw_message .close::before,
#narancsLogin #egw_message .close::after {
	content: "";
	position: absolute;
	top: 8px;
	left: 2px;
	width: 14px;
	height: 2px;
	background: currentColor;
	transform: rotate(45deg);
}
#narancsLogin #egw_message .close::after { transform: rotate(-45deg); }

/* fields */
#narancsLogin .nl-form { margin: 10px 0 0; padding: 0; background: none; }
#narancsLogin .nl-field { margin: 0 0 16px; }
#narancsLogin .nl-field > label {
	display: block;
	margin: 0 0 7px;
	font-size: 13px;
	font-weight: 500;
	color: #c9cdf0;
}
#narancsLogin .nl-field input[type="text"],
#narancsLogin .nl-field input[type="password"],
#narancsLogin .nl-field select {
	display: block;
	width: 100%;
	height: 50px;
	margin: 0;
	padding: 0 16px;
	font-family: inherit;
	font-size: 15px;
	color: var(--ink);
	background: #05071c;
	border: 1px solid var(--line2);
	border-radius: 12px;
	box-shadow: none;
	outline: none;
	transition: border-color .25s ease, box-shadow .25s ease, background-color .25s ease;
	-webkit-appearance: none;
	appearance: none;
}
#narancsLogin .nl-field input:hover,
#narancsLogin .nl-field select:hover { border-color: var(--line3); }
#narancsLogin .nl-field input:focus,
#narancsLogin .nl-field select:focus {
	border-color: #6f7bff;
	background-color: #070a26;
	box-shadow: 0 0 0 4px rgba(79, 96, 250, .22);
	outline: none;
}
#narancsLogin .nl-field input:-webkit-autofill,
#narancsLogin .nl-field input:-webkit-autofill:hover,
#narancsLogin .nl-field input:-webkit-autofill:focus {
	-webkit-text-fill-color: var(--ink);
	caret-color: var(--ink);
	-webkit-box-shadow: 0 0 0 1000px #0b0e33 inset;
	transition: background-color 9999s ease-out 0s;
}
#narancsLogin .nl-field select {
	padding-right: 40px;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%238a90b8' stroke-width='1.6'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right 16px center;
}

/* password visibility toggle (shown only when JS runs) */
#narancsLogin .nl-pw { position: relative; }
#narancsLogin .nl-pw input { padding-right: 52px; }
#narancsLogin .nl-pw-toggle {
	position: absolute;
	top: 5px;
	right: 5px;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 40px;
	margin: 0;
	padding: 0;
	border: 0;
	border-radius: 9px;
	background: transparent;
	color: var(--muted);
	cursor: pointer;
	transition: color .2s ease, background-color .2s ease;
}
#narancsLogin .nl-pw-toggle[hidden] { display: none; }
#narancsLogin .nl-pw-toggle:hover { color: var(--ink); background: rgba(163, 171, 255, .08); }
#narancsLogin .nl-pw-toggle svg { width: 20px; height: 20px; }
#narancsLogin .nl-pw-toggle .nl-eye-off,
#narancsLogin .nl-pw-toggle[aria-pressed="true"] .nl-eye { display: none; }
#narancsLogin .nl-pw-toggle[aria-pressed="true"] .nl-eye-off { display: block; }
#narancsLogin .nl-caps {
	margin-top: 8px;
	font-size: 12.5px;
	font-weight: 500;
	color: #ffd89a;
}
#narancsLogin .nl-caps[hidden] { display: none; }

/* optional 2FA code: behind a toggle unless the server requires it */
#narancsLogin .nl-2fa,
#narancsLogin .nl-2fa.et2_required { margin: -2px 0 14px; background: none; }
#narancsLogin .nl-2fa-toggle { position: absolute; opacity: 0; width: 1px; height: 1px; margin: 0; pointer-events: none; }
#narancsLogin .nl-2fa-link {
	display: inline-block;
	font-size: 13px;
	color: var(--kicker);
	cursor: pointer;
	text-decoration: underline;
	text-decoration-color: rgba(163, 171, 255, .4);
	text-underline-offset: 3px;
}
#narancsLogin .nl-2fa-link:hover { color: #fff; }
#narancsLogin .nl-2fa-toggle:focus-visible + .nl-2fa-link { outline: 2px solid #8a93ff; outline-offset: 2px; border-radius: 4px; }
#narancsLogin .nl-2fa-field { display: none; margin: 12px 0 4px; }
#narancsLogin .nl-2fa-toggle:checked ~ .nl-2fa-field { display: block; }
#narancsLogin .nl-2fa-toggle:checked + .nl-2fa-link { display: none; }
#narancsLogin .nl-2fa.et2_required .nl-2fa-link { display: none; }
#narancsLogin .nl-2fa.et2_required .nl-2fa-field { display: block; margin-top: 0; }

/* remember me */
#narancsLogin .nl-remember {
	display: grid;
	grid-template-columns: auto 1fr;
	align-items: center;
	column-gap: 10px;
	row-gap: 2px;
	margin: 2px 0 22px;
	font-size: 14px;
	color: #c9cdf0;
}
#narancsLogin .nl-remember input[type="checkbox"] {
	width: 18px;
	height: 18px;
	margin: 0;
	accent-color: #4f60fa;
	cursor: pointer;
}
#narancsLogin .nl-remember label { margin: 0; cursor: pointer; }
#narancsLogin .nl-remember-hint { grid-column: 2; font-size: 12px; color: var(--muted); }
#narancsLogin .nl-remember select {
	grid-column: 1 / -1;
	width: 100%;
	height: 44px;
	padding: 0 14px;
	font: inherit;
	color: var(--ink);
	background: #05071c;
	border: 1px solid var(--line2);
	border-radius: 12px;
}
#narancsLogin .nl-remember select + label:empty { display: none; }

/* submit = .nx-btn (spec §2) */
@keyframes nx-btnflow { 0% { background-position: 0% 50%; } 100% { background-position: 300% 50%; } }
@keyframes nx-btnpulse {
	0%, 100% { box-shadow: 0 0 0 0 rgba(79, 96, 250, 0), 0 10px 28px -10px rgba(79, 96, 250, .55); }
	50% { box-shadow: 0 0 26px 1px rgba(124, 92, 255, .45), 0 12px 34px -8px rgba(79, 96, 250, .7); }
}
@keyframes nx-shine { 100% { left: 125%; } }
#narancsLogin .nx-btn {
	position: relative;
	overflow: hidden;
	background-color: #4f60fa;
	background-image: linear-gradient(90deg, #4f60fa, #7c5cff, #c46ff8, #4f60fa, #3a8dff, #4f60fa);
	background-size: 300% 100%;
	animation: nx-btnflow 7s linear infinite, nx-btnpulse 3.6s ease-in-out infinite;
	transition: transform .25s cubic-bezier(.2, .7, .2, 1), filter .25s ease;
}
#narancsLogin .nx-btn:hover { transform: translateY(-2px); filter: brightness(1.08); animation-duration: 3.5s, 3.6s; }
#narancsLogin .nx-btn::after {
	content: "";
	position: absolute;
	top: 0;
	left: -80%;
	width: 55%;
	height: 100%;
	background: linear-gradient(to right, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, .35) 100%);
	transform: skewX(-22deg);
	pointer-events: none;
}
#narancsLogin .nx-btn:hover::after { animation: nx-shine .9s; }
#narancsLogin .nl-submit {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	width: 100%;
	height: 52px;
	margin: 0;
	padding: 0 30px;
	border: 0;
	border-radius: 100px;
	font-family: inherit;
	font-size: 16px;
	font-weight: 600;
	letter-spacing: .2px;
	color: #fff;
	text-shadow: 0 1px 2px rgba(0, 0, 0, .3);
	cursor: pointer;
	-webkit-appearance: none;
	appearance: none;
}
#narancsLogin .nl-submit:active { transform: translateY(0); }
#narancsLogin .nl-arrow { width: 18px; height: 18px; stroke-width: 2.2; transition: transform .25s ease; }
#narancsLogin .nl-submit:hover .nl-arrow { transform: translateX(3px); }
#narancsLogin .nl-spinner {
	display: none;
	width: 18px;
	height: 18px;
	border: 2px solid rgba(255, 255, 255, .35);
	border-top-color: #fff;
	border-radius: 50%;
	animation: nl-spin .8s linear infinite;
}
@keyframes nl-spin { to { transform: rotate(360deg); } }
#narancsLogin .nl-submit.is-busy { pointer-events: none; filter: brightness(.95); }
#narancsLogin .nl-submit.is-busy .nl-arrow { display: none; }
#narancsLogin .nl-submit.is-busy .nl-spinner { display: block; }

#narancsLogin .nl-links { margin: 14px 0 0; font-size: 14px; text-align: center; }
#narancsLogin .nl-links:empty { display: none; }
#narancsLogin .nl-links a { margin: 0 8px; color: var(--kicker); text-decoration: none; }
#narancsLogin .nl-links a:hover { color: #fff; text-decoration: underline; }

#narancsLogin .nl-help {
	display: flex;
	gap: 12px;
	margin-top: 22px;
	padding: 14px 16px;
	border-radius: 14px;
	background: var(--accSoft);
	border: 1px solid var(--line);
	font-size: 13px;
	line-height: 1.5;
	color: var(--muted);
}
#narancsLogin .nl-help svg { flex: 0 0 auto; width: 18px; height: 18px; margin-top: 1px; color: var(--kicker); }
#narancsLogin .nl-help strong { display: block; font-weight: 500; color: #c9cdf0; }

#narancsLogin .nl-footer {
	position: relative;
	z-index: 1;
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 6px 10px;
	padding: 8px 16px 24px;
	font-size: 12px;
	color: #5d6390;
}

/* ---------- box behaviour (spec §1) ---------- */
#narancsLogin .nx-glow { transition: transform .4s cubic-bezier(.2, .7, .2, 1), box-shadow .4s ease, border-color .4s ease, background .4s ease; }
#narancsLogin .nx-glow:hover {
	transform: translateY(-5px);
	box-shadow: 0 22px 60px -20px var(--gl, #4f60fa);
	border-color: color-mix(in oklab, var(--gl, #4f60fa), #202568 35%);
}
@property --nx-a { syntax: '<angle>'; inherits: false; initial-value: 0deg; }
@keyframes nx-rot { to { --nx-a: 360deg; } }
#narancsLogin .nx-ring { position: relative; isolation: isolate; }
#narancsLogin .nx-ring::before {
	content: "";
	position: absolute;
	inset: 0;
	border-radius: inherit;
	padding: 1.3px;
	z-index: 2;
	background: conic-gradient(from var(--nx-a, 0deg), transparent 0deg, var(--gl, #4f60fa) 60deg,
		color-mix(in oklab, var(--gl, #4f60fa), #fff 40%) 96deg, transparent 150deg, transparent 360deg);
	-webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
	-webkit-mask-composite: xor;
	mask-composite: exclude;
	opacity: 0;
	transition: opacity .45s ease;
	pointer-events: none;
}
#narancsLogin .nx-ring:hover::before { opacity: .95; animation: nx-rot 3.4s linear infinite; }

/* cursor-reactive light (spec §4) */
#narancsLogin .nx-cursor { position: relative; overflow: hidden; }
#narancsLogin .nx-cursor::before {
	content: "";
	position: absolute;
	width: 560px;
	height: 560px;
	left: var(--mx, 50%);
	top: var(--my, 30%);
	transform: translate(-50%, -50%);
	background: radial-gradient(circle, rgba(140, 110, 255, .28), rgba(79, 96, 250, .12) 40%, transparent 68%);
	pointer-events: none;
	transition: opacity .45s ease;
	opacity: var(--mo, 0);
	z-index: 0;
}

/* entrance reveal (spec §6) - only when JS runs; safety net in JS forces .nx-in after 2500ms */
#narancsLogin.nl-js [data-rev] { transition: opacity .7s cubic-bezier(.2, .7, .2, 1), transform .7s cubic-bezier(.2, .7, .2, 1); }
#narancsLogin.nl-js [data-rev].nx-pre { opacity: 0; transform: translateY(18px); }
#narancsLogin.nl-js [data-rev].nx-in { opacity: 1; transform: none; }
#narancsLogin.nl-js .nl-feature.nx-in:hover { transform: translateY(-5px); }
#narancsLogin.nl-js .nl-feature[data-rev] { transition: opacity .7s cubic-bezier(.2, .7, .2, 1), transform .4s cubic-bezier(.2, .7, .2, 1), box-shadow .4s ease, border-color .4s ease; }

/* ---------- responsive (spec §11) ---------- */
@media (max-width: 1180px) {
	#narancsLogin .nl-features { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 960px) {
	#narancsLogin .nl-shell {
		grid-template-columns: minmax(0, 1fr);
		grid-template-areas: "brand" "auth" "hero";
		grid-template-rows: auto;
		max-width: 620px;
		padding: 24px 16px 8px;
	}
	#narancsLogin .nl-auth { padding: 18px 0 8px; }
	#narancsLogin .nl-auth .nl-card { position: relative; top: 0; }
	#narancsLogin .nl-hero { margin: 0; padding: 0; border-radius: 0; }
	#narancsLogin .nl-hero-inner { padding: 28px 0 16px; }
	#narancsLogin .nl-hero h1 { font-size: 32px; }
}
@media (max-width: 680px) {
	#narancsLogin .nl-features { grid-template-columns: minmax(0, 1fr); }
	#narancsLogin .nl-hero h1 { font-size: 28px; }
	#narancsLogin .nl-lead { font-size: 15px; }
	#narancsLogin .nl-stats { gap: 8px; padding: 20px 10px; }
	#narancsLogin .nl-stat-num { font-size: 24px; }
	#narancsLogin .nl-stat-label { font-size: 12px; }
	#narancsLogin .nl-card { padding: 30px 20px 22px; border-radius: 20px; }
	#narancsLogin .nl-card h2 { font-size: 26px; }
	#narancsLogin .nl-org { font-size: 14px; }
}
@media (prefers-reduced-motion: reduce) {
	#narancsLogin .nx-ring:hover::before { animation: none; }
	#narancsLogin .nx-btn { animation: none; }
	#narancsLogin .nx-btn:hover::after { animation: none; }
	#narancsLogin .nx-glow:hover,
	#narancsLogin .nx-btn:hover { transform: none; }
	#narancsLogin.nl-js [data-rev] { transition: none; }
	#narancsLogin.nl-js [data-rev].nx-pre { opacity: 1; transform: none; }
	#narancsLogin .nl-spinner { animation-duration: 2s; }
	#narancsLogin.nl-js .nl-feature.nx-in:hover { transform: none; }
}
