/**
 * Modul 33 – Optik Anmeldung, Registrierung, Abmelden (WP-Members-Formulare).
 *
 * Nur CSS, kein Eingriff in WP-Members: alle Regeln hängen an den
 * Container-IDs/Klassen, die WP-Members selbst ausgibt
 * (#wpmem_login, #wpmem_reg, .login_status, .wpmem_msg).
 * Größen nach REGEL 7 (Variablen aus gfcwm-ui.css).
 * Farbe: Theme-Akzent (Neve) – sonst Fallback.
 */
#wpmem_login,
#wpmem_reg,
.wpmem_msg,
p.login_status {
	--gfcwm-wpm-accent: var(--nv-primary-accent, var(--gfcwm-primary, #0073aa));
	--gfcwm-wpm-border: #d5d9de;
	box-sizing: border-box;
	font-size: 14px;
	line-height: 1.45;
}

/* ---------- Schrift: immer die des Themes (seit 2.47.2) ----------
 * WP-Members-Stylesheets setzen eigene Schriften (z. B. Arial, Montserrat).
 * Hier gilt die Schrift des Themes (Neve: --bodyfontfamily / --headingsfontfamily).
 * !important nur für font-family, weil WP-Members mit gleich starken
 * Selektoren (#wpmem_login legend …) arbeitet.
 */
#wpmem_login,
#wpmem_reg,
.wpmem_msg,
p.login_status {
	font-family: var(--bodyfontfamily, inherit) !important;
}
#wpmem_login *,
#wpmem_reg *,
.wpmem_msg *,
p.login_status * {
	font-family: inherit !important;
}
#wpmem_login legend,
#wpmem_reg legend {
	font-family: var(--headingsfontfamily, inherit) !important;
}

/* ---------- Karte ---------- */
#wpmem_login,
#wpmem_reg {
	max-width: 440px;
	margin: 24px auto;
	padding: 24px 28px;
	border: 1px solid #e3e6ea;
	border-radius: 6px;
	background: #fff;
	box-shadow: 0 2px 10px rgba(0, 0, 0, .06);
}
#wpmem_reg {
	max-width: 640px;
}
#wpmem_login *,
#wpmem_reg * {
	box-sizing: border-box;
}
#wpmem_login fieldset,
#wpmem_reg fieldset {
	margin: 0;
	padding: 0;
	border: 0;
	min-width: 0;
}
#wpmem_login legend,
#wpmem_reg legend {
	display: block;
	width: 100%;
	margin: 0 0 16px;
	padding: 0 0 10px;
	border-bottom: 2px solid var(--gfcwm-wpm-accent);
	font-size: 18px;
	font-weight: 600;
	line-height: 1.3;
}

/* ---------- Registrierung: Raster (Paare per Inline-CSS aus Modul 33) ---------- */
#wpmem_reg fieldset {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	column-gap: 16px;
	grid-auto-flow: row dense;
	align-items: end;
}
#wpmem_reg fieldset > * {
	grid-column: 1 / -1;
}
#wpmem_reg fieldset > input[type="hidden"] {
	display: none;
}

/* ---------- Felder ---------- */
#wpmem_login label,
#wpmem_reg label {
	display: block;
	float: none;
	width: auto;
	margin: 12px 0 4px;
	padding: 0;
	text-align: left;
	font-size: 13px;
	font-weight: 600;
}
#wpmem_login .div_text,
#wpmem_reg .div_text,
#wpmem_reg .div_textarea,
#wpmem_reg .div_select,
#wpmem_reg .div_multiselect,
#wpmem_reg .div_url,
#wpmem_reg .div_email,
#wpmem_reg .div_password,
#wpmem_reg .div_date,
#wpmem_reg .div_number,
#wpmem_reg .div_file,
#wpmem_reg .div_image {
	float: none;
	width: 100%;
	margin: 0;
	text-align: left;
}
#wpmem_login input.textbox,
#wpmem_login input.password,
#wpmem_login input[type="text"],
#wpmem_login input[type="password"],
#wpmem_login input[type="email"],
#wpmem_reg input.textbox,
#wpmem_reg input[type="text"],
#wpmem_reg input[type="password"],
#wpmem_reg input[type="email"],
#wpmem_reg input[type="url"],
#wpmem_reg input[type="number"],
#wpmem_reg input[type="date"],
#wpmem_reg select {
	width: 100%;
	height: var(--gfcwm-btn-h, 34px);
	margin: 0;
	padding: 0 10px;
	border: 1px solid var(--gfcwm-wpm-border);
	border-radius: 4px;
	background: #fff;
	font-size: 14px;
	line-height: 1.2;
	box-shadow: none;
}
#wpmem_login input:-webkit-autofill,
#wpmem_reg input:-webkit-autofill {
	-webkit-box-shadow: 0 0 0 40px #fff inset;
	-webkit-text-fill-color: inherit;
}
#wpmem_reg textarea {
	width: 100%;
	min-height: 90px;
	padding: 8px 10px;
	border: 1px solid var(--gfcwm-wpm-border);
	border-radius: 4px;
	font-size: 14px;
}
#wpmem_login input:focus,
#wpmem_reg input:focus,
#wpmem_reg select:focus,
#wpmem_reg textarea:focus {
	outline: none;
	border-color: var(--gfcwm-wpm-accent);
	box-shadow: 0 0 0 2px rgba(0, 115, 170, .15);
}
#wpmem_reg .req,
#wpmem_reg .req-text .req {
	margin-left: 2px;
	color: #a52a2c;
}
#wpmem_reg .req-text {
	margin: 14px 0 0;
	font-size: 12px;
	color: #666;
}
#wpmem_reg .wpmem-checkbox,
#wpmem_login .wpmem-checkbox {
	margin: 12px 0 0;
}
#wpmem_reg input[type="checkbox"],
#wpmem_login input[type="checkbox"] {
	width: 16px;
	height: 16px;
	margin: 0 2px 0 0;
	vertical-align: -3px;
}

/* ---------- Knöpfe ---------- */
#wpmem_login .button_div,
#wpmem_reg .button_div {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: flex-start;
	gap: 6px;
	width: 100%;
	margin: 18px 0 0;
	padding: 0;
	text-align: left;
	float: none;
}
#wpmem_login .button_div label,
#wpmem_reg .button_div label {
	display: inline-flex;
	align-items: center;
	margin: 0;
	font-weight: 400;
}
#wpmem_login .buttons,
#wpmem_reg .buttons,
#wpmem_login input[type="submit"],
#wpmem_reg input[type="submit"],
#wpmem_reg input[type="reset"] {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	height: var(--gfcwm-btn-h, 34px);
	min-height: var(--gfcwm-btn-h, 34px);
	margin: 0;
	padding: 0 18px;
	border: 1px solid var(--gfcwm-wpm-accent);
	border-radius: 4px;
	background: var(--gfcwm-wpm-accent);
	color: #fff;
	font-size: 13px;
	font-weight: 600;
	line-height: 1.2;
	cursor: pointer;
	white-space: nowrap;
}
#wpmem_login .button_div input[type="submit"],
#wpmem_login .button_div .buttons {
	margin-left: auto;
}
#wpmem_reg .button_div {
	justify-content: flex-end;
	gap: 10px;
}
#wpmem_reg input[type="reset"] {
	background: #fff;
	color: var(--gfcwm-wpm-accent);
}
#wpmem_login .buttons:hover,
#wpmem_reg .buttons:hover,
#wpmem_login input[type="submit"]:hover,
#wpmem_reg input[type="submit"]:hover {
	filter: brightness(.92);
}

/* ---------- Links unter dem Formular ---------- */
#wpmem_login .link-text,
#wpmem_reg .link-text {
	clear: both;
	margin: 14px 0 0;
	padding: 12px 0 0;
	border-top: 1px solid #eee;
	text-align: left;
	font-size: 13px;
}
#wpmem_login .link-text + .link-text,
#wpmem_reg .link-text + .link-text {
	margin-top: 4px;
	padding-top: 0;
	border-top: 0;
}
#wpmem_login .link-text a,
#wpmem_reg .link-text a {
	color: var(--gfcwm-wpm-accent);
}

/* ---------- Angemeldet / Abmelden ---------- */
p.login_status {
	max-width: 440px;
	margin: 24px auto;
	padding: 18px 22px;
	border: 1px solid #e3e6ea;
	border-left: 4px solid var(--gfcwm-wpm-accent);
	border-radius: 6px;
	background: #fff;
	box-shadow: 0 2px 10px rgba(0, 0, 0, .06);
}
p.login_status br {
	display: block;
	content: "";
	margin-top: 10px;
}
p.login_status a {
	box-sizing: border-box;
	display: inline-flex;
	align-items: center;
	height: var(--gfcwm-btn-h, 34px);
	margin-top: 10px;
	padding: 0 16px;
	border: 1px solid var(--gfcwm-wpm-accent);
	border-radius: 4px;
	background: #fff;
	color: var(--gfcwm-wpm-accent);
	font-size: 13px;
	font-weight: 600;
	text-decoration: none;
}
p.login_status a:hover {
	background: var(--gfcwm-wpm-accent);
	color: #fff;
}

/* ---------- Meldungen (Fehler, Erfolg) ---------- */
.wpmem_msg {
	max-width: 640px;
	margin: 16px auto;
	padding: 12px 16px;
	border: 1px solid #f0d77a;
	border-left: 4px solid #e0b400;
	border-radius: 4px;
	background: #fffaf0;
	text-align: left;
}
.wpmem_msg p {
	margin: 0;
}

/* ---------- Hinweis nach geändertem Passwort (seit 2.47.3) ---------- */
.gfcwm-wpmem-notice {
	box-sizing: border-box;
	max-width: 440px;
	margin: 16px auto;
	padding: 12px 16px;
	border: 1px solid #a6d9b0;
	border-left: 4px solid #1e6b30;
	border-radius: 4px;
	background: #edfaef;
	color: #1e6b30;
	font-family: var(--bodyfontfamily, inherit);
	font-size: 14px;
	text-align: left;
}

/* ---------- Handy ---------- */
@media (max-width: 520px) {
	#wpmem_login,
	#wpmem_reg {
		margin: 12px 0;
		padding: 18px 16px;
	}
	#wpmem_login .button_div,
	#wpmem_reg .button_div {
		flex-direction: column;
		align-items: stretch;
	}
	#wpmem_login .buttons,
	#wpmem_reg .buttons,
	#wpmem_login input[type="submit"],
	#wpmem_reg input[type="submit"] {
		width: 100%;
	}
}
