/**
 * Design partage pour toutes les routes canevas de type authentification
 * (ZikPawa-Auth : login/register/resetpassword, ZikPawa-Personnel :
 * personnel-accept). Centralise ici, dans Core, plutot que duplique dans
 * chaque module - la dependance commune a tous.
 *
 * !important SYSTEMATIQUE, demande explicite de l'utilisateur : ces pages
 * sont rendues via templates/page-canvas.php de Core (aucun header.php ni
 * footer.php du theme actif), MAIS wp_head() reste appele - un theme peut
 * donc toujours enqueuer son propre CSS global (regles generiques sur
 * body/input/button/a) meme sans habillage visuel visible. !important
 * garantit que ce design reste identique quel que soit le theme actif.
 *
 * Labels JAMAIS separes du champ - demande explicite de l'utilisateur
 * ("reduire l'espace") : chaque champ utilise son placeholder comme seul
 * repere visuel, jamais un <label> au-dessus.
 */

.zikpawa-auth-particles {
	position: fixed !important;
	top: 0 !important;
	left: 0 !important;
	width: 100% !important;
	height: 100% !important;
	z-index: 0 !important;
	pointer-events: none !important;
}

.zikpawa-auth-page {
	position: relative !important;
	min-height: 100vh !important;
	width: 100% !important;
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	padding: 24px 16px !important;
	box-sizing: border-box !important;
	background: linear-gradient(135deg, var(--zp-primary-dark, #1E4A1D) 0%, var(--zp-primary, #2C632A) 45%, var(--zp-primary-soft, #3F8A2E) 100%) !important;
	font-family: 'Poppins', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif !important;
	overflow-x: hidden !important;
}

/* Heritage explicite et protege sur tout descendant : un <strong>
   ou un titre ne doit jamais recevoir la police du theme actif. */
.zikpawa-auth-page * {
	font-family: inherit !important;
}

.zikpawa-auth-page h1,
.zikpawa-auth-page h2,
.zikpawa-auth-page h3 {
	font-family: 'Poppins', sans-serif !important;
}

.zikpawa-auth-page *,
.zikpawa-auth-page *::before,
.zikpawa-auth-page *::after {
	box-sizing: border-box !important;
}

.zikpawa-auth-card {
	position: relative !important;
	z-index: 1 !important;
	width: 100% !important;
	max-width: 420px !important;
	background: var(--zp-glass, rgba(255, 255, 255, 0.97)) !important;
	backdrop-filter: blur(10px) !important;
	border-radius: 22px !important;
	padding: 32px 28px !important;
	box-shadow: 0 20px 60px rgba(30, 74, 29, 0.35), 0 2px 8px rgba(0, 0, 0, 0.08) !important;
	margin: 0 !important;
	border: none !important;
	animation: zikpawa-auth-card-in 0.4s ease-out !important;
}

@keyframes zikpawa-auth-card-in {
	from { opacity: 0; transform: translateY(16px) scale(0.98); }
	to { opacity: 1; transform: translateY(0) scale(1); }
}

.zikpawa-auth-brand {
	display: flex !important;
	flex-direction: column !important;
	align-items: center !important;
	gap: 8px !important;
	margin-bottom: 22px !important;
	text-align: center !important;
}

.zikpawa-auth-brand-logo {
	width: 52px !important;
	height: 52px !important;
	border-radius: 14px !important;
	object-fit: cover !important;
	box-shadow: 0 4px 12px rgba(30, 74, 29, 0.25) !important;
}

.zikpawa-auth-brand-icon {
	width: 52px !important;
	height: 52px !important;
	border-radius: 14px !important;
	background: transparent !important;
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	box-shadow: 0 4px 12px rgba(30, 74, 29, 0.25) !important;
}

.zikpawa-auth-brand-icon svg {
	width: 52px !important;
	height: 52px !important;
}

.zikpawa-auth-brand-name {
	font-family: 'Poppins', sans-serif !important;
	font-size: 1.15rem !important;
	font-weight: 700 !important;
	color: var(--zp-primary-fg, #1E4A1D) !important;
	letter-spacing: 0.01em !important;
	margin: 0 !important;
	line-height: 1.25 !important;
}

.zikpawa-auth-wrap h1,
.zikpawa-personnel-wrap h1 {
	font-size: 1.4rem !important;
	font-weight: 800 !important;
	color: var(--zp-ink, #13200F) !important;
	margin: 0 0 6px !important;
	text-align: center !important;
	line-height: 1.3 !important;
}

.zikpawa-auth-wrap .description,
.zikpawa-personnel-wrap .description,
.zikpawa-auth-hint {
	font-size: 0.88rem !important;
	color: var(--zp-muted, #6B7280) !important;
	text-align: center !important;
	margin: 0 0 20px !important;
	line-height: 1.5 !important;
}

.zikpawa-auth-error,
.zikpawa-personnel-error {
	background: var(--zp-danger-bg, #FDEAEA) !important;
	color: var(--zp-danger-fg, #A11) !important;
	padding: 11px 14px !important;
	border-radius: 10px !important;
	font-size: 0.85rem !important;
	margin: 0 0 16px !important;
	text-align: left !important;
}

.zikpawa-auth-success {
	background: var(--zp-success-bg, #E8F8EE) !important;
	color: var(--zp-success-fg, #1E9E5A) !important;
	padding: 11px 14px !important;
	border-radius: 10px !important;
	font-size: 0.85rem !important;
	margin: 0 0 16px !important;
	text-align: left !important;
}

.zikpawa-auth-field,
.zikpawa-personnel-field {
	margin: 0 0 12px !important;
}

/* Label visuellement cache mais garde pour l'accessibilite (lecteurs
   d'ecran) - le placeholder ne suffit jamais a lui seul pour etre
   accessible, meme si l'utilisateur ne le voit jamais a l'ecran. */
.zikpawa-auth-field label,
.zikpawa-personnel-field label {
	position: absolute !important;
	width: 1px !important;
	height: 1px !important;
	padding: 0 !important;
	margin: -1px !important;
	overflow: hidden !important;
	clip: rect(0, 0, 0, 0) !important;
	white-space: nowrap !important;
	border: 0 !important;
}

.zikpawa-auth-field input,
.zikpawa-auth-field select,
.zikpawa-personnel-field input {
	width: 100% !important;
	padding: 13px 15px !important;
	border: 1.5px solid var(--zp-border, #E3E8EF) !important;
	border-radius: 12px !important;
	font-size: 0.95rem !important;
	color: var(--zp-ink, #13200F) !important;
	background: var(--zp-surface-2, #F8FAFC) !important;
	font-family: inherit !important;
	transition: border-color 0.15s ease, background 0.15s ease !important;
	margin: 0 !important;
	line-height: normal !important;
	height: auto !important;
	box-shadow: none !important;
}

.zikpawa-auth-field input:focus,
.zikpawa-auth-field select:focus,
.zikpawa-personnel-field input:focus {
	outline: none !important;
	border-color: var(--zp-primary, #2C632A) !important;
	background: var(--zp-surface, #fff) !important;
	box-shadow: 0 0 0 3px rgba(44, 99, 42, 0.12) !important;
}

.zikpawa-auth-field input::placeholder,
.zikpawa-personnel-field input::placeholder {
	color: var(--zp-muted, #9CA3AF) !important;
}

.zikpawa-auth-plan-chip {
	display: flex !important;
	align-items: center !important;
	justify-content: space-between !important;
	gap: 10px !important;
	padding: 12px 15px !important;
	background: var(--zp-surface-2, #DDE8D8) !important;
	border-radius: 12px !important;
	font-size: 0.88rem !important;
	color: var(--zp-primary-fg, #1E4A1D) !important;
	font-weight: 600 !important;
}

.zikpawa-auth-plan-chip a {
	color: var(--zp-primary-fg, #2C632A) !important;
	font-weight: 700 !important;
	text-decoration: underline !important;
	white-space: nowrap !important;
}

/* Case CGU / confidentialite - demande explicite de l'utilisateur */
.zikpawa-auth-consent {
	display: flex !important;
	align-items: flex-start !important;
	gap: 10px !important;
	margin: 4px 0 18px !important;
	cursor: pointer !important;
}

.zikpawa-auth-consent input[type="checkbox"] {
	width: 18px !important;
	height: 18px !important;
	min-width: 18px !important;
	margin: 2px 0 0 !important;
	accent-color: var(--zp-primary-fg, #2C632A) !important;
	cursor: pointer !important;
}

.zikpawa-auth-consent span {
	font-size: 0.82rem !important;
	color: var(--zp-ink-2, #4B5563) !important;
	line-height: 1.45 !important;
}

.zikpawa-auth-consent a {
	color: var(--zp-primary-fg, #2C632A) !important;
	font-weight: 600 !important;
	text-decoration: underline !important;
}

.zikpawa-auth-submit,
.zikpawa-personnel-submit {
	width: 100% !important;
	padding: 14px 18px !important;
	background: linear-gradient(135deg, var(--zp-primary, #2C632A), var(--zp-primary-dark, #1E4A1D)) !important;
	color: #fff !important;
	border: none !important;
	border-radius: 12px !important;
	font-size: 0.98rem !important;
	font-weight: 700 !important;
	cursor: pointer !important;
	margin: 4px 0 0 !important;
	transition: transform 0.1s ease, box-shadow 0.15s ease !important;
	box-shadow: 0 6px 16px rgba(44, 99, 42, 0.3) !important;
	font-family: inherit !important;
}

.zikpawa-auth-submit:hover,
.zikpawa-personnel-submit:hover {
	transform: translateY(-1px) !important;
	box-shadow: 0 8px 20px rgba(44, 99, 42, 0.38) !important;
}

.zikpawa-auth-submit:active,
.zikpawa-personnel-submit:active {
	transform: translateY(0) !important;
}

.zikpawa-auth-inline-form {
	margin: 10px 0 0 !important;
	text-align: center !important;
}

.zikpawa-auth-linklike {
	background: none !important;
	border: none !important;
	color: var(--zp-primary-fg, #2C632A) !important;
	font-size: 0.85rem !important;
	font-weight: 600 !important;
	cursor: pointer !important;
	text-decoration: underline !important;
	padding: 0 !important;
	font-family: inherit !important;
}

.zikpawa-auth-links {
	margin-top: 18px !important;
	text-align: center !important;
	font-size: 0.85rem !important;
	line-height: 1.8 !important;
}

.zikpawa-auth-links a,
.zikpawa-personnel-wrap a {
	color: var(--zp-primary-fg, #2C632A) !important;
	text-decoration: none !important;
	font-weight: 600 !important;
}

.zikpawa-auth-links a:hover,
.zikpawa-personnel-wrap a:hover {
	text-decoration: underline !important;
}

/* Responsive mobile - demande explicite de l'utilisateur */
@media (max-width: 480px) {
	.zikpawa-auth-page {
		padding: 16px 12px !important;
		align-items: flex-start !important;
		padding-top: 36px !important;
	}
	.zikpawa-auth-card {
		padding: 26px 20px !important;
		border-radius: 18px !important;
	}
	.zikpawa-auth-wrap h1,
	.zikpawa-personnel-wrap h1 {
		font-size: 1.25rem !important;
	}
}

/**
 * Grille de choix de formule (register-choose-plan.php, plans-grid.php)
 * - REGRESSION CORRIGEE : ce gabarit s'affiche sur la route "register"
 * (etape "choose_plan"), qui charge desormais ce CSS partage plutot
 * que l'ancien auth.css (qui, lui, avait au moins un style basique
 * pour ces classes) - jamais remarque avant que l'utilisateur ne le
 * signale, capture d'ecran a l'appui.
 */
.zikpawa-auth-wrap-wide {
	max-width: 900px !important;
}

.zikpawa-auth-trial-banner {
	background: linear-gradient(135deg, #1E9E5A, #14B87A) !important;
	color: #fff !important;
	font-weight: 800 !important;
	text-align: center !important;
	padding: 14px 20px !important;
	border-radius: 14px !important;
	margin: 0 0 24px !important;
	font-size: 0.98rem !important;
	box-shadow: 0 8px 20px rgba(30, 158, 90, 0.35) !important;
	position: relative !important;
}

.zikpawa-auth-trial-banner::before {
	content: "✓ " !important;
}

.zikpawa-auth-plans-grid {
	display: grid !important;
	grid-template-columns: repeat( auto-fit, minmax( 220px, 1fr ) ) !important;
	gap: 18px !important;
	margin: 0 0 20px !important;
}

.zikpawa-auth-plan-card {
	background: var(--zp-surface, #fff) !important;
	border: 1.5px solid var(--zp-border, #E3E8EF) !important;
	border-radius: 18px !important;
	padding: 24px 20px !important;
	display: flex !important;
	flex-direction: column !important;
	align-items: center !important;
	text-align: center !important;
	transition: transform 0.15s ease, box-shadow 0.15s ease, border-color 0.15s ease !important;
}

.zikpawa-auth-plan-card:hover {
	transform: translateY(-3px) !important;
	box-shadow: 0 12px 28px rgba(30, 74, 29, 0.14) !important;
	border-color: var(--zp-primary, #2C632A) !important;
}

.zikpawa-auth-plan-card h2 {
	font-size: 1.08rem !important;
	font-weight: 800 !important;
	color: var(--zp-ink, #13200F) !important;
	margin: 0 0 10px !important;
}

.zikpawa-auth-plan-price {
	font-size: 1.5rem !important;
	font-weight: 800 !important;
	color: var(--zp-primary-fg, #2C632A) !important;
	margin: 0 0 16px !important;
	line-height: 1.2 !important;
}

.zikpawa-auth-plan-price span {
	font-size: 0.8rem !important;
	font-weight: 500 !important;
	color: var(--zp-muted, #6B7280) !important;
}

.zikpawa-auth-plan-limits {
	list-style: none !important;
	margin: 0 0 20px !important;
	padding: 0 !important;
	font-size: 0.83rem !important;
	color: var(--zp-ink-2, #4B5563) !important;
	flex-grow: 1 !important;
	width: 100% !important;
}

.zikpawa-auth-plan-limits li {
	padding: 5px 0 !important;
	border-bottom: 1px solid var(--zp-border, #F3F4F6) !important;
}

.zikpawa-auth-plan-limits li:last-child {
	border-bottom: none !important;
}

.zikpawa-auth-plan-cta {
	display: block !important;
	width: 100% !important;
	text-align: center !important;
	text-decoration: none !important;
	margin: 0 !important;
}

@media (max-width: 480px) {
	.zikpawa-auth-wrap-wide {
		max-width: 100% !important;
	}
	.zikpawa-auth-plans-grid {
		grid-template-columns: 1fr !important;
	}
}
