/* ifco-flux · bouton commun et fenêtre ECR-01 (US-07, US-08, US-42 ; version 1.2.0), dialogue ECR-02. Règles préfixées
   `.ifco-flux` (CONCEPTION §4) ; empilement sous 640 px, lisible dès 360 px, aucun mouvement si `prefers-reduced-motion` (NF-08). */
.ifco-flux { font-size: 1rem; line-height: 1.45; }
.ifco-flux button { cursor: pointer; font: inherit; padding: .45em .9em; border: 1px solid #1f2937; border-radius: 4px;
	background: #fff; color: #111827; }
.ifco-flux button:disabled { cursor: not-allowed; opacity: .55; }
.ifco-flux button[type=submit], .ifco-flux .ifco-flux-appel, .ifco-flux-partage .ifco-flux-ok { background: #1d4ed8;
	border-color: #1d4ed8; color: #fff; }
.ifco-flux button[type=submit] { font-weight: 600; }
.ifco-flux :focus-visible { outline: 3px solid #b45309; outline-offset: 2px; }
.ifco-flux-barre { display: flex; flex-wrap: wrap; align-items: center; gap: .4em .8em; margin: .5em 0; }
.ifco-flux-barre .ifco-flux-annonces p { margin: 0; }
.ifco-flux-fenetre { box-sizing: border-box; width: 40em; max-width: calc(100vw - 32px); max-height: calc(100vh - 32px);
	overflow: auto; padding: 0; border: 1px solid #6b7280; border-radius: 8px; background: #fff; color: #111827; }
.ifco-flux-fenetre::backdrop { background: rgba(17, 24, 39, .45); }
.ifco-flux-panneau { padding: 1.2em; background: #fff; color: #111827; }
.ifco-flux-panneau:focus { outline: none; }
.ifco-flux-chemins { display: grid; grid-template-columns: repeat(auto-fit, minmax(14em, 1fr)); gap: .8em; margin: .8em 0; }
.ifco-flux-chemin { padding: .8em; border: 1px solid #d1d5db; border-radius: 6px; }
.ifco-flux-chemin button { width: 100%; background: #1d4ed8; border-color: #1d4ed8; color: #fff; font-weight: 600; }
.ifco-flux-chemin .ifco-flux-aide { margin-top: .4em; }
.ifco-flux-champ { flex-basis: 100%; display: flex; flex-direction: column; gap: .25em; }
.ifco-flux-place-pseudo { flex-basis: 100%; }
.ifco-flux-vous { font-weight: 600; }
.ifco-flux-role { margin-left: .6em; font-size: .85em; padding: .2em .6em; }
.ifco-flux-fermer-fenetre { margin-top: 1em; }
.ifco-flux-panneau[hidden], .ifco-flux [hidden] { display: none !important; }
.ifco-flux-panneau h2 { font-size: 1.25em; margin: 0 0 .4em; }
.ifco-flux-panneau h3 { font-size: 1em; margin: 1em 0 .3em; }
.ifco-flux-panneau form { display: flex; flex-wrap: wrap; align-items: flex-end; gap: .4em .6em; margin: .8em 0; }
.ifco-flux-panneau label { font-weight: 600; }
.ifco-flux-panneau input[type=text] { font: inherit; padding: .4em; border: 1px solid #6b7280; border-radius: 4px;
	min-width: 12em; max-width: 100%; box-sizing: border-box; }
.ifco-flux-aide, .ifco-flux-erreur-champ { flex-basis: 100%; margin: 0; font-size: .9em; }
.ifco-flux-aide { color: #4b5563; }
.ifco-flux-erreur-champ, .ifco-flux-message p { color: #991b1b; font-weight: 600; }
.ifco-flux-info { font-size: .92em; color: #374151; }
.ifco-flux-code { font-family: ui-monospace, "SFMono-Regular", Menlo, Consolas, "Liberation Mono", monospace;
	font-size: 1.6em; letter-spacing: .08em; margin: 0 0 .4em; white-space: nowrap; user-select: all; }
.ifco-flux-libelle-code { margin: 0; font-weight: 600; }
.ifco-flux-presents { list-style: none; margin: 0; padding: 0; }
.ifco-flux-presents li { padding: .15em 0; display: flex; flex-wrap: wrap; align-items: center; gap: .2em; }
.ifco-flux-pseudo { display: inline-block; max-width: 20em; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
	vertical-align: bottom; }
.ifco-flux-marque { font-size: .85em; color: #4b5563; }
.ifco-flux-marque::before { content: "· "; }
.ifco-flux-invitation { display: block; width: 100%; margin-top: .4em; box-sizing: border-box; }
.ifco-flux-encours .ifco-flux-libelle-code + .ifco-flux-lien { display: block; margin: .2em 0 .4em; overflow-wrap: anywhere; }
.ifco-flux-encours p.ifco-flux-libelle-code:not(:first-child) { margin-top: 1em; }
.ifco-flux-qr-zone { margin: 1em 0 0; }
.ifco-flux-qr-zone svg { display: block; width: 176px; height: auto; max-width: 100%; }
.ifco-flux-qr-zone.ifco-flux-qr-grand svg { width: min(480px, 100%, 70vh); }
.ifco-flux-qr-zone figcaption { margin: .4em 0; font-size: .92em; color: #374151; }
.ifco-flux-actions { display: flex; gap: .6em; margin-top: 1em; flex-wrap: wrap; }
.ifco-flux-annonces p, .ifco-flux-copie, .ifco-flux-attente { margin: .3em 0 0; color: #065f46; }
.ifco-flux-dialogue { max-width: 32em; border: 1px solid #6b7280; border-radius: 6px; padding: 1.2em; }
.ifco-flux-dialogue h2 { font-size: 1.2em; margin-top: 0; }
.ifco-flux-dialogue::backdrop { background: rgba(17, 24, 39, .45); }
@media (prefers-reduced-motion: no-preference) {
	.ifco-flux-annonces p { animation: ifco-flux-apparition .25s ease-out; }
}
@keyframes ifco-flux-apparition { from { opacity: 0; } to { opacity: 1; } }
@media (max-width: 640px) {
	.ifco-flux-panneau form { flex-direction: column; align-items: stretch; }
	.ifco-flux-panneau input[type=text], .ifco-flux-panneau button, .ifco-flux-actions button { width: 100%; min-width: 0; }
	.ifco-flux-panneau .ifco-flux-role { width: auto; }
	.ifco-flux-panneau .ifco-flux-menu, .ifco-flux-panneau .ifco-flux-menu-personne, .ifco-flux-panneau .ifco-flux-parametres { width: 44px; }
	.ifco-flux-panneau { padding: .9em; }
	.ifco-flux-code { font-size: 1.4em; }
	.ifco-flux-pseudo { max-width: 14em; }
}
/* Démonstration « Mur de notes » (TS-34) */
.ifco-flux-demo textarea { font: inherit; width: 100%; box-sizing: border-box; min-height: 4em; }
.ifco-flux-demo-compteur[data-trop="1"] { color: #b22222; font-weight: 700; }
.ifco-flux-demo-notes { list-style: none; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(12em, 1fr));
	gap: .6em; }
.ifco-flux-demo-notes li { padding: .6em; border: 1px solid #d1d5db; border-radius: 4px; background: #fefce8; overflow-wrap: anywhere; }
.ifco-flux-demo-auteur { display: block; font-size: .85em; color: #4b5563; margin-top: .3em; }
/* 1.5.0 : « Mes ateliers » et « Partager » (US-51, US-52, DEC-287) */
.ifco-flux-entete { display: grid; grid-template-columns: repeat(auto-fit, minmax(14em, 1fr)); gap: .8em; margin: .8em 0; }
.ifco-flux-entete .ifco-flux-aide { margin-top: .4em; }
.ifco-flux-liste { list-style: none; margin: .8em 0; padding: 0; }
.ifco-flux-ligne { display: flex; flex-wrap: wrap; align-items: flex-start; justify-content: space-between; gap: .4em .8em;
	padding: .5em 0; border-top: 1px solid rgba(0, 0, 0, .15); }
.ifco-flux-ligne-texte { flex: 1 1 14em; min-width: 0; overflow-wrap: anywhere; }
.ifco-flux-ligne-texte .ifco-flux-aide { display: block; margin: .15em 0; }
.ifco-flux-titre-atelier { font-weight: 600; }
.ifco-flux-code-atelier { font-family: monospace; }
.ifco-flux-role-atelier, .ifco-flux-ici, .ifco-flux-role, .ifco-flux-en-ligne { font-size: .85em; color: #374151; }
.ifco-flux-ici, .ifco-flux-en-ligne { color: #065f46; }
.ifco-flux-ligne-actions, .ifco-flux-actions-demande { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: .4em; align-items: center; }
/* Revue de séance 14 (DEC-297) : boutons-icônes carrés de 44 px ; menu de ligne sous la ligne, aligné à droite. */
.ifco-flux-menu, .ifco-flux-menu-personne, .ifco-flux-parametres { width: 44px; height: 44px; padding: 0; flex: 0 0 44px; }
.ifco-flux-ligne-actions { display: contents; }
.ifco-flux-ligne-actions > .ifco-flux-menu-liste, .ifco-flux-personne > .ifco-flux-menu-liste { order: 9; flex: 0 0 16em; max-width: 100%;
	margin-left: auto; box-sizing: border-box; }
.ifco-flux-ligne:has(.ifco-flux-menu-liste:not([hidden]))::after, .ifco-flux-personne:has(> .ifco-flux-menu-liste:not([hidden]))::after {
	content: ""; order: 8; flex-basis: 100%; height: 0; }
.ifco-flux-insec { white-space: nowrap; }
.ifco-flux-pastille { display: inline-block; min-width: 1.5em; margin-left: .4em; padding: 0 .35em; border-radius: 999px;
	background: #b91c1c; color: #fff; font-size: .8em; font-weight: 700; text-align: center; box-sizing: border-box; }
.ifco-flux-en-demande .ifco-flux-vide, .ifco-flux-en-demande .ifco-flux-revenir, .ifco-flux-en-demande .ifco-flux-recharge { display: none; }
.ifco-flux h2[tabindex="-1"]:focus, .ifco-flux h3[tabindex="-1"]:focus { outline: none; }
/* Menus dans le flux de la fenêtre : jamais coupés par le défilement de la fenêtre (recette de livraison, DEC-295). */
.ifco-flux-menu-liste { flex-basis: 100%; list-style: none; margin: .2em 0 0; padding: .3em 0;
	min-width: 12em; background: #fff; border: 1px solid #6b7280; border-radius: 4px; box-shadow: 0 2px 8px rgba(0, 0, 0, .2); }
.ifco-flux-menu-liste button { display: block; width: 100%; text-align: left; border: 0; border-radius: 0; }
.ifco-flux-menu-liste button:focus, .ifco-flux-menu-liste button:hover { background: var(--if-reserve, #E3E9F5); }
.ifco-flux-menu-liste [role=menuitemradio] { position: relative; padding-left: 1.8em; }
.ifco-flux-menu-liste [aria-checked=true]::before { content: "\2713"; position: absolute; left: .6em; }
.ifco-flux-tete { display: flex; align-items: flex-start; justify-content: space-between; gap: .6em; }
.ifco-flux-tete h2 { overflow-wrap: anywhere; min-width: 0; }
.ifco-flux-bloc-adresses { display: flex; flex-direction: column; gap: .3em; margin: .6em 0 1em; position: relative; }
.ifco-flux-bloc-adresses label { font-weight: 600; }
.ifco-flux-adresses { font: inherit; padding: .4em; border: 1px solid #6b7280; border-radius: 4px; width: 100%; box-sizing: border-box; }
.ifco-flux-propositions { list-style: none; margin: 0; padding: .2em 0; border: 1px solid #6b7280; border-radius: 4px; background: #fff;
	display: grid; grid-template-columns: 1fr auto; }
.ifco-flux-propositions [role=option] { padding: .3em .6em; cursor: pointer; overflow-wrap: anywhere; }
.ifco-flux-propositions [role=option].ifco-flux-actif { background: #e0e7ff; }
.ifco-flux-oublier { padding: .1em .5em; margin: 0 .3em; }
.ifco-flux-erreur-adresses, .ifco-flux-erreur-partage { margin: 0; color: #991b1b; font-weight: 600; }
.ifco-flux-personnes, .ifco-flux-demandes { list-style: none; margin: 0; padding: 0; }
.ifco-flux-personne, .ifco-flux-demande-ligne { position: relative; display: flex; flex-wrap: wrap; align-items: center; gap: .3em .6em;
	padding: .25em 0; }
.ifco-flux-form-prenom { display: inline-flex; flex-wrap: wrap; gap: .3em; } .ifco-flux-form-prenom input { width: 12em; max-width: 100%; } /* RG-99 */
.ifco-flux-qui { flex: 1 1 10em; min-width: 0; }
.ifco-flux-acces-choix { display: flex; flex-wrap: wrap; }
.ifco-flux-lien { display: block; margin: .2em 0 .4em; overflow-wrap: anywhere; }
.ifco-flux-vue-partage > .ifco-flux-libelle-code, .ifco-flux-libelle-lien { margin: 1em 0 0; font-weight: 600; }
.ifco-flux-ok { margin-top: 1em; }
.ifco-flux-partage .ifco-flux-ok { position: sticky; bottom: .8em; display: block; margin: 1em 0 0 auto; min-width: 6em;
	box-shadow: 0 0 0 .6em #fff; }
.ifco-flux-demande p { color: #065f46; font-weight: 600; }
.ifco-flux-partage { box-sizing: border-box; width: 40em; max-width: calc(100vw - 32px); max-height: calc(100vh - 32px);
	overflow: auto; padding: 0; border: 1px solid #6b7280; border-radius: 8px; background: #fff; color: #111827; }
.ifco-flux-partage::backdrop { background: rgba(17, 24, 39, .45); }
/* 1.4.0 : « Vos ateliers sur cet appareil » (RG-67) */
.ifco-flux-vos-ateliers { margin-top: 1em; }
.ifco-flux-vos-ateliers h3 { font-size: 1em; margin: 0 0 .25em; }
.ifco-flux-vos-ateliers ul { list-style: none; margin: .5em 0; padding: 0; }
.ifco-flux-vos-ateliers li { padding: .4em 0; border-top: 1px solid rgba(0, 0, 0, .15); overflow-wrap: anywhere; }
.ifco-flux-vos-ateliers li > span { display: inline-block; margin-right: .5em; }
.ifco-flux-vos-ateliers .ifco-flux-aide { display: block; margin: .15em 0; }
.ifco-flux-vos-ateliers .ifco-flux-code-atelier { font-family: monospace; }
.ifco-flux-vos-ateliers .ifco-flux-retourner { display: inline-block; margin-top: .25em; }
/* 1.5.0, DEC-299 : charte graphique d'impactfactories.com (charte v1.2 de David) dans l'interface. Encre sur papier,
   tracé légèrement irrégulier comme dessiné à la main, accents porteurs de sens (corail : ce qui casse ou attend une
   action ; vert : ce qui marche ; bleu : ce qui circule ; jaune : surlignage), jamais de texte en couleur d'accent ni
   de texte blanc sur un aplat coloré. Émoticônes en contenu généré, texte de remplacement vide : ni dans le texte lu ni
   dans le nom accessible. Mascotte : le suricate d'Impact Factories, une seule fois, dans « Mes ateliers », décorative. */
.ifco-flux, .ifco-flux-fenetre, .ifco-flux-partage, .ifco-flux-dialogue {
	--if-encre: #0D1233; --if-papier: #F2F5FB; --if-reserve: #E3E9F5; --if-filet: #C2CCDD;            /* RG-108 (2.2.1 : brume bleutée) */
	--if-signal: #F18169; --if-croissance: #92C855; --if-flux: #4B89C2; --if-marque: #F3B209; --if-ambre: #F3B209;
	--if-bleu-pale: #DCE8F4; --if-vert-pale: #E6F2D6; --if-corail-pale: #FBE0DA; --if-ambre-pale: #FCEBC0;
	--if-main: 14px 19px 12px 21px / 19px 12px 21px 14px; --if-main-b: 9px 13px 8px 12px / 12px 8px 13px 9px;
}
.ifco-flux-fenetre, .ifco-flux-partage, .ifco-flux-dialogue { background: var(--if-papier); color: var(--if-encre);
	border: 2px solid var(--if-encre); border-radius: var(--if-main); box-shadow: 3px 4px 0 rgba(13, 18, 51, .18); }
.ifco-flux-fenetre::backdrop, .ifco-flux-partage::backdrop, .ifco-flux-dialogue::backdrop { background: rgba(13, 18, 51, .5); }
.ifco-flux-panneau { background: var(--if-papier); color: var(--if-encre); }
.ifco-flux button { border: 2px solid var(--if-encre); border-radius: var(--if-main-b); background: var(--if-papier);
	color: var(--if-encre); }
.ifco-flux button:hover:not(:disabled) { background: var(--if-reserve); }
.ifco-flux button[type=submit], .ifco-flux .ifco-flux-appel, .ifco-flux-partage .ifco-flux-ok, .ifco-flux-chemin button {
	background: var(--if-encre); border-color: var(--if-encre); color: var(--if-papier); font-weight: 600; }
.ifco-flux button[type=submit]:hover:not(:disabled), .ifco-flux .ifco-flux-appel:hover, .ifco-flux-partage .ifco-flux-ok:hover,
.ifco-flux-chemin button:hover { background: #343D6B; }
.ifco-flux :focus-visible { outline: 3px solid var(--if-flux); outline-offset: 2px; }
.ifco-flux-chemin { background: var(--if-reserve); border: 2px solid var(--if-filet); border-radius: var(--if-main);
	border-top: 6px solid var(--if-croissance); }
.ifco-flux-chemin + .ifco-flux-chemin { border-top-color: var(--if-flux); }
.ifco-flux-panneau input[type=text], .ifco-flux-adresses { border: 2px solid var(--if-encre); border-radius: var(--if-main-b);
	background: #fff; color: var(--if-encre); }
.ifco-flux-aide, .ifco-flux-info, .ifco-flux-marque, .ifco-flux-role-atelier, .ifco-flux-role, .ifco-flux-qr-zone figcaption,
.ifco-flux-demo-auteur { color: #4A5072; }
.ifco-flux-ligne { border-top: 2px dashed var(--if-filet); }
.ifco-flux-ici, .ifco-flux-en-ligne { color: var(--if-encre); }
.ifco-flux-en-ligne::before { content: "\25CF  " / ""; color: var(--if-croissance); }
.ifco-flux-erreur-champ, .ifco-flux-message p, .ifco-flux-erreur-adresses, .ifco-flux-erreur-partage { color: var(--if-encre);
	border-left: 5px solid var(--if-signal); padding-left: .5em; }
.ifco-flux-message p:empty, .ifco-flux-erreur-champ:empty, .ifco-flux-erreur-adresses:empty, .ifco-flux-erreur-partage:empty { border: 0; padding: 0; }
.ifco-flux-erreur-champ:not(:empty)::before, .ifco-flux-message p:not(:empty)::before, .ifco-flux-erreur-adresses:not(:empty)::before,
.ifco-flux-erreur-partage:not(:empty)::before { content: "\26A0\FE0F  " / ""; }
.ifco-flux-annonces p, .ifco-flux-copie, .ifco-flux-attente { color: var(--if-encre); }
.ifco-flux-annonces p { background: linear-gradient(transparent 35%, var(--if-marque) 35%, var(--if-marque) 90%, transparent 90%);
	display: inline-block; padding: 0 .3em; }
.ifco-flux-demande p { color: var(--if-encre); border-left: 5px solid var(--if-flux); padding-left: .5em; }
.ifco-flux-demande p::before { content: "\23F3  " / ""; }
.ifco-flux-pastille { background: var(--if-signal); color: var(--if-encre); border: 2px solid var(--if-encre); }
.ifco-flux-code { color: var(--if-encre); }
.ifco-flux-menu-liste { background: var(--if-papier); border: 2px solid var(--if-encre); border-radius: var(--if-main-b);
	box-shadow: 3px 4px 0 rgba(13, 18, 51, .18); }
.ifco-flux-menu-liste button:focus, .ifco-flux-menu-liste button:hover { background: var(--if-reserve); }
.ifco-flux-propositions { background: var(--if-papier); border: 2px solid var(--if-encre); }
.ifco-flux-propositions [role=option].ifco-flux-actif { background: var(--if-reserve); }
.ifco-flux-qr-zone svg { background: #fff; }   /* taille de CA-44.3 et CA-44.6 inchangée : ni marge ni cadre */
/* Émoticônes : elles aident à reconnaître l'action, elles ne remplacent aucun mot. */
.ifco-flux-nouveau::before { content: "\2728  " / ""; }
.ifco-flux-ouvrir-code::before { content: "\1F511  " / ""; }
.ifco-flux .ifco-flux-partager::before, .ifco-flux-action-partager::before { content: "\1F465  " / ""; }
.ifco-flux-ouvrir::before { content: "\1F4C2  " / ""; }
.ifco-flux-envoyer::before { content: "\1F4E8  " / ""; }
.ifco-flux-copier-lien::before, .ifco-flux-libelle-lien::before { content: "\1F517  " / ""; }
.ifco-flux-copier::before { content: "\1F4CB  " / ""; }
.ifco-flux-agrandir::before { content: "\1F50D  " / ""; }
.ifco-flux-libelle-code::before { content: "\1F522  " / ""; }
.ifco-flux-qr-zone figcaption::before { content: "\1F4F1  " / ""; }
.ifco-flux-acces-bouton::before, .ifco-flux-acces-valeur::before { content: "\1F310  " / ""; }
.ifco-flux-limite .ifco-flux-acces-bouton::before, .ifco-flux-limite .ifco-flux-acces-valeur::before { content: "\1F512  " / ""; }
.ifco-flux-acces-bouton::after { content: "\00A0\25BE" / ""; }
.ifco-flux-titre-personnes::before { content: "\1F465  " / ""; }
.ifco-flux-bloc-demandes h3::before { content: "\1F64B  " / ""; }
.ifco-flux-accepter::before { content: "\2705  " / ""; }
.ifco-flux-refuser::before { content: "\2716\FE0F  " / ""; }
.ifco-flux-action-supprimer::before { content: "\1F5D1\FE0F  " / ""; }
.ifco-flux-action-retirer::before { content: "\21A9\FE0F  " / ""; }
.ifco-flux-action-transferer::before { content: "\1F451  " / ""; }
.ifco-flux-action-retirer-acces::before { content: "\1F6AB  " / ""; }
.ifco-flux-vide::before { content: "\1F5C2\FE0F  " / ""; }
/* La mascotte, une fois, en haut à droite de « Mes ateliers » ; décorative (image de fond, absente du texte lu). */
.ifco-flux-mes-ateliers .ifco-flux-panneau { background: var(--if-papier) url("mascotte-suricate.png") no-repeat right 1.1em top .8em / auto 72px; }
.ifco-flux-mes-ateliers .ifco-flux-titre, .ifco-flux-mes-ateliers .ifco-flux-titre + .ifco-flux-aide { padding-right: 64px; }
.ifco-flux-mes-ateliers .ifco-flux-titre + .ifco-flux-aide { min-height: 2.6em; }
@media (max-width: 640px) {
	.ifco-flux-mes-ateliers .ifco-flux-panneau { background-size: auto 52px; background-position: right .7em top .6em; }
	.ifco-flux-mes-ateliers .ifco-flux-titre, .ifco-flux-mes-ateliers .ifco-flux-titre + .ifco-flux-aide { padding-right: 48px; }
}
/* Seconde relecture indépendante (DEC-299) */
.ifco-flux, .ifco-flux-fenetre, .ifco-flux-partage, .ifco-flux-dialogue { --if-main-x: 255px 18px 225px 16px / 16px 225px 18px 255px; }
.ifco-flux-fenetre, .ifco-flux-partage, .ifco-flux-dialogue { border-radius: 22px 28px 18px 30px / 30px 18px 28px 22px;
	box-shadow: 2px 3px 0 -1px var(--if-encre), 4px 6px 0 rgba(13, 18, 51, .12); }
.ifco-flux button, .ifco-flux-panneau input[type=text], .ifco-flux-adresses { border-radius: var(--if-main-x); }
.ifco-flux-chemin { border-radius: 18px 26px 14px 24px / 24px 14px 26px 18px; }
.ifco-flux .ifco-flux-menu-liste button { border: 0; border-left: 5px solid transparent; border-radius: 0; background: transparent; }
.ifco-flux .ifco-flux-menu-liste button:hover, .ifco-flux .ifco-flux-menu-liste button:focus { background: var(--if-reserve); }
.ifco-flux .ifco-flux-menu-liste .ifco-flux-action-supprimer, .ifco-flux .ifco-flux-menu-liste .ifco-flux-action-retirer-acces { border-left-color: var(--if-signal); }
.ifco-flux-bloc-demandes { border-left: 5px solid var(--if-signal); padding-left: .7em; }
.ifco-flux .ifco-flux-accepter { background: var(--if-encre); border-color: var(--if-encre); color: var(--if-papier); }
.ifco-flux .ifco-flux-accepter:hover { background: #343D6B; }
.ifco-flux-partage .ifco-flux-ok { box-shadow: 0 0 0 .6em var(--if-papier); }
.ifco-flux-copier-lien::before, .ifco-flux-libelle-code::before, .ifco-flux-qr-zone figcaption::before { content: none; }
.ifco-flux-vue-parametres h3 { font-size: 1.15em; }
.ifco-flux-editeurs-partagent { accent-color: var(--if-encre); width: 1.3em; height: 1.3em; vertical-align: middle; }
.ifco-flux-ici::before { content: "\00B7  " / ""; color: #4A5072; }
.ifco-flux-acces-refus { margin: .3em 0 0; }
@media (max-width: 640px) {
	.ifco-flux-panneau .ifco-flux-actions-demande button { width: auto; }
}
/* Barre (version 2.2.0 ; RG-106, RG-107, RG-108 ; CONCEPTION §21.4 ; maquette chantiers-210). Grille : cible à gauche sur deux
   lignes, nom de l'application au-dessus du nom du chantier, présents, Partager (seule action pleine, ambre), plein écran
   en icône ; filet bas aux quatre couleurs du logo. 600 px ou moins : deux lignes, menu en panneau du bas sous un voile. */
.ifco-flux .ifco-flux-barre { display: block; margin: 0 0 .8em; padding: 0; }
.ifco-flux-barre-ligne { position: relative; display: grid; align-items: center; column-gap: .45em;
	grid-template-columns: auto minmax(0, 1fr) auto auto auto;
	grid-template-areas: "cible app presents partager plein" "cible nom presents partager plein";
	min-height: 60px; padding: .35em .5em calc(.35em + 5px) .35em; background: var(--if-papier); color: var(--if-encre);
	border: 2px solid var(--if-encre); border-radius: var(--if-main-b); box-shadow: 2px 3px 0 rgba(13, 18, 51, .12); }
.ifco-flux-barre-ligne::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 5px; border-radius: 0 0 8px 8px;
	pointer-events: none; background: linear-gradient(90deg, var(--if-flux) 0 25%, var(--if-croissance) 25% 50%, var(--if-signal) 50% 75%, var(--if-ambre) 75%); }
.ifco-flux .ifco-flux-barre button { min-height: 44px; }
.ifco-flux .ifco-flux-barre .ifco-flux-cible { grid-area: cible; align-self: stretch; display: flex; align-items: center; justify-content: center;
	gap: 1px; width: 64px; margin-right: .3em; padding: 0; border: 0; border-right: 2px solid var(--if-filet); border-radius: 0;
	background: transparent; color: var(--if-encre); }
.ifco-flux .ifco-flux-barre .ifco-flux-cible[aria-expanded=true] { background: var(--if-reserve); border-radius: var(--if-main-b); }
.ifco-flux-cible-icone { position: relative; display: grid; place-items: center; width: 46px; height: 46px; border-radius: 50%; font-size: 20px; line-height: 1; }
.ifco-flux-anneau { --p: 0; position: absolute; inset: 0; border-radius: 50%;
	background: conic-gradient(var(--if-croissance) calc(var(--p) * 1%), var(--if-reserve) 0);
	-webkit-mask: radial-gradient(circle, transparent 17px, #000 18px); mask: radial-gradient(circle, transparent 17px, #000 18px); }
.ifco-flux-fleche { font-size: 12px; }
.ifco-flux-identite { display: contents; }
.ifco-flux-barre .ifco-flux-nom-app { grid-area: app; align-self: end; min-width: 0; font-size: .8em; font-weight: 400; color: #4A5072;
	white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ifco-flux .ifco-flux-barre .ifco-flux-appel { grid-area: nom; justify-self: start; align-self: start; max-width: 100%; min-height: 44px;
	margin-left: -.25em; padding: 0 .25em; border: 0; background: transparent; color: var(--if-encre); font-weight: 800; font-size: 1.1em;
	line-height: 1.35; text-align: left; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ifco-flux .ifco-flux-barre .ifco-flux-appel::after { content: " \270E" / ""; font-weight: 400; color: var(--if-signal); }
.ifco-flux .ifco-flux-barre .ifco-flux-appel:hover { background: var(--if-reserve); }
.ifco-flux-nom-champ { grid-area: nom; min-width: 6em; min-height: 40px; font: inherit; padding: .2em .5em; border: 2px solid var(--if-encre);
	border-radius: var(--if-main-b); background: #fff; color: var(--if-encre); }
.ifco-flux-nom-erreur { margin: .3em 0 0; }
.ifco-flux-nom-erreur:not(:empty) { border-left: 5px solid var(--if-signal); padding-left: .5em; }
.ifco-flux-presents { display: flex; list-style: none; margin: 0; padding: 0; }
.ifco-flux-barre .ifco-flux-presents { grid-area: presents; padding: 0 .2em; }
.ifco-flux-presents li { display: inline-flex; align-items: center; justify-content: center; width: 2em; height: 2em; margin-left: -.35em;
	border-radius: 50%; border: 2px solid var(--if-papier); background: var(--if-flux); color: var(--if-encre); font-weight: 800; font-size: .85em; }
.ifco-flux-presents li:first-child { margin-left: 0; }
/* DEF-44 (2.0.2) : styles de liste du thème neutralisés, pastilles centrées sur la ligne */
.ifco-flux .ifco-flux-barre .ifco-flux-presents { align-self: center; align-items: center; }
.ifco-flux .ifco-flux-barre .ifco-flux-presents li { margin-top: 0; margin-bottom: 0; padding: 0; line-height: 1; list-style: none; box-sizing: border-box; }
.ifco-flux .ifco-flux-barre .ifco-flux-presents li:first-child { margin-left: 0; }
.ifco-flux-presents .ifco-flux-couleur-1 { background: var(--if-croissance); color: var(--if-encre); }
.ifco-flux-presents .ifco-flux-couleur-2 { background: var(--if-signal); color: var(--if-encre); }
.ifco-flux-presents .ifco-flux-pastille-plus { background: var(--if-reserve); color: var(--if-encre); }
.ifco-flux .ifco-flux-barre .ifco-flux-partager { grid-area: partager; white-space: nowrap; background: var(--if-ambre); color: var(--if-encre); font-weight: 700; }
.ifco-flux .ifco-flux-barre .ifco-flux-partager:hover:not(:disabled) { background: #E0A200; }
.ifco-flux .ifco-flux-barre .ifco-flux-plein-ecran { grid-area: plein; width: 44px; padding: 0; border-color: transparent; background: transparent; font-size: 20px; }
.ifco-flux .ifco-flux-barre .ifco-flux-plein-ecran:hover { background: var(--if-reserve); }
/* Menu de la cible (RG-107) */
.ifco-flux-barre .ifco-flux-menu-cible { position: absolute; left: .3em; top: calc(100% + 4px); z-index: 30; width: max-content; min-width: 16em;
	max-width: calc(100vw - 32px); margin: 0; padding: .3em; list-style: none; background: var(--if-papier); border: 2px solid var(--if-encre);
	border-radius: var(--if-main-b); box-shadow: 3px 4px 0 rgba(13, 18, 51, .18); }
.ifco-flux-menu-cible > li > button { display: block; width: 100%; min-height: 40px; text-align: left; border: 0; border-radius: var(--if-main-b); background: transparent; }
.ifco-flux-menu-cible button:hover, .ifco-flux-menu-cible button:focus { background: var(--if-reserve); }
.ifco-flux-menu-cible .ifco-flux-sep { border-top: 2px dashed var(--if-filet); margin: .3em 0; }
.ifco-flux-menu-poignee { display: none; }
.ifco-flux-li-plein-ecran { display: none; }
.ifco-flux-carte { width: 26em; max-width: calc(100vw - 48px); margin-bottom: .2em; padding: .5em .7em .6em; background: #fff;
	border: 2px solid var(--if-filet); border-radius: var(--if-main-b); }
.ifco-flux-carte-titre { margin: 0 0 .3em; font-weight: 800; overflow-wrap: anywhere; }
.ifco-flux-carte .ifco-flux-action-noter { margin-top: .5em; text-align: center; background: var(--if-encre); color: var(--if-papier); font-weight: 700; }
.ifco-flux-menu-cible .ifco-flux-carte .ifco-flux-action-noter:hover, .ifco-flux-menu-cible .ifco-flux-carte .ifco-flux-action-noter:focus { background: #262C55; }
.ifco-flux-carte .ifco-flux-action-revoir { display: inline-block; width: auto; min-height: 36px; margin-top: .3em; padding: 0 .2em;
	font-size: .88em; color: #4A5072; text-decoration: underline; text-underline-offset: 3px; }
.ifco-flux-carte .ifco-flux-action-relier { margin-top: .3em; border: 2px solid var(--if-encre); text-align: center; font-weight: 700; }
.ifco-flux-li-chaine { padding: 0 .4em; max-width: 27em; }
.ifco-flux-li-chaine .ifco-flux-chaine { flex-wrap: nowrap; }
.ifco-flux-li-chaine .ifco-flux-chaine li { min-width: 0; }
.ifco-flux-li-chaine .ifco-flux-maillon { max-width: 11em; overflow: hidden; text-overflow: ellipsis; display: inline-block; line-height: 26px; }
.ifco-flux-li-chaine .ifco-flux-maillon.ici { flex-shrink: 0; }
.ifco-flux-action-fermer::before { content: none; }
.ifco-flux-barre .ifco-flux-annonces { margin-top: .3em; }
@media (max-width: 600px) {
	.ifco-flux-barre-ligne { grid-template-columns: auto minmax(0, 1fr) auto auto; row-gap: 0;
		grid-template-areas: "cible nom nom nom" "cible . presents partager"; }
	.ifco-flux-barre .ifco-flux-nom-app, .ifco-flux .ifco-flux-barre .ifco-flux-plein-ecran { display: none; }
	.ifco-flux-li-plein-ecran { display: list-item; }
	.ifco-flux .ifco-flux-barre .ifco-flux-partager { padding: .3em .6em; }
	.ifco-flux-presents li:nth-child(n+3):not(.ifco-flux-pastille-plus) { display: none; }
	.ifco-flux-barre .ifco-flux-menu-cible { box-sizing: border-box; position: fixed; left: 0; right: 0; bottom: 0; top: auto; width: auto; min-width: 0; max-width: none;
		max-height: 85vh; max-height: 85dvh; overflow-y: auto; overscroll-behavior: contain; z-index: 99995; border-bottom: 0;
		border-radius: 18px 18px 0 0; padding: .4em .6em calc(.6em + env(safe-area-inset-bottom)); box-shadow: none; }
	.ifco-flux-barre.ifco-flux-menu-ouvert::before { content: ""; position: fixed; inset: 0; z-index: 99994; background: rgba(13, 18, 51, .45); }
	.ifco-flux-menu-poignee { display: block; width: 44px; height: 5px; margin: .2em auto .5em; border-radius: 3px; background: var(--if-filet); }
	.ifco-flux-carte, .ifco-flux-li-chaine { width: auto; max-width: none; }
	.ifco-flux-menu-cible > li > button { min-height: 48px; }
	html:has(.ifco-flux-menu-ouvert) { overflow: hidden; }
}
.ifco-flux-barre[data-ifco-flux-etat=reduite] .ifco-flux-nom-app { grid-row: 1 / span 2; align-self: center; font-size: 1em; font-weight: 700; color: var(--if-encre); }
/* Plein écran du site (US-61) : le conteneur couvre la fenêtre, la barre reste en haut, défilement interne. */
.ifco-flux.ifco-flux-plein { position: fixed; inset: 0; z-index: 99990; margin: 0; padding: .6em; overflow: auto; background: var(--if-papier);
	box-sizing: border-box; max-width: none; width: 100%; height: 100%; }
.ifco-flux.ifco-flux-plein .ifco-flux-barre { position: sticky; top: 0; z-index: 20; }
html.ifco-flux-plein-page, html.ifco-flux-plein-page body { overflow: hidden; }
.ifco-flux:fullscreen { overflow: auto; background: var(--if-papier); }
/* Cadre isolé de l'application (2.0.0, RG-84) : largeur du conteneur, hauteur de son document ; en plein écran, la
   fenêtre sous la barre (la règle l'emporte sur la hauteur posée par le pont). */
.ifco-flux .ifco-flux-cadre { display: block; width: 100%; height: 150px; min-height: 150px; border: 0; margin: 0; padding: 0; background: transparent; }
.ifco-flux.ifco-flux-plein, .ifco-flux:fullscreen { display: flex; flex-direction: column; }
.ifco-flux.ifco-flux-plein .ifco-flux-cadre, .ifco-flux:fullscreen .ifco-flux-cadre { flex: 1 1 auto; height: auto !important; min-height: 0; }
/* « Ateliers » (US-60) et atelier du navigateur (US-57) */
.ifco-flux-section-app h3, .ifco-flux-section-autres h3 { margin-top: 1em; }
.ifco-flux-non-partage { font-size: .85em; padding: .1em .5em; border: 2px dashed var(--if-filet); border-radius: var(--if-main-b); }
.ifco-flux-action-supprimer-locale::before { content: "\1F5D1\FE0F  " / ""; }
.ifco-flux .ifco-flux-menu-liste .ifco-flux-action-supprimer-locale { border-left-color: var(--if-signal); }
.ifco-flux-mise-en-ligne-etat:not(:empty) { border-left: 5px solid var(--if-flux); padding-left: .5em; }
/* Catalogue (US-62, ECR-15) */
.ifco-flux-catalogue-liste { list-style: none; margin: .5em 0; padding: 0; }
.ifco-flux-catalogue-liste > li { padding: .5em 0; border-top: 2px dashed var(--if-filet); }
.ifco-flux-catalogue-liste h3 { margin: 0 0 .3em; }
.ifco-flux-catalogue-liste ul { margin: 0; padding-left: 1.2em; }
.ifco-flux-article { color: var(--if-encre); font-weight: 600; }
.ifco-flux-ici-article { color: #4A5072; }
/* 2.0.2 (RG-100, US-74) : inviter par e-mail, adresses en étiquettes, confirmations de copie à côté des boutons */
.ifco-flux-titre-invitation { margin: 0 0 .2em; font-size: 1.05em; }
.ifco-flux-etiquettes-zone { display: flex; flex-wrap: wrap; align-items: center; gap: .3em; padding: .25em; border: 2px solid var(--if-encre);
	border-radius: var(--if-main-x); background: var(--if-papier); cursor: text; }
.ifco-flux-etiquettes { display: contents; list-style: none; margin: 0; padding: 0; }
.ifco-flux-partage .ifco-flux-etiquette { display: inline-flex; align-items: center; gap: .1em; margin: 0; padding: .1em .1em .1em .6em;
	border-radius: 999px; background: #e0e7ff; color: #1e1b4b; line-height: 1.4; max-width: 100%; list-style: none; }
.ifco-flux-etiquette-texte { overflow-wrap: anywhere; }
.ifco-flux-partage button.ifco-flux-retirer-etiquette { padding: 0 .45em; min-height: 0; border: 0; background: transparent; color: inherit;
	font-size: 1.1em; line-height: 1.2; }
.ifco-flux-partage .ifco-flux-etiquettes-zone .ifco-flux-adresses { flex: 1 1 10em; min-width: 8em; border: 0; padding: .3em; }
.ifco-flux-envoyer-avec, .ifco-flux-copier-zone, .ifco-flux-texte-email { display: flex; flex-wrap: wrap; align-items: center; gap: .4em; margin: .4em 0 0; }
.ifco-flux-envoyer-avec-titre { font-weight: 600; }
.ifco-flux-envoyer::before { content: none; }
.ifco-flux-partage .ifco-flux-copie { color: #166534; font-weight: 600; margin: 0 0 0 .5em; }
.ifco-flux-partage .ifco-flux-lien-bouton { background: none; border: 0; padding: 0; min-height: 0; text-decoration: underline; color: inherit;
	cursor: pointer; font: inherit; }
.ifco-flux-propositions-titre { margin: .2em 0; font-size: .9em; }
/* RG-101 (2.0.2) : T-09 en liste de quatre lignes, chacune avec son symbole */
.ifco-flux-fenetre .ifco-flux-visibilite, .ifco-flux-partage .ifco-flux-visibilite { list-style: none; margin: .6em 0; padding: 0; }
.ifco-flux-fenetre .ifco-flux-visibilite li, .ifco-flux-partage .ifco-flux-visibilite li { display: flex; gap: .5em; margin: 0 0 .3em; padding: 0; list-style: none; }
.ifco-flux-symbole { flex: 0 0 1.4em; text-align: center; }

/* Chantiers et objectifs (version 2.2.0 ; US-79 à US-84 ; CONCEPTION §21.4 à §21.6). Fenêtres à tête, corps défilable et
   pied ; bandeau vert pour noter, ambre pour revoir ; états écrits en texte, la couleur ne fait que doubler. */
.ifco-flux-visuellement-cache { position: absolute !important; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden;
	clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap; border: 0; }
.ifco-flux-suivi, .ifco-flux-creation { box-sizing: border-box; width: 44em; max-width: calc(100vw - 24px); max-height: calc(100vh - 24px); padding: 0; }
.ifco-flux-suivi[open], .ifco-flux-creation[open] { display: flex; flex-direction: column; }
.ifco-flux-f-tete { display: flex; align-items: center; gap: .6em; padding: .9em 1.2em .6em; border-bottom: 2px dashed var(--if-filet); }
.ifco-flux-f-tete h2 { flex: 1; margin: 0; font-size: 1.25em; font-weight: 800; overflow-wrap: anywhere; }
.ifco-flux .ifco-flux-f-fermer { width: 44px; min-height: 44px; padding: 0; border-color: transparent; background: transparent; font-size: 1.2em; }
.ifco-flux-f-corps { flex: 1 1 auto; overflow: auto; padding: 1em 1.2em; }
.ifco-flux-f-pied { display: flex; flex-wrap: wrap; gap: .5em; justify-content: space-between; align-items: center; padding: .8em 1.2em 1.1em;
	border-top: 2px dashed var(--if-filet); }
.ifco-flux-f-actions { display: flex; flex-wrap: wrap; gap: .5em; margin-left: auto; }
.ifco-flux .ifco-flux-principal { background: var(--if-encre); color: var(--if-papier); font-weight: 700; }
.ifco-flux .ifco-flux-principal:hover:not(:disabled) { background: #262C55; }
.ifco-flux-suivi label, .ifco-flux-creation label { display: block; margin: .9em 0 .3em; font-weight: 700; }
.ifco-flux-suivi input[type=text], .ifco-flux-suivi input[type=number], .ifco-flux-suivi input[type=date], .ifco-flux-suivi select,
.ifco-flux-creation input[type=text], .ifco-flux-creation input[type=number], .ifco-flux-creation input[type=date], .ifco-flux-creation select {
	box-sizing: border-box; width: 100%; min-height: 44px; padding: .4em .6em; font: inherit; color: var(--if-encre);
	border: 2px solid var(--if-encre); border-radius: var(--if-main-b); background: #fff; }
.ifco-flux-mode { display: flex; gap: .6em; align-items: flex-start; margin: 0 0 .8em; padding: .5em .7em; border-radius: var(--if-main-b); font-size: .92em; }
.ifco-flux-mode.noter { background: var(--if-vert-pale); border-left: 5px solid var(--if-croissance); }
.ifco-flux-mode.revoir { background: var(--if-ambre-pale); border-left: 5px solid var(--if-ambre); }
.ifco-flux-mode button { min-height: 0; padding: 0 .2em; border: 0; background: transparent; text-decoration: underline; text-underline-offset: 3px; }
.ifco-flux-obj-titre { margin: 0 0 .2em; font-size: 1.15em; font-weight: 800; overflow-wrap: anywhere; }
.ifco-flux-kr { margin-top: .7em; padding: .7em .8em; background: #fff; border: 2px solid var(--if-filet); border-radius: var(--if-main-b); }
.ifco-flux-kr-tete, .ifco-flux-kr-pied { display: flex; justify-content: space-between; gap: .6em; }
.ifco-flux-kr-tete { font-weight: 700; }
.ifco-flux-kr-pied { font-size: .88em; color: #4A5072; }
.ifco-flux-jauge { display: block; height: 14px; margin: .45em 0 .2em; overflow: hidden; background: var(--if-reserve); border: 2px solid var(--if-encre); border-radius: 7px; }
.ifco-flux-jauge > span { display: block; height: 100%; background: var(--if-croissance); }
.ifco-flux-mini-kr { display: grid; grid-template-columns: 1fr 6em 3.5em; gap: .6em; align-items: center; margin-top: .35em; font-size: .88em; }
.ifco-flux-mini-kr .ifco-flux-jauge { height: 10px; margin: 0; }
.ifco-flux-mini-kr .ind { min-width: 0; overflow-wrap: anywhere; }
.ifco-flux-point { display: grid; grid-template-columns: 8em 1fr; gap: .5em; align-items: end; margin-top: .5em; }
.ifco-flux-point label { margin: 0 0 .2em; font-size: .85em; }
.ifco-flux-historique { margin: .5em 0 0; padding-left: 1.1em; font-size: .88em; color: #4A5072; }
.ifco-flux-historique li { margin-top: .25em; }
.ifco-flux-historique .ifco-flux-conteste .ligne { text-decoration: line-through; }
.ifco-flux-contestation { display: block; color: var(--if-encre); }
.ifco-flux-historique button { min-height: 32px; padding: 0 .5em; margin-left: .3em; font-size: .9em; }
.ifco-flux-f-contester { display: flex; flex-wrap: wrap; gap: .4em; align-items: end; margin-top: .3em; }
.ifco-flux-chaine-titre { margin: .9em 0 0; font-size: .82em; font-weight: 700; color: #4A5072; }
.ifco-flux-chaine { display: flex; flex-wrap: wrap; align-items: center; gap: .25em .3em; margin: .55em 0 .1em; padding: 0; list-style: none; font-size: .85em; }
.ifco-flux-chaine li { display: flex; align-items: center; gap: .3em; }
.ifco-flux-chaine li + li::before { content: "\2192" / ""; color: #4A5072; font-weight: 800; margin-right: .1em; }
.ifco-flux .ifco-flux-maillon { display: inline-flex; align-items: center; gap: .25em; min-height: 32px; padding: .1em .6em; border-radius: 999px;
	border: 2px solid var(--if-filet); background: #fff; color: var(--if-encre); font-weight: 700; white-space: nowrap; font-size: 1em; }
.ifco-flux-maillon.fini { background: var(--if-vert-pale); border-color: var(--if-croissance); }
.ifco-flux-maillon.encours { background: var(--if-bleu-pale); border-color: var(--if-flux); }
.ifco-flux-maillon.avenir { background: var(--if-papier); border-style: dashed; border-color: var(--if-encre); }
.ifco-flux-maillon.retard { background: var(--if-corail-pale); border-color: var(--if-signal); }
.ifco-flux-maillon.ici { border-color: var(--if-encre); box-shadow: 2px 2px 0 rgba(13, 18, 51, .25); }
.ifco-flux-maillon .ifco-flux-ici { padding: 0 .4em; border-radius: 999px; background: var(--if-ambre); font-size: .75em; font-weight: 800; color: var(--if-encre); }
.ifco-flux-attente-chantier { margin: .45em 0 0; padding: .3em .6em; font-size: .85em; border-left: 5px solid var(--if-signal); background: var(--if-corail-pale); border-radius: 4px; }
.ifco-flux-rattache { margin-top: .3em; }
.ifco-flux-sous-titre { margin: 1em 0 .2em; font-weight: 800; }
.ifco-flux-case { display: flex !important; gap: .5em; align-items: center; font-weight: 600 !important; }
.ifco-flux-case input { width: 20px; height: 20px; accent-color: var(--if-encre); }
.ifco-flux-deux { display: grid; grid-template-columns: 1fr 1fr; gap: .8em; }
/* Création (US-79) */
.ifco-flux-etapes { display: flex; gap: .3em; margin: 0 0 .8em; padding: 0; list-style: none; font-size: .85em; }
.ifco-flux-etapes li { flex: 1; padding: .35em .5em; border-bottom: 4px solid var(--if-reserve); color: #4A5072; }
.ifco-flux-etapes li[aria-current=step] { border-color: var(--if-ambre); color: var(--if-encre); font-weight: 800; }
.ifco-flux-etapes li.fait { border-color: var(--if-croissance); }
.ifco-flux-question { margin: .2em 0 .1em; font-size: 1.15em; font-weight: 800; }
.ifco-flux-creation .ifco-flux-aide { margin: 0 0 .6em; }
.ifco-flux-choix { display: grid; gap: .5em; margin-top: .5em; }
.ifco-flux .ifco-flux-choix label { display: flex; gap: .6em; align-items: flex-start; margin: 0; padding: .6em .8em; font-weight: 600; cursor: pointer;
	background: #fff; border: 2px solid var(--if-filet); border-radius: var(--if-main-b); }
.ifco-flux-choix input { margin-top: .35em; accent-color: var(--if-encre); }
.ifco-flux .ifco-flux-choix label:has(input:checked) { border-color: var(--if-encre); background: var(--if-ambre-pale); }
.ifco-flux-choix small { display: block; font-weight: 400; color: #4A5072; }
.ifco-flux-conseils { min-height: 1.5em; margin: .5em 0 0; padding: 0; list-style: none; font-size: .92em; }
.ifco-flux-conseils li { margin-top: .3em; padding: .25em .6em; border-left: 5px solid var(--if-croissance); background: var(--if-vert-pale); }
.ifco-flux-conseils li.attention { border-color: var(--if-signal); background: var(--if-corail-pale); }
.ifco-flux-exemples { display: flex; flex-wrap: wrap; gap: .4em; margin-top: .6em; }
.ifco-flux .ifco-flux-exemples button { min-height: 36px; padding: .1em .7em; font-size: .9em; text-align: left; border-color: var(--if-filet); background: #fff; }
.ifco-flux-okr { margin-top: 1em; padding: .6em .8em; font-size: .92em; background: var(--if-bleu-pale); border-radius: var(--if-main-b); }
.ifco-flux-okr summary { cursor: pointer; font-weight: 700; }
.ifco-flux-c-kr, .ifco-flux-r-kr { margin-top: .7em; padding: .2em .8em .8em; background: #fff; border: 2px solid var(--if-filet); border-radius: var(--if-main-b); }
.ifco-flux-c-kr, .ifco-flux-r-kr { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); column-gap: .5em; align-items: end; }
.ifco-flux-c-kr > *, .ifco-flux-r-kr > * { grid-column: 1 / -1; }
.ifco-flux-c-kr > div:not(:first-child), .ifco-flux-r-kr > div:not(:first-child) { grid-column: auto; }
.ifco-flux-c-kr label, .ifco-flux-r-kr label { font-size: .9em; }
.ifco-flux .ifco-flux-c-kr .retirer, .ifco-flux .ifco-flux-r-kr .retirer { justify-self: start; }
.ifco-flux .ifco-flux-c-ajouter, .ifco-flux .ifco-flux-r-ajouter { display: inline-block; margin-top: .6em; }
.ifco-flux-apercu { margin: .7em 0 0; padding: .4em .6em; font-weight: 700; background: var(--if-reserve); border-radius: var(--if-main-b); }
.ifco-flux-apercu:empty { display: none; }
/* Vue d'ensemble (US-83, US-84) */
.ifco-flux-ensemble { width: 52em; }
.ifco-flux-onglets { display: flex; flex-wrap: wrap; gap: .3em; margin: .8em 0; border-bottom: 2px solid var(--if-filet); }
.ifco-flux .ifco-flux-onglets [role=tab] { border: 0; border-bottom: 4px solid transparent; border-radius: 0; background: transparent; font-weight: 700; }
.ifco-flux .ifco-flux-onglets [role=tab][aria-selected=true] { border-bottom-color: var(--if-ambre); }
.ifco-flux-groupe-objectif, .ifco-flux-groupe-sans { margin-bottom: 1.1em; padding: .8em .9em; background: #fff; border: 2px solid var(--if-encre); border-radius: var(--if-main); }
.ifco-flux-groupe-sans { border-style: dashed; border-color: var(--if-filet); background: transparent; }
.ifco-flux-groupe-objectif { content-visibility: auto; contain-intrinsic-size: auto 9em; } /* NF-24 : seuls les groupes visibles sont mis en page */
.ifco-flux-panneau .ifco-flux-groupe-objectif h3, .ifco-flux-panneau .ifco-flux-groupe-sans h3 { margin: 0; font-size: 1.05em; font-weight: 800; overflow-wrap: anywhere; }
.ifco-flux-partage-par, .ifco-flux-relancer { margin: .2em 0 0; font-size: .88em; color: #4A5072; }
.ifco-flux-chantiers { display: grid; gap: .45em; margin: .7em 0 0; padding: 0; list-style: none; }
.ifco-flux-chantiers li { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .4em .6em; padding: .45em .6em;
	background: var(--if-papier); border: 2px solid var(--if-reserve); border-radius: var(--if-main-b); }
.ifco-flux-ch-texte { flex: 1 1 14em; min-width: 0; }
.ifco-flux-ch-nom { display: block; font-weight: 700; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ifco-flux-ch-meta { font-size: .85em; color: #4A5072; overflow-wrap: anywhere; }
.ifco-flux-ch-actions { display: flex; gap: .4em; }
.ifco-flux .ifco-flux-ch-actions button { min-height: 36px; padding: .1em .8em; }
.ifco-flux-etiq { display: inline-block; margin-right: .3em; padding: 0 .5em; border-radius: 999px; font-size: .92em; font-weight: 700; color: var(--if-encre); }
.ifco-flux-etiq.fini { background: var(--if-vert-pale); }
.ifco-flux-etiq.encours { background: var(--if-bleu-pale); }
.ifco-flux-etiq.avenir { background: var(--if-ambre-pale); }
.ifco-flux-etiq.retard { background: var(--if-corail-pale); }
.ifco-flux-etiq.ifco-flux-marque-partage { background: var(--if-bleu-pale); }
.ifco-flux-frise { max-width: 100%; overflow-x: auto; overscroll-behavior-x: contain; padding: .6em; background: #fff; border: 2px solid var(--if-encre); border-radius: var(--if-main); }
.ifco-flux-frise svg { display: block; max-width: none; font-family: inherit; text-rendering: optimizeSpeed; }
.ifco-flux-legende { display: flex; flex-wrap: wrap; align-items: center; gap: .3em; margin: .5em 0 0; font-size: .85em; color: #4A5072; }
.ifco-flux-legende .ifco-flux-pastille { width: 12px; min-width: 0; height: 12px; margin: 0; padding: 0; border-radius: 3px; background: var(--c); }
.ifco-flux-legende .ifco-flux-pastille:last-of-type { margin-right: .4em; }
@media (max-width: 600px) {
	.ifco-flux-suivi, .ifco-flux-creation, .ifco-flux-ensemble { width: 100vw; max-width: 100vw; height: 100vh; height: 100dvh; max-height: 100vh; max-height: 100dvh; border-radius: 0; }
	.ifco-flux-deux, .ifco-flux-point { grid-template-columns: 1fr; }
	.ifco-flux-c-kr, .ifco-flux-r-kr { grid-template-columns: 1fr 1fr; }
	.ifco-flux-c-kr > div:last-of-type, .ifco-flux-r-kr > div:last-of-type { grid-column: 1 / -1; }
	.ifco-flux-mini-kr { grid-template-columns: 1fr 5em 3em; }
	.ifco-flux-etapes li { padding: .3em .2em; }
}
@media (prefers-reduced-motion: reduce) { .ifco-flux-anneau, .ifco-flux-jauge > span { transition: none; } }
.ifco-flux .ifco-flux-barre .ifco-flux-partager::before, .ifco-flux-maillon .ifco-flux-ici::before, .ifco-flux-ch-meta .ifco-flux-ici::before { content: none; }
.ifco-flux-panneau-calendrier > .ifco-flux-visuellement-cache { content-visibility: auto; contain-intrinsic-size: 1px 1px; } /* NF-24 */
.ifco-flux-panneau-calendrier > .ifco-flux-visuellement-cache:focus-within { position: static !important; width: auto; height: auto; margin: 1em 0 0; overflow: visible; clip: auto; clip-path: none; white-space: normal; content-visibility: visible; } /* 2.2.1 : liste du calendrier visible au clavier */
.ifco-flux-proposition .ifco-flux-p-krs { margin: .4em 0 .8em; padding-left: 1.2em; } .ifco-flux-proposition select { display: block; width: 100%; min-height: 44px; margin: .3em 0; font: inherit; } /* 2.2.1, US-85 */
/* 2.3.0 (RG-121) : pictogramme d'une application, tuile au trait sur fond clair */
.ifco-flux-picto { display: inline-flex; align-items: center; justify-content: center; flex: 0 0 auto; box-sizing: border-box;
	width: var(--if-picto-taille, 28px); height: var(--if-picto-taille, 28px); vertical-align: middle; background: var(--if-picto-fond, var(--if-reserve));
	border: 2px solid var(--if-encre); border-radius: 9px 7px 10px 6px; color: var(--if-encre); font-weight: 800; line-height: 1; }
.ifco-flux-picto svg { width: 62%; height: 62%; fill: none; stroke: var(--if-encre); stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
/* DEC-374 : dans la barre, la tuile remplace la cible 🎯 ; ronde, dans l'anneau d'avancement (masque de 17 px) */
.ifco-flux-cible-icone .ifco-flux-picto { position: relative; border-radius: 50%; }
.ifco-flux-ch-app { display: block; font-size: .78em; color: #4A5072; }
.ifco-flux-catalogue-app h3 { display: flex; align-items: center; gap: .3em; }
.ifco-flux-tete .ifco-flux-picto { margin-top: .15em; }
.ifco-flux-tete .ifco-flux-picto + h2 { flex: 1 1 auto; }
.ifco-flux-picto-initiale::before { content: attr(data-initiale); font-size: calc(var(--if-picto-taille, 28px) * .5); }
/* 2.3.0 (RG-122) : « Partager » sur le squelette commun */
.ifco-flux-etat-partage p { margin: .15em 0 0; }
.ifco-flux-etat-partage:not(:has(p:not([hidden]))) { display: none; }
.ifco-flux-actions-lien { margin: .3em 0 0; }
.ifco-flux .ifco-flux-montrer-qr { margin: .6em 0 0; }
/* 2.3.0 (RG-123) : espaces, arbre à gauche des onglets dans « Mes chantiers et objectifs » */
.ifco-flux-ensemble:has(.ifco-flux-ens-corps) { width: 64em; }
.ifco-flux-ens-corps { display: grid; grid-template-columns: minmax(13em, 17em) minmax(0, 1fr); gap: 1.2em; align-items: start; }
.ifco-flux-espaces-nav { position: sticky; top: 0; padding: .6em; background: var(--if-papier); border: 2px solid var(--if-reserve); border-radius: var(--if-main-b); }
.ifco-flux-espaces-tete { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .4em; }
.ifco-flux-espaces-tete h3 { margin: 0; font-size: 1em; font-weight: 800; }
.ifco-flux .ifco-flux-nouvel-espace { min-height: 36px; padding: .1em .7em; }
.ifco-flux-arbre, .ifco-flux-arbre ul { margin: .5em 0 0; padding: 0; list-style: none; }
.ifco-flux-arbre ul { margin: 0 0 0 .9em; padding-left: .5em; border-left: 2px solid var(--if-filet); }
.ifco-flux-arbre [role=treeitem] { margin: 1px 0; border-radius: 8px; cursor: pointer; }
.ifco-flux-arbre [role=treeitem]:focus { outline: none; }
.ifco-flux-arbre [role=treeitem]:focus > .ifco-flux-noeud { outline: 3px solid var(--if-flux); outline-offset: -1px; }
.ifco-flux-noeud { display: flex; align-items: center; gap: .4em; min-height: 36px; padding: .15em .4em; border-radius: 8px; }
.ifco-flux-noeud:hover { background: var(--if-reserve); }
.ifco-flux-arbre [aria-selected=true] > .ifco-flux-noeud { background: var(--if-encre); color: #fff; }
.ifco-flux-arbre [aria-selected=true] > .ifco-flux-noeud .ifco-flux-noeud-marque { background: #fff; color: var(--if-encre); }
.ifco-flux-noeud-nom { flex: 1 1 auto; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-weight: 700; }
.ifco-flux-noeud-marque { flex: 0 0 auto; padding: 0 .45em; border-radius: 999px; background: var(--if-reserve); font-size: .82em; font-weight: 700; color: var(--if-encre); }
.ifco-flux-deplier { flex: 0 0 1em; text-align: center; }
.ifco-flux-carre-espace { display: inline-block; flex: 0 0 auto; width: 14px; height: 14px; border-radius: 4px; background: var(--c); border: 1px solid var(--if-encre); }
.ifco-flux-ens-droite, .ifco-flux-espaces-nav { min-width: 0; }
.ifco-flux-espace-tete { margin-bottom: .4em; }
.ifco-flux-fil { margin: 0 0 .2em; font-size: .88em; color: #4A5072; overflow-wrap: anywhere; }
.ifco-flux-espace-titre { display: flex; align-items: center; gap: .5em; }
.ifco-flux-espace-titre .ifco-flux-carre-espace { width: 18px; height: 18px; }
.ifco-flux-espace-titre h3 { margin: 0; font-size: 1.25em; font-weight: 800; overflow-wrap: anywhere; }
.ifco-flux-espace-actions { display: flex; flex-wrap: wrap; gap: .4em; margin: .5em 0 0; }
.ifco-flux-espace-liste h4 { margin: 1em 0 0; font-size: 1em; font-weight: 800; }
.ifco-flux-masque-espace { display: none !important; }
.ifco-flux-ch-app { display: block; font-size: .82em; font-weight: 700; color: #4A5072; }
.ifco-flux-e-couleurs, .ifco-flux-e-espaces { margin: .8em 0; padding: .5em .7em; border: 2px solid var(--if-reserve); border-radius: var(--if-main-b); }
.ifco-flux-e-couleurs { display: flex; flex-wrap: wrap; gap: .3em 1em; }
.ifco-flux-e-couleur, .ifco-flux-e-espace { display: flex; align-items: center; gap: .45em; min-height: 36px; }
.ifco-flux-e-espace { flex-wrap: wrap; }
.ifco-flux-e-espace.refuse { color: #4A5072; }
.ifco-flux-e-raison { flex: 1 0 100%; margin: 0 0 .2em 1.8em; font-size: .86em; }
.ifco-flux-e-parent, .ifco-flux-e-nom { display: block; width: 100%; min-height: 44px; margin: .3em 0 .6em; font: inherit; box-sizing: border-box; }
@media (max-width: 600px) {
	.ifco-flux-ens-corps { grid-template-columns: minmax(0, 1fr); gap: .6em; }
	.ifco-flux-espaces-nav { position: static; max-height: 40vh; overflow: auto; }
}
/* 2.3.0 (RG-124) : objectif d'un espace, alignement, vue d'ensemble des objectifs */
.ifco-flux-objectif-espace { margin: .8em 0 .2em; padding: .7em .9em; background: #fff; border: 2px solid var(--if-encre); border-radius: var(--if-main); }
.ifco-flux-o-tete { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: .3em .8em; }
.ifco-flux-o-tete h4 { margin: 0; font-size: .95em; font-weight: 800; }
.ifco-flux-o-titre { margin: .35em 0; font-weight: 800; overflow-wrap: anywhere; }
.ifco-flux-objectif-espace .ifco-flux-mini-kr, .ifco-flux-ct-kr > .ifco-flux-mini-kr, .ifco-flux-kr-saisie .ifco-flux-mini-kr { display: grid; grid-template-columns: minmax(0, 1fr) 7em auto; align-items: center; gap: .6em; margin: .25em 0; }
.ifco-flux-aligne { display: flex; flex-wrap: wrap; align-items: center; gap: .4em; margin: .5em 0 0; }
.ifco-flux-etiq.ifco-flux-aligne-sur { background: var(--if-vert-pale); }
.ifco-flux-aligne-cible { font-weight: 700; overflow-wrap: anywhere; }
.ifco-flux-kr-saisie { margin: .6em 0; padding: .5em .7em; border: 2px solid var(--if-reserve); border-radius: var(--if-main-b); }
.ifco-flux-kr-saisie input { display: block; width: 100%; min-height: 44px; margin: .2em 0 .5em; box-sizing: border-box; font: inherit; }
.ifco-flux-objectif-espace-f .ifco-flux-r-kr, .ifco-flux-objectif-espace-f .ifco-flux-r-kr input { box-sizing: border-box; }
.ifco-flux-vue-objectifs-f { width: 56em; }
.ifco-flux-legende-contrib { display: flex; flex-wrap: wrap; align-items: center; gap: .4em; font-size: .88em; color: #4A5072; }
.ifco-flux-trait-plein, .ifco-flux-trait-tirets { display: inline-block; width: 26px; border-top: 3px solid var(--if-encre); }
.ifco-flux-trait-tirets { border-top-style: dashed; margin-left: .8em; }
.ifco-flux-contrib, .ifco-flux-contrib ul { margin: .3em 0 0; padding: 0; list-style: none; }
.ifco-flux-contrib .ifco-flux-contrib, .ifco-flux-ct-chantiers { margin-left: 1.1em; padding-left: .8em; border-left: 3px solid var(--if-encre); }
.ifco-flux-ct-espace, .ifco-flux-ct-objectif { margin: .4em 0; padding: .45em .6em; background: var(--if-papier); border: 2px solid var(--if-reserve); border-radius: var(--if-main-b); }
.ifco-flux-ct-tete { display: flex; flex-wrap: wrap; align-items: center; gap: .4em; margin: 0; font-weight: 700; overflow-wrap: anywhere; }
.ifco-flux-ct-kr { margin: .35em 0; }
.ifco-flux-ct-rien { margin: .2em 0 .4em 1.1em; padding: .3em .6em; border-left: 3px dashed var(--if-signal); font-size: .9em; }
.ifco-flux-ct-chantiers li { display: flex; flex-wrap: wrap; align-items: center; gap: .4em; margin: .3em 0; }
.ifco-flux-ct-titre { margin: 1.2em 0 .2em; font-size: 1em; font-weight: 800; }
.ifco-flux-non-alignes .ifco-flux-ct-espace, .ifco-flux-non-alignes .ifco-flux-ct-objectif { border-style: dashed; }
@media (max-width: 600px) { .ifco-flux-vue-objectifs-f { width: 100vw; max-width: 100vw; } .ifco-flux-objectif-espace .ifco-flux-mini-kr { grid-template-columns: 1fr 5em; } }
/* 2.3.0 (RG-125, RG-126) : « Partager » d'un espace, origine d'un accès */
.ifco-flux-partage-espace-f .ifco-flux-pe-inviter { display: grid; gap: .3em; margin: .4em 0 1em; }
.ifco-flux-partage-espace-f .ifco-flux-pe-inviter input, .ifco-flux-partage-espace-f .ifco-flux-pe-inviter select { min-height: 44px; font: inherit; box-sizing: border-box; width: 100%; }
.ifco-flux-pe-demande { display: flex; flex-wrap: wrap; align-items: center; gap: .4em; padding: .4em .6em; background: var(--if-ambre-pale); border-radius: var(--if-main-b); }
.ifco-flux-pe-membres .ifco-flux-personne { display: flex; flex-wrap: wrap; align-items: center; gap: .4em .8em; }
.ifco-flux-invitee .ifco-flux-pseudo { font-style: italic; }
.ifco-flux-lien-espace { display: block; margin: .2em 0 .4em; overflow-wrap: anywhere; }
.ifco-flux-origine { flex: 1 0 100%; font-size: .86em; color: #4A5072; }
.ifco-flux-invitations-recues { margin: .5em 0; padding: .5em .6em; background: var(--if-ambre-pale); border-radius: var(--if-main-b); }
.ifco-flux-invitations-recues h4 { margin: 0 0 .3em; font-size: .95em; font-weight: 800; }
.ifco-flux-invitation-recue { display: flex; flex-wrap: wrap; align-items: center; gap: .4em; margin: .3em 0; overflow-wrap: anywhere; }
