/* NCFN Member Login — same visual design as the Admin Login (centered
   card on a patterned full-viewport background), member-facing content */
:root {
	--ncfn-purple: #3B0764;
	--ncfn-orange: #F2600C;
	--ncfn-orange-dark: #D9500A;
	--ncfn-text: #1F2937;
	--ncfn-muted: #6B7280;
	--ncfn-border: #E5E7EB;
	--ncfn-danger: #B3261E;
	--ncfn-success: #16A34A;
}

html, body { margin: 0; }

#ncfn-login-app {
	font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
	color: var(--ncfn-text);
	position: fixed;
	inset: 0;
	z-index: 999999;
	overflow-y: auto;
	background: #fff;
}
#ncfn-login-app * { box-sizing: border-box; }

.ncfn-lg-page {
	min-height: 100%;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 48px 20px;
	background:
		linear-gradient(0deg, rgba(59,7,100,.035), rgba(59,7,100,.035)),
		repeating-linear-gradient(0deg, transparent 0 78px, rgba(59,7,100,.05) 78px 79px),
		repeating-linear-gradient(90deg, transparent 0 78px, rgba(59,7,100,.05) 78px 79px);
}

.ncfn-lg-col { display: flex; flex-direction: column; align-items: center; width: 100%; max-width: 460px; }

/* Brand (logo only, matching the Admin Login) */
.ncfn-lg-brand { text-align: center; margin-bottom: 26px; }
.ncfn-lg-brand img { height: 64px; width: auto; }
.ncfn-lg-brand .ncfn-lg-wordmark { font-size: 22px; font-weight: 800; color: var(--ncfn-purple); }

/* Card */
.ncfn-lg-card {
	background: #fff;
	border: 1px solid var(--ncfn-border);
	border-radius: 16px;
	box-shadow: 0 12px 34px rgba(30, 16, 48, .10);
	padding: 32px 30px;
	width: 100%;
}
.ncfn-lg-card h2 { font-size: 21px; font-weight: 700; margin: 0 0 6px; text-align: center; color: var(--ncfn-text); }
.ncfn-lg-card .ncfn-lg-sub { font-size: 13px; color: var(--ncfn-muted); text-align: center; margin: 0 0 26px; line-height: 1.5; }

.ncfn-lg-field { margin-bottom: 16px; }
.ncfn-lg-field label {
	display: block; font-size: 12.5px; font-weight: 600; color: var(--ncfn-text); margin-bottom: 6px;
}
.ncfn-lg-field input[type="text"],
.ncfn-lg-field input[type="password"] {
	width: 100%;
	border: 1px solid var(--ncfn-border);
	border-radius: 10px;
	padding: 13px 14px;
	font-size: 14.5px;
	font-family: inherit;
	color: var(--ncfn-text);
	background: #fff;
	transition: border-color .15s ease, box-shadow .15s ease;
}
.ncfn-lg-field input::placeholder { color: #9CA3AF; }
.ncfn-lg-field input:focus {
	outline: none;
	border-color: var(--ncfn-orange);
	box-shadow: 0 0 0 3px rgba(242, 96, 12, .12);
}

.ncfn-lg-row {
	display: flex; align-items: center; justify-content: space-between;
	margin-bottom: 20px; font-size: 13px;
}
.ncfn-lg-remember { display: flex; align-items: center; gap: 7px; color: var(--ncfn-muted); cursor: pointer; user-select: none; }
.ncfn-lg-remember input { width: 15px; height: 15px; accent-color: var(--ncfn-purple); cursor: pointer; }
.ncfn-lg-forgot { color: var(--ncfn-orange); font-weight: 600; text-decoration: none; font-size: 13px; }
.ncfn-lg-forgot:hover { text-decoration: underline; }

.ncfn-lg-btn {
	display: block; width: 100%; text-align: center; text-decoration: none;
	border: none; border-radius: 10px; padding: 14px; font-size: 15px; font-weight: 700;
	cursor: pointer; font-family: inherit; transition: background .15s ease, box-shadow .15s ease;
}
.ncfn-lg-btn-primary { background: var(--ncfn-orange); color: #fff; box-shadow: 0 4px 12px rgba(242, 96, 12, .28); }
.ncfn-lg-btn-primary:hover { background: var(--ncfn-orange-dark); }
.ncfn-lg-btn-primary:disabled { opacity: .7; cursor: default; box-shadow: none; }

.ncfn-lg-divider {
	display: flex; align-items: center; gap: 14px; margin: 22px 0;
	color: #9CA3AF; font-size: 12px; text-transform: uppercase; letter-spacing: .05em;
}
.ncfn-lg-divider::before, .ncfn-lg-divider::after {
	content: ''; flex: 1; height: 1px; background: var(--ncfn-border);
}

.ncfn-lg-btn-secondary {
	background: #fff; color: var(--ncfn-purple); border: 1.5px solid var(--ncfn-purple);
}
.ncfn-lg-btn-secondary:hover { background: #F7F3FB; }

.ncfn-lg-error {
	background: #FDECEA; border: 1px solid #F5C6C0; color: var(--ncfn-danger);
	border-radius: 10px; padding: 11px 14px; font-size: 13px; margin-bottom: 16px;
}

/* Status notice (pending / rejected / suspended) */
.ncfn-lg-notice {
	background: #fff; border: 1px solid var(--ncfn-border);
	border-radius: 16px; box-shadow: 0 12px 34px rgba(30, 16, 48, .10); padding: 32px; text-align: center;
	width: 100%;
}
.ncfn-lg-notice .ic { font-size: 32px; margin-bottom: 10px; }
.ncfn-lg-notice h3 { margin: 0 0 8px; font-size: 17px; color: var(--ncfn-text); }
.ncfn-lg-notice p { margin: 0; font-size: 13.5px; color: var(--ncfn-muted); line-height: 1.55; }

.ncfn-loading { text-align: center; padding: 60px 20px; color: var(--ncfn-muted); }

@media (max-width: 480px) {
	.ncfn-lg-card, .ncfn-lg-notice { padding: 26px 20px; }
}

/* Outcome of an email one-click link (e.g. "Connection accepted"). */
.ncfn-lg-flash { border-radius: 10px; padding: 12px 16px; font-size: 13px; line-height: 1.5; margin-bottom: 14px; }
.ncfn-lg-flash.is-success { background: #EAFBEF; color: #166534; }
.ncfn-lg-flash.is-info { background: #F4EBFB; color: #581C87; }
.ncfn-lg-flash.is-error { background: #FDECEF; color: #9F1239; }

/* "Verify first" screen */
.ncfn-lg-verify-to { margin-top: 4px; font-size: 13px; color: var(--ncfn-text); overflow-wrap: anywhere; }
.ncfn-lg-verify-wrong { margin: 14px 0 0; font-size: 12.5px; color: var(--ncfn-muted); }
.ncfn-lg-link { background: none; border: 0; padding: 0; font: inherit; font-weight: 700; color: var(--ncfn-orange); cursor: pointer; text-decoration: underline; }
.ncfn-lg-verify-change { margin-top: 14px; text-align: left; }
.ncfn-lg-verify-change label { display: block; margin-bottom: 6px; font-size: 12.5px; font-weight: 600; }
.ncfn-lg-verify-change input { width: 100%; box-sizing: border-box; padding: 11px 12px; border: 1px solid var(--ncfn-border); border-radius: 10px; font: inherit; }
.ncfn-lg-verify-row { display: flex; gap: 10px; margin-top: 12px; }
.ncfn-lg-verify-row > * { flex: 1; }
.ncfn-lg-verify .ncfn-lg-flash { margin: 12px 0 0; text-align: left; }

/* Show / hide password, and the "signed in, taking you there" message */
.ncfn-lg-input-wrap { position: relative; }
.ncfn-lg-field input.has-toggle { padding-right: 52px; }
#ncfn-login-app .ncfn-lg-toggle {
	position: absolute; top: 50%; right: 4px; transform: translateY(-50%);
	display: flex; align-items: center; justify-content: center;
	width: 44px; height: 44px; min-width: 44px; padding: 0; margin: 0;
	border: 0 !important; border-radius: 10px; box-shadow: none !important;
	background: transparent !important; color: #4B5563 !important; cursor: pointer;
}
#ncfn-login-app .ncfn-lg-toggle:hover { background: #F3F4F6 !important; color: #1F2937 !important; }
#ncfn-login-app .ncfn-lg-toggle:focus-visible { outline: 2px solid #5B21B6; outline-offset: 0; }
.ncfn-lg-status { min-height: 0; }
.ncfn-lg-success { margin-top: 14px; padding: 12px 16px; border-radius: 10px; background: #EAFBEF; color: #166534; font-size: 13.5px; line-height: 1.5; text-align: center; }
.ncfn-lg-continue { color: #166534; font-weight: 700; text-decoration: underline; }

/* ==== NCFN UI REFINEMENT LAYER (v1.31) ====
/* Sign-in button */
#ncfn-login-app :is(.ncfn-lg-btn-primary) { background-color: #F2600C; color: #fff; border-color: transparent; text-decoration: none; box-shadow: 0 4px 12px rgba(242,96,12,.28); }
#ncfn-login-app :is(.ncfn-lg-btn-primary):hover { background-color: #D9500A; color: #fff; border-color: transparent; text-decoration: none; box-shadow: 0 6px 16px rgba(242,96,12,.34); }
#ncfn-login-app :is(.ncfn-lg-btn-primary):active { transform: translateY(1px); }
#ncfn-login-app :is(.ncfn-lg-btn-primary):disabled, #ncfn-login-app :is(.ncfn-lg-btn-primary):disabled:hover { background-color: #F2600C; color: #fff; border-color: transparent; opacity: .6; cursor: not-allowed; transform: none; box-shadow: none; }

/* Secondary button */
#ncfn-login-app :is(.ncfn-lg-btn-secondary) { background-color: #fff; color: #3B0764; border-color: #3B0764; text-decoration: none; }
#ncfn-login-app :is(.ncfn-lg-btn-secondary):hover { background-color: #F7F3FB; color: #3B0764; border-color: #3B0764; text-decoration: none; }
#ncfn-login-app :is(.ncfn-lg-btn-secondary):active { transform: translateY(1px); }
#ncfn-login-app :is(.ncfn-lg-btn-secondary):disabled, #ncfn-login-app :is(.ncfn-lg-btn-secondary):disabled:hover { background-color: #fff; color: #3B0764; border-color: #3B0764; opacity: .6; cursor: not-allowed; transform: none; box-shadow: none; }

/* Login text button */
#ncfn-login-app :is(.ncfn-lg-link) { background-color: transparent; color: #D9500A; }
#ncfn-login-app :is(.ncfn-lg-link):hover { background-color: transparent; color: #9A3412; }
#ncfn-login-app :is(.ncfn-lg-link):disabled, #ncfn-login-app :is(.ncfn-lg-link):disabled:hover { background-color: transparent; color: #D9500A; opacity: .6; cursor: not-allowed; transform: none; box-shadow: none; }

/* Forgot password link */
#ncfn-login-app :is(.ncfn-lg-forgot) { background-color: transparent; color: #F2600C; text-decoration: none; }
#ncfn-login-app :is(.ncfn-lg-forgot):hover { background-color: transparent; color: #D9500A; text-decoration: underline; }
#ncfn-login-app :is(.ncfn-lg-forgot):disabled, #ncfn-login-app :is(.ncfn-lg-forgot):disabled:hover { background-color: transparent; color: #F2600C; opacity: .6; cursor: not-allowed; transform: none; box-shadow: none; }

#ncfn-login-app :is(input:not([type="checkbox"]):not([type="radio"])) { color: #1F2937; }
#ncfn-login-app input:not([type="checkbox"]):not([type="radio"]):focus { outline: none; border-color: #F2600C; box-shadow: 0 0 0 3px rgba(242, 96, 12, .14); }
