/* neolabqc-core — formularios de autenticación.
   Usa los tokens de marca del tema con fallback, para funcionar aun sin él. */

.nlqc-auth {
	--_blue: var(--brand-blue, #2D6BC4);
	--_text: var(--color-text, #1F2937);
	--_soft: var(--color-text-soft, #4B5563);
	--_card: var(--surface-card, #fff);
	--_border: var(--border, #E3E6E9);
	--_bstrong: var(--border-strong, #CBD1D6);
	--_radius: var(--radius, 14px);
	--_radius-sm: var(--radius-sm, 9px);
	--_font: var(--font-ui, system-ui, sans-serif);

	max-width: 440px;
	margin: clamp(2rem, 6vw, 4rem) auto;
	font-family: var(--_font);
	color: var(--_text);
}
.nlqc-auth--wide { max-width: 560px; }

.nlqc-auth__card {
	background: var(--_card);
	border: 1px solid var(--_border);
	border-radius: var(--_radius);
	box-shadow: 0 1px 3px rgba(17, 24, 39, .07);
	padding: 2rem 1.9rem;
}
.nlqc-auth__title { margin: 0 0 .3rem; font-size: 1.5rem; }
.nlqc-auth__sub { margin: 0 0 1.3rem; color: var(--_soft); font-size: .95rem; }
.nlqc-auth__sep { border: none; border-top: 1px solid var(--_border); margin: 1.5rem 0 1.2rem; }

.nlqc-field { margin-bottom: 1.05rem; }
.nlqc-field label { display: block; font-size: .9rem; font-weight: 600; margin-bottom: .35rem; }
.nlqc-field input[type="text"],
.nlqc-field input[type="email"],
.nlqc-field input[type="password"] {
	width: 100%;
	padding: .68rem .8rem;
	font: 400 1rem var(--_font);
	border: 1px solid var(--_bstrong);
	border-radius: var(--_radius-sm);
	background: #fff;
	color: var(--_text);
}
.nlqc-field input:focus {
	outline: none;
	border-color: var(--_blue);
	box-shadow: 0 0 0 3px rgba(45, 107, 196, .15);
}
.nlqc-field--check label {
	display: flex; align-items: flex-start; gap: .5rem;
	font-weight: 400; font-size: .9rem; color: var(--_soft);
}
.nlqc-field--check input { margin-top: .2rem; }

.nlqc-core-btn {
	display: inline-flex; justify-content: center; align-items: center;
	width: 100%;
	padding: .8rem 1.2rem;
	font: 600 1rem var(--_font);
	border: 1px solid transparent;
	border-radius: var(--_radius-sm);
	cursor: pointer;
	transition: transform .15s ease, box-shadow .15s ease, filter .15s ease;
}
.nlqc-core-btn--brand {
	color: #fff;
	background: var(--brand-gradient, linear-gradient(135deg, #2D6BC4, #7C5CBF));
	box-shadow: 0 10px 30px rgba(45, 107, 196, .22);
}
.nlqc-core-btn--brand:hover { transform: translateY(-1px); filter: brightness(1.03); }

.nlqc-auth__alt { margin: 1.1rem 0 0; text-align: center; font-size: .92rem; color: var(--_soft); }
.nlqc-auth__alt a { color: var(--_blue); }

.nlqc-notice { border-radius: var(--_radius-sm); padding: .75rem 1rem; font-size: .92rem; margin-bottom: 1.1rem; }
.nlqc-notice--ok  { background: var(--ok-bg, #E7F5EC); color: var(--ok, #17864E); }
.nlqc-notice--err { background: var(--err-bg, #FEECEB); color: var(--err, #B42318); }
.nlqc-notice--warn { background: var(--warn-bg, #FEF3E2); color: var(--warn, #B45309); }

/* Bloque de estado de suscripción (inyectado por neolabqc-mh) */
.nlqc-core-account {
	display: flex; align-items: center; justify-content: space-between;
	gap: 1rem; flex-wrap: wrap;
	background: var(--surface-muted, #EEF1F4);
	border: 1px solid var(--_border);
	border-radius: var(--_radius-sm);
	padding: .9rem 1.1rem;
	margin-bottom: 1.5rem;
}
.nlqc-core-account__label { font-size: .82rem; color: var(--_soft); }
.nlqc-core-account__value {
	font-family: var(--font-mono, ui-monospace, Menlo, monospace);
	font-size: .95rem; color: var(--_text);
}
.nlqc-core-badge {
	font-family: var(--font-mono, ui-monospace, Menlo, monospace);
	font-size: .72rem; letter-spacing: .06em; text-transform: uppercase;
	padding: .22rem .6rem; border-radius: 999px;
}
.nlqc-core-badge--ok { background: #E7F5EC; color: #17864E; }
.nlqc-core-badge--warn { background: #FEF3E2; color: #B45309; }
.nlqc-core-badge--err { background: #FEECEB; color: #B42318; }
