/**
 * SimulateurPro Sprint — Styles front.
 * Mobile-first, responsive complet.
 */

/* ============================================================
   ICÔNES SVG
   ============================================================ */
.sps-icon {
	display: inline-block;
	vertical-align: middle;
	width: 1.1em;
	height: 1.1em;
	flex-shrink: 0;
}
.sps-icon-sm { width: 0.875em; height: 0.875em; }
.sps-icon-lg { width: 1.5em; height: 1.5em; }

/* Quand l'icône est dans un titre, on aligne proprement. */
h1 .sps-icon, h2 .sps-icon, h3 .sps-icon, h4 .sps-icon {
	color: var(--sps-couleur-primaire);
	margin-right: 0.5rem;
}
.sps-titre-resultats,
.sps-titre-section {
	display: flex;
	align-items: center;
	gap: 0.6rem;
}
.sps-titre-resultats .sps-icon,
.sps-titre-section .sps-icon {
	width: 1.4em;
	height: 1.4em;
}

/* Badges avec icône intégrée. */
.sps-badge,
.sps-tag {
	display: inline-flex;
	align-items: center;
	gap: 0.4em;
}

/* Status icon dans la card. */
.sps-card-statut .sps-icon { width: 1em; height: 1em; }

/* Correction : bonne réponse */
.sps-correction-bonne {
	display: flex;
	align-items: center;
	gap: 0.5em;
}
.sps-correction-bonne .sps-icon { color: var(--sps-statut-reussi); }

/* ============================================================
   STRUCTURE GÉNÉRALE
   ============================================================ */
.sps-sprint-wrapper,
.sps-archive-wrapper {
	max-width: 960px;
	margin: 2rem auto;
	padding: 0 1rem;
	font-family: var(--sps-police);
	color: var(--sps-texte);
}

.sps-vue { display: block; }
.sps-vue[hidden] { display: none !important; }

/* ============================================================
   BOUTONS
   ============================================================ */
.sps-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.5rem;
	padding: 0.75rem 1.5rem;
	font-size: var(--sps-taille-base);
	font-weight: var(--sps-poids-fort);
	border: 2px solid transparent;
	border-radius: var(--sps-radius);
	cursor: pointer;
	transition: all var(--sps-transition);
	text-decoration: none;
	font-family: var(--sps-police);
	line-height: 1.2;
}
.sps-btn:hover:not(:disabled) { transform: translateY(-1px); box-shadow: var(--sps-ombre-moyenne); }
.sps-btn:disabled { opacity: 0.6; cursor: not-allowed; }
.sps-btn-primary { background: var(--sps-couleur-primaire); color: #fff; }
.sps-btn-primary:hover:not(:disabled) { background: var(--sps-couleur-primaire-fonce); color: #fff; }
.sps-btn-secondary { background: transparent; color: var(--sps-couleur-primaire); border-color: var(--sps-couleur-primaire); }
.sps-btn-secondary:hover:not(:disabled) { background: var(--sps-couleur-primaire); color: #fff; }
.sps-btn-success { background: var(--sps-couleur-succes); color: #fff; }
.sps-btn-success:hover:not(:disabled) { background: #008a20; }

/* ============================================================
   BADGES / TAGS
   ============================================================ */
.sps-badge, .sps-tag {
	display: inline-block;
	padding: 0.25rem 0.75rem;
	font-size: 0.875rem;
	font-weight: var(--sps-poids-fort);
	border-radius: 999px;
	background: var(--sps-bg-doux);
	color: var(--sps-texte-secondaire);
	margin-right: 0.5rem;
	margin-bottom: 0.5rem;
}
.sps-badge-niveau, .sps-tag-niveau { background: #e7f5ff; color: #1864ab; }
.sps-badge-difficulte, .sps-tag-difficulte { background: #fff4e6; color: #cc5500; }
.sps-badge-questions, .sps-tag-questions { background: #f1f3f5; color: #495057; }
.sps-badge-temps { background: #e6fcf5; color: #099268; }
.sps-badge-reussi { background: #d3f9d8; color: #2b8a3e; }
.sps-badge-echec { background: #ffe3e3; color: #c92a2a; }

/* ============================================================
   ARCHIVE / GRILLE DE CARDS
   ============================================================ */
.sps-archive-header h1 {
	font-size: var(--sps-taille-titre-grand);
	margin-bottom: 0.5rem;
}
.sps-archive-intro {
	color: var(--sps-texte-secondaire);
	margin-bottom: 1.5rem;
}
.sps-archive-filtres {
	display: flex;
	flex-wrap: wrap;
	gap: 1rem;
	align-items: flex-end;
	margin-bottom: 2rem;
	padding: 1rem;
	background: var(--sps-bg-doux);
	border-radius: var(--sps-radius);
}
.sps-archive-filtres label {
	display: flex;
	flex-direction: column;
	gap: 0.25rem;
	font-size: 0.875rem;
	font-weight: var(--sps-poids-fort);
}
.sps-archive-filtres select {
	padding: 0.5rem;
	border: 1px solid var(--sps-bordure);
	border-radius: var(--sps-radius-petit);
	background: #fff;
}

.sps-grille-sprints {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
	gap: 1.5rem;
}

.sps-card-sprint {
	background: var(--sps-bg-card);
	border: 2px solid var(--sps-bordure-claire);
	border-radius: var(--sps-radius);
	overflow: hidden;
	transition: all var(--sps-transition);
}
.sps-card-sprint:hover { transform: translateY(-4px); box-shadow: var(--sps-ombre-moyenne); border-color: var(--sps-couleur-primaire-clair); }
.sps-card-sprint .sps-card-lien { color: inherit; text-decoration: none; display: block; }
.sps-card-sprint.sps-card-statut-reussi { border-color: var(--sps-statut-reussi); }
.sps-card-sprint.sps-card-statut-tente { border-color: var(--sps-statut-tente); }

.sps-card-image img { width: 100%; height: 160px; object-fit: cover; display: block; }
.sps-card-corps { padding: 1rem; }
.sps-card-statut {
	display: inline-block;
	font-size: 0.75rem;
	font-weight: var(--sps-poids-fort);
	color: var(--sps-texte-secondaire);
	margin-bottom: 0.5rem;
	text-transform: uppercase;
	letter-spacing: 0.05em;
}
.sps-card-titre { font-size: var(--sps-taille-grand); margin: 0 0 0.5rem; line-height: 1.3; }
.sps-card-extrait { font-size: 0.9rem; color: var(--sps-texte-secondaire); margin-bottom: 0.75rem; }
.sps-card-meta { margin-bottom: 0.5rem; }
.sps-card-score {
	margin-top: 0.5rem;
	padding-top: 0.5rem;
	border-top: 1px solid var(--sps-bordure-claire);
	font-size: 0.875rem;
	color: var(--sps-couleur-primaire);
	font-weight: var(--sps-poids-fort);
}

/* ============================================================
   SINGLE — INTRO
   ============================================================ */
.sps-sprint-header { text-align: center; margin-bottom: 2rem; }
.sps-sprint-couverture img { max-width: 100%; height: auto; border-radius: var(--sps-radius); margin-bottom: 1rem; }
.sps-sprint-titre { font-size: var(--sps-taille-titre-grand); margin-bottom: 0.5rem; }
.sps-sprint-meta { display: flex; flex-wrap: wrap; gap: 0.5rem; justify-content: center; }

.sps-sprint-description {
	background: var(--sps-bg-doux);
	padding: 1.25rem;
	border-radius: var(--sps-radius);
	border-left: 4px solid var(--sps-couleur-primaire);
	margin-bottom: 1.5rem;
}

.sps-sprint-regles, .sps-sprint-notions-liees, .sps-sprint-historique {
	margin: 2rem 0;
	padding: 1.25rem;
	background: var(--sps-bg);
	border: 1px solid var(--sps-bordure-claire);
	border-radius: var(--sps-radius);
}
.sps-sprint-regles h2, .sps-sprint-notions-liees h2, .sps-sprint-historique h2 {
	font-size: var(--sps-taille-titre);
	margin-bottom: 0.75rem;
}
.sps-sprint-regles ul, .sps-sprint-notions-liees ul { padding-left: 1.5rem; }
.sps-sprint-regles li { margin-bottom: 0.5rem; }

.sps-table-historique {
	width: 100%;
	border-collapse: collapse;
	margin-top: 0.75rem;
}
.sps-table-historique th,
.sps-table-historique td {
	padding: 0.5rem;
	text-align: left;
	border-bottom: 1px solid var(--sps-bordure-claire);
}
.sps-table-historique th { background: var(--sps-bg-doux); font-size: 0.875rem; }
.sps-meilleur-score {
	font-size: 1.1rem;
	font-weight: var(--sps-poids-fort);
	color: var(--sps-couleur-primaire);
	margin-bottom: 0.75rem;
}

.sps-sprint-cta { text-align: center; margin: 2rem 0; }
.sps-sprint-cta .sps-btn { font-size: 1.125rem; padding: 1rem 2rem; }
.sps-message-connexion, .sps-message-bloque {
	background: #fff4e6;
	color: #cc5500;
	padding: 1rem;
	border-radius: var(--sps-radius);
	margin-bottom: 1rem;
}

/* ============================================================
   RUNNER — Exécution
   ============================================================ */
.sps-vue-runner {
	min-height: 60vh;
	background: var(--sps-bg);
	border-radius: var(--sps-radius);
	padding: 2rem;
	box-shadow: var(--sps-ombre-douce);
}

.sps-runner-header {
	display: flex;
	justify-content: space-between;
	align-items: center;
	flex-wrap: wrap;
	gap: 1rem;
	margin-bottom: 2rem;
	padding-bottom: 1rem;
	border-bottom: 2px solid var(--sps-bordure-claire);
}
.sps-runner-progression {
	font-weight: var(--sps-poids-fort);
	color: var(--sps-texte-secondaire);
}
.sps-runner-chrono {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	padding: 0.5rem 1.25rem;
	background: var(--sps-bg-doux);
	border-radius: 999px;
	font-size: 1.5rem;
	font-weight: var(--sps-poids-tres-fort);
	font-variant-numeric: tabular-nums;
	color: var(--sps-chrono-ok);
	transition: all var(--sps-transition);
}
.sps-runner-chrono.sps-chrono-warn { color: var(--sps-chrono-warn); animation: sps-pulse 1.5s infinite; }
.sps-runner-chrono.sps-chrono-danger { color: var(--sps-chrono-danger); animation: sps-pulse 0.7s infinite; background: #ffe3e3; }
@keyframes sps-pulse {
	0%, 100% { transform: scale(1); }
	50% { transform: scale(1.05); }
}

.sps-runner-zone {
	min-height: 200px;
	animation: sps-slidein 0.4s ease;
}
@keyframes sps-slidein {
	from { opacity: 0; transform: translateX(20px); }
	to { opacity: 1; transform: translateX(0); }
}

.sps-question .sps-enonce {
	font-size: 1.25rem;
	margin-bottom: 1.5rem;
	line-height: 1.5;
}
.sps-reponses {
	display: flex;
	flex-direction: column;
	gap: 0.75rem;
}
.sps-reponse {
	display: flex;
	align-items: center;
	gap: 0.75rem;
	padding: 1rem;
	border: 2px solid var(--sps-bordure);
	border-radius: var(--sps-radius);
	cursor: pointer;
	transition: all var(--sps-transition);
}
.sps-reponse:hover { border-color: var(--sps-couleur-primaire); background: var(--sps-bg-doux); }
.sps-reponse input { transform: scale(1.3); margin-right: 0.5rem; }

.sps-trou {
	display: inline-block;
	min-width: 6em;
	padding: 0.25rem 0.5rem;
	border: 2px solid var(--sps-couleur-primaire);
	border-radius: var(--sps-radius-petit);
	font-family: inherit;
	font-size: inherit;
	background: #fff;
}
.sps-trou:focus { outline: 3px solid var(--sps-couleur-primaire-clair); }

.sps-texte-trous { font-size: 1.1rem; line-height: 1.8; }

.sps-dragdrop-zone { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
.sps-dragdrop-gauche, .sps-dragdrop-droite {
	display: flex; flex-direction: column; gap: 0.75rem;
	padding: 1rem; background: var(--sps-bg-doux); border-radius: var(--sps-radius); min-height: 200px;
}
.sps-dragdrop-slot { display: flex; align-items: center; gap: 1rem; }
.sps-dragdrop-label { font-weight: var(--sps-poids-fort); flex: 1; }
.sps-dragdrop-cible {
	min-width: 120px;
	min-height: 40px;
	border: 2px dashed var(--sps-bordure);
	border-radius: var(--sps-radius-petit);
	padding: 0.5rem;
}
.sps-dragdrop-item {
	padding: 0.5rem 1rem;
	background: #fff;
	border: 2px solid var(--sps-couleur-primaire);
	border-radius: var(--sps-radius-petit);
	cursor: grab;
	user-select: none;
}
.sps-dragdrop-item:active { cursor: grabbing; }
.sps-dragging { opacity: 0.5; }

.sps-ordre-liste { list-style: none; padding: 0; counter-reset: ordre; }
.sps-ordre-item {
	counter-increment: ordre;
	display: flex;
	align-items: center;
	gap: 1rem;
	padding: 1rem;
	background: #fff;
	border: 2px solid var(--sps-bordure);
	border-radius: var(--sps-radius);
	margin-bottom: 0.5rem;
	cursor: grab;
}
.sps-ordre-item::before {
	content: counter(ordre);
	width: 32px; height: 32px;
	background: var(--sps-couleur-primaire);
	color: #fff;
	border-radius: 50%;
	display: flex; align-items: center; justify-content: center;
	font-weight: var(--sps-poids-tres-fort);
}
.sps-ordre-poignee {
	color: var(--sps-texte-secondaire);
	cursor: grab;
	display: inline-flex;
	align-items: center;
}
.sps-ordre-poignee .sps-icon { width: 1.2em; height: 1.2em; }
.sps-ordre-aide { font-size: 0.875rem; color: var(--sps-texte-secondaire); margin-top: 0.5rem; }

.sps-runner-actions { margin-top: 2rem; display: flex; gap: 1rem; justify-content: center; flex-wrap: wrap; }

/* ============================================================
   RÉSULTATS
   ============================================================ */
.sps-resultats-entete {
	text-align: center;
	padding: 2rem;
	border-radius: var(--sps-radius);
	margin-bottom: 2rem;
}
.sps-resultats-entete.sps-resultat-reussi { background: #d3f9d8; }
.sps-resultats-entete.sps-resultat-echec { background: #ffe3e3; }
.sps-resultats-entete h2 { font-size: var(--sps-taille-titre-grand); margin-bottom: 1rem; }
.sps-resultats-stats {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
	gap: 1rem;
	max-width: 600px;
	margin: 0 auto;
}
.sps-stat {
	background: #fff;
	padding: 1rem;
	border-radius: var(--sps-radius);
	box-shadow: var(--sps-ombre-douce);
}
.sps-stat-label {
	display: block;
	font-size: 0.875rem;
	color: var(--sps-texte-secondaire);
	margin-bottom: 0.25rem;
}
.sps-stat-valeur {
	display: block;
	font-size: 1.5rem;
	font-weight: var(--sps-poids-tres-fort);
	color: var(--sps-couleur-primaire);
}

.sps-correction {
	list-style: none;
	padding: 0;
	counter-reset: correction;
}
.sps-correction li {
	counter-increment: correction;
	padding: 1rem 1rem 1rem 3rem;
	background: var(--sps-bg-doux);
	border-radius: var(--sps-radius);
	margin-bottom: 0.75rem;
	position: relative;
	border-left: 4px solid var(--sps-bordure);
}
.sps-correction li::before {
	content: counter(correction);
	position: absolute; left: 0.75rem; top: 1rem;
	width: 28px; height: 28px;
	background: var(--sps-couleur-primaire);
	color: #fff;
	border-radius: 50%;
	display: flex; align-items: center; justify-content: center;
	font-size: 0.875rem;
	font-weight: var(--sps-poids-tres-fort);
}
.sps-correction li.sps-correcte { border-left-color: var(--sps-statut-reussi); }
.sps-correction li.sps-incorrecte { border-left-color: var(--sps-statut-echec); }
.sps-correction-enonce { font-weight: var(--sps-poids-fort); margin-bottom: 0.5rem; }
.sps-correction-bonne { color: var(--sps-statut-reussi); margin-bottom: 0.5rem; }
.sps-correction-explication { font-size: 0.9rem; color: var(--sps-texte-secondaire); }

.sps-leaderboard {
	list-style: none;
	padding: 0;
}
.sps-leaderboard li {
	display: flex;
	align-items: center;
	padding: 0.75rem 1rem;
	background: var(--sps-bg-doux);
	border-radius: var(--sps-radius);
	margin-bottom: 0.5rem;
	gap: 1rem;
}
.sps-leaderboard li:nth-child(1) { background: #fff4cc; }
.sps-leaderboard li:nth-child(2) { background: #f1f3f5; }
.sps-leaderboard li:nth-child(3) { background: #ffe9d8; }
.sps-rang {
	width: 32px; height: 32px;
	background: var(--sps-couleur-primaire);
	color: #fff;
	border-radius: 50%;
	display: flex; align-items: center; justify-content: center;
	font-weight: var(--sps-poids-tres-fort);
}
.sps-nom { flex: 1; font-weight: var(--sps-poids-fort); }
.sps-points { color: var(--sps-couleur-primaire); font-weight: var(--sps-poids-fort); }

.sps-resultats-actions { display: flex; gap: 1rem; justify-content: center; margin-top: 2rem; }

/* ============================================================
   ENCART NOTIONS LIÉES
   ============================================================ */
.sps-encart-sprints-lies {
	margin: 2rem 0;
	padding: 1.25rem;
	background: linear-gradient(135deg, #e7f5ff, #fff);
	border-left: 4px solid var(--sps-couleur-primaire);
	border-radius: var(--sps-radius);
}
.sps-encart-sprints-lies h3 { margin-top: 0; }
.sps-liste-sprints-lies { list-style: none; padding: 0; }
.sps-liste-sprints-lies li { margin: 0.5rem 0; }

/* ============================================================
   SHORTCODES (historique, leaderboard, progression)
   ============================================================ */
.sps-shortcode-historique table,
.sps-shortcode-leaderboard ol,
.sps-shortcode-progression {
	width: 100%;
}
.sps-shortcode-carte {
	display: block;
	padding: 1rem;
	background: var(--sps-bg-doux);
	border-left: 4px solid var(--sps-couleur-primaire);
	border-radius: var(--sps-radius);
	text-decoration: none;
	color: inherit;
	transition: all var(--sps-transition);
}
.sps-shortcode-carte:hover { transform: translateX(4px); box-shadow: var(--sps-ombre-moyenne); }

.sps-shortcode-progression .sps-stat-progression {
	display: inline-block;
	margin-right: 1rem;
}

/* ============================================================
   RESPONSIVE
   ============================================================ */
@media (max-width: 640px) {
	.sps-grille-sprints { grid-template-columns: 1fr; }
	.sps-dragdrop-zone { grid-template-columns: 1fr; }
	.sps-runner-header { flex-direction: column; align-items: flex-start; }
	.sps-vue-runner { padding: 1rem; }
	.sps-runner-chrono { font-size: 1.25rem; }
	.sps-resultats-actions { flex-direction: column; }
	.sps-archive-filtres { flex-direction: column; align-items: stretch; }
}

/* ============================================================
   ACCESSIBILITÉ — Focus visible
   ============================================================ */
.sps-btn:focus-visible,
.sps-reponse:focus-within,
.sps-trou:focus,
.sps-archive-filtres select:focus {
	outline: 3px solid var(--sps-couleur-primaire);
	outline-offset: 2px;
}

/* ============================================================
   ACCORDÉON ARCHIVE (10 cats × 37 sous-cats)
   ============================================================ */
.sps-archive-accordion .sps-archive-header {
	text-align: center;
	margin-bottom: 1.5rem;
}

.sps-accordion {
	display: flex;
	flex-direction: column;
	gap: 0.75rem;
	max-width: 920px;
	margin: 0 auto;
}

.sps-accordion__cat {
	background: var(--sps-bg);
	border: 1px solid var(--sps-bordure);
	border-radius: var(--sps-radius);
	overflow: hidden;
	transition: all var(--sps-transition);
}
.sps-accordion__cat[open] {
	border-color: var(--sps-couleur-primaire);
	box-shadow: var(--sps-ombre-douce);
}
.sps-accordion__cat.is-empty .sps-accordion__cat-count {
	color: var(--sps-texte-secondaire);
	font-style: italic;
}

.sps-accordion__cat-header {
	display: flex;
	align-items: center;
	gap: 0.75rem;
	padding: 1rem 1.25rem;
	cursor: pointer;
	user-select: none;
	list-style: none;
	font-family: inherit;
}
.sps-accordion__cat-header::-webkit-details-marker { display: none; }
.sps-accordion__cat-header:hover { background: var(--sps-bg-doux); }

.sps-accordion__cat-title {
	font-size: 1.25rem;
	font-weight: var(--sps-poids-tres-fort);
	color: var(--sps-texte);
	margin: 0;
	flex: 1;
	letter-spacing: -0.01em;
}

.sps-accordion__cat-count {
	font-size: 0.85rem;
	font-weight: var(--sps-poids-fort);
	color: var(--sps-couleur-primaire);
	background: rgba(34, 113, 177, 0.1);
	padding: 4px 12px;
	border-radius: 999px;
	white-space: nowrap;
}

.sps-accordion__chevron {
	display: inline-flex;
	color: var(--sps-texte-secondaire);
	transition: transform var(--sps-transition);
}
.sps-accordion__cat[open] > .sps-accordion__cat-header .sps-accordion__chevron {
	transform: rotate(180deg);
	color: var(--sps-couleur-primaire);
}

.sps-accordion__cat-body {
	padding: 0.5rem 1.25rem 1.25rem;
	border-top: 1px solid var(--sps-bordure-claire);
}

/* Sous-accordéon */
.sps-accordion__sub {
	background: var(--sps-bg-doux);
	border: 1px solid var(--sps-bordure);
	border-radius: var(--sps-radius-petit);
	margin: 0.5rem 0;
	overflow: hidden;
}
.sps-accordion__sub.is-empty .sps-accordion__sub-count {
	color: var(--sps-texte-secondaire);
	font-style: italic;
}
.sps-accordion__sub.is-empty .sps-accordion__sub-title {
	color: var(--sps-texte-secondaire);
}

.sps-accordion__sub-header {
	display: flex;
	align-items: center;
	gap: 0.5rem;
	padding: 0.5rem 1rem;
	cursor: pointer;
	user-select: none;
	list-style: none;
	font-family: inherit;
}
.sps-accordion__sub-header::-webkit-details-marker { display: none; }
.sps-accordion__sub-header:hover { background: rgba(0, 0, 0, 0.03); }

.sps-accordion__sub-title {
	font-size: 1rem;
	font-weight: var(--sps-poids-fort);
	color: var(--sps-texte);
	margin: 0;
	flex: 1;
}

.sps-accordion__sub-count {
	font-size: 0.78rem;
	color: var(--sps-texte-secondaire);
	white-space: nowrap;
}

.sps-accordion__chevron--sub { width: 16px; height: 16px; }
.sps-accordion__sub[open] > .sps-accordion__sub-header .sps-accordion__chevron--sub {
	transform: rotate(180deg);
	color: var(--sps-couleur-primaire);
}

.sps-accordion__sub-body {
	padding: 0.5rem 1rem 1rem;
	border-top: 1px solid var(--sps-bordure-claire);
}

.sps-accordion__sprints {
	list-style: none;
	padding: 0;
	margin: 0;
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
	gap: 0.5rem;
}
.sps-accordion__sprints li a {
	display: block;
	padding: 8px 12px;
	border-radius: var(--sps-radius-petit);
	background: var(--sps-bg);
	border: 1px solid var(--sps-bordure);
	color: var(--sps-texte);
	text-decoration: none;
	font-size: 0.9rem;
	transition: all var(--sps-transition);
}
.sps-accordion__sprints li a:hover {
	border-color: var(--sps-couleur-primaire);
	color: var(--sps-couleur-primaire);
	transform: translateX(2px);
}

.sps-accordion__coming-soon {
	color: var(--sps-texte-secondaire);
	font-style: italic;
	margin: 0;
	padding: 0.75rem 0;
	text-align: center;
}

@media (prefers-reduced-motion: no-preference) {
	.sps-accordion__cat[open] .sps-accordion__cat-body,
	.sps-accordion__sub[open] .sps-accordion__sub-body {
		animation: spsFadeIn 0.25s ease;
	}
	@keyframes spsFadeIn {
		from { opacity: 0; transform: translateY(-4px); }
		to { opacity: 1; transform: translateY(0); }
	}
}

@media (max-width: 600px) {
	.sps-accordion__cat-header { padding: 0.75rem 1rem; }
	.sps-accordion__cat-title { font-size: 1.1rem; }
	.sps-accordion__cat-count { font-size: 0.75rem; padding: 3px 9px; }
	.sps-accordion__sprints { grid-template-columns: 1fr; }
}

/* ============================================================
   LIENS VERS NOTIONS (nouvelle fenêtre)
   ============================================================ */
.sps-notions-hint,
.sps-correction-hint {
	font-size: 0.875rem;
	color: var(--sps-texte-secondaire);
	margin: 0 0 0.75rem;
	font-style: italic;
}

.sps-notions-liees-liste { list-style: none; padding: 0; margin: 0; }
.sps-notions-liees-liste li { margin: 0.4rem 0; }
.sps-notions-liees-liste a {
	display: inline-flex;
	align-items: center;
	gap: 0.4rem;
	padding: 0.4rem 0.75rem;
	border-radius: var(--sps-radius-petit);
	background: var(--sps-bg);
	border: 1px solid var(--sps-bordure);
	color: var(--sps-texte);
	text-decoration: none;
	transition: all var(--sps-transition);
}
.sps-notions-liees-liste a:hover {
	border-color: var(--sps-couleur-primaire);
	color: var(--sps-couleur-primaire);
	transform: translateX(2px);
}
.sps-icon-external { opacity: 0.6; }
.sps-notions-liees-liste a:hover .sps-icon-external { opacity: 1; }

.sps-correction-notion-link {
	margin-top: 0.75rem;
	padding-top: 0.5rem;
	border-top: 1px dashed var(--sps-bordure);
}
.sps-correction-notion-link a {
	display: inline-flex;
	align-items: center;
	gap: 0.4rem;
	font-size: 0.875rem;
	font-weight: var(--sps-poids-fort);
	color: var(--sps-couleur-primaire);
	text-decoration: none;
	padding: 0.35rem 0.7rem;
	border-radius: var(--sps-radius-petit);
	background: rgba(34, 113, 177, 0.08);
	transition: all var(--sps-transition);
}
.sps-correction-notion-link a:hover {
	background: var(--sps-couleur-primaire);
	color: #fff;
}

/* ============================================================
   Responsive accordéon Sprint — touch targets et breakpoints fins
   ============================================================ */

/* Tablette */
@media (max-width: 980px) {
	.sps-accordion { max-width: 100%; }
	.sps-accordion__cat-header { padding: 16px 18px; }
	.sps-accordion__cat-title { font-size: 1.15rem; }
	.sps-accordion__sprints { grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); }
}

/* Mobile large (≤ 600px) */
@media (max-width: 600px) {
	.sps-accordion__cat,
	.sps-accordion__sub { border-radius: 6px; }
	.sps-accordion__cat-header,
	.sps-accordion__sub-header { padding: 14px 14px; min-height: 48px; }
	.sps-accordion__sprints li a { padding: 12px 14px; min-height: 44px; display: flex; align-items: center; }
	.sps-accordion__cat-count,
	.sps-accordion__sub-count { font-size: 0.7rem; }
}

/* Très petits écrans (≤ 380px) */
@media (max-width: 380px) {
	.sps-archive-accordion .sps-archive__title { font-size: 1.5rem; }
	.sps-accordion__cat-title { font-size: 1rem; }
	.sps-accordion__sub-title { font-size: 0.95rem; }
	.sps-accordion__cat-count,
	.sps-accordion__sub-count { padding: 2px 7px; }
}

/* Évite tout débordement horizontal */
.sps-archive-accordion,
.sps-accordion,
.sps-accordion__cat,
.sps-accordion__cat-body,
.sps-accordion__sub,
.sps-accordion__sub-body {
	max-width: 100%;
	overflow-wrap: break-word;
	word-wrap: break-word;
}
.sps-accordion__sprints li a {
	overflow: hidden;
	text-overflow: ellipsis;
}

/* Bandeau Béta nucléaire — anti-débordement et padding mobile */
.sp-nuc-banner {
	max-width: 100vw;
	box-sizing: border-box;
}
@media (max-width: 480px) {
	.sp-nuc-banner {
		flex-wrap: wrap;
		padding: 8px 12px !important;
		font-size: 13px !important;
	}
}
