/* ==========================================================================================================
   Reproductions d'écran des logiciels ChronoFEED (HTML + CSS, pas de captures).
   Toutes les classes commencent par « e- ». Gabarits commentés et montrés : aide/commun/gabarits-ecrans.html.

   Sources (à relire quand l'interface change) :
   - couleurs et styles communs : src/ChronoFeed.Commun.Wpf/Styles.xaml (Fond, Bleu, BleuVolet, Bordure, Onglet,
     Commande, Barre) et Historique/StylesHistorique.xaml (H.Fond, H.Carte, H.Champ, H.Bouton, H.BoutonPrincipal,
     H.BoutonDanger, H.BoutonIcone, H.Grille, H.EnTete, H.Onglet, H.Pastille) ;
   - EVENT : src/ChronoFeed.Event/MainWindow.xaml (en-tête, menus, barre d'état), Views/Espace/EspaceEvenementView.xaml
     (bandeau, onglets), OngletInscriptions.xaml, OngletEpreuves.xaml (fiche, SchemaPiste.cs), OngletCourses.xaml
     (cartes C.Coureur, C.Course, C.Depart, C.Puce), ClassementGeneralEvenementView.xaml (tuiles Cge.Case, tuile
     « Résultat ») ; couleurs des technologies : src/ChronoFeed.Evenements/Tours/CharteTechnologies.cs.
   Le logiciel est en police Segoe UI 12 px : la reproduction garde ces mesures (px) et défile sur un petit écran.
   Elle reste claire en mode sombre : c'est l'image du logiciel, posée sur la page.
   ========================================================================================================== */

/* ---------- Le cadre d'une reproduction dans la page ---------- */
.ecran{position:relative;margin:1.4em 0 .6em;padding:14px;border-radius:12px;background:#DDE3EA;border:1px solid var(--ligne,#DCE3EC);
  overflow-x:auto;-webkit-print-color-adjust:exact;print-color-adjust:exact}
@media (prefers-color-scheme:dark){.ecran{background:#1A2B44;border-color:#26406A}}
.ecran.sans-cadre{padding:0;background:none;border:0}
.ecran > .e-zoom{width:max-content;max-width:var(--largeur-ecran,1100px)}
/* La fenêtre ne dépasse pas --largeur-ecran (style="--largeur-ecran:900px" sur .ecran) : ses barres passent à la ligne, une grille trop large est coupée comme dans le logiciel. */
/* .defile : garder la taille réelle et faire défiler (sinon ecrans.js réduit la reproduction trop large, jusqu'à 60 %) */
figure.figure-ecran{margin:1.4em 0 1.6em}
figure.figure-ecran .ecran{margin:0}

/* ---------- Jetons du logiciel (Styles.xaml, StylesHistorique.xaml) ---------- */
.e-fenetre,.e-piece{
  --e-fond:#F3F3F3; --e-bleu:#00A0E3; --e-bleu-volet:#C5DCE8; --e-bordure:#C8D2DA; --e-gris:#5A5A5A;
  --e-h-fond:#F4F6F8; --e-h-ligne:#E3E8ED; --e-h-texte:#1F2933; --e-h-doux:#6B7785; --e-h-accent:#00A0E3; --e-h-accent-clair:#E1F4FC;
  --e-danger:#C62828; --e-danger-clair:#FDECEC; --e-succes:#2E7D32; --e-alerte:#E08A00; --e-champ-bord:#CFD6DD;
  font-family:"Segoe UI",system-ui,-apple-system,Roboto,Arial,sans-serif;font-size:12px;line-height:1.35;color:var(--e-h-texte);
  text-align:left;-webkit-font-smoothing:antialiased}
.e-fenetre *,.e-piece *{box-sizing:border-box}
/* Dans une reproduction, des div et des span (pas de p, h2, ul : la page les met en forme) */
.ecran p{margin:0}
.e-fenetre .ic,.e-piece .ic{width:14px;height:14px;vertical-align:-3px}
/* Une pièce isolée (un bouton, une carte, une tuile) sans la fenêtre autour */
.e-piece{display:inline-block;background:var(--e-h-fond);padding:10px;border-radius:6px}

/* ---------- La fenêtre : barre de titre de Windows 11 ---------- */
.e-fenetre{display:flex;flex-direction:column;min-width:640px;background:var(--e-fond);border:1px solid #9AA7B4;border-radius:8px;overflow:hidden;
  box-shadow:0 10px 30px rgba(0,0,0,.25)}
.e-fenetre.e-dialogue{min-width:0;display:inline-flex;max-width:100%}
.e-titre{display:flex;align-items:center;height:30px;background:#FFFFFF;border-bottom:1px solid #E5E5E5;font-size:12px;color:#1F1F1F;flex:0 0 auto}
.e-titre .e-titre-icone{width:16px;height:16px;margin:0 8px 0 10px;border-radius:3px;background:linear-gradient(135deg,#0A1B3A,#19B6FF)}
.e-titre .e-titre-texte{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.e-titre .e-titre-bouton{width:46px;height:30px;display:flex;align-items:center;justify-content:center;color:#1F1F1F}
.e-titre .e-titre-bouton .ic{width:11px;height:11px}
.e-titre .e-titre-bouton.fermer:hover{background:#C42B1C;color:#fff}

/* ---------- En-tête de la fenêtre principale (MainWindow.xaml) ---------- */
.e-entete{display:flex;align-items:stretch;gap:0;padding:0 6px 0 10px;background:#FFFFFF;border-bottom:1px solid var(--e-bordure);min-height:38px;flex:0 0 auto}
.e-marque{align-self:center;margin-right:18px;font-size:15px;font-weight:700;font-style:italic;white-space:nowrap;letter-spacing:-.01em}
.e-marque b{color:#19B6FF;font-weight:700} .e-marque i{font-style:italic}
.e-marque .p-event{color:#B58CFF} .e-marque .p-finish{color:#FF9A1F} .e-marque .p-tableau{color:#FF6FB5} .e-marque .p-voice{color:#E0B000} .e-marque .p-sim{color:#14C987}
/* Les modules (style « Onglet » : souligné bleu quand il est choisi) */
.e-modules{display:flex}
.e-module{display:flex;align-items:center;gap:7px;padding:8px 12px 6px;border-bottom:3px solid transparent;color:var(--e-gris);font-weight:600;white-space:nowrap}
.e-module .ic{width:16px;height:16px}
.e-module.actif{border-bottom-color:var(--e-bleu);color:#000}
.e-module:hover{background:#EEF5FA}
/* Le champ « Rechercher » (ChampRecherche.xaml) */
.e-recherche{align-self:center;flex:1 1 auto;max-width:380px;min-width:180px;margin:0 14px;height:26px;display:flex;align-items:center;gap:6px;padding:0 8px;
  background:#F4F6F8;border:1px solid var(--e-bordure);border-radius:4px;color:var(--e-gris)}
.e-recherche .ic{width:12px;height:12px}
.e-recherche .e-invite{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.e-recherche .e-raccourci{font-size:10px}
.e-recherche.saisie{border-color:var(--e-bleu);background:#fff;color:var(--e-h-texte)}
/* Les commandes de droite (style « Commande » : Fichier ▾, Paramètres, ?) */
.e-commandes{display:flex;align-items:center;margin-left:auto}
.e-commande{display:flex;align-items:center;gap:6px;margin:0 2px;padding:5px 8px;border-radius:4px;white-space:nowrap}
.e-commande .ic-chevron-bas{width:8px;height:8px;margin-left:-1px}
.e-commande:hover,.e-commande.ouverte{background:#E5F1F8}
.e-commande.pressee{background:var(--e-bleu-volet)}

/* ---------- Menu déroulant (ContextMenu de WPF, thème Windows) ---------- */
.e-menu{display:inline-block;min-width:260px;padding:3px;background:#F0F0F0;border:1px solid #CCCCCC;box-shadow:2px 3px 8px rgba(0,0,0,.25);font-size:12px}
.e-menu-item{display:flex;align-items:center;gap:0;height:24px;padding:0 24px 0 0;white-space:nowrap;border:1px solid transparent}
.e-menu-item .e-menu-icone{width:30px;display:flex;justify-content:center}
.e-menu-item .e-menu-texte{flex:1}
.e-menu-item .e-menu-raccourci{margin-left:28px;color:#6D6D6D}
.e-menu-item.survol{background:#C0DDEB;border-color:#26A0DA}
.e-menu-item.inactif{color:#9A9A9A}
.e-menu-sep{height:1px;margin:3px 2px 3px 32px;background:#D7D7D7}
/* Un menu posé sous sa commande dans une reproduction : position absolue dans un parent en position relative */
.e-menu.flottant{position:absolute;z-index:4}

/* ---------- Zone centrale, barre d'état ---------- */
.e-centre{flex:1 1 auto;padding:4px;background:var(--e-fond);min-height:120px;display:flex;flex-direction:column}
.e-espace{flex:1;display:flex;flex-direction:column;background:var(--e-h-fond)}
.e-etat{display:flex;align-items:stretch;min-height:22px;border-top:1px solid var(--e-bordure);background:var(--e-fond);flex:0 0 auto}
.e-etat .e-message{flex:1;align-self:center;padding:3px 6px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.e-etat .e-licence{align-self:center;margin:0 12px;font-size:11px}
.e-etat .e-barre-bouton{display:flex;align-items:center;padding:1px 6px;border-left:1px solid var(--e-bordure);white-space:nowrap}

/* ---------- Bandeau de l'événement (EspaceEvenementView.xaml) ---------- */
.e-bandeau{display:flex;flex-wrap:wrap;align-items:center;gap:6px 12px;padding:6px 12px;background:#fff;border-bottom:1px solid var(--e-h-ligne)}
.e-bandeau .e-bandeau-titre{flex:1 1 260px;min-width:260px}
.e-bandeau .e-bandeau-titre strong{display:block;font-size:16px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.e-bandeau .e-bandeau-titre span{display:block;color:var(--e-h-doux);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.e-bandeau .e-actions{display:flex;align-items:center;flex-wrap:wrap;gap:4px 0}

/* ---------- Onglets (H.Onglet : texte, soulignement bleu de l'onglet courant) ---------- */
.e-onglets{display:flex;flex-wrap:wrap;background:var(--e-h-fond);border-bottom:1px solid var(--e-h-ligne)}
.e-onglet{display:flex;align-items:center;gap:8px;padding:10px 16px 7px;border-bottom:3px solid transparent;color:var(--e-h-doux);font-size:13px;white-space:nowrap}
.e-onglet.actif{border-bottom-color:var(--e-h-accent);color:var(--e-h-texte);font-weight:600}
/* Les sous-onglets d'un onglet (Composition, Performance…) : même style, plus serrés */
.e-onglets.sous .e-onglet{padding:7px 12px 5px;font-size:12px}
/* Les bandeaux de gauche de la fenêtre Paramètres (P.Onglet) */
.e-volets{display:flex;flex-direction:column;gap:2px;padding:8px;min-width:170px}
.e-volet{padding:7px 12px;border-radius:4px}
.e-volet.actif{background:var(--e-bleu-volet)}

/* ---------- Barre d'outils et contrôles (H.Bouton, H.Champ…) ---------- */
.e-barre{display:flex;align-items:center;flex-wrap:wrap;gap:4px 0;padding:6px 10px;background:#fff;border-bottom:1px solid var(--e-h-ligne)}
.e-barre .e-pousse{margin-left:auto}
.e-barre .e-etiquette{color:var(--e-h-doux);margin-right:6px;white-space:nowrap}
.e-sep-v{width:1px;align-self:stretch;margin:2px 6px;background:var(--e-h-ligne)}
.e-bouton{display:inline-flex;align-items:center;justify-content:center;gap:6px;margin:0 6px 0 0;padding:5px 12px;background:#fff;color:var(--e-h-texte);
  border:1px solid var(--e-champ-bord);border-radius:5px;white-space:nowrap;cursor:default;font:inherit}
.e-bouton.principal{background:var(--e-h-accent);border-color:var(--e-h-accent);color:#fff;font-weight:600}
.e-bouton.danger{color:var(--e-danger);border-color:var(--e-danger)}
.e-bouton.icone{padding:5px 8px;margin-right:4px}
.e-bouton.petit{padding:3px 8px;margin-right:4px}
.e-bouton.inactif{opacity:.4}
.e-bouton.survol{opacity:.85}
.e-bouton.classique{background:#FDFDFD;border-color:#D0D0D0;border-radius:4px;padding:4px 14px;min-width:75px}
.e-champ{display:inline-flex;align-items:center;min-height:28px;min-width:60px;padding:4px 8px;margin-right:6px;background:#fff;border:1px solid var(--e-champ-bord);border-radius:5px;
  white-space:nowrap;overflow:hidden}
.e-champ.vide{color:#9AA5B1}
.e-champ.focus{border-color:var(--e-h-accent)}
.e-champ.erreur{border-color:var(--e-danger)}
.e-champ.lecture{background:var(--e-h-fond)}
.e-champ.nombre{justify-content:flex-end;width:52px;min-width:0}
.e-liste{display:inline-flex;align-items:center;justify-content:space-between;gap:10px;min-width:140px;height:24px;padding:0 6px;margin-right:6px;background:#F0F0F0;
  border:1px solid #ACACAC;border-radius:2px;white-space:nowrap}
.e-liste::after{content:"";width:8px;height:8px;background:currentColor;
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M5 9l7 7 7-7' fill='none' stroke='%23000' stroke-width='2.5'/%3E%3C/svg%3E") center/contain no-repeat;
  mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M5 9l7 7 7-7' fill='none' stroke='%23000' stroke-width='2.5'/%3E%3C/svg%3E") center/contain no-repeat}
.e-case{display:inline-flex;align-items:center;gap:6px;margin-right:12px;white-space:nowrap}
.e-case::before{content:"";width:13px;height:13px;flex:0 0 auto;background:#fff;border:1px solid #333;border-radius:2px}
.e-case.cochee::before{border-color:#005FB8;background:#005FB8 no-repeat center/90%
  url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7.5' fill='none' stroke='%23fff' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E")}
/* Case à trois états, indéterminée (sélection mixte) : un carré plein au centre */
.e-case.indeterminee::before{border-color:#005FB8;background:linear-gradient(#005FB8,#005FB8) no-repeat center/7px 7px #fff}
.e-libelle{display:block;margin:8px 0 2px;font-size:11px;color:var(--e-h-doux)}
.e-titre-carte{margin:0 0 10px;font-size:16px;font-weight:600}
.e-sous-titre{font-size:15px;font-weight:600;margin:0 0 8px}

/* ---------- Cartes, pastilles, compteurs (H.Carte, H.Pastille) ---------- */
.e-carte{background:#fff;border:1px solid var(--e-h-ligne);border-radius:8px;padding:12px;margin:6px}
.e-pastilles{display:flex;flex-wrap:wrap;gap:0;padding:6px 10px 0}
.e-pastille{display:inline-block;margin:0 6px 4px 0;padding:1px 8px;border-radius:9px;background:var(--e-h-accent-clair);white-space:nowrap}
.e-pastille b{font-weight:600}
.e-pastille.succes{background:#E3F2E5;color:var(--e-succes)} .e-pastille.danger{background:var(--e-danger-clair);color:var(--e-danger)}
.e-doux{color:var(--e-h-doux)} .e-danger{color:var(--e-danger)} .e-succes{color:var(--e-succes)} .e-alerte{color:var(--e-alerte)}
.e-mono{font-family:Consolas,"Cascadia Mono",Menlo,monospace}

/* ---------- Grille (H.Grille, H.EnTete, H.Cellule) ---------- */
.e-grille{width:100%;border-collapse:collapse;background:#fff;font-size:12px}
.e-grille-carte{background:#fff;border:1px solid var(--e-h-ligne);border-radius:8px;margin:4px 10px;overflow:hidden}
.e-grille th{padding:6px 8px;background:#fff;color:var(--e-h-doux);font-size:11px;font-weight:600;text-align:left;border-bottom:2px solid var(--e-h-ligne);white-space:nowrap}
.e-grille td{height:30px;padding:0 8px;border-bottom:1px solid var(--e-h-ligne);white-space:nowrap}
.e-grille tbody tr:nth-child(even) td{background:#FAFBFC}
.e-grille tr.sel td{background:var(--e-h-accent-clair)!important}
.e-grille td.droite,.e-grille th.droite{text-align:right}
.e-grille td.centre,.e-grille th.centre{text-align:center}
.e-grille .e-case{margin:0}
.e-grille .e-case::before{margin:0}
.e-grille td .e-liste{height:22px;min-width:84px;background:transparent;border-color:transparent}
.e-grille td.double{color:var(--e-danger);font-weight:700}
.e-grille.classique th{background:#F6F6F6;color:#1F1F1F;font-weight:400;border:1px solid #E0E0E0}
.e-grille.classique td{height:22px;border:1px solid #F0F0F0}

/* ---------- Avatar (initiales sur les couleurs de la fiche, ou l'image) ---------- */
.e-avatar{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;width:44px;height:44px;border-radius:50%;overflow:hidden;
  background:var(--fond-avatar,#4C6EF5);color:var(--texte-avatar,#fff);font-weight:600;font-size:17px}
.e-avatar img{width:100%;height:100%;object-fit:cover;display:block}
.e-avatar.petit{width:26px;height:26px;font-size:10px}

/* ---------- Vue Composition de l'onglet Courses (OngletCourses.xaml) ---------- */
.e-composition{display:flex;align-items:flex-start;gap:7px;padding:8px;background:var(--e-h-fond);overflow-x:auto}
.e-colonne{flex:0 0 auto;width:275px;padding:5px;border-radius:6px;background:#E9EDF1;border:2px solid transparent}
.e-colonne.choisie{border-color:var(--e-h-accent)}
.e-colonne.coureurs{background:transparent;padding:0;width:290px}
.e-col-titre{margin:0 2px 4px}
.e-col-titre .e-col-nom{display:flex;align-items:center;justify-content:space-between;gap:6px;font-weight:600;font-size:13px}
.e-col-titre .e-col-nom .e-pastille{background:#fff;font-size:11px;font-weight:400;margin:0}
.e-col-titre .e-col-resume{font-size:11px;color:var(--e-h-doux)}
/* C.Badge et C.Petit */
.e-badge{display:inline-block;padding:0 6px;border-radius:8px;background:#F1F3F5;font-size:11px;white-space:nowrap}
.e-badge.accent{background:var(--e-h-accent-clair);font-weight:600}
.e-badge.danger{background:var(--e-danger-clair);color:var(--e-danger)}
.e-petit{font-size:11px;color:var(--e-h-doux)}
/* Carte de coureur (C.Coureur) */
.e-coureur{display:flex;gap:8px;margin:0 0 6px;padding:6px 8px;background:#fff;border:2px solid var(--e-h-ligne);border-radius:6px}
.e-coureur.place{opacity:.7}
.e-coureur.evidence{border-color:#F5A623;background:#FFF8E1;opacity:1}
.e-coureur .e-coureur-corps{flex:1;min-width:0}
.e-coureur .e-ligne{display:flex;align-items:baseline;gap:4px;min-width:0}
.e-coureur .e-rang{color:var(--e-h-doux)}
.e-coureur .e-nom{flex:1;min-width:0;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.e-coureur .e-seed{font-family:Consolas,Menlo,monospace;font-weight:600;margin-left:6px}
.e-coureur .e-regle{margin-left:auto;font-size:11px;color:var(--e-h-doux)}
.e-coureur .e-affiliation{display:flex;align-items:center;gap:4px;margin-top:2px;font-size:11px;color:var(--e-h-doux)}
.e-coureur .e-affiliation img{height:16px;max-width:40px}
.e-coureur .e-dans{margin-top:2px;font-size:11px;color:var(--e-h-accent)}
.e-groupe-formation{margin:0 0 6px;padding:3px 8px;border-radius:4px;background:#DCEAF5;font-weight:600}
/* Carte de course (C.Course) */
.e-course{min-width:200px;margin:0 0 8px;padding:6px 8px;background:#fff;border:1px solid var(--e-h-ligne);border-radius:6px}
.e-course.verrouillee,.e-course.figee{background:#F4F4F4}
.e-course.trop-pleine{border-color:var(--e-danger)}
.e-course-tete{display:flex;align-items:center;gap:6px}
.e-course-tete .e-course-nom{flex:1;min-width:0;font-weight:600;font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.e-course-tete .e-bouton.icone{padding:2px 5px;margin:0 0 0 2px}
.e-course-tete .e-bouton.icone.danger{border-color:var(--e-champ-bord)}
/* La puce d'état d'une course (C.Puce : couleurs de la liste des courses de FINISH) */
.e-puce-etat{width:12px;height:12px;flex:0 0 auto;border-radius:50%;background:#fff;border:1px solid #9E9E9E}
.e-puce-etat.chargee{background:#FFE066;border-color:#C99700}
.e-puce-etat.en-cours{background:#2E9E44;border-color:#1B6E2D}
.e-puce-etat.terminee{background:#1E88E5;border-color:#1565C0}
.e-puce-etat.courue{background:#B0BEC5;border-color:#78909C}
.e-jauge{display:flex;align-items:center;gap:6px;margin-top:3px}
.e-jauge .e-jauge-barre{flex:1;height:5px;background:#E9EDF1;overflow:hidden}
.e-jauge .e-jauge-barre i{display:block;height:100%;width:var(--rempli,50%);background:var(--e-h-accent)}
.e-jauge .e-jauge-texte{font-size:11px;font-weight:600;color:var(--e-h-doux)}
.e-jauge.pleine .e-jauge-barre i{background:var(--e-succes)} .e-jauge.pleine .e-jauge-texte{color:var(--e-succes)}
.e-jauge.trop .e-jauge-barre i{background:var(--e-danger)} .e-jauge.trop .e-jauge-texte{color:var(--e-danger)}
.e-course-infos{display:flex;flex-wrap:wrap;gap:0 8px;margin:2px 0 4px;font-size:11px;color:var(--e-h-doux)}
.e-course-infos .accent{color:var(--e-h-accent)} .e-course-infos .succes{color:var(--e-succes)}
.e-course-infos .alerte{color:var(--e-alerte)} .e-course-infos .danger{color:var(--e-danger)} .e-course-infos em{font-style:italic}
/* Un coureur dans la carte de course (C.Depart) : couleur de la position de départ, dossard, nom, club, résultat */
.e-depart{display:flex;align-items:flex-start;gap:0;margin:0 0 2px;padding:2px 4px;background:#FAFAFA;border:2px solid transparent;border-radius:3px}
.e-depart.evidence{background:#FFF3C4;border-color:#F5A623}
.e-depart.sel{border-color:var(--e-h-accent)}
.e-pos{min-width:26px;margin-right:8px;padding:0 3px;border:1px solid var(--e-h-ligne);border-radius:3px;background:var(--fond-pos,#fff);color:var(--texte-pos,#000);
  font-weight:700;text-align:center}
.e-depart .e-dossard{min-width:28px;color:var(--e-h-doux)}
.e-depart .e-qui{flex:1;min-width:0}
.e-depart .e-qui > span{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.e-depart .e-qui .e-petit.alerte{color:var(--e-alerte)}
.e-depart .e-resultat{margin-left:8px;text-align:right}
.e-depart .e-resultat b{display:block;font-weight:600}
.e-depart .e-resultat span{display:block;font-family:Consolas,Menlo,monospace;font-size:11px;color:var(--e-h-doux)}
.e-depart .ic-alerte{color:var(--e-alerte);margin:2px 0 0 4px}
/* Compacte (C.DepartCompact) : une pastille par coureur */
.e-departs-compacts{display:flex;flex-wrap:wrap;gap:3px 0}
.e-depart-compact{display:inline-flex;align-items:center;margin-right:3px;padding:1px;background:#FAFAFA;border:2px solid transparent;border-radius:3px}
.e-depart-compact .e-pos{min-width:20px;margin:0}
.e-depart-compact b{margin:0 2px 0 3px;font-weight:600}

/* ---------- Classement général de l'événement : ligne d'athlète et tuiles (ClassementGeneralEvenementView.xaml) ---------- */
.e-cg{background:#fff;border:1px solid var(--e-h-ligne);border-radius:8px;overflow:auto;margin:4px 10px}
.e-cg-entete{display:flex;border-bottom:2px solid var(--e-h-ligne);color:var(--e-h-doux);font-size:11px;font-weight:600}
.e-cg-entete > div{padding:6px 8px}
.e-cg-entete > div:first-child{width:400px;flex:0 0 auto}
.e-cg-ligne{display:flex;align-items:flex-start;border-bottom:1px solid var(--e-h-ligne);background:#fff}
.e-cg-ligne.sel{background:#CFE8FC}
.e-cg-ligne.officielle{background:#F1FAF2}
.e-cg-ligne.modifiee{background:#FFF8DC;border-top:1px solid #E0A800;border-bottom-color:#E0A800}
.e-cg-bloc{display:flex;align-items:flex-start;gap:7px;width:400px;flex:0 0 auto;padding:4px 6px 4px 4px}
.e-cg-rang{min-width:28px;height:22px;padding:0 4px;border-radius:11px;background:#ECEFF1;font-size:13px;font-weight:700;display:flex;align-items:center;justify-content:center}
.e-cg-rang.or{background:#FFE082} .e-cg-rang.argent{background:#CFD8DC} .e-cg-rang.bronze{background:#E6C3A1}
.e-cg-identite{flex:1;min-width:0}
.e-cg-identite .e-cg-nom{display:block;font-size:13px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.e-cg-identite .e-cg-qui{display:block;font-size:11px;color:var(--e-h-doux);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.e-cg-identite .e-cg-alertes{display:block;font-size:10px;font-weight:600;color:#C62828}
.e-cg-identite .e-cg-commentaire{display:block;font-size:11px;font-style:italic;color:#4A5561}
.e-cg-badges{display:flex;flex-wrap:wrap;gap:0 4px;margin-top:2px}
/* L'état de la ligne : Provisoire, Modifiée, Officielle, Manuelle, Temps officiel ; le code d'arbitrage (DNF, DQ…) */
.e-cg-etat{padding:0 5px;border-radius:3px;background:#ECEFF1;font-size:11px}
.e-cg-etat.provisoire{background:#FFE0B2;font-style:italic}
.e-cg-etat.modifiee{background:#FFD54F;font-weight:700}
.e-cg-etat.officielle{background:#2E7D32;color:#fff;font-weight:700}
.e-cg-etat.manuelle{background:#1565C0;color:#fff}
.e-cg-etat.temps-officiel{background:#C8E6C9}
.e-cg-code{padding:0 5px;border-radius:3px;background:#B71C1C;color:#fff;font-size:11px;font-weight:700}
/* La tuile « Résultat » */
.e-cg-resultat{width:132px;flex:0 0 auto;padding:1px 3px 2px;border:1px solid #546E7A;border-radius:3px;background:#fff}
.e-cg-resultat.modifiee{border:2px solid #E0A800}
.e-cg-resultat.lecture{border-color:#CFD8DC}
.e-cg-resultat .e-r-tete{display:flex;justify-content:space-between;height:15px;font-size:10px;color:var(--e-h-doux)}
.e-cg-resultat .e-r-tete b{font-weight:700}
.e-cg-resultat .e-r-temps{display:block;height:19px;font:700 14px Consolas,Menlo,monospace}
.e-cg-resultat .e-r-temps.provisoire{font-style:italic}
.e-cg-resultat .e-r-points{display:flex;gap:4px;height:15px;align-items:center;font-size:10px;color:var(--e-h-doux)}
.e-cg-resultat .e-r-points b{font-size:11px;color:var(--e-h-texte);font-weight:600}
.e-cg-tours{display:flex;gap:14px;padding:2px 8px 4px 4px}
.e-cg-course{display:flex;flex-direction:column}
.e-cg-course > .e-petit{height:16px;margin:0 2px;font-weight:600;white-space:nowrap}
.e-cg-cases{display:flex}
/* Une tuile de tour (Cge.Case) : une ligne par technologie présente, FIN (retenu par FINISH), OFF (officiel, vert vif) */
.e-tuile{width:104px;margin:2px 1px 2px 2px;padding:1px 3px;border-radius:3px;background:#fff;border:1px solid #90A4AE;align-self:flex-start}
.e-tuile .e-t-titre{display:flex;justify-content:space-between;height:16px;font-size:11px;font-weight:700}
.e-tuile .e-t-titre i{font-size:10px;font-weight:400;color:var(--e-h-doux)}
.e-tuile.avenir{background:#F5F5F5;border-color:#CFD8DC;opacity:.7}
.e-tuile.manquante{background:#FFEBEE;border:2px solid #C62828}
.e-tuile.ecart{border:3px solid #D50000}
.e-tuile.doute{border:2px solid #EF6C00}
/* 2.0.30 : rangée d'en-têtes des tours (au-dessus des tuiles), en-tête de ligne (devant chaque athlète), tuile choisie */
.e-cg-entetes{display:flex;align-items:flex-end;padding:2px 8px 0 4px}
.e-cg-entete-tour{width:104px;margin:0 1px 2px 2px;padding:2px 3px;border:1px solid #B0BEC5;border-radius:4px;background:#ECEFF1;font-size:11px;font-weight:700;text-align:center;color:var(--e-h-texte);box-sizing:border-box}
.e-cg-entete-tour.choisie{background:#1E88E5;border-color:#1565C0;color:#fff}
.e-cg-entete-ligne{width:14px;flex:0 0 auto;align-self:stretch;background:#ECEFF1;border-right:1px solid #CFD8DC;color:#90A4AE;font-weight:700;font-size:13px;text-align:center;padding-top:4px}
.e-cg-entete-ligne.choisie{background:#1E88E5;color:#fff}
.e-tuile.choisie{outline:2px solid #1E88E5;outline-offset:1px;background:#DCEBFA}
/* La fenêtre « Liste des courses » d'EVENT : une page blanche d'aperçu */
.e-page{background:#fff;border:1px solid #B0B7BF;box-shadow:0 1px 4px rgba(0,0,0,.18);margin:6px auto;padding:18px 22px;max-width:620px;color:#111;font-size:11px}
.e-page .e-page-sur{color:#666;font-size:11px}
.e-page .e-page-titre{font-size:16px;font-weight:600;margin-bottom:3px}
.e-page .e-page-info{font-size:10px;line-height:1.45;margin-bottom:6px}
.e-page .e-page-course{font-size:12px;font-weight:600;margin:8px 0 0}
.e-page .e-page-detail{font-size:10px;color:#666;margin-bottom:2px}
.e-page table{border-collapse:collapse;width:100%;font-size:10px}
.e-page th,.e-page td{border:1px solid #B0B0B0;padding:1px 4px;text-align:left}
.e-page th{background:#EEE;font-weight:600}
.e-page td.nombre{text-align:right}
.e-page .e-page-pied{font-size:9px;color:#666;margin-top:8px}
.e-mesure{display:flex;align-items:center;height:16px;background:var(--teinte,#fff)}
.e-mesure.absente{opacity:.45}
.e-mesure.attente{background:#FFF3C4}
.e-mesure .e-tech{width:30px;margin:1px 4px 1px 0;border-radius:2px;font-size:9px;font-weight:700;text-align:center;line-height:14px;flex:0 0 auto}
.e-mesure .e-m-temps{flex:1;font:11px Consolas,Menlo,monospace}
.e-mesure .e-m-marque{font-size:10px;font-weight:700;margin:0 2px}
.e-mesure .e-m-saisie{flex:1;font:11px Consolas,Menlo,monospace;border-bottom:1px solid #90A4AE;height:14px}
.e-mesure.attente .e-m-saisie{font-weight:700;border-bottom-color:#E0A800}
/* Couleurs des technologies (CharteTechnologies.cs) ; teinte = 18 % de la couleur sur blanc */
.e-tech.pc{background:#E69F00;color:#000} .e-mesure.pc{--teinte:#FBEDD1}
.e-tech.tr{background:#0072B2;color:#fff} .e-mesure.tr{--teinte:#D1E6F2}
.e-tech.pf{background:#CC79A7;color:#000} .e-mesure.pf{--teinte:#F7EBF2}
.e-tech.man{background:#8B5A2B;color:#fff} .e-mesure.man{--teinte:#EEE6DF}
.e-tech.fin{background:#37474F;color:#fff}
.e-tech.off{background:#00E64D;color:#000}
.e-off{display:flex;align-items:center;height:17px;margin-top:1px;border-radius:2px;background:#00E64D;color:#000}
.e-off .e-tech{width:34px;margin:0;background:none}
.e-off .e-m-temps{flex:1;font:700 11px Consolas,Menlo,monospace}
.e-off.absent{opacity:.3}
.e-t-alerte{display:block;height:14px;font-size:10px;font-weight:700;color:#B71C1C;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
/* La légende des technologies */
.e-legende-tech{display:flex;flex-wrap:wrap;gap:6px 14px;align-items:center}
.e-legende-tech > span{display:inline-flex;align-items:center;gap:6px}
.e-legende-tech .e-tech{display:inline-block;width:30px;border-radius:2px;font-size:9px;font-weight:700;text-align:center;line-height:14px}

/* ---------- Fiche d'une épreuve et schéma de l'anneau (OngletEpreuves.xaml, SchemaPiste.cs) ---------- */
.e-fiche{width:360px;background:#fff;border:1px solid var(--e-h-ligne);border-radius:8px;padding:12px;margin:6px}
.e-fiche .e-deux{display:grid;grid-template-columns:1fr 1fr;gap:0 8px}
.e-fiche .e-champ{display:flex;width:100%;margin:0}
.e-fiche .e-liste{display:flex;width:100%;margin:0}
.e-fiche .e-aide-champ{display:block;margin-top:2px;font-size:11px;color:var(--e-h-doux)}
.e-fiche .e-boutons{display:flex;margin-top:12px}
.e-anneau{display:block;width:100%;height:auto;margin-top:6px}
.e-anneau .piste{fill:none;stroke:var(--e-h-ligne);stroke-width:6}
.e-anneau .premier-tour{fill:none;stroke:var(--e-h-accent);stroke-width:6}
.e-anneau .zero{stroke:var(--e-h-doux);stroke-width:1;stroke-dasharray:4 3}
.e-anneau .arrivee{stroke:var(--e-danger);stroke-width:3}
.e-anneau .depart{stroke:var(--e-succes);stroke-width:3}
.e-anneau .fleche{fill:none;stroke:var(--e-h-doux);stroke-width:1.5}
.e-anneau text{font:11px "Segoe UI",system-ui,Arial,sans-serif;fill:var(--e-h-doux)}
.e-anneau text.arrivee{fill:var(--e-danger);stroke:none} .e-anneau text.depart{fill:var(--e-succes);stroke:none}
.e-legende-anneau{display:flex;flex-wrap:wrap;gap:2px 12px;margin-top:2px;font-size:11px;color:var(--e-h-doux)}
.e-legende-anneau span{display:inline-flex;align-items:center;gap:4px;white-space:nowrap}
.e-legende-anneau i{display:inline-block;width:12px;height:0;border-top:3px solid}
.e-legende-anneau i.zero{border-top:1px dashed var(--e-h-doux)} .e-legende-anneau i.arrivee{border-color:var(--e-danger)}
.e-legende-anneau i.depart{border-color:var(--e-succes)} .e-legende-anneau i.premier-tour{border-top-width:4px;border-color:var(--e-h-accent)}

/* ---------- Mise en page simple à l'intérieur d'une reproduction ---------- */
.e-ligne-flex{display:flex;align-items:flex-start;gap:0}
.e-colonne-flex{display:flex;flex-direction:column}
.e-remplir{flex:1;min-width:0}
.e-pied-onglet{display:flex;justify-content:space-between;padding:4px 10px;background:#fff;border-top:1px solid var(--e-h-ligne);color:var(--e-h-doux)}
.e-coupe{position:relative}
/* Une reproduction coupée en bas : fondu vers le fond (le reste n'est pas montré) */
.e-coupe::after{content:"";position:absolute;left:0;right:0;bottom:0;height:36px;background:linear-gradient(transparent,var(--coupe,#F4F6F8))}

/* ==========================================================================================================
   ChronoFEED-FINISH. Sources : src/ChronoFeed.Finish/MainWindow.xaml (en-tête, bandeau des commandes, barre d'état),
   App.xaml (Interrupteur), Views/GestionCoursesView.xaml (onglets, barre du bas), CourseView.xaml (écran d'une
   course : commandes, classement, tuiles), ListeCoursesView.xaml, ConfigurationView.xaml, CorridorsView.xaml,
   LappingView.xaml, DecodeurView.xaml, EquipementWindow.xaml, ConfigurationSessionWindow.xaml, Historique/*.xaml ;
   couleurs des tuiles : Reglages/CouleursTuiles.cs ; des positions de départ : Reglages/CouleursPosition.cs.
   ========================================================================================================== */

/* ---------- Interrupteur OFF / ON en pilule (style « Interrupteur » de App.xaml) ---------- */
.e-inter{display:inline-flex;align-items:center;gap:0;height:24px;padding:2px;border-radius:12px;background:#8B1A1A;color:#fff;font-weight:600;white-space:nowrap}
.e-inter::before{content:"";width:20px;height:20px;border-radius:50%;background:#fff;flex:0 0 auto}
.e-inter > span{padding:0 8px 0 4px}
.e-inter.on{background:#2E8B2E;flex-direction:row-reverse}
.e-inter.on > span{padding:0 4px 0 8px}

/* ---------- Bandeau des commandes du chronométrage (MainWindow.xaml : Décodeur, Pavé numérique, Passages, compétition) ---------- */
.e-ruban{display:flex;align-items:center;gap:0;padding:4px;background:#FAFBFC;border-bottom:1px solid var(--e-bordure);flex:0 0 auto}
.e-ruban-bloc{display:flex;flex-direction:column;gap:4px;padding:2px 10px}
.e-ruban-bloc + .e-ruban-bloc{border-left:1px solid var(--e-bordure)}
.e-ruban-bloc .e-sous{font-size:11px;color:var(--e-gris);max-width:250px;white-space:normal}
.e-ruban-bloc .e-champ{min-height:20px;min-width:0;width:55px;padding:0 4px;justify-content:center;font-size:11px}
.e-progression{display:block;width:110px;height:14px;background:#E6E6E6;border:1px solid #BCBCBC}
.e-progression i{display:block;height:100%;width:var(--rempli,0%);background:#06B025}
.e-competition{flex:1;min-width:0;margin:2px 12px 2px 16px;font-size:22px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.e-competition.vide{font-size:13px;font-weight:400;font-style:italic;color:gray}
.e-radio{display:inline-flex;align-items:center;gap:6px;margin-right:12px;white-space:nowrap}
.e-radio::before{content:"";width:13px;height:13px;flex:0 0 auto;border:1px solid #333;border-radius:50%;background:#fff}
.e-radio.cochee::before{border-color:#005FB8;background:radial-gradient(circle,#005FB8 0 3.5px,#fff 4px)}
/* Le module Configuration dans l'en-tête : deux lignes (Configuration / le mode) */
.e-module .e-module-sous{display:block;font-size:10px;font-weight:400;color:var(--e-gris)}
/* Barre d'état de FINISH : des boutons « Barre » à droite, le SIM connecté en orange */
.e-etat .e-barre-bouton.sim{background:#B25E00;color:#fff;font-weight:600}

/* ---------- Module Chronométrage (GestionCoursesView.xaml) : onglets classiques, barre du bas ---------- */
.e-onglets-wpf{display:flex;flex-wrap:wrap;gap:0;padding:2px 2px 0;border-bottom:1px solid #ACACAC}
.e-onglet-wpf{display:flex;align-items:center;gap:6px;margin-right:-1px;padding:3px 10px;background:#F0F0F0;border:1px solid #ACACAC;border-bottom:0;white-space:nowrap}
.e-onglet-wpf.actif{background:#fff;padding-top:5px;margin-top:-2px;position:relative;top:1px}
.e-onglet-wpf.alerte{color:#C62828;font-weight:600}
.e-bas-chrono{display:flex;align-items:center;gap:8px;padding:4px;border-top:1px solid var(--e-bordure);background:var(--e-fond)}
.e-bas-chrono .e-bouton{border-radius:3px}
.e-urgence{display:inline-flex;align-items:center;padding:6px 12px;background:#C62828;color:#fff;font-weight:700;border-radius:3px;white-space:nowrap}
.e-depart-manuel{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;background:var(--e-bleu);color:#fff;font-weight:600;border-radius:3px;white-space:nowrap}

/* ---------- L'écran d'une course (CourseView.xaml) ---------- */
.e-cf{background:#fff;border:1px solid var(--e-bordure);display:flex;flex-direction:column;min-width:760px}
.e-cf-tete{display:flex;align-items:center;gap:10px;padding:2px 4px}
.e-cf-tete .e-deux-champs{display:grid;grid-template-columns:auto 170px;gap:2px 6px;align-items:center;color:var(--e-gris)}
.e-cf-tete .e-deux-champs .e-champ{min-height:22px;width:170px;margin:0;font-size:12px;color:var(--e-h-texte)}
.e-cf-etats{flex:1;display:flex;flex-wrap:wrap;gap:2px 0}
.e-cf-etats .e-case{margin-right:14px}
.e-cf-dernier{width:120px;font-size:12px}
.e-cf-dernier small{display:block;margin-top:4px;font-size:10px;color:var(--e-gris)}
.e-cmd{display:inline-flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;width:62px;height:62px;margin:0 2px;background:#00A0E3;color:#fff;font-size:9px}
.e-cmd .ic{width:30px;height:30px}
.e-cmd .e-octogone{width:36px;height:36px;background:#E53935;clip-path:polygon(29% 0,71% 0,100% 29%,100% 71%,71% 100%,29% 100%,0 71%,0 29%)}
.e-cmd .ic-suivant{color:#F0B429}
.e-cf-nom{display:flex;align-items:center;gap:16px;padding:2px 4px;border-top:1px solid var(--e-bordure);border-bottom:1px solid var(--e-bordure);font-size:20px;font-weight:700}
.e-cf-nom .e-cf-competition{margin-left:auto}
.e-cf-nom .e-fermeture{font-size:16px;font-weight:600;color:#B3261E}
.e-cf-corps{display:flex;gap:6px;padding:4px}
.e-cf-classement{flex:1;min-width:0;display:flex;flex-direction:column;gap:4px}
.e-cf-bandeau{display:flex;align-items:center;gap:6px}
.e-chrono{width:180px;padding:0 4px;border:1px solid var(--e-bordure);font-size:26px;font-weight:600;text-align:center;font-variant-numeric:tabular-nums}
.e-afaire{width:160px;padding:6px 4px;border:1px solid var(--e-bordure);font-size:18px;text-align:center}
.e-cf-regle{flex:1;min-width:0}
.e-cf-regle .e-gros{font-size:14px}
.e-cf-regle .e-ligne-arrivee{display:inline-block;margin:2px 0 0;padding:0 6px;border-radius:3px;background:#EEF1F4;font-weight:600}
.e-cf-regle .e-ligne-arrivee.hors{background:#FFF3C4}
.e-cf-regle .e-elimination{color:#B25E00;font-weight:600}
.e-pilule{display:inline-flex;padding:2px;border-radius:12px;background:#E9EDF1}
.e-pilule span{padding:2px 10px;border-radius:10px;color:var(--e-h-doux)}
.e-pilule span.actif{background:#fff;color:var(--e-h-texte);font-weight:600;box-shadow:0 1px 2px rgba(0,0,0,.15)}
.e-sans-tour{padding:3px 6px;background:#E53935;color:#fff;font-weight:700}
/* Une ligne du classement (LigneClassementViewModel) : bloc du coureur, tours à faire, tuiles ou résumé */
.e-cl{display:flex;align-items:center;height:var(--h-ligne,78px);margin-bottom:2px;background:var(--fond-ligne,transparent);border:1px solid transparent}
.e-cl.sel{border-color:#26A0DA;background:#CCE8FF}
.e-cl.or{--fond-ligne:#FFD700} .e-cl.argent{--fond-ligne:#C8C8C8} .e-cl.bronze{--fond-ligne:#D89A5E} .e-cl.elimine{--fond-ligne:#F3D6D3}
.e-cl-bloc{width:250px;flex:0 0 auto;margin:0 4px;display:flex;align-items:center}
.e-cl-pos{width:44px;flex:0 0 auto;font-size:24px;font-weight:700;line-height:1.1}
.e-cl-pos small{display:block;font-size:12px;font-weight:400;color:var(--e-gris)}
.e-cl-annot{display:inline-block;padding:0 3px;border-radius:2px;background:#E53935;color:#fff;font-size:10px;font-weight:700}
.e-cl-ident{flex:1;min-width:0}
.e-cl-haut{display:flex;align-items:center;gap:4px}
.e-cl-nom{flex:1;min-width:0;font-size:13px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.e-cl-nom.colore{flex:0 1 auto;padding:0 3px;border-radius:2px;background:var(--fond-pos);color:var(--texte-pos)}
.e-cl-haut .e-case{margin:0 0 0 auto;font-size:11px}
.e-cl-equipe{font-style:italic}
.e-cl-puces{display:flex;gap:0;font-size:10px}
.e-cl-puces span{width:80px}
.e-cl-afaire{width:70px;flex:0 0 auto;text-align:center;font-size:14px;line-height:1.15;white-space:pre-line}
.e-cl-tuiles{display:flex;align-items:stretch;gap:0;height:calc(100% - 2px);overflow:hidden}
.e-tt{width:var(--l-tuile,104px);margin:1px 3px 1px 0;display:flex;align-items:center;justify-content:center;text-align:center;font-size:12px;line-height:1.15;
  white-space:pre-line;background:#D6D6D6;color:#707070}
.e-tt.entame{background:#FFF1A8;color:#000} .e-tt.complete{background:#2E7D32;color:#fff} .e-tt.retard{background:#1F3F8F;color:#fff}
.e-cl-resume{margin:0 10px;font-size:22px;font-weight:700;font-variant-numeric:tabular-nums;display:flex;align-items:center;gap:8px}
.e-cl-resume .ic{width:16px;height:16px;color:var(--e-gris)}
.e-ecart-pf{padding:1px 5px;border-radius:3px;background:#E53935;color:#fff;font-size:11px;font-weight:700}
/* La colonne de droite de l'onglet Classement/Tours */
.e-cote{width:124px;flex:0 0 auto;display:flex;flex-direction:column;gap:4px}
.e-groupe-boite{border:1px solid #D5DFE5;border-radius:3px;padding:12px 4px 4px;position:relative}
.e-groupe-boite > .e-legende-boite{position:absolute;top:-8px;left:6px;padding:0 3px;background:#fff;font-size:11px}
.e-bouton-cote{display:flex;justify-content:space-between;align-items:center;padding:4px 8px;background:#F0F0F0;border:1px solid #ACACAC;border-radius:2px}

/* ---------- Liste des courses (ListeCoursesView.xaml) ---------- */
.e-grille .e-etat-course{display:inline-flex;align-items:center;gap:6px}
.e-grille tr.chargee td{background:#FFF8D6!important} .e-grille tr.en-cours td{background:#E3F4E6!important}
.e-grille tr.terminee td{background:#E3EFFB!important} .e-grille tr.courue td{color:#9AA5B1}
.e-noms{display:flex;flex-wrap:wrap;gap:2px}
.e-nom-pos{padding:0 4px;border-radius:2px;background:var(--fond-pos,#E0E0E0);color:var(--texte-pos,#333);font-size:11px;white-space:nowrap}

/* ---------- Volets repliables (Expander) et cartes de réglages (ConfigurationView, ConfigurationSessionWindow) ---------- */
.e-pli{border:1px solid var(--e-bordure);background:#fff;margin:0 0 4px}
.e-pli-tete{display:flex;align-items:center;gap:8px;padding:5px 8px;background:#F7F9FA;font-weight:600}
.e-pli-tete::before{content:"";width:8px;height:8px;border-right:2px solid #555;border-bottom:2px solid #555;transform:rotate(45deg);margin:0 4px 3px 2px}
.e-pli.ferme .e-pli-tete::before{transform:rotate(-45deg);margin-bottom:0}
.e-pli-corps{padding:6px 10px}
.e-reglage{display:flex;align-items:flex-start;gap:12px;padding:5px 0;border-bottom:1px solid #EEF1F4}
.e-reglage:last-child{border-bottom:0}
.e-reglage > .e-nom-reglage{width:190px;flex:0 0 auto;font-weight:600;padding-top:2px}
.e-reglage .e-explication{display:block;font-size:11px;color:var(--e-gris);margin-top:2px;white-space:normal}

/* ---------- Panneau Corridors (CorridorsView.xaml) et piste animée (PisteAnimee.cs) ---------- */
.e-corridors{width:330px;background:#fff;border-left:1px solid var(--e-bordure);display:flex;flex-direction:column}
.e-corridor-file{border:1px solid var(--e-h-ligne);border-radius:6px;margin:4px;padding:4px;background:#F7F9FA}
.e-corridor-file > .e-petit{display:block;margin:0 2px 3px;font-weight:600}
.e-carte-c{display:flex;align-items:center;gap:6px;margin:0 0 3px;padding:3px 6px;background:#fff;border:1px solid var(--e-h-ligne);border-radius:4px}
.e-carte-c.prochain{border:2px solid #1E88E5}
.e-carte-c .e-prochain{font-size:9px;font-weight:700;color:#1E88E5}
.e-carte-c .e-pos{margin-right:0}
.e-piste-svg{display:block;width:100%;height:auto}
/* TABLEAU, champ « Piste en direct » : le dessin du champ (SVG écrit en dur par le portage du calcul), grand et en encart */
.e-piste-direct{display:block;width:100%;height:auto;border-radius:4px}
.e-piste-direct-cadre{display:grid;grid-template-columns:2fr 1fr;gap:10px;align-items:start;max-width:960px}
.e-piste-direct-cote{display:grid;gap:10px}
@media (max-width:640px){.e-piste-direct-cadre{grid-template-columns:1fr}}
.e-piste-svg .piste{fill:none;stroke:#C9D3DC;stroke-width:14}
.e-piste-svg .bord{fill:none;stroke:#9AA7B4;stroke-width:1}
.e-piste-svg .ligne{stroke:#000;stroke-width:3}
.e-piste-svg .boucle{fill:#1E88E5}
.e-piste-svg text{font:10px "Segoe UI",system-ui,Arial,sans-serif;fill:#333}
.e-piste-svg .puce text{font-size:8px;font-weight:700}

/* ---------- Onglet Lapping (LappingView.xaml) ---------- */
.e-lapping{display:flex;flex-direction:column;background:#1F2933;color:#fff;min-height:260px}
.e-lapping-tete{display:flex;justify-content:space-between;padding:6px 10px;font-size:12px;color:#CFD8DC}
.e-lapping-grand{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;background:var(--fond-tour,#0B3D91);color:var(--texte-tour,#fff);margin:0 10px}
.e-lapping-grand .e-qui{font-size:22px;font-weight:600}
.e-lapping-grand .e-temps{font-size:96px;font-weight:700;line-height:1;font-variant-numeric:tabular-nums}
.e-lapping-derniers{display:flex;flex-wrap:wrap;gap:4px;padding:8px 10px}
.e-lapping-derniers span{padding:2px 6px;border-radius:3px;background:var(--fond-tour,#37474F);color:var(--texte-tour,#fff);font-size:11px}

/* ---------- Journal et derniers passages (DecodeurView.xaml) ---------- */
.e-journal{background:#fff;border:1px solid var(--e-bordure);padding:4px 6px;font:11px Consolas,"Cascadia Mono",Menlo,monospace;white-space:pre;overflow:hidden;line-height:1.45}
.e-journal .rejet{color:#B25E00} .e-journal .trame{color:#5A5A5A}
.e-voyant{display:inline-block;width:10px;height:10px;border-radius:50%;background:#C62828;vertical-align:-1px}
.e-voyant.jaune{background:#F0B429} .e-voyant.vert{background:#2E9E44}

/* ---------- Historique, onglet Athlètes : galerie et fiche (AthletesOnglet.xaml, FicheAthleteWindow.xaml) ---------- */
.e-galerie{display:flex;flex-wrap:wrap;gap:6px;padding:6px 10px}
.e-vignette{width:150px;display:flex;flex-direction:column;align-items:center;gap:3px;padding:8px 6px;background:#fff;border:1px solid var(--e-h-ligne);border-radius:8px;text-align:center}
.e-vignette.sel{border:2px solid var(--e-h-accent);background:var(--e-h-accent-clair)}
.e-vignette .e-avatar{width:64px;height:64px}
.e-vignette b{font-weight:600}
.e-vignette .e-petit{display:block}
.e-pastille-coureur{display:inline-block;padding:2px 8px;border-radius:4px;background:var(--fond-avatar,#4C6EF5);color:var(--texte-avatar,#fff);font-weight:600}
.e-affil{display:flex;align-items:center;gap:8px;padding:4px 6px;border:1px solid var(--e-h-ligne);border-radius:6px;margin:3px 0}
.e-affil img{height:26px}
/* Assistant d'import (ImportAthletesWindow.xaml) : les étapes */
.e-assistant{display:flex;gap:0;margin:6px 10px}
.e-assistant span{padding:4px 12px;border:1px solid var(--e-h-ligne);background:#fff;color:var(--e-h-doux)}
.e-assistant span.actif{background:var(--e-h-accent);border-color:var(--e-h-accent);color:#fff;font-weight:600}
.e-statut{display:inline-block;padding:0 6px;border-radius:8px;font-size:11px;font-weight:600;background:#ECEFF1}
.e-statut.trouvee{background:#E3F2E5;color:#2E7D32} .e-statut.nouvelle{background:var(--e-h-accent-clair);color:#0B5F7A}
.e-statut.proposee{background:#FFF3C4;color:#8A6D00} .e-statut.conflit{background:var(--e-danger-clair);color:var(--e-danger)}

/* ==========================================================================================================
   ChronoFEED-VOICE (src/ChronoFeed.Voice) : MainWindow.xaml et les styles de son App.xaml (Accent #0288D1, Fond
   #F4F6F8, Bordure #DDE3E8, TexteDoux #6B7785 ; Carte, Titre, Libelle, Aide). Contrôles WPF classiques (Windows).
   Classes « e-vx-… » ; onglets : e-onglets-wpf / e-onglet-wpf ; cases : e-case.
   ========================================================================================================== */
.e-vx{--vx-accent:#0288D1;--vx-fond:#F4F6F8;--vx-bordure:#DDE3E8;--vx-doux:#6B7785;font-size:13px;background:var(--vx-fond)}
.e-vx .e-case::before{border-color:#333}
/* Barre de menus (Menu x:Name="MenuPrincipal", fond blanc) */
.e-vx-menu{display:flex;gap:2px;padding:2px 4px;background:#fff;border-bottom:1px solid #E5E5E5;font-size:12px}
.e-vx-menu > span{padding:2px 7px;border:1px solid transparent}
.e-vx-menu > span.ouvert{background:#C0DDEB;border-color:#26A0DA}
/* Carte (style Carte) et ses textes (Titre, Libelle, Aide) */
.e-vx-carte{position:relative;background:#fff;border:1px solid var(--vx-bordure);border-radius:6px;padding:12px;margin:6px;min-width:0}
.e-vx-titre{display:block;margin:0 0 8px;font-size:14px;font-weight:600;color:var(--vx-accent)}
.e-vx-libelle{display:block;margin:8px 0 2px;color:var(--vx-doux)}
.e-vx-aide{display:block;font-size:11px;color:var(--vx-doux);white-space:normal}
/* L'état de la connexion : point coloré, liste des FINISH trouvés, horloge, licence ; bouton Muet à droite */
.e-vx-etat{display:flex;align-items:flex-start;gap:12px;padding:8px 12px}
.e-vx-etat > .e-vx-gauche{flex:1;min-width:0}
.e-vx-point{display:inline-block;width:12px;height:12px;margin-right:8px;border-radius:50%;background:#808080;vertical-align:-1px}
.e-vx-point.vert{background:#2E8B57} .e-vx-point.orange{background:#FF8C00}
.e-vx-connexion{font-size:14px;font-weight:600}
.e-vx-sous{display:block;margin:2px 0 0 20px;font-size:11px;color:var(--vx-doux)}
.e-vx-muet{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-width:170px;min-height:40px;padding:0 12px;font-size:15px;font-weight:600;
  background:#E8F5E9;border:1px solid #ADADAD;white-space:nowrap}
.e-vx-muet.muet{background:#FFEBEE;border-color:#3C7FB1;box-shadow:inset 0 0 0 1px #3C7FB1}
/* Contrôles classiques de Windows (Button, TextBox, ComboBox, Slider) */
.e-vx-bouton{display:inline-flex;align-items:center;justify-content:center;min-height:28px;padding:3px 12px;margin:0 6px 0 0;background:#E1E1E1;border:1px solid #ADADAD;white-space:nowrap}
.e-vx-bouton.petit{min-height:22px;padding:1px 8px;font-size:12px}
.e-vx-champ{display:inline-flex;align-items:center;min-height:26px;min-width:50px;padding:0 4px;background:#fff;border:1px solid #ABADB3;white-space:nowrap;overflow:hidden}
.e-vx-champ.large{display:flex;width:100%}
.e-vx-champ.erreur{background:#FBE3E3}
.e-vx-combo{display:inline-flex;align-items:center;justify-content:space-between;gap:10px;min-height:24px;padding:0 6px;background:linear-gradient(#F0F0F0,#E5E5E5);
  border:1px solid #ACACAC;white-space:nowrap}
.e-vx-combo.large{display:flex;width:100%}
.e-vx-combo::after{content:"";width:7px;height:7px;flex:0 0 auto;border-right:1.5px solid #333;border-bottom:1.5px solid #333;transform:rotate(45deg) translate(-2px,-2px)}
.e-vx-curseur{position:relative;display:block;height:22px}
.e-vx-curseur::before{content:"";position:absolute;left:0;right:0;top:9px;height:4px;background:#E7EAEA;border:1px solid #D6D6D6}
.e-vx-curseur::after{content:"";position:absolute;left:calc(var(--pos,50%) - 5px);top:2px;width:10px;height:18px;background:#007AD9;border-radius:2px}
/* En direct : deux colonnes ; grille des courses ; listes */
.e-vx-direct{display:grid;grid-template-columns:1fr 1fr;align-items:stretch}
.e-vx-colonne{display:flex;flex-direction:column;min-width:0}
.e-vx-colonne > .e-vx-carte.remplir{flex:1}
.e-vx-grille{width:100%;border-collapse:collapse;background:#fff}
.e-vx-grille th{padding:3px 6px;background:#fff;color:#1F1F1F;font-size:13px;border-right:1px solid #E5E5E5;border-bottom:1px solid #D5D5D5;font-weight:400;text-align:left;white-space:nowrap}
.e-vx-grille td{height:auto;padding:3px 6px;font-size:13px;border-bottom:1px solid #E8E8E8;white-space:nowrap}
.e-vx-grille td.centre{text-align:center} .e-vx-grille .e-case{margin:0}
.e-vx-grille tr.sel td{background:#CCE8FF}
.e-vx-liste{display:block;background:#fff;min-height:40px}
.e-vx-liste > span{display:block;padding:1px 3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.e-vx-liste.journal{font-family:Consolas,"Cascadia Mono","DejaVu Sans Mono",monospace;font-size:12px}
.e-vx-liste > span.sel{background:#CCE8FF}
.e-vx-encours{display:block;min-height:22px;font-size:15px;white-space:normal}
/* Propositions pendant la frappe (Popup sous le champ du message) */
.e-vx-propositions{display:block;max-width:420px;margin-top:2px;background:#fff;border:1px solid var(--vx-bordure);border-radius:4px;box-shadow:0 3px 8px rgba(0,0,0,.18)}
.e-vx-propositions > span{display:block;padding:5px 8px}
.e-vx-propositions > span.sel{background:#CCE8FF}
/* Voix : bandeau d'explication (#E1F5FE) et une ligne par langue */
.e-vx-info{background:#E1F5FE}
.e-vx-langue{display:grid;grid-template-columns:140px 2fr 1fr 1fr auto;gap:0 12px;align-items:start}
.e-vx-langue-nom{font-size:15px;font-weight:600}
/* Réglages : cartes de 340 px qui passent à la ligne (WrapPanel) */
.e-vx-reglages{display:flex;flex-wrap:wrap;align-items:flex-start}
.e-vx-reglages > .e-vx-carte{width:340px}
.e-vx-reglages .e-case{display:flex;margin:4px 0;white-space:normal}
.e-vx-deux{display:grid;grid-template-columns:1fr 1fr;gap:0 6px}

/* ==========================================================================================================
   ChronoFEED-SIM. Sources : src/ChronoFeed.Simulateur/App.xaml (Fond, Carte, TitreCarte, Pilule, Segment,
   BoutonDepart, couleurs Vert #5AAF46, VertFonce #2E8B2E, Orange #F0B429), MainWindow.xaml (en-tête, cartes, liste
   des courses, passages à la main, journal), AideCom0comWindow.xaml. Conteneur : .e-fenetre.e-sim (ou .e-piece.e-sim).
   ========================================================================================================== */
.e-sim{--e-sim-vert:#5AAF46;--e-sim-vert-fonce:#2E8B2E;--e-sim-orange:#F0B429;--e-sim-guide:#B36B00}
.e-sim .e-marque .p-sim{color:#2EF2A0}
.e-sim .e-sous-titre-sim{align-self:center;color:var(--e-gris);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.e-sim .e-centre{padding:10px 10px 2px;gap:0}
/* Une carte (style « Carte ») et son titre (« TitreCarte ») */
.e-sim-carte{background:#fff;border:1px solid var(--e-bordure);border-radius:6px;padding:10px 12px;margin:0 0 8px}
.e-sim-carte.orange{border-color:var(--e-sim-orange)}
.e-sim-titre{display:block;margin:0 0 6px;font-size:13px;font-weight:600}
.e-sim-tete{display:flex;align-items:baseline;justify-content:space-between;gap:12px}
.e-sim-techno{color:var(--e-bleu);font-weight:600;white-space:nowrap}
/* Les trois voyants : orange (pas encore), vert (fait) */
.e-sim-etape{display:flex;align-items:flex-start;margin:3px 0}
.e-sim-etape::before{content:"";width:11px;height:11px;flex:0 0 auto;margin:2px 8px 0 0;border-radius:50%;background:var(--e-sim-orange)}
.e-sim-etape.faite::before{background:var(--e-sim-vert)}
.e-sim-etape b{width:165px;flex:0 0 auto;font-weight:600}
.e-sim-guide{display:block;margin:4px 0 0 19px;font-weight:600;color:var(--e-sim-guide);white-space:normal}
.e-sim-retrait{display:block;margin:6px 0 0 19px}
.e-sim-doux{color:var(--e-gris)}
/* La photo de l'équipement (à droite de la carte) : dans l'aide, un cadre neutre à sa place */
.e-sim-photo{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;width:150px;height:90px;margin-left:12px;flex:0 0 auto;
  border:1px dashed #B8C2CC;border-radius:6px;background:#FAFBFC;color:#8A96A3;font-size:10px;text-align:center}
.e-sim-photo .ic{width:28px;height:28px}
/* Interrupteur à plusieurs positions : des boutons radio dans une pilule (styles Pilule et Segment) */
.e-segments{display:inline-flex;padding:2px;border-radius:13px;background:#EFEFEF;border:1px solid var(--e-bordure);white-space:nowrap}
.e-segments > span{padding:2px 12px;border-radius:11px;border:1px solid transparent}
.e-segments > span.actif{background:#fff;border-color:var(--e-bleu);font-weight:600}
.e-sim-reglage{display:inline-flex;align-items:center;gap:10px;margin:2px 28px 2px 0;white-space:nowrap}
.e-sim-reglage > b{font-weight:600}
.e-sim .e-champ{min-height:22px;padding:1px 4px;border-radius:2px;border-color:#ABADB3}
/* Le bouton « Départ » (BoutonDepart) : vert foncé, texte blanc */
.e-bouton-depart{display:inline-flex;align-items:center;padding:6px 18px;border-radius:5px;background:var(--e-sim-vert-fonce);color:#fff;font-weight:600;white-space:nowrap}
.e-sim .e-bouton{border-radius:3px;padding:3px 12px;border-color:#ADADAD;background:#E1E1E1}
/* Une course de FINISH dans la liste : nom et détail, état et progression, boutons */
.e-sim-prochain{display:block;margin:0 0 6px;font-size:13px;font-weight:600;color:var(--e-sim-vert-fonce)}
.e-sim-course{display:grid;grid-template-columns:1fr 1.3fr auto;align-items:center;gap:0 12px;padding:8px 2px;border-bottom:1px solid var(--e-bordure)}
.e-sim-course .e-sim-nom{display:block;font-size:14px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.e-sim-course .e-sim-etat{display:block;font-weight:600}
.e-sim-vide{padding:26px 10px;color:var(--e-gris);font-size:15px;text-align:center}
/* Passages à la main : une ligne par transpondeur */
.e-sim-manuel{display:grid;grid-template-columns:52px 1fr 1fr 60px 96px 170px auto;align-items:center;gap:0;padding:2px 6px}
.e-sim-manuel.entete{color:var(--e-gris)}
.e-sim-manuel.sel{background:#CCE8FF}
.e-sim-manuel .e-sim-raccourci{font-size:10px;color:var(--e-gris)}
.e-sim-manuel .e-sim-transpondeur{font-size:13px;font-weight:700}
.e-sim-manuel .e-case{margin:0}
.e-sim-manuel > span{min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.e-sim-etat-manuel{display:block;margin:0 0 6px;font-weight:600;color:var(--e-sim-guide)}
/* Le journal : Consolas 11, le plus récent en haut */
.e-sim .e-journal{border:0;padding:0}

/* ==========================================================================================================
   ChronoFEED-TABLEAU. Sources : src/ChronoFeed.Tableau/MainWindow.xaml (écran mis à l'échelle, panneau à droite),
   App.xaml (styles Section, Libelle, Info, Bouton du panneau), PanneauPilotage.xaml (panneau F2), Editeur/EditeurWindow.xaml
   (éditeur de vues : barre d'outils, liste « Champs », aperçu, onglets Élément et Vue), Editeur/ChampCouleur.cs ;
   rendu de l'écran : Rendu/Ecran.cs et Visuel.cs ; vues livrées : src/ChronoFeed.Affichage/VuesParDefaut.cs et
   src/ChronoFeed.Tableau/Modeles/Vues/*.vue.json.
   ========================================================================================================== */

/* ---------- L'écran diffusé : une vue de 1920 × 1080 (taille de conception) mise à l'échelle de la page ----------
   Chaque élément porte sa géométrie en pixels de conception : style="--x:40;--y:24;--l:1300;--h:56;--t:30"
   (--t : taille de la police en points, comme dans l'éditeur ; --r : rayon). Une carte (.e-tv-carte) est un repère :
   ses éléments se placent depuis son coin, comme dans le logiciel. */
.e-tv{position:relative;width:100%;aspect-ratio:16/9;overflow:hidden;background:var(--fond-vue,#0B1016);container-type:inline-size;
  font-family:"Segoe UI",system-ui,-apple-system,Roboto,Arial,sans-serif;color:#fff;line-height:1.15;--u:.5px;
  -webkit-print-color-adjust:exact;print-color-adjust:exact}
@supports (width:1cqw){.e-tv{--u:calc(100cqw / 1920)}}
.e-tv.vert{--fond-vue:#00FF00}
.e-tv-carte{position:absolute;left:calc(var(--x,0) * var(--u));top:calc(var(--y,0) * var(--u));width:calc(var(--l,1920) * var(--u));height:calc(var(--h,72) * var(--u))}
.e-tv-el{position:absolute;left:calc(var(--x,0) * var(--u));top:calc(var(--y,0) * var(--u));width:calc(var(--l,100) * var(--u));height:calc(var(--h,24) * var(--u));
  display:flex;align-items:center;justify-content:center;padding:0 calc(4 * var(--u));box-sizing:border-box;white-space:nowrap;overflow:hidden;
  font-size:calc(var(--t,18) * 1.3333 * var(--u));border-radius:calc(var(--r,0) * var(--u));font-variant-numeric:tabular-nums}
.e-tv-el.g{justify-content:flex-start} .e-tv-el.d{justify-content:flex-end} .e-tv-el.b{font-weight:700}
.e-tv-el.haut{align-items:flex-start} .e-tv-el.bas{align-items:flex-end} .e-tv-el.multi{white-space:normal;line-height:1.1}
/* Un élément IMAGE (photo, image, avatar de l'athlète ; arrière-plan, logo) : l'image remplit (rogne) ou s'ajuste */
.e-tv-el.img{padding:0;background:var(--fond-img,transparent)}
.e-tv-el.img img{width:100%;height:100%;object-fit:cover;display:block}
.e-tv-el.img.ajuster img{object-fit:contain}
.e-tv-el.cadre{border:calc(var(--e,2) * var(--u)) solid var(--cadre,#00A0E3)}
/* Une tuile du lapping (« Lapping : 10 derniers ») : le nom au-dessus, le temps en grand */
.e-tv-tuile{position:absolute;display:flex;flex-direction:column;align-items:center;justify-content:center;overflow:hidden;box-sizing:border-box;
  left:calc(var(--x,0) * var(--u));top:calc(var(--y,0) * var(--u));width:calc(var(--l,100) * var(--u));height:calc(var(--h,100) * var(--u));
  border-radius:calc(var(--r,6) * var(--u));font-weight:700;font-variant-numeric:tabular-nums}
.e-tv-tuile small{font-size:calc(var(--t,30) * .45 * 1.3333 * var(--u));font-weight:600;line-height:1.1}
.e-tv-tuile span{font-size:calc(var(--t,30) * 1.3333 * var(--u));line-height:1}
/* L'aperçu de l'éditeur : l'élément choisi (pointillé rose) et sa poignée */
.e-tv-el.choisi,.e-tv-carte.choisi{outline:calc(2 * var(--u) + 1px) dashed #FF4081;outline-offset:0;overflow:visible}
.e-tv-el.choisi::after{content:"";position:absolute;right:-5px;bottom:-5px;width:9px;height:9px;background:#FF4081}
/* Une publicité à la place de la vue (MainWindow.xaml : CouchePublicite, fond noir, image « Uniform ») */
.e-tv-pub{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:#000}

/* ---------- La fenêtre de TABLEAU : l'écran sur fond noir, le panneau de pilotage (F2) par-dessus, à droite ---------- */
.e-tb{position:relative;background:#000;display:flex;align-items:center;min-height:200px;width:var(--largeur-tb,1000px);max-width:100%}
.e-tb > .e-tv{flex:1 1 auto;width:100%}
.e-tb > .e-pp{position:absolute;top:0;right:0;bottom:0;overflow:hidden;background:rgba(17,22,28,.93)}

/* ---------- Le panneau de pilotage (PanneauPilotage.xaml ; App.xaml : Section, Libelle, Info, Bouton) ---------- */
.e-pp{display:block;width:370px;padding:14px 18px 18px;background:#11161C;border-left:1px solid #263238;color:#fff;
  font-family:"Segoe UI",system-ui,sans-serif;font-size:12px;line-height:1.35;text-align:left;box-sizing:border-box;
  -webkit-print-color-adjust:exact;print-color-adjust:exact}
.e-pp *{box-sizing:border-box}
.e-pp-tete{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:20px;font-weight:600}
.e-pp-section{display:block;margin:16px 0 6px;color:#00A0E3;font-size:13px;font-weight:600}
.e-pp-libelle{display:block;margin:6px 0 2px;color:#ECEFF1}
.e-pp-info{display:block;color:#90A4AE;font-size:11px}
.e-pp-alerte{display:block;color:orange;font-size:11px;margin-top:2px}
.e-pp-accent{display:block;color:#00A0E3;font-size:11px;margin-top:2px}
.e-pp-licence{display:block;margin-top:6px;font-size:11px;color:#90A4AE}
.e-pp-bouton{display:inline-flex;align-items:center;gap:6px;margin:0 6px 6px 0;padding:4px 10px;background:#263238;border:1px solid #37474F;color:#fff;white-space:nowrap}
.e-pp-bouton.gras{font-weight:600}
.e-pp-bouton .ic{width:13px;height:13px}
.e-pp-champ{display:flex;align-items:center;min-height:22px;padding:2px 4px;background:#fff;color:#000;border:1px solid #ABADB3;white-space:nowrap;overflow:hidden}
.e-pp-champ.court{display:inline-flex;width:70px;justify-content:flex-end}
.e-pp-champ.masque{letter-spacing:.2em}
.e-pp-liste{display:flex;align-items:center;justify-content:space-between;min-height:22px;padding:2px 6px;background:#F0F0F0;color:#000;border:1px solid #ACACAC;white-space:nowrap}
.e-pp-liste::after{content:"▾";margin-left:8px}
.e-pp .e-case,.e-pp .e-radio{color:#fff;margin:2px 12px 2px 0}
.e-pp .e-case.bloc,.e-pp .e-radio.bloc{display:flex}
.e-pp-grille{display:grid;grid-template-columns:1fr 70px;gap:0 6px;align-items:center}
.e-pp-grille .e-pp-champ{margin:4px 0}
.e-pp-choix{display:block;margin:2px 0;padding:4px 8px;background:#DDDDDD;color:#000;border:1px solid #707070}
/* Un élément de la publicité (cadre #37474F sur #1A2228) */
.e-pp-pub{margin:0 0 6px;padding:6px;background:#1A2228;border:1px solid #37474F}
.e-pp-pub-haut{display:flex;align-items:center;gap:4px}
.e-pp-pub-haut b{flex:1;font-weight:600}
.e-pp-pub-bas{display:flex;align-items:center;gap:4px;margin-top:5px}
.e-pp-pub-bas .e-pp-champ{flex:1;min-height:20px;font-size:11px}
.e-pp-petit{display:inline-flex;align-items:center;justify-content:center;min-width:22px;padding:1px 6px;background:#DDDDDD;color:#000;border:1px solid #707070;font-size:11px}
.e-pp-journal{display:block;color:#B0BEC5;font-size:11px}

/* ---------- L'éditeur de vues (Editeur/EditeurWindow.xaml) ---------- */
/* column-gap : les deux séparateurs (GridSplitter de 7 px, fond de la fenêtre) qui règlent la largeur des côtés */
.e-ed{display:grid;grid-template-columns:250px minmax(0,1fr) 360px;grid-template-rows:auto 1fr auto;background:#F3F5F7;min-height:420px;column-gap:7px}
.e-ed-barre{grid-column:1 / -1;display:flex;flex-wrap:wrap;align-items:center;gap:4px 0;padding:6px 8px;background:#fff;border-bottom:1px solid #DDE3E8}
.e-ed-outil{display:inline-flex;align-items:center;gap:6px;margin-right:4px;padding:3px 8px;background:#DDDDDD;border:1px solid #707070;color:#000;white-space:nowrap}
.e-ed-outil.gras{font-weight:600}
.e-ed-outil .ic{width:13px;height:13px}
.e-ed-sep{width:1px;align-self:stretch;margin:2px 6px;background:#CFD8DC}
.e-ed-vue{display:inline-flex;align-items:center;justify-content:space-between;width:260px;height:22px;padding:0 6px;margin-right:6px;background:#F0F0F0;border:1px solid #ACACAC}
.e-ed-vue::after{content:"▾"}
.e-ed .e-case{margin-right:10px}
/* La colonne de gauche : « Champs », filtre, liste des cases, « Retirer » */
.e-ed-gauche{display:flex;flex-direction:column;background:#fff;padding:8px;min-width:0}
.e-ed-section{display:block;margin:12px 0 4px;color:#0277BD;font-weight:600}
.e-ed-gauche > .e-ed-section:first-child{margin-top:0}
.e-ed-indice{display:block;color:#78909C;font-size:11px;margin-top:4px;white-space:normal}
.e-ed-filtre{display:flex;gap:4px}
.e-ed-filtre .e-ed-saisie{flex:1}
.e-ed-champs{flex:1;margin:6px -8px 0;border-top:1px solid #ECEFF1}
.e-ed-champ{display:flex;align-items:center;gap:0;padding:2px 8px;white-space:nowrap}
.e-ed-champ .e-case{margin-right:6px}
.e-ed-champ > span:nth-child(2){overflow:hidden;text-overflow:ellipsis}
.e-ed-champ.sel{background:#CCE8FF}
.e-ed-champ .e-ed-bandeau{margin-left:auto;padding-left:6px;color:#0277BD;font-size:10px}
.e-ed-retirer{align-self:flex-end;margin-top:8px}
/* L'aperçu : le vrai rendu de la vue, sur fond sombre */
.e-ed-apercu{display:flex;align-items:center;justify-content:center;padding:12px;background:#20262C;min-width:0}
.e-ed-apercu > .e-tv{width:var(--largeur-apercu,600px);max-width:100%;flex:none}
/* Les fiches à droite : onglets Élément et Vue */
.e-ed-fiches{background:#F3F5F7;border-left:1px solid #DDE3E8;min-width:0}
.e-ed-fiche{padding:10px}
.e-ed-titre-fiche{display:block;padding:4px 8px;background:#0288D1;color:#fff;font-size:16px;font-weight:600}
.e-ed-grille{display:grid;grid-template-columns:90px minmax(0,1fr);align-items:center;gap:2px 0}
.e-ed-grille.large{grid-template-columns:130px minmax(0,1fr)}
.e-ed-grille.quatre{grid-template-columns:70px minmax(0,1fr) 70px minmax(0,1fr)}
.e-ed-etiquette{color:#37474F;margin:3px 8px 3px 0}
.e-ed-saisie{display:flex;align-items:center;min-height:21px;padding:1px 3px;margin:2px 0;background:#fff;border:1px solid #ABADB3;white-space:nowrap;overflow:hidden}
.e-ed-saisie.court{width:70px} .e-ed-saisie.etroit{width:50px} .e-ed-saisie.haut{min-height:54px;align-items:flex-start;white-space:normal}
.e-ed-liste{display:flex;align-items:center;justify-content:space-between;min-height:21px;padding:1px 6px;margin:2px 0;background:#F0F0F0;border:1px solid #ACACAC;white-space:nowrap;overflow:hidden}
.e-ed-liste::after{content:"▾";margin-left:6px}
.e-ed-ligne{display:flex;flex-wrap:wrap;align-items:center;gap:0}
/* Une couleur (ChampCouleur.cs) : « #RRGGBB », l'aperçu, la palette ▾ ; vide : barré de rouge (transparent) */
.e-couleur{display:inline-flex;align-items:center;gap:4px}
.e-couleur .e-ed-saisie{width:78px}
.e-couleur i{display:inline-block;width:22px;height:22px;border:1px solid gray;background:var(--c,#fff)}
.e-couleur i.aucune{background:linear-gradient(to top right,#fff calc(50% - 1px),red calc(50% - 1px) calc(50% + 1px),#fff calc(50% + 1px))}
.e-couleur b{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;background:#DDDDDD;border:1px solid #707070;font-weight:400}
.e-curseur{display:flex;align-items:center;gap:6px}
.e-curseur i{flex:1;height:4px;background:linear-gradient(to right,#0078D4 var(--v,100%),#C2C2C2 var(--v,100%));border-radius:2px;position:relative}
.e-ed-etat{grid-column:1 / -1;display:flex;gap:8px;padding:3px 8px;background:#fff;border-top:1px solid #DDE3E8;color:#546E7A}
.e-ed-etat .e-ed-modifiee{margin-left:auto;color:#E65100}
/* L'éditeur du texte d'une publicité (EditeurTexteWindow.cs) */
.e-ed-rtf-barre{display:flex;gap:2px;padding:4px;background:#EEF1F4;border-bottom:1px solid #CFD8DC}
.e-ed-rtf-barre span{display:inline-flex;align-items:center;justify-content:center;min-width:26px;height:24px;padding:0 4px;border:1px solid transparent}

/* ==========================================================================================================
   EVENT : l'éditeur du gabarit (src/ChronoFeed.Evenements.Wpf/Gabarits/EditeurGabaritVue.xaml, Formulaires.cs).
   Les formulaires y sont faits d'après les réglages du moteur : un libellé (230 px dans le logiciel) et sa saisie ; une case
   à cocher sous la colonne des saisies ; un sous-objet bordé à gauche (ChampObjet, « Réglages propres : … » s'il est
   facultatif) ; une liste d'objets encadrée (ChampListe : la liste, puis le formulaire de l'élément choisi).
   Emploi : aide/<langue>/event/scenarios/gabarit-temps.html.
   ========================================================================================================== */
.e-gab{padding:8px 10px;background:var(--e-h-fond)}
.e-gab-texte{display:block;max-width:660px;margin:0 0 6px;color:var(--e-h-doux)}                       /* H.Libelle */
.e-gab-titre{display:block;margin:4px 0;font-size:13px;font-weight:600}                                   /* H.Titre */
.e-gab-cols{display:grid;grid-template-columns:200px minmax(0,1fr);gap:12px;align-items:start}            /* liste | fiche */
.e-gab-cols.apercu{grid-template-columns:180px minmax(0,1fr) 230px}                                         /* + aperçu du plan */
.e-gab-cols.moitie{grid-template-columns:minmax(0,1fr) minmax(0,1.2fr)}
.e-gab-outils{display:flex;flex-wrap:wrap;align-items:center;gap:4px 0;margin:0 0 6px}
.e-gab-elements{display:block;background:#fff;border:1px solid var(--e-champ-bord);border-radius:4px;min-height:40px;padding:2px 0}
.e-gab-elements > span{display:block;padding:3px 6px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.e-gab-elements > span.sel{background:var(--e-h-accent-clair)}
.e-gab-ligne{display:grid;grid-template-columns:190px minmax(0,290px);align-items:center;margin:2px 0}       /* ChampTexte, ChampChoix */
.e-gab-ligne > .e-gab-lib{padding-right:8px;color:var(--e-h-doux)}
.e-gab-ligne > .e-champ,.e-gab-ligne > .e-liste{width:100%;margin:0}
.e-gab-ligne > .e-champ{min-height:24px;padding:2px 6px}
.e-gab-ligne > .e-case{grid-column:2;margin:2px 0}                                                         /* ChampCase */
.e-gab-ligne > .e-gab-erreur{grid-column:2;color:var(--e-danger)}
.e-gab-objet{display:block;margin:8px 0 4px;padding:2px 0 2px 10px;border-left:3px solid var(--e-h-accent-clair)}  /* ChampObjet */
.e-gab-objet > .e-gab-nom{display:block;margin-bottom:2px;font-weight:600}
.e-gab-objet > .e-gab-aide,.e-gab-liste > .e-gab-aide{display:block;margin-bottom:2px;font-size:11px;color:var(--e-h-doux)}
.e-gab-objet > .e-case{margin:2px 0 4px}
.e-gab-liste{display:block;margin:8px 0 4px;padding:6px 8px;background:#FBFCFD;border:1px solid var(--e-h-ligne);border-radius:4px} /* ChampListe */
.e-gab-liste-tete{display:flex;align-items:center;margin-bottom:4px}
.e-gab-liste-tete > b{font-weight:600} .e-gab-liste-tete > .e-doux{margin-left:4px}
.e-gab-liste-tete > .e-pousse{margin-left:auto}
.e-gab-liste-tete .e-bouton.icone{margin:0 0 0 2px;padding:3px 5px}
.e-gab-apercu{display:block;font-family:Consolas,Menlo,monospace;font-size:11px;white-space:pre-wrap}
.e-gab-formule{display:block;min-height:24px;padding:4px 6px;margin:4px 0 0;background:#fff;border:1px solid var(--e-h-ligne);border-radius:4px;
  font-family:Consolas,Menlo,monospace;font-size:13px}
.e-gab-formule .v{color:#0B6E99} .e-gab-formule .f{color:#7A4FD6} .e-gab-formule .n{color:#B35C00} .e-gab-formule .x{background:var(--e-danger-clair);color:var(--e-danger)}
.e-gab-problemes{display:block;margin-top:8px;padding:4px 8px;background:#fff;border:1px solid var(--e-h-ligne);border-radius:8px;color:var(--e-danger)}
.e-gab-problemes > span{display:block}
.e-gab-bas{display:flex;flex-wrap:wrap;align-items:center;gap:4px 0;margin-top:10px}
.e-gab-bas .e-pousse{margin-left:auto}
.e-gab .e-grille-carte{margin:0}
