/*
 * Vérificateur de planning annualisé — FSU 62
 *
 * Le composant s'insère dans une page du thème : il n'impose ni police ni fond
 * de page, et réutilise les deux familles déjà chargées par fsut62.fr
 * (Barlow Condensed pour les titres, Source Sans 3 pour le texte).
 *
 * Les quatre couleurs du logo FSU 62 servent de légende au ruban d'année :
 * chacune code une catégorie de semaine, aucune n'est décorative.
 *
 * Le site est en thème clair uniquement ; ce composant s'y tient délibérément
 * plutôt que d'introduire une bascule que le reste de la page ne suivrait pas.
 */

.fppa {
	--fppa-encre: #151515;
	--fppa-encre-douce: #596068;
	--fppa-rouge: #c8282f;
	--fppa-rouge-fonce: #a9252a;
	--fppa-bleu: #307baa;
	--fppa-bleu-clair: #7fb3ce;
	--fppa-bleu-fonce: #256187;
	--fppa-bleu-pale: #eaf3f8;
	--fppa-vert: #6aac4b;
	--fppa-vert-fonce: #3f7a28;
	--fppa-jaune-fonce: #8a6410;
	--fppa-jaune: #efb33e;
	--fppa-papier: #f7f8f9;
	--fppa-trame: #e2e4e7;
	--fppa-blanc: #ffffff;

	--fppa-titre: "Barlow Condensed", "Arial Narrow", sans-serif;
	--fppa-texte: "Source Sans 3", "Avenir Next", sans-serif;

	--fppa-rayon: 7px;
	--fppa-pas: 1rem;

	font-family: var(--fppa-texte);
	color: var(--fppa-encre);
	font-size: 1.0625rem;
	line-height: 1.6;
	max-width: 46rem;
	margin-inline: auto;
}

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

/* Les règles de mise en page du composant utilisent display:flex et grid, qui
   l'emportent sur le display:none implicite de [hidden]. Sans ce rappel, une
   étape ou un champ masqué reste visible. */
.fppa [hidden] {
	display: none !important;
}

/* ---------------------------------------------------------------- en-tête - */

.fppa__masthead {
	margin-bottom: calc(var(--fppa-pas) * 1.75);
}

.fppa__eyebrow {
	font-family: var(--fppa-titre);
	font-weight: 700;
	font-size: 0.875rem;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--fppa-bleu-fonce);
	margin: 0 0 0.25rem;
}

.fppa__title {
	font-family: var(--fppa-titre);
	font-weight: 800;
	font-size: clamp(1.9rem, 6vw, 2.75rem);
	line-height: 1.05;
	letter-spacing: -0.01em;
	margin: 0 0 0.5rem;
	color: var(--fppa-encre);
}

.fppa__lede {
	margin: 0;
	max-width: 34rem;
	color: var(--fppa-encre-douce);
}

/* ------------------------------------------------- le ruban d'année ------- */

.fppa__ribbon-wrap {
	margin-bottom: calc(var(--fppa-pas) * 1.5);
	padding: var(--fppa-pas);
	background: var(--fppa-papier);
	border: 1px solid var(--fppa-trame);
	border-radius: var(--fppa-rayon);
}

.fppa__ribbon-head {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	gap: 0.5rem;
	margin: 0 0 0.6rem;
	font-family: var(--fppa-titre);
	font-weight: 700;
	font-size: 1rem;
	letter-spacing: 0.04em;
	text-transform: uppercase;
}

.fppa__ribbon-zone {
	color: var(--fppa-encre-douce);
}

/* Une colonne par semaine de l'année scolaire. */
.fppa__ribbon {
	display: flex;
	gap: 2px;
	height: 2.75rem;
	align-items: stretch;
}

.fppa__week {
	flex: 1 1 0;
	min-width: 0;
	background: var(--fppa-trame);
	border-radius: 1px;
	position: relative;
	transition: background-color 260ms ease;
	transition-delay: calc(var(--fppa-i, 0) * 9ms);
}

/* Avant la saisie du rythme, le type de semaine n'est pas encore connu :
   les semaines de classe se distinguent déjà des vacances. */
.fppa__week[data-kind="school"] { background: var(--fppa-bleu); }
.fppa__week[data-kind="school-a"] { background: var(--fppa-bleu); }
.fppa__week[data-kind="school-b"] { background: var(--fppa-bleu-clair); }
.fppa__week[data-kind="school-c"] { background: #b9d4e3; }
.fppa__week[data-kind="vacation"] { background: var(--fppa-trame); }

/* Un férié tombant sur une journée prévue : une entaille rouge sur la semaine. */
.fppa__week[data-holiday="1"]::after {
	content: "";
	position: absolute;
	inset-inline: 0;
	bottom: 0;
	height: 38%;
	background: var(--fppa-rouge);
	border-radius: 0 0 1px 1px;
}

.fppa__ribbon-scale {
	display: flex;
	justify-content: space-between;
	margin: 0.4rem 0 0;
	font-size: 0.75rem;
	color: var(--fppa-encre-douce);
	font-variant-numeric: tabular-nums;
}

.fppa__legend {
	display: flex;
	flex-wrap: wrap;
	gap: 0.35rem 0.9rem;
	margin: 0.75rem 0 0;
	padding: 0;
	list-style: none;
	font-size: 0.875rem;
	color: var(--fppa-encre-douce);
}

.fppa__legend li {
	display: flex;
	align-items: center;
	gap: 0.35rem;
}

.fppa__swatch {
	width: 0.85rem;
	height: 0.85rem;
	border-radius: 2px;
	flex: none;
}

.fppa__swatch--school-a { background: var(--fppa-bleu); }
.fppa__swatch--school-b { background: var(--fppa-bleu-clair); }
.fppa__swatch--vacation { background: var(--fppa-trame); }
.fppa__swatch--holiday { background: var(--fppa-rouge); }

/* ------------------------------------------------------------- étapes ----- */

.fppa__step {
	border: 0;
	margin: 0;
	padding: 0;
	min-width: 0;
}

.fppa__legend-step {
	display: flex;
	align-items: baseline;
	gap: 0.6rem;
	font-family: var(--fppa-titre);
	font-weight: 800;
	font-size: clamp(1.35rem, 4vw, 1.7rem);
	line-height: 1.15;
	margin: 0 0 0.75rem;
	padding: 0;
	color: var(--fppa-encre);
}

/* Les numéros encodent une progression réelle : six étapes, dans cet ordre.
   Ils reprennent les couleurs du logo en rotation, ce qui donne un repère
   visuel d'avancement. Aucune ne prend le rouge : rien n'est anormal ici. */
.fppa__step-index {
	font-variant-numeric: tabular-nums;
	color: var(--fppa-bleu);
	flex: none;
}

.fppa__step[data-step="2"] .fppa__step-index { color: var(--fppa-vert-fonce); }
.fppa__step[data-step="3"] .fppa__step-index { color: var(--fppa-jaune-fonce); }
.fppa__step[data-step="4"] .fppa__step-index { color: var(--fppa-bleu); }
.fppa__step[data-step="5"] .fppa__step-index { color: var(--fppa-vert-fonce); }
.fppa__step[data-step="6"] .fppa__step-index { color: var(--fppa-jaune-fonce); }

.fppa__field {
	margin-bottom: var(--fppa-pas);
}

.fppa__field--inline {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 0.5rem;
	padding-bottom: 0.6rem;
	border-bottom: 1px solid var(--fppa-trame);
}

.fppa__label {
	display: block;
	font-weight: 600;
	margin-bottom: 0.15rem;
}

.fppa__hint {
	margin: 0 0 0.5rem;
	font-size: 1rem;
	color: var(--fppa-encre-douce);
}

.fppa__input {
	width: 100%;
	min-height: 44px;
	padding: 0.55rem 0.7rem;
	font-family: inherit;
	font-size: 1rem;
	color: var(--fppa-encre);
	background: var(--fppa-blanc);
	border: 1px solid var(--fppa-encre-douce);
	border-radius: var(--fppa-rayon);
}

/* -------------------------------------------------------- choix radio ----- */

.fppa__choices {
	display: grid;
	gap: 0.5rem;
	margin-bottom: var(--fppa-pas);
}

.fppa__choice {
	display: flex;
	align-items: flex-start;
	gap: 0.7rem;
	min-height: 44px;
	padding: 0.7rem 0.85rem;
	background: var(--fppa-blanc);
	border: 1px solid var(--fppa-trame);
	border-radius: var(--fppa-rayon);
	cursor: pointer;
}

.fppa__choice:hover {
	border-color: var(--fppa-bleu);
}

.fppa__choice input {
	margin: 0.3rem 0 0;
	width: 1.15rem;
	height: 1.15rem;
	flex: none;
	accent-color: var(--fppa-bleu);
}

.fppa__choice:has(input:checked) {
	border-color: var(--fppa-bleu);
	box-shadow: inset 0 0 0 1px var(--fppa-bleu);
}

.fppa__choice-body {
	display: grid;
	gap: 0.1rem;
}

.fppa__choice-title {
	font-weight: 600;
}

.fppa__choice-detail {
	font-size: 0.9375rem;
	color: var(--fppa-encre-douce);
}

/* ------------------------------------------------------ saisie horaire ---- */

.fppa__duration {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	flex: none;
}

.fppa__duration-part {
	display: inline-flex;
	align-items: baseline;
	gap: 0.2rem;
}

/* Ces champs sont posés sur le fond gris des cartes : sans bordure franche ni
   fond bien blanc, ils passent pour désactivés. */
.fppa__number {
	width: 4.25rem;
	min-height: 44px;
	padding: 0.4rem 0.5rem;
	font-family: inherit;
	font-size: 1rem;
	font-weight: 600;
	font-variant-numeric: tabular-nums;
	text-align: center;
	color: var(--fppa-encre);
	background: var(--fppa-blanc);
	border: 1px solid var(--fppa-encre-douce);
	border-radius: var(--fppa-rayon);
	box-shadow: inset 0 1px 2px rgba(21, 21, 21, 0.06);
}

.fppa__number:hover {
	border-color: var(--fppa-bleu);
}

.fppa__unit {
	font-size: 0.9375rem;
	color: var(--fppa-encre-douce);
	cursor: pointer;
}

/* Compteur à deux boutons, pour saisir un nombre de jours au doigt. */
.fppa__stepper {
	display: inline-flex;
	align-items: stretch;
	flex: none;
	border: 1px solid var(--fppa-encre-douce);
	border-radius: var(--fppa-rayon);
	overflow: hidden;
	background: var(--fppa-blanc);
}

.fppa__stepper-btn {
	min-width: 44px;
	min-height: 44px;
	padding: 0 0.6rem;
	font-family: var(--fppa-titre);
	font-size: 1.35rem;
	font-weight: 700;
	line-height: 1;
	color: var(--fppa-bleu-fonce);
	background: var(--fppa-papier);
	border: 0;
	cursor: pointer;
}

.fppa__stepper-btn:hover {
	background: var(--fppa-bleu-pale);
}

.fppa__number--stepper {
	width: 3.5rem;
	border: 0;
	border-inline: 1px solid var(--fppa-trame);
	border-radius: 0;
	font-weight: 600;
}

/* Le total de la période est calculé, jamais saisi : il se lit comme un
   résultat et non comme un champ, pour ne pas suggérer qu'on peut le corriger. */
.fppa__period-total {
	margin: 0.6rem 0 0;
	padding: 0.5rem 0.7rem;
	border-radius: var(--fppa-rayon);
	background: var(--fppa-blanc);
	border: 1px dashed var(--fppa-trame);
	font-size: 0.9375rem;
	font-variant-numeric: tabular-nums;
	color: var(--fppa-encre-douce);
}

.fppa__period-total[data-filled] {
	background: #eef6ea;
	border-style: solid;
	border-color: var(--fppa-vert);
	color: var(--fppa-encre);
}

.fppa__period-total b {
	font-family: var(--fppa-titre);
	font-size: 1.15rem;
	letter-spacing: 0.02em;
}

/* Relance du calcul avec une autre quotité, depuis le rapport. */
.fppa__replay {
	margin-top: calc(var(--fppa-pas) * 1.5);
	padding: var(--fppa-pas);
	background: var(--fppa-papier);
	border: 1px solid var(--fppa-trame);
	border-left: 4px solid var(--fppa-jaune);
	border-radius: var(--fppa-rayon);
}

.fppa__replay-label {
	font-family: var(--fppa-titre);
	font-weight: 800;
	font-size: 1.25rem;
	margin: 0 0 0.35rem;
}

.fppa__replay-row {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-end;
	gap: 0.6rem;
}

.fppa__replay-row .fppa__input {
	width: auto;
	flex: 1 1 12rem;
}

/* Grille hebdomadaire : un jour par ligne, lisible dès 360px. */
.fppa__week-grid {
	margin-bottom: var(--fppa-pas);
	padding: var(--fppa-pas);
	background: var(--fppa-papier);
	border: 1px solid var(--fppa-trame);
	border-radius: var(--fppa-rayon);
}

.fppa__week-grid-title {
	font-family: var(--fppa-titre);
	font-weight: 800;
	font-size: 1.15rem;
	letter-spacing: 0.03em;
	text-transform: uppercase;
	margin: 0 0 0.6rem;
	color: var(--fppa-bleu-fonce);
}

.fppa__week-total {
	margin: 0.5rem 0 0;
	padding-top: 0.5rem;
	border-top: 2px solid var(--fppa-vert);
	font-size: 0.9375rem;
	font-variant-numeric: tabular-nums;
	color: var(--fppa-encre-douce);
}

.fppa__week-total b {
	color: var(--fppa-encre);
}

/* ------------------------------------------------------------ actions ----- */

.fppa__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 0.6rem;
	margin-top: calc(var(--fppa-pas) * 1.25);
}

.fppa__btn {
	min-height: 44px;
	padding: 0.65rem 1.4rem;
	font-family: var(--fppa-titre);
	font-weight: 700;
	font-size: 1.05rem;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	border-radius: var(--fppa-rayon);
	border: 1px solid transparent;
	cursor: pointer;
}

.fppa__btn--solid {
	background: var(--fppa-bleu);
	color: var(--fppa-blanc);
}

.fppa__btn--solid:hover {
	background: var(--fppa-bleu-fonce);
}

.fppa__btn--ghost {
	background: transparent;
	color: var(--fppa-encre);
	border-color: var(--fppa-encre-douce);
}

.fppa__btn--ghost:hover {
	border-color: var(--fppa-encre);
}

.fppa__btn[disabled] {
	opacity: 0.55;
	cursor: progress;
}

/* ------------------------------------------------------------- erreurs ---- */

.fppa__errors {
	margin-bottom: var(--fppa-pas);
	padding: 0.85rem 1rem;
	background: #fdf2f2;
	border: 1px solid var(--fppa-rouge);
	border-radius: var(--fppa-rayon);
}

.fppa__errors-title {
	font-family: var(--fppa-titre);
	font-weight: 800;
	font-size: 1.15rem;
	margin: 0 0 0.35rem;
	color: var(--fppa-rouge-fonce);
}

.fppa__errors-list {
	margin: 0;
	padding-left: 1.1rem;
}

.fppa__field-error {
	display: block;
	margin-top: 0.3rem;
	font-size: 0.9375rem;
	font-weight: 600;
	color: var(--fppa-rouge-fonce);
}

.fppa__input[aria-invalid="true"],
.fppa__number[aria-invalid="true"] {
	border-color: var(--fppa-rouge);
	border-width: 2px;
}

/* ------------------------------------------------------------- rapport ---- */

.fppa__verdict {
	padding: calc(var(--fppa-pas) * 1.4);
	/* Bleu du logo FSU, dégradé vers sa variante sombre : un aplat plein sur
	   cette surface serait criard, et le noir écrasait le reste de la page. */
	background: linear-gradient(135deg, var(--fppa-bleu) 0%, var(--fppa-bleu-fonce) 100%);
	color: var(--fppa-blanc);
	border-radius: var(--fppa-rayon);
	margin-bottom: calc(var(--fppa-pas) * 1.5);
}

/* Le thème applique ses propres marges aux paragraphes du contenu : sans cette
   remise à zéro, un blanc s'installe entre le chiffre et sa légende. */
.fppa__verdict > p {
	margin-block: 0;
}

.fppa__verdict-label {
	font-family: var(--fppa-titre);
	font-weight: 700;
	font-size: 0.875rem;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	margin: 0;
	opacity: 0.75;
}

.fppa__verdict-figure {
	font-family: var(--fppa-titre);
	font-weight: 800;
	font-size: clamp(3rem, 14vw, 5rem);
	line-height: 0.95;
	letter-spacing: -0.02em;
	font-variant-numeric: tabular-nums;
	margin: 0.2rem 0;
}

.fppa__verdict-detail {
	margin: 0;
	font-size: 1.0625rem;
	opacity: 0.9;
	font-variant-numeric: tabular-nums;
}

.fppa__breakdown-wrap {
	margin-bottom: calc(var(--fppa-pas) * 1.5);
}

.fppa__breakdown-title {
	font-family: var(--fppa-titre);
	font-weight: 800;
	font-size: 1.15rem;
	letter-spacing: 0.03em;
	text-transform: uppercase;
	margin: 0 0 0.5rem;
}

.fppa__breakdown {
	width: 100%;
	border-collapse: collapse;
	font-variant-numeric: tabular-nums;
}

.fppa__breakdown caption {
	text-align: left;
	margin-bottom: 0.3rem;
}

/* La part de chaque poste se lit d'abord comme une longueur, le chiffre ne
   faisant que la confirmer : même langage visuel que le ruban d'année. */
.fppa__breakdown tbody tr {
	background:
		linear-gradient(
			to right,
			var(--fppa-bleu-pale) var(--fppa-part, 0%),
			transparent var(--fppa-part, 0%)
		);
}

.fppa__breakdown th,
.fppa__breakdown td {
	padding: 0.6rem 0.6rem;
	text-align: left;
	border: 0;
	border-bottom: 1px solid var(--fppa-trame);
	background: transparent;
	font-weight: 400;
	vertical-align: baseline;
}

.fppa__breakdown th {
	padding-left: 0.7rem;
}

.fppa__breakdown td {
	text-align: right;
	font-weight: 600;
	white-space: nowrap;
}

/* La part chiffrée reste secondaire : la barre porte déjà l'information. */
.fppa__breakdown-share {
	width: 4.5rem;
	font-weight: 400;
	font-size: 0.9375rem;
	color: var(--fppa-encre-douce);
}

/* Un poste à zéro reste visible — son absence est une information — mais ne
   doit pas peser autant qu'un poste renseigné. */
.fppa__breakdown tr[data-zero] th,
.fppa__breakdown tr[data-zero] td {
	color: var(--fppa-encre-douce);
	font-weight: 400;
}

.fppa__breakdown tfoot th,
.fppa__breakdown tfoot td {
	border-bottom: 0;
	border-top: 2px solid var(--fppa-encre);
	padding-top: 0.7rem;
	font-family: var(--fppa-titre);
	font-weight: 800;
	font-size: 1.35rem;
	letter-spacing: 0.02em;
	text-transform: uppercase;
}

.fppa__breakdown tfoot td {
	text-transform: none;
}

.fppa__breakdown tfoot tr {
	background: none;
}

.fppa__finding {
	padding: var(--fppa-pas);
	margin-bottom: 0.75rem;
	background: var(--fppa-blanc);
	border: 1px solid var(--fppa-trame);
	border-left: 4px solid var(--fppa-trame);
	border-radius: var(--fppa-rayon);
}

.fppa__finding[data-status="ok"] { border-left-color: var(--fppa-vert); }
.fppa__finding[data-status="info"] { border-left-color: var(--fppa-bleu); }
.fppa__finding[data-status="warning"] { border-left-color: var(--fppa-jaune); }
.fppa__finding[data-status="alert"] { border-left-color: var(--fppa-rouge); }

.fppa__finding-head {
	display: flex;
	align-items: baseline;
	gap: 0.5rem;
	margin: 0 0 0.35rem;
}

.fppa__finding-title {
	font-family: var(--fppa-titre);
	font-weight: 800;
	font-size: 1.25rem;
	line-height: 1.2;
	margin: 0;
}

/* Le statut est porté par un mot, jamais par la seule couleur. */
.fppa__finding-tag {
	flex: none;
	font-family: var(--fppa-titre);
	font-weight: 700;
	font-size: 0.75rem;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	padding: 0.1rem 0.4rem;
	border-radius: 3px;
	background: var(--fppa-trame);
	color: var(--fppa-encre);
}

.fppa__finding[data-status="ok"] .fppa__finding-tag { background: var(--fppa-vert-fonce); color: #fff; }
.fppa__finding[data-status="info"] .fppa__finding-tag { background: var(--fppa-bleu); color: #fff; }
.fppa__finding[data-status="warning"] .fppa__finding-tag { background: var(--fppa-jaune); color: var(--fppa-encre); }
.fppa__finding[data-status="alert"] .fppa__finding-tag { background: var(--fppa-rouge); color: #fff; }

.fppa__finding-body {
	margin: 0;
}

/* Les faits datés se lisent en liste, pas noyés dans un paragraphe. */
.fppa__finding-list {
	margin: 0.6rem 0 0;
	padding: 0;
	list-style: none;
	font-variant-numeric: tabular-nums;
}

.fppa__finding-list li {
	padding: 0.35rem 0 0.35rem 0.85rem;
	border-left: 2px solid var(--fppa-trame);
	margin-bottom: 0.2rem;
}

/* Précision de second rang : le mécanisme, la nuance, la conduite à tenir. */
.fppa__finding-note {
	margin: 0.7rem 0 0;
	padding-top: 0.6rem;
	border-top: 1px solid var(--fppa-trame);
	font-size: 1rem;
	color: var(--fppa-encre-douce);
}

.fppa__finding-link {
	margin: 0.6rem 0 0;
}

.fppa__finding-link a {
	font-weight: 600;
	color: var(--fppa-bleu-fonce);
	text-underline-offset: 3px;
}

/* Bascule vers un mode de saisie alternatif. */
.fppa__switch {
	display: flex;
	align-items: center;
	gap: 0.5rem;
	min-height: 44px;
	margin-top: 0.4rem;
	font-size: 1rem;
	color: var(--fppa-encre-douce);
	cursor: pointer;
}

.fppa__switch input {
	width: 1.15rem;
	height: 1.15rem;
	flex: none;
	accent-color: var(--fppa-bleu);
}

.fppa__handoff {
	margin-top: calc(var(--fppa-pas) * 1.5);
	padding: var(--fppa-pas);
	background: var(--fppa-papier);
	border: 1px solid var(--fppa-trame);
	border-left: 4px solid var(--fppa-vert);
	border-radius: var(--fppa-rayon);
}

/* Quand des anomalies ressortent, l'encadré passe du vert au rouge FSU : c'est
   le seul endroit du rapport où la couleur appelle à agir. */
.fppa__handoff[data-alerte] {
	border-left-color: var(--fppa-rouge);
	background: #fdf2f2;
}

.fppa__handoff-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 0.6rem;
	margin-top: 0.9rem;
}

.fppa__handoff-actions .fppa__btn {
	text-decoration: none;
	display: inline-flex;
	align-items: center;
}

.fppa__handoff-title {
	font-family: var(--fppa-titre);
	font-weight: 800;
	font-size: 1.35rem;
	margin: 0 0 0.35rem;
}

.fppa__noscript {
	padding: var(--fppa-pas);
	background: var(--fppa-papier);
	border-left: 4px solid var(--fppa-bleu);
	border-radius: var(--fppa-rayon);
}

/* ----------------------------------------------------------- focus -------- */

.fppa :is(input, select, button, [tabindex]):focus-visible {
	outline: 2px solid var(--fppa-encre);
	outline-offset: 2px;
}

.fppa__choice:has(input:focus-visible) {
	outline: 2px solid var(--fppa-encre);
	outline-offset: 2px;
}

/* --------------------------------------------------------- responsive ----- */

@media (max-width: 30rem) {
	.fppa__ribbon {
		height: 2.25rem;
		gap: 1px;
	}

	.fppa__field--inline {
		align-items: flex-start;
		flex-direction: column;
	}

	.fppa__actions .fppa__btn {
		flex: 1 1 100%;
	}

	.fppa__breakdown-share {
		display: none;
	}

	.fppa__breakdown th,
	.fppa__breakdown td {
		padding-inline: 0.4rem;
	}
}

@media (prefers-reduced-motion: reduce) {
	.fppa__week {
		transition: none;
		transition-delay: 0ms;
	}
}

@media print {
	.fppa__form,
	.fppa__actions,
	.fppa__masthead {
		display: none;
	}

	.fppa__ribbon-wrap {
		position: static;
	}
}
