/* Espace formateur et page d'invitation.
   Les couleurs suivent le thème quand il expose ses variables (thème Méthode 3R),
   avec des valeurs de repli neutres sinon. */

.rf-espace {
	--rf-accent: var(--wp--preset--color--braise, #b5330f);
	--rf-accent-fonce: var(--wp--preset--color--braise-fonce, #8f2a0c);
	--rf-texte: var(--wp--preset--color--ardoise, #24403f);
	--rf-secondaire: var(--wp--preset--color--sauge-fonce, #3d6b6b);
	--rf-fond: var(--wp--preset--color--blanc, #fff);
	--rf-trait: color-mix(in srgb, var(--rf-secondaire) 30%, transparent);
	--rf-titres: var(--wp--preset--font-family--lexend, inherit);
	color: var(--rf-texte);
}

.rf-espace :where(h2, h3) { margin-top: 0; }

/* Messages */
.rf-message {
	padding: .85rem 1.1rem;
	margin: 0 0 1.5rem;
	border-radius: .75rem;
	background: color-mix(in srgb, var(--rf-secondaire) 14%, var(--rf-fond));
}
.rf-message--erreur {
	background: color-mix(in srgb, var(--rf-accent) 12%, var(--rf-fond));
	color: var(--rf-accent-fonce);
}

/* En-tête et onglets */
.rf-entete {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	gap: .5rem 1.5rem;
	margin-bottom: 1.25rem;
	font-family: var(--rf-titres);
}
.rf-entete p { margin: 0; }
.rf-bonjour { font-size: 1.35rem; margin-right: auto !important; }
.rf-solde a {
	display: inline-block;
	padding: .3rem .85rem;
	border-radius: 999px;
	background: var(--rf-fond);
	color: var(--rf-texte);
	text-decoration: none;
	font-weight: 500;
}
.rf-solde a:hover, .rf-solde a:focus-visible { color: var(--rf-accent-fonce); }

.rf-onglets ul {
	display: flex;
	flex-wrap: wrap;
	gap: .25rem;
	list-style: none;
	margin: 0 0 1.5rem;
	padding: 0;
	font-family: var(--rf-titres);
}
.rf-onglets a {
	display: block;
	padding: .55rem 1rem;
	border-radius: 999px;
	color: var(--rf-texte);
	text-decoration: none;
}
.rf-onglets a:hover { background: color-mix(in srgb, var(--rf-fond) 60%, transparent); }
.rf-onglets a[aria-current="page"] { background: var(--rf-texte); color: var(--rf-fond); }

/* Panneaux */
.rf-section,
.rf-carte {
	background: var(--rf-fond);
	border-radius: 1.5rem;
	padding: clamp(1.25rem, 3vw, 2rem);
	margin-bottom: 1.5rem;
}
.rf-section h2 { font-size: 1.5rem; margin-bottom: .75rem; }
.rf-aide { display: block; font-size: .9rem; color: var(--rf-secondaire); margin-top: .25rem; }
.rf-vide { color: var(--rf-secondaire); font-style: italic; }
.rf-facultatif { font-weight: 400; color: var(--rf-secondaire); }
.rf-chapeau { font-size: 1.2rem; }

/* Formulaires */
.rf-formulaire p { margin: 0 0 1rem; }
.rf-formulaire label { display: block; font-family: var(--rf-titres); font-size: .95rem; margin-bottom: .3rem; }
.rf-espace :where(input[type="text"], input[type="email"], input[type="password"], input[type="tel"]) {
	width: 100%;
	max-width: 32rem;
	padding: .65rem .85rem;
	border: 1px solid var(--rf-secondaire);
	border-radius: .5rem;
	font: inherit;
	color: var(--rf-texte);
	background: var(--rf-fond);
	box-sizing: border-box;
}
.rf-espace input[readonly] { background: color-mix(in srgb, var(--rf-secondaire) 8%, var(--rf-fond)); }
.rf-ligne { display: grid; grid-template-columns: repeat(auto-fit, minmax(14rem, 1fr)); gap: 0 1.25rem; }
.rf-case { display: grid; grid-template-columns: auto 1fr; gap: .2rem .6rem; align-items: start; }
.rf-case input { margin-top: .35rem; }
.rf-case label { font-family: inherit !important; font-size: inherit !important; }
.rf-case .rf-aide { grid-column: 2; }

.rf-bouton,
.rf-espace .login-submit input[type="submit"] {
	display: inline-block;
	padding: .75rem 1.4rem;
	border: 0;
	border-radius: 999px;
	background: var(--rf-accent);
	color: #fff;
	font-family: var(--rf-titres);
	font-size: 1rem;
	font-weight: 500;
	text-decoration: none;
	cursor: pointer;
}
.rf-bouton:hover, .rf-bouton:focus-visible,
.rf-espace .login-submit input[type="submit"]:hover { background: var(--rf-accent-fonce); color: #fff; }
.rf-bouton--secondaire { background: transparent; color: var(--rf-accent-fonce); box-shadow: inset 0 0 0 2px currentColor; }
.rf-bouton--secondaire:hover, .rf-bouton--secondaire:focus-visible { background: color-mix(in srgb, var(--rf-accent) 10%, transparent); color: var(--rf-accent-fonce); }

.rf-lien {
	padding: 0;
	border: 0;
	background: none;
	color: var(--rf-accent-fonce);
	font: inherit;
	text-decoration: underline;
	cursor: pointer;
}
.rf-lien[disabled] { color: var(--rf-secondaire); text-decoration: none; cursor: not-allowed; }
.rf-lien--danger { color: var(--rf-texte); }

.rf-espace :focus-visible { outline: 3px solid var(--rf-accent); outline-offset: 2px; }

/* Tableaux */
.rf-tableau-defilant { overflow-x: auto; position: relative; } /* contient les textes masqués positionnés en absolu */
.rf-tableau { width: 100%; border-collapse: collapse; font-size: .95rem; }
.rf-tableau th {
	text-align: left;
	font-family: var(--rf-titres);
	font-weight: 500;
	padding: .6rem .75rem .6rem 0;
	border-bottom: 2px solid var(--rf-accent);
	white-space: nowrap;
}
.rf-tableau td { padding: .7rem .75rem .7rem 0; border-bottom: 1px solid var(--rf-trait); vertical-align: top; }
.rf-nombre { text-align: right; font-variant-numeric: tabular-nums; }
.rf-actions { white-space: nowrap; }
.rf-actions form { display: inline; margin: 0; }
.rf-actions > * + * { margin-left: .9rem; }
.rf-etat--expire { color: var(--rf-accent-fonce); }

/* Crédits */
.rf-solde-grand { font-family: var(--rf-titres); font-size: 2rem; margin: 0 0 .25rem; }
.rf-offres { display: grid; grid-template-columns: repeat(auto-fill, minmax(13rem, 1fr)); gap: 1rem; list-style: none; padding: 0; margin: 0 0 1rem; }
.rf-offre { border: 1px solid var(--rf-trait); border-radius: 1rem; padding: 1.25rem; }
.rf-offre h3 { font-size: 1.15rem; margin-bottom: .25rem; }
.rf-offre p { margin: 0 0 .5rem; }
.rf-offre__credits { color: var(--rf-secondaire); }
.rf-offre__prix { font-family: var(--rf-titres); font-size: 1.3rem; }

/* Consultation d'une passation */
.rf-retour { margin: 0 0 1rem; }
.rf-titre-passation span { color: var(--rf-secondaire); font-weight: 400; }
.rf-restitution { background: var(--rf-fond); border-radius: 1.5rem; padding: clamp(1rem, 3vw, 2rem); margin-top: 1rem; }

/* Connexion et invitation */
.rf-connexion, .rf-invitation .rf-carte { max-width: 38rem; }
.rf-espace .login-username label, .rf-espace .login-password label { display: block; font-family: var(--rf-titres); margin-bottom: .3rem; }

@media (max-width: 600px) {
	.rf-actions { white-space: normal; }
	.rf-actions > * + * { margin-left: 0; }
	.rf-actions > * { display: block; margin-bottom: .35rem; }
}

/* Bandeau du formateur, en tête de l'espace stagiaire */
.rf-bandeau {
	--rf-texte: var(--wp--preset--color--ardoise, #24403f);
	--rf-secondaire: var(--wp--preset--color--sauge-fonce, #3d6b6b);
	display: flex;
	align-items: center;
	gap: 1rem 1.5rem;
	flex-wrap: wrap;
	margin: 0 0 2rem;
	padding: 1rem 1.5rem;
	background: var(--wp--preset--color--blanc, #fff);
	border-radius: 1.25rem;
	color: var(--rf-texte);
}
.rf-bandeau__cadre { display: flex; align-items: center; }
.rf-bandeau__logo {
	display: block;
	width: auto !important;
	height: auto;
	max-height: 64px;
	max-width: min(220px, 60vw);
	object-fit: contain;
}
.rf-bandeau__texte { margin: 0; line-height: 1.3; font-family: var(--wp--preset--font-family--lexend, inherit); }
.rf-bandeau__intro { display: block; font-size: .85rem; color: var(--rf-secondaire); }
.rf-bandeau__nom { font-size: 1.1rem; font-weight: 500; }
.rf-bandeau--apercu { border: 1px dashed color-mix(in srgb, var(--rf-secondaire) 45%, transparent); }
.rf-boutons { display: flex; flex-wrap: wrap; align-items: center; gap: .75rem 1.5rem; }
.rf-espace input[type="file"] { font: inherit; max-width: 100%; }
