/*
 * Yapluqua IA Navigator — feuille de style publique.
 * Charte validée le 02/09/2026 : navy + rose/magenta (maquettes accueil et
 * fiche détail, §14 du cahier des charges). Navigation en sidebar reprise
 * sur toutes les pages (décision du 02/09/2026, §33) — le plugin ne dépend
 * plus du thème actif pour son rendu public (§12).
 */

.yian-body {
	--yian-navy: #12205a;
	--yian-navy-light: #1c2f6b;
	--yian-magenta: #e91e8c;
	--yian-magenta-dark: #c71578;
	--yian-magenta-light: #fce6f2;
	--yian-text: #1f2937;
	--yian-muted: #6b7280;
	--yian-border: #e5e7eb;
	--yian-bg: #f5f6fa;
	--yian-bg-card: #ffffff;
	--yian-bg-warning: #fff7ed;
	--yian-warning-border: #fdba74;
	--yian-gold: #b45309;
	--yian-gold-bg: #fef3c7;
	--yian-sidebar-w: 260px;

	margin: 0;
	background: var(--yian-bg);
	color: var(--yian-text);
	font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
	-webkit-font-smoothing: antialiased;
}

.yian-body *,
.yian-body *::before,
.yian-body *::after {
	box-sizing: border-box;
}

.yian-accent {
	color: var(--yian-magenta);
}

/* ---------- Structure générale ---------- */

.yian-shell {
	display: flex;
	min-height: 100vh;
}

.yian-content-wrap {
	flex: 1 1 auto;
	min-width: 0;
	display: flex;
	flex-direction: column;
}

.yian-main {
	flex: 1 1 auto;
	max-width: 1280px;
	width: 100%;
	margin: 0 auto;
	padding: 1.5rem 1.75rem 3rem;
}

/* ---------- Sidebar ---------- */

.yian-sidebar {
	flex: 0 0 var(--yian-sidebar-w);
	width: var(--yian-sidebar-w);
	background: var(--yian-navy);
	color: #fff;
	display: flex;
	flex-direction: column;
	padding: 1.5rem 1.25rem;
	position: sticky;
	top: 0;
	height: 100vh;
	overflow-y: auto;
}

.yian-sidebar__logo {
	display: flex;
	flex-direction: column;
	text-decoration: none;
	margin-bottom: 1.75rem;
}

.yian-sidebar__brand {
	font-size: 1.35rem;
	font-weight: 800;
	color: #fff;
}

.yian-sidebar__product {
	font-size: 0.78rem;
	font-weight: 600;
	color: #b9c2e0;
	letter-spacing: 0.01em;
	margin-top: 0.15rem;
}

.yian-nav ul {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 0.2rem;
}

.yian-nav__link,
.yian-nav__link--disabled {
	display: flex;
	align-items: center;
	gap: 0.7rem;
	padding: 0.65rem 0.75rem;
	border-radius: 0.6rem;
	color: #dbe1f3;
	text-decoration: none;
	font-size: 0.92rem;
	font-weight: 600;
}

.yian-nav__link:hover {
	background: rgba(255, 255, 255, 0.08);
	color: #fff;
}

.yian-nav__link.is-active {
	background: var(--yian-magenta);
	color: #fff;
}

.yian-nav__link--disabled {
	opacity: 0.55;
	cursor: default;
}

.yian-nav__icon {
	width: 1.3rem;
	text-align: center;
	flex-shrink: 0;
}

.yian-nav__label {
	flex: 1 1 auto;
}

.yian-nav__soon {
	font-size: 0.65rem;
	font-weight: 700;
	text-transform: uppercase;
	background: rgba(255, 255, 255, 0.12);
	border-radius: 999px;
	padding: 0.15rem 0.45rem;
	flex-shrink: 0;
}

.yian-sidebar__tagline {
	margin-top: auto;
	padding-top: 1.5rem;
	border-top: 1px solid rgba(255, 255, 255, 0.12);
	font-size: 0.8rem;
	color: #b9c2e0;
	line-height: 1.5;
}

.yian-sidebar__tagline span {
	display: inline-block;
	margin-top: 0.5rem;
	color: var(--yian-magenta);
}

.yian-sidebar-toggle {
	display: none;
}

/* Texte accessible masqué visuellement (la feuille de style du thème n'est
   plus chargée sur ces pages, cf. strip_theme_styles() — on fournit donc
   nous-mêmes cette classe utilitaire standard de WordPress). */
.screen-reader-text {
	position: absolute;
	width: 1px;
	height: 1px;
	margin: -1px;
	padding: 0;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

/* ---------- Topbar ---------- */

.yian-topbar {
	display: flex;
	align-items: center;
	gap: 1rem;
	padding: 1rem 1.75rem;
	background: #fff;
	border-bottom: 1px solid var(--yian-border);
}

.yian-topbar__spacer {
	flex: 1 1 auto;
}

.yian-topbar__icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 2.1rem;
	height: 2.1rem;
	border-radius: 999px;
	background: var(--yian-bg);
	color: var(--yian-navy);
	font-weight: 700;
	font-size: 0.9rem;
}

.yian-topbar__icon--disabled {
	opacity: 0.5;
}

/* ---------- Boutons ---------- */

.yian-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.5rem;
	width: auto;
	padding: 0.7rem 1.25rem;
	border-radius: 0.6rem;
	border: none;
	font-weight: 700;
	font-size: 0.92rem;
	cursor: pointer;
	text-decoration: none;
	white-space: nowrap;
}

.yian-btn--primary {
	background: var(--yian-magenta);
	color: #fff;
}

.yian-btn--primary:hover {
	background: var(--yian-magenta-dark);
}

.yian-btn--primary:disabled {
	opacity: 0.6;
	cursor: not-allowed;
}

.yian-btn--lg {
	padding: 0.9rem 1.75rem;
	font-size: 1rem;
}

.yian-btn--block {
	width: 100%;
}

.yian-btn--ghost {
	background: var(--yian-bg);
	color: var(--yian-navy);
}

.yian-btn--disabled {
	opacity: 0.55;
	cursor: default;
}

/* ---------- Cartes (communes à toutes les pages) ---------- */

.yian-card {
	background: var(--yian-bg-card);
	border: 1px solid var(--yian-border);
	border-radius: 0.9rem;
	padding: 1.25rem 1.4rem;
	margin-bottom: 1.25rem;
}

.yian-card h2 {
	font-size: 1rem;
	font-weight: 700;
	color: var(--yian-navy);
	margin: 0 0 0.75rem;
	display: flex;
	align-items: center;
	gap: 0.4rem;
}

.yian-card p {
	margin: 0;
	line-height: 1.6;
	color: var(--yian-text);
}

.yian-card--warning {
	background: var(--yian-bg-warning);
	border-color: var(--yian-warning-border);
}

.yian-card--favoris,
.yian-card--favoris-home {
	background: var(--yian-magenta-light);
	border-color: #f6c7de;
}

.yian-card--generateur {
	background: var(--yian-magenta-light);
	border-color: #f6c7de;
}

.yian-card--generateur p {
	margin-bottom: 1rem;
}

.yian-gen__case-link {
	margin-top: 0.6rem;
}

.yian-gen__case-link a {
	color: var(--yian-magenta);
	text-decoration: underline;
	font-weight: 600;
}

.yian-card--info {
	background: #eef2ff;
	border-color: #dbe3ff;
}

.yian-card__header-row {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	flex-wrap: wrap;
	margin-bottom: 0.75rem;
}

.yian-card__header-row h2 {
	margin: 0;
}

.yian-empty {
	color: var(--yian-muted);
	font-size: 0.9rem;
	line-height: 1.6;
	margin: 0;
}

.yian-badge {
	display: inline-flex;
	align-items: center;
	gap: 0.35rem;
	padding: 0.4rem 0.9rem;
	border-radius: 999px;
	font-size: 0.8rem;
	font-weight: 700;
	white-space: nowrap;
}

.yian-badge--premium {
	background: var(--yian-gold-bg);
	color: var(--yian-gold);
}

.yian-badge--sm {
	padding: 0.2rem 0.5rem;
	font-size: 0.7rem;
}

.yian-tag {
	display: inline-flex;
	align-items: center;
	gap: 0.35rem;
	padding: 0.4rem 0.85rem;
	border-radius: 0.6rem;
	background: #f3f4f6;
	color: var(--yian-navy);
	font-size: 0.85rem;
	font-weight: 600;
}

.yian-tag--sm {
	padding: 0.2rem 0.6rem;
	font-size: 0.72rem;
	border-radius: 0.4rem;
}

.yian-tag--info {
	background: var(--yian-magenta-light);
	color: var(--yian-magenta);
}

.yian-check-list {
	list-style: none;
	margin: 0;
	padding: 0;
}

.yian-check-list li {
	margin-bottom: 0.5rem;
	color: var(--yian-text);
}

.yian-pills {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
}

.yian-pill {
	background: #eef2ff;
	color: var(--yian-navy);
	border-radius: 999px;
	padding: 0.35rem 0.8rem;
	font-size: 0.82rem;
	font-weight: 600;
}

/* ---------- Fiche cas d'usage ---------- */

.yian-fiche {
	max-width: 100%;
	color: var(--yian-text);
}

.yian-fiche__header {
	display: flex;
	align-items: center;
	gap: 1rem;
	margin-bottom: 1rem;
	flex-wrap: wrap;
}

.yian-fiche__back {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 2.5rem;
	height: 2.5rem;
	border-radius: 0.5rem;
	border: 1px solid var(--yian-border);
	background: #fff;
	color: var(--yian-navy);
	text-decoration: none;
	font-size: 1.1rem;
	flex-shrink: 0;
}

.yian-fiche__title {
	font-size: 1.9rem;
	font-weight: 800;
	color: var(--yian-navy);
	margin: 0;
	flex: 1 1 auto;
}

.yian-fiche__tags {
	display: flex;
	flex-wrap: wrap;
	gap: 0.6rem;
	margin-bottom: 1.75rem;
}

.yian-fiche__layout {
	display: grid;
	grid-template-columns: 2.2fr 1fr;
	gap: 1.5rem;
	align-items: start;
}

@media (max-width: 960px) {
	.yian-fiche__layout {
		grid-template-columns: 1fr;
	}
}

.yian-fiche__grid-2 {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 1.25rem;
}

@media (max-width: 640px) {
	.yian-fiche__grid-2 {
		grid-template-columns: 1fr;
	}
}

.yian-steps {
	margin: 0;
	padding-left: 1.25rem;
	line-height: 1.7;
}

.yian-steps li {
	margin-bottom: 0.5rem;
}

.yian-prompt {
	white-space: pre-wrap;
	word-break: break-word;
	background: #f8fafc;
	border: 1px solid var(--yian-border);
	border-radius: 0.6rem;
	padding: 1rem;
	font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
	font-size: 0.85rem;
	line-height: 1.6;
	max-height: 420px;
	overflow-y: auto;
}

.yian-copy-btn {
	display: inline-flex;
	align-items: center;
	gap: 0.4rem;
	background: #fff;
	border: 1px solid var(--yian-magenta);
	color: var(--yian-magenta);
	border-radius: 0.5rem;
	padding: 0.5rem 0.9rem;
	font-size: 0.85rem;
	font-weight: 600;
	cursor: pointer;
}

.yian-copy-btn:hover {
	background: var(--yian-magenta-light);
}

.yian-copy-btn.is-copied {
	background: var(--yian-magenta);
	color: #fff;
}

/* ---------- Accueil ---------- */

.yian-home__top {
	display: grid;
	grid-template-columns: 2fr 1fr;
	gap: 1.5rem;
	align-items: start;
	margin-bottom: 2.5rem;
}

@media (max-width: 960px) {
	.yian-home__top {
		grid-template-columns: 1fr;
	}
}

.yian-hero {
	background: linear-gradient(135deg, var(--yian-navy) 0%, var(--yian-navy-light) 100%);
	color: #fff;
	border-radius: 1.1rem;
	padding: 2.5rem 2.5rem 2rem;
}

.yian-hero h1 {
	font-size: 2.1rem;
	font-weight: 800;
	line-height: 1.25;
	margin: 0 0 0.9rem;
}

.yian-hero p {
	color: #cdd5ef;
	font-size: 1rem;
	line-height: 1.6;
	max-width: 44rem;
	margin: 0 0 1.5rem;
}

.yian-stepper {
	list-style: none;
	margin: 2rem 0 0;
	padding: 1.25rem 1.5rem;
	background: #fff;
	border-radius: 0.9rem;
	display: flex;
	flex-wrap: wrap;
	gap: 1.25rem;
	justify-content: space-between;
}

.yian-stepper__step {
	display: flex;
	align-items: flex-start;
	gap: 0.6rem;
	flex: 1 1 10rem;
}

.yian-stepper__num {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 1.8rem;
	height: 1.8rem;
	border-radius: 999px;
	border: 2px solid var(--yian-border);
	color: var(--yian-muted);
	font-weight: 700;
	font-size: 0.85rem;
	flex-shrink: 0;
}

.yian-stepper__step.is-current .yian-stepper__num {
	background: var(--yian-magenta);
	border-color: var(--yian-magenta);
	color: #fff;
}

.yian-stepper__label {
	font-size: 0.82rem;
	color: var(--yian-text);
	line-height: 1.4;
}

.yian-stepper__label strong {
	color: var(--yian-navy);
}

.yian-home__side {
	display: flex;
	flex-direction: column;
}

.yian-domains h2 {
	font-size: 1.3rem;
	font-weight: 800;
	color: var(--yian-navy);
	margin: 0 0 1.1rem;
}

.yian-gen-hub__intro {
	color: var(--yian-muted);
	font-size: 0.92rem;
	margin: -0.6rem 0 1.3rem;
	max-width: 42rem;
}

.yian-gen-hub__domaine {
	margin-top: 2rem;
}

.yian-gen-hub__domaine-titre {
	display: flex;
	align-items: center;
	gap: 0.5rem;
	font-size: 1.05rem;
	font-weight: 800;
	color: var(--yian-navy);
	margin: 0 0 0.9rem;
	padding-top: 1.4rem;
	border-top: 1px solid var(--yian-border);
}

.yian-gen-hub__domaine:first-of-type .yian-gen-hub__domaine-titre {
	padding-top: 0;
	border-top: none;
}

.yian-domains__header-row {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 1rem;
	margin-bottom: 1.1rem;
}

.yian-domains__header-row h2 {
	margin: 0;
}

.yian-domains__see-all {
	color: var(--yian-magenta-dark);
	font-weight: 700;
	font-size: 0.85rem;
	text-decoration: none;
	white-space: nowrap;
}

.yian-domains__see-all:hover {
	text-decoration: underline;
}

.yian-domains__grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 1rem;
}

@media (max-width: 960px) {
	.yian-domains__grid {
		grid-template-columns: repeat(2, 1fr);
	}
}

@media (max-width: 620px) {
	.yian-domains__grid {
		grid-template-columns: 1fr;
	}
}

.yian-domain-card {
	display: flex;
	align-items: center;
	gap: 0.9rem;
	background: #fff;
	border: 1px solid var(--yian-border);
	border-radius: 0.9rem;
	padding: 1.1rem 1.2rem;
	text-decoration: none;
	color: var(--yian-text);
}

.yian-domain-card:hover {
	border-color: var(--yian-magenta);
}

.yian-domain-card__icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 2.6rem;
	height: 2.6rem;
	border-radius: 0.7rem;
	font-size: 1.2rem;
	flex-shrink: 0;
	background: #fce6f2;
}

.yian-domain-card--pink .yian-domain-card__icon { background: #fce6f2; }
.yian-domain-card--blue .yian-domain-card__icon { background: #e0ecff; }
.yian-domain-card--teal .yian-domain-card__icon { background: #dcf7f1; }
.yian-domain-card--green .yian-domain-card__icon { background: #e2f6e2; }
.yian-domain-card--purple .yian-domain-card__icon { background: #ece5fb; }
.yian-domain-card--orange .yian-domain-card__icon { background: #fdead9; }

.yian-domain-card__body {
	display: flex;
	flex-direction: column;
	gap: 0.15rem;
	flex: 1 1 auto;
	min-width: 0;
}

.yian-domain-card__body strong {
	color: var(--yian-navy);
	font-size: 0.95rem;
}

.yian-domain-card__tagline {
	color: var(--yian-muted);
	font-size: 0.78rem;
	line-height: 1.4;
}

.yian-domain-card__count {
	color: var(--yian-muted);
	font-size: 0.78rem;
	font-weight: 700;
	flex-shrink: 0;
}

.yian-domain-card__chevron {
	color: var(--yian-muted);
	font-size: 1.1rem;
	flex-shrink: 0;
}

/* ---------- Parcourir les cas d'usage ---------- */

.yian-archive__header h1 {
	font-size: 1.7rem;
	font-weight: 800;
	color: var(--yian-navy);
	margin: 0 0 0.4rem;
}

.yian-archive__header p {
	color: var(--yian-muted);
	margin: 0 0 1.25rem;
}

.yian-search {
	display: flex;
	gap: 0.6rem;
	max-width: 34rem;
	margin-bottom: 1.5rem;
}

.yian-search input[type="search"] {
	flex: 1 1 auto;
	padding: 0.7rem 1rem;
	border-radius: 0.6rem;
	border: 1px solid var(--yian-border);
	font-size: 0.92rem;
}

.yian-archive__filters {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
	margin-bottom: 1.5rem;
}

.yian-chip {
	display: inline-flex;
	align-items: center;
	gap: 0.35rem;
	padding: 0.45rem 0.9rem;
	border-radius: 999px;
	background: #fff;
	border: 1px solid var(--yian-border);
	color: var(--yian-navy);
	font-size: 0.82rem;
	font-weight: 600;
	text-decoration: none;
}

.yian-chip.is-active {
	background: var(--yian-navy);
	border-color: var(--yian-navy);
	color: #fff;
}

.yian-chip__count {
	opacity: 0.65;
	font-weight: 700;
}

.yian-archive__count {
	color: var(--yian-muted);
	font-size: 0.85rem;
	margin: 0 0 1rem;
}

.yian-archive__grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 1rem;
	margin-bottom: 2rem;
}

@media (max-width: 960px) {
	.yian-archive__grid {
		grid-template-columns: repeat(2, 1fr);
	}
}

@media (max-width: 620px) {
	.yian-archive__grid {
		grid-template-columns: 1fr;
	}
}

.yian-case-card {
	display: flex;
	flex-direction: column;
	gap: 0.5rem;
	background: #fff;
	border: 1px solid var(--yian-border);
	border-radius: 0.9rem;
	padding: 1.1rem 1.2rem;
	text-decoration: none;
	color: var(--yian-text);
}

.yian-case-card:hover {
	border-color: var(--yian-magenta);
}

.yian-case-card h3 {
	font-size: 1rem;
	font-weight: 700;
	color: var(--yian-navy);
	margin: 0;
	line-height: 1.4;
}

.yian-case-card__meta {
	color: var(--yian-muted);
	font-size: 0.8rem;
	margin: 0;
}

.yian-archive__pagination {
	display: flex;
	flex-wrap: wrap;
	gap: 0.4rem;
}

.yian-archive__pagination .page-numbers {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 2.2rem;
	height: 2.2rem;
	padding: 0 0.6rem;
	border-radius: 0.5rem;
	border: 1px solid var(--yian-border);
	background: #fff;
	color: var(--yian-navy);
	text-decoration: none;
	font-size: 0.85rem;
	font-weight: 600;
}

.yian-archive__pagination .page-numbers.current {
	background: var(--yian-navy);
	border-color: var(--yian-navy);
	color: #fff;
}

/* ---------- Page générique (À propos, etc.) ---------- */

.yian-page h1 {
	font-size: 1.8rem;
	font-weight: 800;
	color: var(--yian-navy);
	margin: 0 0 1.5rem;
}

/* ---------- Responsive : sidebar -> barre + menu déroulant ---------- */

@media (max-width: 860px) {
	.yian-shell {
		flex-direction: column;
	}

	.yian-sidebar-toggle {
		display: flex;
		flex-direction: column;
		justify-content: center;
		gap: 0.28rem;
		position: fixed;
		top: 0.85rem;
		left: 0.85rem;
		z-index: 40;
		width: 2.6rem;
		height: 2.6rem;
		border-radius: 0.6rem;
		border: none;
		background: var(--yian-navy);
		cursor: pointer;
	}

	.yian-sidebar-toggle__bar {
		display: block;
		width: 1.3rem;
		height: 2px;
		background: #fff;
		margin: 0 auto;
	}

	.yian-sidebar {
		position: fixed;
		inset: 0 25% 0 0;
		height: 100vh;
		z-index: 30;
		transform: translateX(-105%);
		transition: transform 0.2s ease;
		box-shadow: 0.5rem 0 1.5rem rgba(0, 0, 0, 0.2);
	}

	.yian-sidebar.is-open {
		transform: translateX(0);
	}

	.yian-content-wrap {
		padding-top: 3.75rem;
	}

	.yian-main {
		padding: 1rem 1.1rem 2.5rem;
	}

	.yian-topbar {
		padding: 0.75rem 1.1rem;
	}

	.yian-hero {
		padding: 1.75rem 1.5rem 1.5rem;
	}

	.yian-hero h1 {
		font-size: 1.5rem;
	}
}

/* ---------------------------------------------------------------------
 * Générateurs de documents RH (§34) — pilote "Créer une fiche de poste".
 * Réutilise les tokens de couleur et les composants (.yian-card, .yian-btn)
 * déjà définis ci-dessus ; charte Navigator navy/rose-magenta, pas celle
 * de la boîte à outils SIRH (navy/orange).
 * --------------------------------------------------------------------- */

.yian-gen {
	max-width: 46rem;
	margin: 0 auto;
}

.yian-badge--gen {
	display: inline-block;
	background: var(--yian-magenta-light);
	color: var(--yian-magenta-dark);
	font-size: 0.75rem;
	font-weight: 700;
	padding: 0.25rem 0.65rem;
	border-radius: 999px;
	margin-bottom: 0.75rem;
}

.yian-gen__header h1 {
	margin: 0 0 0.4rem;
	color: var(--yian-navy);
	font-size: 1.6rem;
}

.yian-gen__header p {
	margin: 0 0 1.5rem;
	color: var(--yian-muted);
}

.yian-gen__steps {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 0.5rem;
	margin-bottom: 0.4rem;
}

.yian-gen__step-circle {
	width: 2rem;
	height: 2rem;
	border-radius: 50%;
	background: var(--yian-border);
	color: var(--yian-muted);
	font-weight: 700;
	display: flex;
	align-items: center;
	justify-content: center;
	flex: 0 0 auto;
}

.yian-gen__step-circle.is-active {
	background: var(--yian-magenta);
	color: #fff;
}

.yian-gen__step-circle.is-done {
	background: var(--yian-navy);
	color: #fff;
}

.yian-gen__step-sep {
	width: 3rem;
	height: 2px;
	background: var(--yian-border);
}

.yian-gen__step-labels {
	display: flex;
	justify-content: space-between;
	margin: 0 0 1.5rem;
	color: var(--yian-muted);
	font-size: 0.8rem;
	text-align: center;
}

.yian-gen__step-labels span {
	flex: 1;
}

.yian-gen__panel {
	display: none;
}

.yian-gen__panel.is-active {
	display: block;
}

.yian-gen__row {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 1rem;
}

.yian-gen__field {
	margin-bottom: 1rem;
}

.yian-gen__field label {
	display: block;
	font-weight: 700;
	font-size: 0.85rem;
	color: var(--yian-navy);
	margin-bottom: 0.3rem;
}

.yian-gen__field input[type="text"],
.yian-gen__field input[type="number"],
.yian-gen__field select,
.yian-gen__field textarea {
	width: 100%;
	padding: 0.55rem 0.7rem;
	border: 1px solid var(--yian-border);
	border-radius: 0.5rem;
	font-family: inherit;
	font-size: 0.95rem;
	color: var(--yian-text);
	background: #fff;
}

.yian-gen__field input:focus,
.yian-gen__field select:focus,
.yian-gen__field textarea:focus {
	outline: 2px solid var(--yian-magenta);
	outline-offset: 1px;
}

.yian-gen__list {
	display: flex;
	flex-direction: column;
	gap: 0.5rem;
	margin-bottom: 0.5rem;
}

.yian-gen__list-row {
	display: flex;
	gap: 0.5rem;
	align-items: center;
}

.yian-gen__list-row input {
	flex: 1;
	padding: 0.5rem 0.65rem;
	border: 1px solid var(--yian-border);
	border-radius: 0.5rem;
	font-size: 0.95rem;
}

.yian-gen__remove-row {
	flex: 0 0 auto;
	width: 1.9rem;
	height: 1.9rem;
	border-radius: 50%;
	border: 1px solid var(--yian-border);
	background: #fff;
	color: var(--yian-muted);
	cursor: pointer;
	font-size: 1rem;
	line-height: 1;
}

.yian-gen__remove-row:hover {
	border-color: var(--yian-magenta);
	color: var(--yian-magenta);
}

.yian-gen__btn-add {
	background: none;
	border: 1px dashed var(--yian-border);
	border-radius: 0.5rem;
	color: var(--yian-magenta-dark);
	font-weight: 700;
	font-size: 0.85rem;
	padding: 0.5rem 0.8rem;
	cursor: pointer;
}

.yian-gen__btn-add:hover {
	border-color: var(--yian-magenta);
	background: var(--yian-magenta-light);
}

.yian-gen__nav {
	display: flex;
	justify-content: space-between;
	align-items: center;
	margin: 1.5rem 0 3rem;
}

.yian-gen__result-actions {
	display: flex;
	justify-content: space-between;
	margin: 1.5rem 0 3rem;
}

.yian-gen__doc-title h2 {
	color: var(--yian-navy);
	margin: 0 0 0.2rem;
}

.yian-gen__doc-title p {
	color: var(--yian-muted);
	margin: 0 0 1.25rem;
}

.yian-gen__doc-section {
	border-top: 1px solid var(--yian-border);
	padding-top: 1rem;
	margin-top: 1rem;
}

.yian-gen__doc-section h3 {
	color: var(--yian-magenta-dark);
	font-size: 1rem;
	margin: 0 0 0.6rem;
}

.yian-gen__doc-field {
	margin: 0 0 0.6rem;
	font-size: 0.92rem;
}

.yian-gen__doc-section ul {
	margin: 0 0 0.6rem;
	padding-left: 1.2rem;
}

.yian-gen__empty-note {
	color: var(--yian-muted);
	font-style: italic;
}

.yian-gen__disclaimer {
	margin-top: 1.5rem;
	padding-top: 1rem;
	border-top: 1px solid var(--yian-border);
	color: var(--yian-muted);
	font-size: 0.8rem;
	font-style: italic;
}

.yian-gen__hint {
	display: block;
	color: var(--yian-muted);
	font-size: 0.8rem;
	margin-top: 0.3rem;
}

.yian-gen__check {
	display: flex;
	align-items: center;
	gap: 0.5rem;
	font-size: 0.9rem;
	font-weight: 600;
	color: var(--yian-navy);
	margin-top: 0.5rem;
	cursor: pointer;
}

.yian-gen__check input {
	width: 1.05rem;
	height: 1.05rem;
}

.yian-gen__score {
	text-align: center;
	font-weight: 700;
	color: var(--yian-magenta-dark);
	background: var(--yian-magenta-light);
	border-radius: 0.6rem;
	padding: 0.7rem;
	margin: 1.5rem 0;
}

.yian-gen__notice {
	background: #fff4e5;
	border: 1px solid #f3d9a8;
	border-radius: 0.6rem;
	padding: 0.8rem 1rem;
	font-size: 0.88rem;
	color: #7a5b12;
	margin-bottom: 1.5rem;
}

.yian-gen__theme {
	border: 1px solid var(--yian-border);
	border-radius: 0.6rem;
	padding: 1rem;
	margin-bottom: 1rem;
}

.yian-gen__theme-header {
	display: flex;
	gap: 0.5rem;
	align-items: center;
	margin-bottom: 0.75rem;
}

.yian-gen__theme-header input {
	flex: 1;
	padding: 0.5rem 0.65rem;
	border: 1px solid var(--yian-border);
	border-radius: 0.5rem;
	font-size: 0.95rem;
	font-weight: 700;
}

.yian-gen__question-row {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
	align-items: center;
	margin-bottom: 0.5rem;
}

.yian-gen__question-row input[type="text"] {
	flex: 2 1 12rem;
	padding: 0.5rem 0.65rem;
	border: 1px solid var(--yian-border);
	border-radius: 0.5rem;
	font-size: 0.9rem;
}

.yian-gen__question-row select {
	flex: 1 1 8rem;
	padding: 0.5rem 0.65rem;
	border: 1px solid var(--yian-border);
	border-radius: 0.5rem;
	font-size: 0.85rem;
}

.yian-gen__btn-add-question {
	background: none;
	border: 1px dashed var(--yian-border);
	border-radius: 0.5rem;
	color: var(--yian-magenta-dark);
	font-weight: 700;
	font-size: 0.8rem;
	padding: 0.4rem 0.7rem;
	cursor: pointer;
	margin-top: 0.4rem;
}

.yian-gen__btn-add-question:hover {
	border-color: var(--yian-magenta);
	background: var(--yian-magenta-light);
}

@media (max-width: 640px) {
	.yian-gen__row {
		grid-template-columns: 1fr;
	}

	.yian-gen__step-labels {
		display: none;
	}

	.yian-gen__step-sep {
		width: 1.5rem;
	}
}

@media print {
	.yian-sidebar,
	.yian-sidebar-toggle,
	.yian-topbar,
	.yian-gen__header,
	.yian-gen__steps,
	.yian-gen__step-labels,
	.yian-gen__nav,
	.yian-gen__result-actions,
	.yian-gen__notice,
	.yian-gen__panel:not(.is-active) {
		display: none !important;
	}

	.yian-content-wrap {
		padding: 0 !important;
	}

	.yian-gen__result {
		border: none !important;
		box-shadow: none !important;
	}
}

/* ---------- Page de connexion (/connexion/, §48) ---------- */

.yian-login-body {
	background: var(--yian-navy);
	margin: 0;
}

.yian-login-wrap {
	min-height: 100vh;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 1.5rem;
}

.yian-login-card {
	width: 100%;
	max-width: 380px;
	background: var(--yian-bg-card);
	border-radius: 1rem;
	padding: 2rem 1.75rem;
	box-shadow: 0 20px 45px rgba(0, 0, 0, 0.25);
}

.yian-login-card__logo {
	font-weight: 700;
	font-size: 1.05rem;
	color: var(--yian-navy);
	margin-bottom: 1.5rem;
}

.yian-login-card__product {
	color: var(--yian-muted);
	font-weight: 500;
}

.yian-login-card h1 {
	font-size: 1.3rem;
	color: var(--yian-navy);
	margin: 0 0 0.4rem;
}

.yian-login-card__intro {
	color: var(--yian-muted);
	font-size: 0.9rem;
	line-height: 1.5;
	margin: 0 0 1.25rem;
}

.yian-login-card__error {
	margin-bottom: 1.25rem;
	padding: 0.85rem 1rem;
}

.yian-login-card__error p {
	color: var(--yian-gold);
	font-size: 0.88rem;
}

.yian-login-form__field {
	margin-bottom: 1.1rem;
}

.yian-login-form__field label {
	display: block;
	font-size: 0.85rem;
	font-weight: 600;
	color: var(--yian-navy);
	margin-bottom: 0.35rem;
}

.yian-login-form__field input {
	width: 100%;
	padding: 0.65rem 0.8rem;
	border: 1px solid var(--yian-border);
	border-radius: 0.55rem;
	font-size: 0.95rem;
	box-sizing: border-box;
}

.yian-login-form__field input:focus {
	outline: 2px solid var(--yian-magenta);
	outline-offset: 1px;
}

.yian-login-card__lost {
	display: block;
	text-align: center;
	margin-top: 1.1rem;
	font-size: 0.85rem;
	color: var(--yian-muted);
	text-decoration: underline;
}

.yian-topbar__logout {
	font-size: 0.85rem;
	color: var(--yian-navy);
	text-decoration: underline;
	white-space: nowrap;
}
