/*!
 * Courir Mieux — Planificateur de course v2.0.0
 * https://www.courir-mieux.fr
 *
 * Copyright (c) 2026 Courir Mieux. Tous droits réservés.
 * Reproduction et réutilisation interdites sans autorisation écrite.
 *
 * Ce fichier est servi publiquement pour permettre le fonctionnement de
 * l'outil dans votre navigateur. Cette mise à disposition technique ne vaut
 * pas cession de droits. Les modèles scientifiques implémentés reposent sur
 * des travaux publiés, librement utilisables : la présente réserve porte sur
 * le code, l'interface et les textes, non sur les formules elles-mêmes.
 */
/*
 * Planificateur de course — Courir Mieux
 *
 * Tout est scopé sous .pc-planificateur et préfixé « pc- ».
 * Aucune police n'est déclarée : l'outil hérite de celles du thème.
 * Les tailles sont en em (relatives à --pc-taille) ou en px, jamais en rem.
 */

/* ==========================================================================
   VARIABLES : couleurs, taille de référence et largeur, à ajuster ici uniquement
   ========================================================================== */
.pc-planificateur {
	--pc-taille: 17px;               /* taille de référence de tout l'outil */
	--pc-largeur: 1120px;            /* largeur maximale quand l'outil s'élargit hors du couloir du thème */

	--pc-couleur-texte: #1f2937;
	--pc-couleur-texte-secondaire: #6b7280;
	--pc-couleur-fond: #ffffff;
	--pc-couleur-fond-doux: #f3f4f6;
	--pc-couleur-bordure: #d1d5db;
	--pc-couleur-accent: #9364f1;      /* violet Courir Mieux */
	--pc-couleur-accent-texte: #ffffff;
	--pc-couleur-erreur: #b91c1c;
	--pc-couleur-erreur-fond: #fee2e2;
	--pc-couleur-alerte: #b45309;
	--pc-couleur-alerte-fond: #fef3c7;
	--pc-couleur-ok: #15803d;
	--pc-couleur-ok-fond: #dcfce7;
	--pc-couleur-accent-fond: #f3eefd;  /* fond très clair dérivé de l'accent */
	--pc-couleur-fond-alterne: var(--wp--preset--color--neutral-bg-subtle, #f3f4f6);  /* gris léger du thème, en alternance avec le violet clair */

	/* Paliers de pente du profil altimétrique */
	--pc-pente-1: #4ade80;      /* moins de 5 %, montée comme descente */
	--pc-montee-2: #facc15;     /* montée 5 à 10 % */
	--pc-montee-3: #fb923c;     /* montée 10 à 15 % */
	--pc-montee-4: #ef4444;     /* montée 15 à 20 % */
	--pc-montee-5: #7f1d1d;     /* montée de plus de 20 % */
	--pc-descente-2: #93c5fd;   /* descente 5 à 10 % */
	--pc-descente-3: #3b82f6;   /* descente 10 à 15 % */
	--pc-descente-4: #1d4ed8;   /* descente 15 à 20 % */
	--pc-descente-5: #172554;   /* descente de plus de 20 % */

	--pc-couleur-nuit: rgba(30, 41, 59, 0.22);

	/* Zones du graphique de caféine */
	--pc-cafeine-inefficace: #e5e7eb;
	--pc-cafeine-efficace: #dcfce7;
	--pc-cafeine-elevee: #fef3c7;
	--pc-cafeine-gastrique: #fee2e2;


	--pc-arrondi: 0.5em;
}

/* ==========================================================================
   BASE
   ========================================================================== */
.pc-planificateur {
	font-size: var(--pc-taille);
	line-height: 1.5;
	color: var(--pc-couleur-texte);
	box-sizing: border-box;
}
.pc-planificateur *,
.pc-planificateur *::before,
.pc-planificateur *::after {
	box-sizing: inherit;
}
.pc-planificateur [hidden] {
	display: none !important;
}

.pc-planificateur .pc-bloc {
	background: var(--pc-couleur-fond-doux);
	border-radius: var(--pc-arrondi);
	padding: 1.5em;
	margin: 0 0 1.5em;
}
.pc-planificateur .pc-titre {
	font-size: 1.375em;
	font-weight: 600;
	margin: 0 0 0.75em;
	line-height: 1.3;
}
.pc-planificateur .pc-titre__bouton {
	display: flex;
	align-items: center;
	gap: 0.5em;
	width: 100%;
	font: inherit;
	color: inherit;
	text-align: left;
	background: none;
	border: 0;
	padding: 0;
	margin: 0;
	cursor: pointer;
}
.pc-planificateur .pc-titre__bouton:focus-visible {
	outline: 2px solid var(--pc-couleur-accent);
	outline-offset: 4px;
	border-radius: 0.2em;
}
.pc-planificateur .pc-titre__fleche {
	display: inline-block;
	width: 0.6em;
	height: 0.6em;
	border-right: 0.15em solid var(--pc-couleur-accent);
	border-bottom: 0.15em solid var(--pc-couleur-accent);
	transform: rotate(45deg);
	transition: transform 0.15s;
	flex-shrink: 0;
	margin: 0 0.2em 0.2em 0.1em;
}
.pc-planificateur .pc-bloc--replie .pc-titre__fleche {
	transform: rotate(-45deg);
	margin-bottom: 0;
}
.pc-planificateur .pc-bloc--replie .pc-titre {
	margin-bottom: 0;
}
.pc-planificateur .pc-bloc--replie > :not(.pc-titre) {
	display: none !important;
}
.pc-planificateur .pc-titre__indice {
	margin-left: auto;
	font-size: 0.65em;
	font-weight: 400;
	color: var(--pc-couleur-texte-secondaire);
}
.pc-planificateur .pc-sous-titre {
	font-size: 1.125em;
	font-weight: 600;
	margin: 0 0 0.5em;
}
.pc-planificateur .pc-texte {
	margin: 0 0 1em;
}
.pc-planificateur .pc-texte--secondaire {
	color: var(--pc-couleur-texte-secondaire);
	font-size: 0.95em;
}
.pc-planificateur .pc-texte--erreur {
	color: var(--pc-couleur-erreur);
	font-weight: 600;
}
.pc-planificateur .pc-texte--inconnu {
	color: var(--pc-couleur-texte-secondaire);
	font-style: italic;
}
.pc-planificateur small {
	font-size: 0.9em;
	color: var(--pc-couleur-texte-secondaire);
}

.pc-planificateur .pc-sous-bloc {
	background: var(--pc-couleur-fond);
	border: 1px solid var(--pc-couleur-bordure);
	border-radius: var(--pc-arrondi);
	padding: 1em 1.25em 0.25em;
	margin: 0 0 1em;
}
.pc-planificateur a {
	color: var(--pc-couleur-accent);
}

/* Introduction en tête d'outil */
.pc-planificateur .pc-intro {
	margin: 0 0 1.5em;
	padding: 0.25em 0 0.25em 1.1em;
	border-left: 0.35em solid var(--pc-couleur-accent);
}
.pc-planificateur .pc-intro__accroche {
	font-size: 1.1em;
	font-weight: 600;
	margin: 0 0 0.75em;
}
.pc-planificateur .pc-intro__etapes {
	margin: 0 0 0.75em;
	padding-left: 1.4em;
}
.pc-planificateur .pc-intro__etapes li {
	margin: 0 0 0.35em;
}
.pc-planificateur .pc-intro__note {
	color: var(--pc-couleur-texte-secondaire);
	font-size: 0.95em;
	margin: 0;
}

/* ==========================================================================
   SOMMAIRE LATÉRAL, dans le style de la table des matières des articles :
   replié, une colonne de petits traits au bord gauche de l'écran ; déplié
   au survol, une carte blanche avec la liste des parties.
   ========================================================================== */
.pc-planificateur .pc-sommaire {
	position: fixed;
	left: 12px;
	top: 50%;
	transform: translateY(-50%);
	z-index: 60;
	width: 2.2em;
	padding: 0.8em 0.6em;
	background: transparent;
	border-radius: 14px;
	box-shadow: none;
	overflow: hidden;
	transition: width 0.2s ease, background-color 0.2s ease, box-shadow 0.2s ease;
	font-size: var(--pc-taille);
}
.pc-planificateur .pc-sommaire:hover,
.pc-planificateur .pc-sommaire:focus-within {
	width: 18em;
	background: var(--pc-couleur-fond);
	box-shadow: 0 6px 24px rgba(0, 0, 0, 0.12);
}
/* déplié, les titres longs passent sur deux lignes au lieu d'être coupés */
.pc-planificateur .pc-sommaire:hover .pc-sommaire__lien,
.pc-planificateur .pc-sommaire:focus-within .pc-sommaire__lien {
	white-space: normal;
}
.pc-planificateur .pc-sommaire__titre {
	position: relative;
	padding: 0.2em 0.6em 0.5em 1.5em;
	font-weight: 700;
	font-size: 0.9em;
	white-space: nowrap;
	opacity: 0;
	transition: opacity 0.2s ease;
}
.pc-planificateur .pc-sommaire__titre::before {
	content: '';
	position: absolute;
	left: 0.55em;
	top: 0.55em;
	width: 5px;
	height: 5px;
	border-radius: 50%;
	background: var(--pc-couleur-texte);
}
.pc-planificateur .pc-sommaire__liste {
	list-style: none;
	margin: 0;
	padding: 0;
}
.pc-planificateur .pc-sommaire__lien {
	position: relative;
	display: block;
	width: 100%;
	background: none;
	border: 0;
	border-radius: 8px;
	padding: 0.45em 0.6em 0.45em 1.5em;
	margin: 0;
	font: inherit;
	font-size: 0.85em;
	line-height: 1.3;
	color: var(--pc-couleur-texte-secondaire);
	cursor: pointer;
	white-space: nowrap;
	text-align: left;
}
/* replié : un trait par partie ; déplié : un point */
.pc-planificateur .pc-sommaire__lien::before {
	content: '';
	position: absolute;
	left: 0.2em;
	top: 50%;
	width: 14px;
	height: 2px;
	border-radius: 2px;
	background: var(--pc-couleur-bordure);
	transform: translateY(-50%);
	transition: width 0.2s ease, height 0.2s ease, left 0.2s ease, background-color 0.2s ease;
}
.pc-planificateur .pc-sommaire__lien--actif::before {
	width: 20px;
	background: var(--pc-couleur-texte);
}
.pc-planificateur .pc-sommaire:hover .pc-sommaire__lien::before,
.pc-planificateur .pc-sommaire:focus-within .pc-sommaire__lien::before {
	left: 0.6em;
	width: 5px;
	height: 5px;
	border-radius: 50%;
}
.pc-planificateur .pc-sommaire:hover .pc-sommaire__titre,
.pc-planificateur .pc-sommaire:focus-within .pc-sommaire__titre {
	opacity: 1;
}
.pc-planificateur .pc-sommaire__texte {
	opacity: 0;
	transition: opacity 0.15s ease;
}
.pc-planificateur .pc-sommaire:hover .pc-sommaire__texte,
.pc-planificateur .pc-sommaire:focus-within .pc-sommaire__texte {
	opacity: 1;
}
.pc-planificateur .pc-sommaire__lien:hover {
	color: var(--pc-couleur-texte);
}
.pc-planificateur .pc-sommaire__lien--actif {
	color: var(--pc-couleur-texte);
	font-weight: 600;
}
.pc-planificateur .pc-sommaire:hover .pc-sommaire__lien--actif,
.pc-planificateur .pc-sommaire:focus-within .pc-sommaire__lien--actif {
	background: var(--pc-couleur-fond-doux);
}
.pc-planificateur .pc-sommaire__lien--inactif {
	opacity: 0.4;
}
.pc-planificateur .pc-sommaire__lien:focus-visible {
	outline: 2px solid var(--pc-couleur-accent);
	outline-offset: -2px;
}
@media (max-width: 1100px) {
	.pc-planificateur .pc-sommaire { display: none; }
}

/* ==========================================================================
   CHAMPS ET BOUTONS
   ========================================================================== */
.pc-planificateur .pc-champ {
	display: flex;
	flex-direction: column;
	justify-content: flex-end;   /* un libellé sur deux lignes ne décale pas la case vers le bas */
	gap: 0.25em;
	font-size: 0.95em;
	margin: 0;
}
.pc-planificateur .pc-champ > span {
	color: var(--pc-couleur-texte-secondaire);
}
.pc-planificateur .pc-champ--large {
	grid-column: 1 / -1;
}
.pc-planificateur .pc-champ--case {
	flex-direction: row;
	align-items: center;
	gap: 0.5em;
	grid-column: 1 / -1;
}
.pc-planificateur .pc-champ--case input {
	width: 1.1em;
	height: 1.1em;
	margin: 0;
	accent-color: var(--pc-couleur-accent);
}
.pc-planificateur input[type="text"],
.pc-planificateur input[type="number"],
.pc-planificateur input[type="date"],
.pc-planificateur input[type="time"],
.pc-planificateur select,
.pc-planificateur textarea {
	font: inherit;
	font-size: 1em;
	color: var(--pc-couleur-texte);
	background: var(--pc-couleur-fond);
	border: 1px solid var(--pc-couleur-bordure);
	border-radius: 0.35em;
	padding: 0.45em 0.6em;
	width: 100%;
	min-width: 0;
	margin: 0;
	line-height: 1.3;
}
.pc-planificateur input:focus-visible,
.pc-planificateur select:focus-visible,
.pc-planificateur textarea:focus-visible {
	outline: 2px solid var(--pc-couleur-accent);
	outline-offset: 1px;
}
.pc-planificateur input:disabled,
.pc-planificateur select:disabled {
	background: var(--pc-couleur-fond-doux);
	color: var(--pc-couleur-texte-secondaire);
}

.pc-planificateur .pc-grille-champs {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(13em, 1fr));
	gap: 0.75em 1em;
	margin: 0 0 1em;
	align-items: end;
}

.pc-planificateur .pc-ligne-outils {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.75em 1em;
	margin: 0 0 1em;
}
.pc-planificateur .pc-ligne-outils--espacee {
	margin-top: 1em;
}
/* Un champ avec son libellé au-dessus, suivi de boutons : tout s'aligne sur le bas,
   et la case prend la hauteur des boutons. */
.pc-planificateur .pc-ligne-outils--bas {
	align-items: flex-end;
}
.pc-planificateur .pc-ligne-outils--bas input {
	padding-top: 0.6em;
	padding-bottom: 0.6em;
}

.pc-planificateur .pc-bouton,
.pc-planificateur .pc-champ-fichier__texte {
	display: inline-block;
	font: inherit;
	font-size: 0.95em;
	font-weight: 600;
	line-height: 1.3;
	padding: 0.6em 1.25em;
	background: var(--pc-couleur-accent);
	color: var(--pc-couleur-accent-texte);
	border: 1px solid var(--pc-couleur-accent);
	border-radius: var(--pc-arrondi);
	cursor: pointer;
	margin: 0;
	text-decoration: none;
}
.pc-planificateur .pc-bouton:hover,
.pc-planificateur .pc-champ-fichier:hover .pc-champ-fichier__texte {
	filter: brightness(0.92);
}
.pc-planificateur .pc-bouton--discret,
.pc-planificateur .pc-champ-fichier--secondaire .pc-champ-fichier__texte {
	background: var(--pc-couleur-fond);
	color: var(--pc-couleur-texte);
	border-color: var(--pc-couleur-bordure);
	font-weight: 500;
}
.pc-planificateur .pc-champ-fichier {
	display: inline-block;
	position: relative;
	cursor: pointer;
	margin: 0;
}
.pc-planificateur .pc-champ-fichier input[type="file"] {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	opacity: 0;
	cursor: pointer;
}
.pc-planificateur .pc-champ-fichier:focus-within .pc-champ-fichier__texte,
.pc-planificateur .pc-bouton:focus-visible {
	outline: 2px solid var(--pc-couleur-texte);
	outline-offset: 2px;
}

.pc-planificateur .pc-temoin {
	font-size: 0.9em;
	color: var(--pc-couleur-texte-secondaire);
}
.pc-planificateur .pc-temoin--erreur {
	color: var(--pc-couleur-erreur);
}

/* ==========================================================================
   ALERTES
   ========================================================================== */
.pc-planificateur .pc-alerte {
	padding: 0.75em 1em;
	border-radius: var(--pc-arrondi);
	margin: 0 0 0.75em;
	border-left: 0.3em solid currentColor;
}
.pc-planificateur .pc-alerte--erreur { background: var(--pc-couleur-erreur-fond); color: var(--pc-couleur-erreur); }
.pc-planificateur .pc-alerte--attention { background: var(--pc-couleur-alerte-fond); color: var(--pc-couleur-alerte); }
.pc-planificateur .pc-alerte--ok { background: var(--pc-couleur-ok-fond); color: var(--pc-couleur-ok); }
/* Compte rendu du remplacement d'une trace, points de passage conservés */
.pc-planificateur .pc-bilan-trace p {
	margin: 0 0 0.5em;
}
.pc-planificateur .pc-bilan-trace p:last-child {
	margin-bottom: 0;
}
.pc-planificateur .pc-bilan-trace ul {
	margin: 0 0 0.5em;
	padding-left: 1.25em;
}
/* Fenêtre de choix de l'outil (remplacement d'une trace) */
.pc-planificateur .pc-dialogue {
	position: fixed;
	top: 0;
	right: 0;
	bottom: 0;
	left: 0;
	z-index: 100000;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 1em;
	background: rgba(17, 24, 39, 0.55);
}
.pc-planificateur .pc-dialogue__boite {
	width: 100%;
	max-width: 36em;
	max-height: 100%;
	overflow-y: auto;
	background: var(--pc-couleur-fond);
	color: var(--pc-couleur-texte);
	border-radius: var(--pc-arrondi);
	padding: 1.5em;
	box-shadow: 0 10px 40px rgba(0, 0, 0, 0.35);
}
.pc-planificateur .pc-dialogue__boite {
	position: relative;
}
.pc-planificateur .pc-dialogue__titre {
	font-size: 1.25em;
	font-weight: 700;
	margin: 0 1.5em 0.6em 0;
}
.pc-planificateur .pc-dialogue__fermer {
	position: absolute;
	top: 0.5em;
	right: 0.6em;
	background: none;
	border: 0;
	padding: 0.15em 0.4em;
	font-size: 1.5em;
	line-height: 1;
	color: var(--pc-couleur-texte-secondaire);
	cursor: pointer;
	border-radius: 0.3em;
}
.pc-planificateur .pc-dialogue__fermer:hover {
	color: var(--pc-couleur-texte);
}
.pc-planificateur .pc-dialogue__fermer:focus-visible {
	outline: 2px solid var(--pc-couleur-accent);
}
.pc-planificateur .pc-dialogue__texte p {
	margin: 0 0 0.75em;
}
.pc-planificateur .pc-dialogue__boutons {
	display: flex;
	flex-wrap: wrap;
	gap: 0.6em;
	margin-top: 1em;
}

/* ==========================================================================
   RÉSUMÉ DE LA TRACE
   ========================================================================== */
.pc-planificateur .pc-resume {
	background: var(--pc-couleur-fond);
	border: 1px solid var(--pc-couleur-bordure);
	border-radius: var(--pc-arrondi);
	padding: 1em 1.25em;
	margin: 0 0 1em;
}
.pc-planificateur .pc-resume__liste {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(9em, 1fr));
	gap: 0.75em 1.5em;
	margin: 0 0 0.75em;
}
.pc-planificateur .pc-resume__item dt {
	font-size: 0.85em;
	color: var(--pc-couleur-texte-secondaire);
	margin: 0;
}
.pc-planificateur .pc-resume__item dd {
	font-size: 1.25em;
	font-weight: 600;
	margin: 0;
}

/* ==========================================================================
   PROFIL
   ========================================================================== */
.pc-planificateur .pc-profil {
	background: var(--pc-couleur-fond);
	border: 1px solid var(--pc-couleur-bordure);
	border-radius: var(--pc-arrondi);
	padding: 0.5em 0.25em 0.25em;
	margin: 0 0 0.75em;
}
.pc-planificateur .pc-profil__canvas:focus-visible {
	outline: 2px solid var(--pc-couleur-accent);
	outline-offset: -2px;
}
.pc-planificateur .pc-profil__outils {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.4em;
	padding: 0 0.5em 0.5em;
}
.pc-planificateur .pc-profil__vue {
	margin-left: auto;
	font-size: 0.85em;
	color: var(--pc-couleur-texte-secondaire);
}
.pc-planificateur .pc-bouton--petit {
	padding: 0.35em 0.7em;
	font-size: 0.85em;
}
.pc-planificateur .pc-profil__canvas {
	display: block;
	width: 100%;
	height: 440px;
	touch-action: pan-y;
	user-select: none;
	-webkit-user-select: none;
}
@media (max-width: 640px) {
	.pc-planificateur .pc-profil__canvas { height: 300px; }
}

.pc-planificateur .pc-legende {
	display: flex;
	flex-wrap: wrap;
	gap: 0.4em 1em;
	font-size: 0.9em;
	color: var(--pc-couleur-texte-secondaire);
	margin: 0 0 0.75em;
}
.pc-planificateur .pc-legende__titre {
	font-weight: 600;
	color: var(--pc-couleur-texte);
}
.pc-planificateur .pc-legende__item {
	display: inline-flex;
	align-items: center;
	gap: 0.4em;
}
.pc-planificateur .pc-legende__couleur {
	display: inline-block;
	width: 1em;
	height: 1em;
	border-radius: 0.2em;
}
.pc-planificateur .pc-legende__couleur--nuit {
	background: var(--pc-couleur-nuit);
	border: 1px solid var(--pc-couleur-bordure);
}

/* ==========================================================================
   CARTE
   ========================================================================== */
.pc-planificateur .pc-carte {
	height: 560px;
	background: var(--pc-couleur-fond);
	border: 1px solid var(--pc-couleur-bordure);
	border-radius: var(--pc-arrondi);
	margin: 0 0 0.75em;
	overflow: hidden;
	z-index: 0;
	position: relative;
}
@media (max-width: 640px) {
	.pc-planificateur .pc-carte { height: 380px; }
}
.pc-planificateur .pc-carte__bouton {
	position: absolute;
	left: 50%;
	top: 50%;
	transform: translate(-50%, -50%);
	z-index: 1;
}
.pc-planificateur .pc-carte .leaflet-container {
	font-size: 12px;
}
.pc-planificateur .pc-carte-marqueur {
	background: var(--pc-couleur-accent);
	color: #fff;
	border: 2px solid #fff;
	border-radius: 50%;
	box-shadow: 0 1px 3px rgba(0, 0, 0, 0.4);
	display: flex;
	align-items: center;
	justify-content: center;
	font-weight: 700;
	font-size: 12px;
	line-height: 1;
}
.pc-planificateur .pc-carte-marqueur.leaflet-marker-draggable {
	cursor: grab;
}
/* Pastille sélectionnée (clic) : un anneau sombre, comme le point sélectionné sur le profil. */
.pc-planificateur .pc-carte-marqueur--actif {
	box-shadow: 0 0 0 2.5px var(--pc-couleur-texte), 0 1px 3px rgba(0, 0, 0, 0.4);
}
.pc-planificateur .pc-carte-marqueur--depart,
.pc-planificateur .pc-carte-marqueur--arrivee { background: var(--pc-couleur-texte); }
.pc-planificateur .pc-carte-marqueur--clair {
	background: #fff;
	color: var(--pc-couleur-accent);
	border-color: var(--pc-couleur-accent);
}
/* Infobulle d'une pastille : la fiche du point, lisible */
.pc-planificateur .pc-carte .leaflet-tooltip {
	font-size: 14px;
	line-height: 1.4;
	padding: 7px 10px;
}
.pc-planificateur .pc-carte-infobulle__aide {
	font-size: 12px;
	color: var(--pc-couleur-texte-secondaire);
}

/* ==========================================================================
   POINTS DE PASSAGE ET SEGMENTS
   Les segments (où l'on planifie) sont mis en avant ; les points de passage
   sont des lignes discrètes qui les séparent.
   ========================================================================== */
.pc-planificateur .pc-liste {
	display: flex;
	flex-direction: column;
	gap: 0;
}
.pc-planificateur .pc-point {
	padding: 0.7em 0.9em 0.8em;
	margin: 0.9em 0 0.35em;
	border: 2px solid var(--pc-couleur-texte);
	border-radius: var(--pc-arrondi);
	background: var(--pc-couleur-fond);
	box-shadow: 0 2px 6px rgba(0, 0, 0, 0.12);
}
.pc-planificateur .pc-point--fixe {
	border-color: var(--pc-couleur-texte);
}
.pc-planificateur .pc-point__titre {
	font-weight: 700;
	font-style: italic;
	text-transform: uppercase;
	letter-spacing: 0.05em;
	font-size: 1.3em;   /* la même taille que le titre d'un segment */
	line-height: 1.25;
}
.pc-planificateur .pc-point__entete {
	display: flex;
	align-items: center;
	gap: 0.6em;
	margin: 0 0 0.6em;
}
.pc-planificateur .pc-point__ligne {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-end;
	gap: 0.4em 0.7em;
}
.pc-planificateur .pc-point__ligne .pc-champ--nom {
	flex: 1 1 12em;
}
.pc-planificateur .pc-point__ligne .pc-champ--type {
	flex: 0 1 16em;
}
.pc-planificateur .pc-point__ligne .pc-champ--type select {
	width: 100%;
}
.pc-planificateur .pc-point__supprimer {
	align-self: flex-end;
	margin-bottom: 0.15em;
}
.pc-planificateur .pc-point__ligne--secondaire {
	margin-top: 0.4em;
}
.pc-planificateur .pc-point__nom {
	font-weight: 600;
}
.pc-planificateur .pc-point__ligne .pc-champ--court {
	flex: 0 0 auto;
	width: 8em;
}
.pc-planificateur .pc-point__ligne .pc-champ--court input {
	padding: 0.35em 0.5em;
}
.pc-planificateur .pc-point__notes {
	width: 100%;
	font-size: 0.9em;
	padding: 0.35em 0.6em;
}
/* Notes sur plusieurs lignes : la zone grandit avec son contenu (ajusterNote), sans poignée ni ascenseur */
.pc-planificateur .pc-point__notes,
.pc-planificateur .pc-segment textarea.pc-segment__notes {
	display: block;
	box-sizing: border-box;
	min-height: 2.2em;
	line-height: 1.4;
	resize: none;
	overflow: hidden;
}
.pc-planificateur .pc-pastille {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 2.1em;
	height: 2.1em;
	border-radius: 50%;
	background: var(--pc-couleur-accent);
	color: #fff;
	font-weight: 700;
	font-size: 0.85em;
	flex-shrink: 0;
	align-self: center;
}
/* Pastille claire : ravitaillement seul, point d'eau, autre repère (la pleine : on y retrouve ses produits) */
.pc-planificateur .pc-pastille--claire {
	background: var(--pc-couleur-fond);
	color: var(--pc-couleur-accent);
	box-shadow: inset 0 0 0 2px var(--pc-couleur-accent);
}
.pc-planificateur .pc-pastille--fixe {
	background: var(--pc-couleur-texte);
}
.pc-planificateur .pc-point__cumul {
	display: flex;
	flex-wrap: wrap;
	gap: 0.2em 1.25em;
	font-size: 0.9em;
	color: var(--pc-couleur-texte-secondaire);
	margin-top: 0.35em;
}
.pc-planificateur .pc-point__cumul b {
	color: var(--pc-couleur-texte);
	font-weight: 600;
}
.pc-planificateur .pc-marge--ok { color: var(--pc-couleur-ok); }
.pc-planificateur .pc-marge--juste { color: var(--pc-couleur-alerte); }
.pc-planificateur .pc-marge--ko { color: var(--pc-couleur-erreur); font-weight: 600; }
.pc-planificateur .pc-marge--ko b { color: inherit; }

.pc-planificateur .pc-segment {
	background: var(--pc-couleur-fond);
	border: 1px solid var(--pc-couleur-bordure);
	border-left: 0.4em solid var(--pc-couleur-accent);
	border-radius: var(--pc-arrondi);
	padding: 1em 1.25em;
	margin: 0.25em 0;
	box-shadow: 0 1px 3px rgba(0, 0, 0, 0.06);
}
.pc-planificateur .pc-segment__entete {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	align-items: baseline;
	gap: 0.25em 1em;
	margin: 0 0 0.9em;
	padding: 0 0 0.5em;
	border-bottom: 2px solid var(--pc-couleur-accent);
}
.pc-planificateur .pc-segment__titre {
	font-weight: 700;
	font-size: 1.3em;
	line-height: 1.25;
	color: var(--pc-couleur-accent);
}
.pc-planificateur .pc-segment__stats {
	font-weight: 600;
	font-size: 1.05em;
	margin-left: auto;
	white-space: nowrap;
}
/* Partie 7 : un bloc à la fois (crans) ou tout à la suite */
.pc-planificateur .pc-crans__barre {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.5em 1.25em;
	margin: 0.25em 0 0.5em;
}
.pc-planificateur .pc-crans__mode {
	display: flex;
	align-items: center;
	gap: 0.5em;
	font-size: 0.95em;
	color: var(--pc-couleur-texte-secondaire);
}
.pc-planificateur .pc-crans__mode select {
	width: auto;
	padding: 0.35em 0.5em;
	font-size: 0.95em;
	color: var(--pc-couleur-texte);
}
.pc-planificateur .pc-crans__navigation {
	display: flex;
	align-items: center;
	gap: 0.5em;
	flex: 1 1 24em;
	min-width: 16em;
}
.pc-planificateur .pc-crans__curseur-zone {
	position: relative;
	flex: 1 1 auto;
	padding: 0.2em 0 0.55em;
}
.pc-planificateur .pc-crans__curseur {
	-webkit-appearance: none;
	appearance: none;
	display: block;
	width: 100%;
	height: 1.5em;
	margin: 0;
	padding: 0;
	background: transparent;
	cursor: pointer;
}
.pc-planificateur .pc-crans__curseur:focus-visible {
	outline: 2px solid var(--pc-couleur-accent);
	outline-offset: 2px;
	border-radius: 0.5em;
}
.pc-planificateur .pc-crans__curseur::-webkit-slider-runnable-track {
	height: 4px;
	background: var(--pc-couleur-bordure);
	border-radius: 2px;
}
.pc-planificateur .pc-crans__curseur::-webkit-slider-thumb {
	-webkit-appearance: none;
	box-sizing: border-box;
	width: 18px;
	height: 18px;
	margin-top: -7px;
	border-radius: 50%;
	background: var(--pc-couleur-accent);
	border: 2px solid #fff;
	box-shadow: 0 1px 3px rgba(0, 0, 0, 0.35);
	cursor: grab;
}
.pc-planificateur .pc-crans__curseur::-moz-range-track {
	height: 4px;
	background: var(--pc-couleur-bordure);
	border-radius: 2px;
}
.pc-planificateur .pc-crans__curseur::-moz-range-thumb {
	box-sizing: border-box;
	width: 18px;
	height: 18px;
	border-radius: 50%;
	background: var(--pc-couleur-accent);
	border: 2px solid #fff;
	box-shadow: 0 1px 3px rgba(0, 0, 0, 0.35);
	cursor: grab;
}
.pc-planificateur .pc-crans__crans {
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0.1em;
	height: 0.4em;
	pointer-events: none;
}
.pc-planificateur .pc-crans__cran {
	position: absolute;
	top: 0;
	width: 2px;
	height: 100%;
	margin-left: -1px;
	background: var(--pc-couleur-bordure);
}
.pc-planificateur .pc-crans__cran--actif {
	background: var(--pc-couleur-accent);
}
.pc-planificateur .pc-crans__etiquette {
	position: absolute;
	top: -0.2em;
	z-index: 2;
	background: var(--pc-couleur-texte);
	color: #fff;
	font-size: 0.85em;
	font-weight: 600;
	padding: 0.3em 0.6em;
	border-radius: 0.35em;
	white-space: nowrap;
	pointer-events: none;
	box-shadow: 0 1px 3px rgba(0, 0, 0, 0.3);
}
.pc-planificateur .pc-crans__compteur {
	font-size: 0.9em;
	color: var(--pc-couleur-texte-secondaire);
	white-space: nowrap;
}
.pc-planificateur .pc-crans__scene {
	position: relative;
}
.pc-planificateur .pc-liste,
.pc-planificateur .pc-profil,
.pc-planificateur .pc-graphique {
	overscroll-behavior-x: contain;
}
.pc-planificateur .pc-cran {
	display: flow-root;   /* les marges des fiches restent dans le cran, pour mesurer sa hauteur */
}
.pc-planificateur .pc-liste--crans .pc-crans__scene {
	overflow: hidden;
	transition: height 0.25s ease;
	touch-action: pan-y;
}
.pc-planificateur .pc-liste--crans .pc-cran {
	display: none;
}
.pc-planificateur .pc-liste--crans .pc-cran--actif {
	display: flow-root;
	animation: pc-cran-apparait 0.25s ease;
}
@keyframes pc-cran-apparait {
	from { opacity: 0; }
	to { opacity: 1; }
}
/* Encart « À emporter en autonomie », sous la dernière fiche de chaque bloc */
.pc-planificateur .pc-autonomie {
	margin: 0.9em 0 0.35em;
	padding: 0.9em 1.1em;
	background: var(--pc-couleur-fond-doux);
	border: 1px dashed var(--pc-couleur-texte-secondaire);
	border-radius: var(--pc-arrondi);
}
.pc-planificateur .pc-autonomie:empty {
	display: none;
}
.pc-planificateur .pc-autonomie__titre {
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.05em;
	margin: 0 0 0.35em;
}
.pc-planificateur .pc-autonomie__info,
.pc-planificateur .pc-autonomie__note,
.pc-planificateur .pc-autonomie__vide {
	font-size: 0.9em;
	color: var(--pc-couleur-texte-secondaire);
	margin: 0 0 0.5em;
}
.pc-planificateur .pc-autonomie__note {
	margin: 0.5em 0 0;
}
.pc-planificateur .pc-autonomie__liste {
	list-style: none;
	margin: 0 0 0.5em;
	padding: 0;
}
.pc-planificateur .pc-autonomie__liste li {
	margin: 0 0 0.3em;
}
.pc-planificateur .pc-autonomie__liste label {
	display: inline-flex;
	align-items: baseline;
	gap: 0.55em;
	cursor: pointer;
}
.pc-planificateur .pc-autonomie__liste input {
	flex: none;
	width: 1.05em;
	height: 1.05em;
	margin: 0;
	position: relative;
	top: 0.12em;
	accent-color: var(--pc-couleur-accent);
}
.pc-planificateur .pc-autonomie__item--coche span {
	text-decoration: line-through;
	color: var(--pc-couleur-texte-secondaire);
}
.pc-planificateur .pc-autonomie__suivi {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.5em 0.8em;
	font-size: 0.9em;
	color: var(--pc-couleur-texte-secondaire);
	margin: 0 0 0.5em;
}
.pc-planificateur .pc-autonomie__total {
	margin: 0;
}
/* « Tout à la suite » : l'encart n'apparaît qu'une fois par portion, sous le point qui la clôt */
.pc-planificateur .pc-liste:not(.pc-liste--crans) .pc-autonomie:not(.pc-autonomie--fin-portion) {
	display: none;
}
/* Rôle de la fiche dans le bloc affiché : début ou fin du segment */
.pc-planificateur .pc-point__role {
	margin-left: auto;
	font-size: 0.8em;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.05em;
	color: var(--pc-couleur-texte-secondaire);
	white-space: nowrap;
}
/* « Tout à la suite » : chaque point une seule fois (la fiche de début des blocs suivants double la fiche de fin du précédent) */
.pc-planificateur .pc-liste:not(.pc-liste--crans) .pc-cran + .pc-cran > .pc-point--debut,
.pc-planificateur .pc-liste:not(.pc-liste--crans) .pc-point__role {
	display: none;
}
.pc-planificateur .pc-segment__saisie {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.5em 0.6em;
	margin: 0 0 0.5em;
}
.pc-planificateur .pc-segment__libelle {
	flex: 0 0 11em;
	font-size: 0.9em;
	font-weight: 600;
}
.pc-planificateur .pc-segment__saisie select {
	width: auto;
	flex: 0 1 13em;
}
.pc-planificateur .pc-segment__saisie input {
	width: 6.5em;
	flex: 0 0 auto;
}
.pc-planificateur .pc-segment__unite {
	font-size: 0.9em;
	color: var(--pc-couleur-texte-secondaire);
	min-width: 2.5em;
}
.pc-planificateur .pc-segment__resultat {
	font-size: 0.9em;
	flex: 1 1 12em;
}
.pc-planificateur .pc-segment__erreur {
	font-size: 0.85em;
	color: var(--pc-couleur-erreur);
	margin: 0 0 0.5em;
}
.pc-planificateur .pc-segment__apports {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(11em, 1fr));
	align-items: start;
	gap: 0.5em 1em;
	margin: 0;
}
.pc-planificateur .pc-segment__apports .pc-champ--court {
	width: auto;
	max-width: none;
	justify-content: flex-start;
}
/* Sélecteur précis : la règle générale des champs texte remet la marge à zéro sinon */
.pc-planificateur .pc-segment textarea.pc-segment__notes {
	width: 100%;
	font-size: 0.9em;
	margin-top: 0.9em;
}

/* Bandeau des objectifs nutritionnels de la course */
.pc-planificateur .pc-bandeau {
	background: var(--pc-couleur-accent);
	color: #fff;
	border-radius: var(--pc-arrondi);
	padding: 0.9em 1.1em;
	margin: 0.25em 0 1.25em;
}
.pc-planificateur .pc-bandeau:empty {
	display: none;
}
.pc-planificateur .pc-bandeau--attente {
	background: var(--pc-couleur-accent-fond);
	color: var(--pc-couleur-texte);
	border: 1px dashed var(--pc-couleur-accent);
}
.pc-planificateur .pc-bandeau__titre {
	font-weight: 700;
	margin: 0 0 0.35em;
}
.pc-planificateur .pc-bandeau__liste {
	display: flex;
	flex-wrap: wrap;
	gap: 0.3em 1.5em;
	margin: 0;
	padding: 0;
	list-style: none;
}
.pc-planificateur .pc-bandeau__liste b {
	font-weight: 700;
}
.pc-planificateur .pc-bandeau__note {
	margin: 0.5em 0 0;
	font-size: 0.9em;
	opacity: 0.9;
}

/* Boutons radio avec description */
.pc-planificateur .pc-radios {
	display: flex;
	flex-wrap: wrap;
	gap: 0.6em;
	margin: 0 0 1em;
}
.pc-planificateur .pc-radios--ligne {
	align-items: center;
	gap: 0.6em 1em;
}
.pc-planificateur .pc-radios__question {
	font-size: 0.9em;
	color: var(--pc-couleur-texte-secondaire);
}
.pc-planificateur .pc-radio {
	display: flex;
	align-items: flex-start;
	gap: 0.5em;
	flex: 1 1 14em;
	max-width: 100%;
	padding: 0.6em 0.8em;
	background: var(--pc-couleur-fond);
	border: 1px solid var(--pc-couleur-bordure);
	border-radius: var(--pc-arrondi);
	cursor: pointer;
	font-size: 0.9em;
	margin: 0;
}
.pc-planificateur .pc-radios--ligne .pc-radio {
	flex: 0 0 auto;
	align-items: center;
	padding: 0.45em 0.9em;
}
.pc-planificateur .pc-radio:has(input:checked) {
	border-color: var(--pc-couleur-accent);
	background: var(--pc-couleur-accent-fond);
}
.pc-planificateur .pc-radio input {
	margin: 0.2em 0 0;
	accent-color: var(--pc-couleur-accent);
	flex-shrink: 0;
}
.pc-planificateur .pc-radio b {
	display: block;
}
.pc-planificateur .pc-radio small {
	display: block;
	color: var(--pc-couleur-texte-secondaire);
}

/* Sans caféine : tout ce qui s'y rapporte disparaît */
.pc-planificateur.pc-planificateur--sans-cafeine [data-cafeine] {
	display: none !important;
}

/* Sous-sections d'un segment */
.pc-planificateur .pc-segment__section {
	background: var(--pc-couleur-accent-fond);
	border-radius: var(--pc-arrondi);
	padding: 0.8em 1em 0.9em;
	margin: 0 0 0.7em;
}
.pc-planificateur .pc-segment__section--alterne {
	background: var(--pc-couleur-fond-alterne);
}
.pc-planificateur .pc-segment__sous-titre {
	font-size: 1em;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.05em;
	color: var(--pc-couleur-accent);
	margin: 0 0 0.6em;
	padding-bottom: 0.3em;
	border-bottom: 2px solid var(--pc-couleur-accent);
}

/* Cibles calculées sous les apports d'un segment */
.pc-planificateur .pc-segment__apports .pc-champ--court {
	position: relative;
}
.pc-planificateur .pc-cible {
	display: block;
	font-size: 0.85em;
	color: var(--pc-couleur-texte-secondaire);
	line-height: 1.3;
}
.pc-planificateur .pc-cible--auto {
	color: var(--pc-couleur-ok);
}
.pc-planificateur .pc-cible--manuel {
	color: var(--pc-couleur-alerte);
}
.pc-planificateur input.pc-champ--auto {
	color: var(--pc-couleur-texte-secondaire);
	font-style: italic;
}
.pc-planificateur .pc-segment__conditions {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5em 0.9em;
	align-items: flex-end;
	margin: 0;
}
.pc-planificateur .pc-segment__conditions .pc-champ--court {
	flex: 0 1 9em;
}
.pc-planificateur .pc-segment__conditions .pc-texte--secondaire {
	flex: 1 1 14em;
	margin: 0;
}

/* Caféine : prises et graphique */
.pc-planificateur .pc-prises__ligne {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-end;
	gap: 0.5em 0.8em;
	padding: 0.5em 0;
	border-bottom: 1px solid var(--pc-couleur-bordure);
}
.pc-planificateur .pc-prises__ligne .pc-champ {
	flex: 0 1 13em;
}

.pc-planificateur .pc-prises__ligne .pc-champ--court {
	flex: 0 1 7.5em;
}
.pc-planificateur .pc-prises__ligne .pc-champ--court[data-si="temps"] {
	flex-basis: 10.5em;
}
.pc-planificateur .pc-prises__ligne .pc-prises__resultat {
	flex: 1 1 12em;
	font-size: 0.9em;
	color: var(--pc-couleur-texte-secondaire);
}
.pc-planificateur .pc-graphique {
	background: var(--pc-couleur-fond);
	border: 1px solid var(--pc-couleur-bordure);
	border-radius: var(--pc-arrondi);
	padding: 0.5em 0.25em 0.25em;
	margin: 0.75em 0;
}
.pc-planificateur .pc-graphique__canvas {
	display: block;
	width: 100%;
	height: 580px;
	touch-action: pan-y;
	user-select: none;
	-webkit-user-select: none;
}
.pc-planificateur .pc-graphique__canvas:focus-visible {
	outline: 2px solid var(--pc-couleur-accent);
	outline-offset: -2px;
}
.pc-planificateur .pc-graphique__canvas--profil {
	height: 748px;   /* 580 px de graphique, plus le rappel du profil */
}
@media (max-width: 640px) {
	.pc-planificateur .pc-graphique__canvas { height: 420px; }
	.pc-planificateur .pc-graphique__canvas--profil { height: 588px; }
}
.pc-planificateur .pc-cafeine--low { color: var(--pc-couleur-texte-secondaire); }
.pc-planificateur .pc-cafeine--ok { color: var(--pc-couleur-ok); }
.pc-planificateur .pc-cafeine--high { color: var(--pc-couleur-alerte); }
.pc-planificateur .pc-cafeine--over { color: var(--pc-couleur-erreur); font-weight: 600; }

/* Bibliographie */
.pc-planificateur .pc-biblio {
	margin: 0 0 1em;
	padding-left: 1.4em;
	font-size: 0.9em;
}
.pc-planificateur .pc-biblio li {
	margin: 0 0 0.4em;
}
.pc-planificateur .pc-biblio--numerotee {
	margin-top: 0.5em;
}

/* Bloc dépliable */
.pc-planificateur .pc-details {
	margin: 0.5em 0 0;
}
.pc-planificateur .pc-details > summary {
	cursor: pointer;
	color: var(--pc-couleur-accent);
	font-weight: 600;
	list-style: none;
	display: inline-flex;
	align-items: center;
	gap: 0.4em;
	padding: 0.2em 0;
}
.pc-planificateur .pc-details > summary::-webkit-details-marker {
	display: none;
}
.pc-planificateur .pc-details > summary::before {
	content: '';
	display: inline-block;
	width: 0.5em;
	height: 0.5em;
	border-right: 0.15em solid var(--pc-couleur-accent);
	border-bottom: 0.15em solid var(--pc-couleur-accent);
	transform: rotate(-45deg);
	margin-right: 0.2em;
	transition: transform 0.15s;
}
.pc-planificateur .pc-details[open] > summary::before {
	transform: rotate(45deg);
	margin-bottom: 0.2em;
}
.pc-planificateur .pc-cibles__valeurs {
	display: flex;
	flex-wrap: wrap;
	gap: 0.3em 1.5em;
	margin: 0.5em 0;
	padding: 0;
	list-style: none;
}

/* Cibles de la course dans le résumé */
.pc-planificateur .pc-cibles {
	margin-top: 1em;
}
.pc-planificateur .pc-cibles__item {
	padding: 0.5em 0;
	border-top: 1px solid var(--pc-couleur-bordure);
	font-size: 0.9em;
}
.pc-planificateur .pc-cibles__item b {
	font-size: 1.05em;
}
.pc-planificateur .pc-cibles__item p {
	margin: 0.2em 0 0;
	color: var(--pc-couleur-texte-secondaire);
}

/* Aide à l'estimation des temps : courses de référence */
.pc-planificateur .pc-references__ligne {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-end;
	gap: 0.5em 0.8em;
	padding: 0.6em 0;
	border-bottom: 1px solid var(--pc-couleur-bordure);
}
.pc-planificateur .pc-references__ligne .pc-champ--nom {
	flex: 1 1 12em;
}
.pc-planificateur .pc-references__ligne .pc-champ--court {
	flex: 0 1 7.5em;
}
.pc-planificateur .pc-references__bilan {
	flex: 1 1 100%;
	font-size: 0.9em;
	color: var(--pc-couleur-texte-secondaire);
}
.pc-planificateur .pc-ressemblance {
	display: inline-block;
	padding: 0.1em 0.5em;
	border-radius: 1em;
	font-weight: 600;
}
.pc-planificateur .pc-ressemblance--proche { background: var(--pc-couleur-ok-fond); color: var(--pc-couleur-ok); }
.pc-planificateur .pc-ressemblance--different { background: var(--pc-couleur-alerte-fond); color: var(--pc-couleur-alerte); }
.pc-planificateur .pc-ressemblance--eloigne { background: var(--pc-couleur-erreur-fond); color: var(--pc-couleur-erreur); }
.pc-planificateur .pc-estimation {
	margin: 0.75em 0;
}
.pc-planificateur .pc-estimation .pc-bandeau {
	margin-bottom: 0.75em;
}

/* Nutrition prévue : lignes de produits */
.pc-planificateur .pc-produits {
	margin: 0 0 0.7em;
}
.pc-planificateur .pc-produits__titre {
	font-weight: 600;
	font-size: 0.95em;
	margin: 0 0 0.4em;
}
.pc-planificateur .pc-produits__titre small {
	font-weight: 400;
}
.pc-planificateur .pc-produits__defilement {
	overflow-x: auto;
	overscroll-behavior-x: contain;   /* en bout de tableau, le glissement ne remonte pas jusqu'à la page */
}
.pc-planificateur .pc-tableau--produits {
	min-width: 50em;
}
.pc-planificateur .pc-segment__section .pc-tableau th,
.pc-planificateur .pc-segment__section .pc-tableau td {
	border-bottom-color: rgba(0, 0, 0, 0.08);
}
.pc-planificateur .pc-tableau--produits input {
	padding: 0.3em 0.45em;
	font-size: 0.95em;
}
.pc-planificateur .pc-tableau--produits td:first-child input {
	min-width: 10em;
}
.pc-planificateur .pc-tableau--produits td input[type="number"] {
	width: 5.5em;
}
.pc-planificateur .pc-tableau--produits td:last-child {
	width: 2em;
}
.pc-planificateur .pc-produits__total td,
.pc-planificateur .pc-produits__total th {
	border-top: 2px solid var(--pc-couleur-bordure);
	border-bottom: 0;
}
.pc-planificateur .pc-produits__verdict {
	display: block;
	font-size: 0.85em;
	font-weight: 400;
	margin-top: 0.15em;
	white-space: normal;
}
.pc-planificateur .pc-verdict--ok { color: var(--pc-couleur-ok); }
.pc-planificateur .pc-verdict--moyen { color: var(--pc-couleur-alerte); }
.pc-planificateur .pc-verdict--ko { color: var(--pc-couleur-erreur); }
.pc-planificateur .pc-produits__pied {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.5em 1em;
	margin-top: 0.5em;
}
.pc-planificateur .pc-produits__vide {
	font-size: 0.9em;
	color: var(--pc-couleur-texte-secondaire);
}
/* Bouton « Mémoriser » d'une ligne produit, et menu « Ajouter depuis mon catalogue » */
.pc-planificateur .pc-produits__memo {
	white-space: nowrap;
	width: 6.5em;
}
.pc-planificateur .pc-produits__catalogue {
	width: auto;
	max-width: 100%;
	font-size: 0.9em;
	padding: 0.35em 0.5em;
}
/* Catalogue de produits (partie 6) */
.pc-planificateur .pc-catalogue {
	margin: 0 0 0.75em;
}
.pc-planificateur .pc-tableau--catalogue {
	min-width: 40em;
}
.pc-planificateur .pc-tableau--catalogue td:first-child input {
	min-width: 14em;
}

/* Tableaux de résultats (segment et résumé) */
.pc-planificateur .pc-tableau {
	width: 100%;
	border-collapse: collapse;
	font-size: 0.95em;
	margin: 0.25em 0 0.25em;
}
.pc-planificateur .pc-tableau th,
.pc-planificateur .pc-tableau td {
	padding: 0.35em 0.6em;
	border-bottom: 1px solid var(--pc-couleur-bordure);
	text-align: right;
	vertical-align: top;
}
.pc-planificateur .pc-tableau th:first-child,
.pc-planificateur .pc-tableau td:first-child {
	text-align: left;
	font-weight: 600;
}
.pc-planificateur .pc-tableau thead th {
	font-weight: 600;
	color: var(--pc-couleur-texte-secondaire);
	border-bottom: 2px solid var(--pc-couleur-bordure);
}
.pc-planificateur .pc-tableau tbody tr:last-child th,
.pc-planificateur .pc-tableau tbody tr:last-child td {
	border-bottom: 0;
}
.pc-planificateur .pc-tableau--resume {
	font-size: 1em;
	background: var(--pc-couleur-fond);
	border: 1px solid var(--pc-couleur-bordure);
	border-radius: var(--pc-arrondi);
}
.pc-planificateur .pc-tableau--resume th,
.pc-planificateur .pc-tableau--resume td {
	padding: 0.5em 0.9em;
}
.pc-planificateur .pc-resume__sous-titre {
	font-size: 1em;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.05em;
	color: var(--pc-couleur-accent);
	margin: 1.1em 0 0.5em;
	padding-bottom: 0.3em;
	border-bottom: 2px solid var(--pc-couleur-accent);
}
.pc-planificateur .pc-resume-plan > .pc-resume__sous-titre:first-child {
	margin-top: 0;
}
.pc-planificateur .pc-tableau--passages th,
.pc-planificateur .pc-tableau--passages td {
	white-space: nowrap;
}
.pc-planificateur .pc-tableau--passages tbody th {
	font-weight: 400;
	white-space: normal;
}
.pc-planificateur .pc-tableau--passages .pc-passages__recharge th,
.pc-planificateur .pc-tableau--passages .pc-passages__recharge td {
	font-weight: 700;
}
.pc-planificateur .pc-tableau--passages th small,
.pc-planificateur .pc-tableau--pacing th small {
	display: block;
	font-weight: 400;
	font-size: 0.85em;
	color: var(--pc-couleur-texte-secondaire);
}
.pc-planificateur .pc-tableau__total th,
.pc-planificateur .pc-tableau__total td {
	background: var(--pc-couleur-accent-fond);
}

/* ==========================================================================
   ENCARTS PARTENAIRES
   Un bloc WordPress portant la classe « pc-encart-<nom> » est déplacé dans
   l'emplacement correspondant au chargement (voir placerEncarts). Les
   sélecteurs hors racine, ci-dessous, ne servent qu'à éviter qu'il apparaisse
   un instant à sa position d'origine : cette feuille n'est chargée que sur
   les pages qui affichent l'outil.
   ========================================================================== */
.pc-planificateur .pc-encart {
	margin: 0 0 1.5em;
}
.pc-planificateur .pc-encart:empty {
	display: none;
}
/* Un bloc « Groupe » à mise en page contrainte limite son contenu à la largeur de texte du thème (720 px sur le
   site), trop étroite pour la mise en page en ligne du bloc partenaire, qui coupe alors son lien. Dans un encart,
   le bloc reprend sa propre largeur maximale et se centre. */
.pc-planificateur .pc-encart .is-layout-constrained > * {
	max-width: none;
}
.pc-encart-profil:not(.pc-planificateur *),
.pc-encart-nutrition:not(.pc-planificateur *),
.pc-encart-segments:not(.pc-planificateur *),
.pc-encart-resume:not(.pc-planificateur *),
#pc-encart-profil:not(.pc-planificateur *),
#pc-encart-nutrition:not(.pc-planificateur *),
#pc-encart-segments:not(.pc-planificateur *),
#pc-encart-resume:not(.pc-planificateur *) {
	display: none;
}

/* ==========================================================================
   CRÉDIT
   ========================================================================== */
.pc-planificateur .pc-credit {
	margin: 1.5em 0 0;
	padding-top: 0.75em;
	border-top: 1px solid var(--pc-couleur-bordure);
	font-size: 0.85em;
	color: var(--pc-couleur-texte-secondaire);
}
