/**
 * Design partage pour toutes les routes canevas de type authentification
 * (EB-Auth : login/register/resetpassword, EB-Team :
 * 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.
 */

.eb-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;
}

.eb-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, #0A2E7A 0%, #0B3FA8 45%, #2A65CC 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. */
.eb-auth-page * {
	font-family: inherit !important;
}

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

.eb-auth-card {
	position: relative !important;
	z-index: 1 !important;
	width: 100% !important;
	max-width: 420px !important;
	background: 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(24, 61, 120, 0.35), 0 2px 8px rgba(0, 0, 0, 0.08) !important;
	margin: 0 !important;
	border: none !important;
	animation: eb-auth-card-in 0.4s ease-out !important;
}

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

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

.eb-auth-brand-logo {
	width: 52px !important;
	height: 52px !important;
	border-radius: 14px !important;
	object-fit: cover !important;
	box-shadow: 0 4px 12px rgba(24, 61, 120, 0.25) !important;
}

.eb-auth-brand-icon {
	width: 52px !important;
	height: 52px !important;
	border-radius: 14px !important;
	background: linear-gradient(135deg, #0B3FA8, #2A65CC) !important;
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	box-shadow: 0 4px 12px rgba(24, 61, 120, 0.25) !important;
}

.eb-auth-brand-icon svg {
	width: 30px !important;
	height: 30px !important;
	stroke: #fff !important;
	fill: none !important;
}

.eb-auth-brand-name {
	font-size: 1.05rem !important;
	font-weight: 800 !important;
	color: #0A2E7A !important;
	letter-spacing: 0.01em !important;
	margin: 0 !important;
	line-height: 1.25 !important;
}

.eb-auth-wrap h1,
.eb-team-wrap h1 {
	font-size: 1.4rem !important;
	font-weight: 800 !important;
	color: #1E293B !important;
	margin: 0 0 6px !important;
	text-align: center !important;
	line-height: 1.3 !important;
}

.eb-auth-wrap .description,
.eb-team-wrap .description,
.eb-auth-hint {
	font-size: 0.88rem !important;
	color: #6B7280 !important;
	text-align: center !important;
	margin: 0 0 20px !important;
	line-height: 1.5 !important;
}

.eb-auth-error,
.eb-team-error {
	background: #FDEAEA !important;
	color: #A11 !important;
	padding: 11px 14px !important;
	border-radius: 10px !important;
	font-size: 0.85rem !important;
	margin: 0 0 16px !important;
	text-align: left !important;
}

.eb-auth-success {
	background: #E8F8EE !important;
	color: #1E9E5A !important;
	padding: 11px 14px !important;
	border-radius: 10px !important;
	font-size: 0.85rem !important;
	margin: 0 0 16px !important;
	text-align: left !important;
}

.eb-auth-field,
.eb-team-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. */
.eb-auth-field label,
.eb-team-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;
}

.eb-auth-field input,
.eb-auth-field select,
.eb-team-field input {
	width: 100% !important;
	padding: 13px 15px !important;
	border: 1.5px solid #E3E8EF !important;
	border-radius: 12px !important;
	font-size: 0.95rem !important;
	color: #1E293B !important;
	background: #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;
}

.eb-auth-field input:focus,
.eb-auth-field select:focus,
.eb-team-field input:focus {
	outline: none !important;
	border-color: #0B3FA8 !important;
	background: #fff !important;
	box-shadow: 0 0 0 3px rgba(34, 83, 160, 0.12) !important;
}

.eb-auth-field input::placeholder,
.eb-team-field input::placeholder {
	color: #9CA3AF !important;
}

.eb-auth-plan-chip {
	display: flex !important;
	align-items: center !important;
	justify-content: space-between !important;
	gap: 10px !important;
	padding: 12px 15px !important;
	background: #E6F0FF !important;
	border-radius: 12px !important;
	font-size: 0.88rem !important;
	color: #0A2E7A !important;
	font-weight: 600 !important;
}

.eb-auth-plan-chip a {
	color: #0B3FA8 !important;
	font-weight: 700 !important;
	text-decoration: underline !important;
	white-space: nowrap !important;
}

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

.eb-auth-consent input[type="checkbox"] {
	width: 18px !important;
	height: 18px !important;
	min-width: 18px !important;
	margin: 2px 0 0 !important;
	accent-color: #0B3FA8 !important;
	cursor: pointer !important;
}

.eb-auth-consent span {
	font-size: 0.82rem !important;
	color: #4B5563 !important;
	line-height: 1.45 !important;
}

.eb-auth-consent a {
	color: #0B3FA8 !important;
	font-weight: 600 !important;
	text-decoration: underline !important;
}

.eb-auth-submit,
.eb-team-submit {
	width: 100% !important;
	padding: 14px 18px !important;
	background: linear-gradient(135deg, #0B3FA8, #0A2E7A) !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(34, 83, 160, 0.3) !important;
	font-family: inherit !important;
}

.eb-auth-submit:hover,
.eb-team-submit:hover {
	transform: translateY(-1px) !important;
	box-shadow: 0 8px 20px rgba(34, 83, 160, 0.38) !important;
}

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

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

.eb-auth-linklike {
	background: none !important;
	border: none !important;
	color: #0B3FA8 !important;
	font-size: 0.85rem !important;
	font-weight: 600 !important;
	cursor: pointer !important;
	text-decoration: underline !important;
	padding: 0 !important;
	font-family: inherit !important;
}

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

.eb-auth-links a,
.eb-team-wrap a {
	color: #0B3FA8 !important;
	text-decoration: none !important;
	font-weight: 600 !important;
}

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

/* Responsive mobile - demande explicite de l'utilisateur */
@media (max-width: 480px) {
	.eb-auth-page {
		padding: 16px 12px !important;
		align-items: flex-start !important;
		padding-top: 36px !important;
	}
	.eb-auth-card {
		padding: 26px 20px !important;
		border-radius: 18px !important;
	}
	.eb-auth-wrap h1,
	.eb-team-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.
 */
.eb-auth-wrap-wide {
	max-width: 900px !important;
}

.eb-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;
}

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

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

.eb-auth-plan-card {
	background: #fff !important;
	border: 1.5px solid #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;
}

.eb-auth-plan-card:hover {
	transform: translateY(-3px) !important;
	box-shadow: 0 12px 28px rgba(24, 61, 120, 0.14) !important;
	border-color: #0B3FA8 !important;
}

.eb-auth-plan-card h2 {
	font-size: 1.08rem !important;
	font-weight: 800 !important;
	color: #1E293B !important;
	margin: 0 0 10px !important;
}

.eb-auth-plan-price {
	font-size: 1.5rem !important;
	font-weight: 800 !important;
	color: #0B3FA8 !important;
	margin: 0 0 16px !important;
	line-height: 1.2 !important;
}

.eb-auth-plan-price span {
	font-size: 0.8rem !important;
	font-weight: 500 !important;
	color: #6B7280 !important;
}

.eb-auth-plan-limits {
	list-style: none !important;
	margin: 0 0 20px !important;
	padding: 0 !important;
	font-size: 0.83rem !important;
	color: #4B5563 !important;
	flex-grow: 1 !important;
	width: 100% !important;
}

.eb-auth-plan-limits li {
	padding: 5px 0 !important;
	border-bottom: 1px solid #F3F4F6 !important;
}

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

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

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