/* =========================================================================
   Masters EMP-ABB : fiches, catalogue, formulaire et suivi.
   Couleurs reprises de l'identité du site (bleu #0d4a7a, or #c8a032).
   ========================================================================= */
.emm-fiche, .emm-catalogue, .emm-form, .emm-suivi {
	--emm-bleu: var(--empabb-marine, #0d4a7a);
	--emm-or: var(--empabb-or, #c8a032);
	--emm-texte: var(--empabb-texte, #1b2836);
	--emm-doux: var(--empabb-doux, #55606e);
	--emm-trait: var(--empabb-trait, #e3e6eb);
	--emm-creme: var(--empabb-creme, #f3f6fa);
}

/* Badges d'état de l'appel */
.emm-badge { display: inline-flex; align-items: center; gap: 6px; padding: 5px 12px; border-radius: 999px; font-size: .78rem; font-weight: 700; line-height: 1.2; background: #eef1f5; color: #3d4856; }
.emm-badge::before { content: ""; width: 7px; height: 7px; border-radius: 50%; background: currentColor; }
.emm-badge--ouvert { background: #e5f4ea; color: #146c35; }
.emm-badge--a_venir { background: #e3f1fb; color: #0b6fa4; }
.emm-badge--cloture, .emm-badge--ferme { background: #f1f2f4; color: #5b6472; }

/* Fiche */
.emm-provisoire { display: inline-block; margin: 0 0 16px; padding: 6px 12px; border-radius: 8px; background: #fff6dc; color: #7a5a00; font-size: .88rem; font-weight: 600; }
.emm-sommaire { display: flex; flex-wrap: wrap; gap: 8px; margin: 8px 0 28px; }
.emm-sommaire a { padding: 8px 14px; border: 1px solid var(--emm-trait); border-radius: 999px; color: var(--emm-bleu) !important; font-size: .88rem; font-weight: 600; text-decoration: none !important; background: #fff; transition: border-color .2s, background-color .2s; }
.emm-sommaire a:hover, .emm-sommaire a:focus-visible { border-color: var(--emm-bleu); background: var(--emm-creme); }
.emm-sommaire a.emm-sommaire__candidater { background: var(--emm-or); border-color: var(--emm-or); color: #fff !important; }
.emm-bloc { scroll-margin-top: 120px; }
.emm-candidater { scroll-margin-top: 120px; }
.emm-candidater__etat { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; color: var(--emm-doux); }
.emm-note { color: var(--emm-doux); }
.emm-contact { margin: 16px 0; line-height: 1.7; }
.emm-contact a { color: var(--emm-bleu); font-weight: 600; }

/* Catalogue des Masters */
.emm-catalogue { display: grid; grid-template-columns: 1fr; gap: 24px; }
@media (min-width: 640px) { .emm-catalogue { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1200px) { .emm-catalogue { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 20px; } }
.emm-carte { display: flex; flex-direction: column; overflow: hidden; border: 1px solid var(--emm-trait); border-radius: 18px; background: #fff; transition: transform .3s cubic-bezier(.2, .7, .2, 1), box-shadow .3s; }
.emm-carte:hover { transform: translateY(-4px); box-shadow: 0 20px 40px -24px rgba(5, 33, 58, .45); }
.emm-carte__media { display: block; aspect-ratio: 16 / 9; overflow: hidden; background: var(--emm-bleu); }
.emm-carte__media img { width: 100%; height: 100%; object-fit: cover; }
.emm-carte__monogramme { display: grid; place-items: center; height: 100%; color: #fff; font-family: var(--empabb-serif, Georgia, serif); font-size: 2rem; }
.emm-carte__corps { display: flex; flex: 1; flex-direction: column; gap: 10px; padding: 20px 22px 22px; }
.emm-carte__corps .emm-badge { align-self: flex-start; }
.emm-carte__titre { margin: 0; font-size: 1.15rem; line-height: 1.3; }
.emm-carte__titre a { color: var(--emm-bleu); text-decoration: none; }
.emm-carte__texte { margin: 0; color: var(--emm-doux); font-size: .93rem; display: -webkit-box; -webkit-line-clamp: 4; -webkit-box-orient: vertical; overflow: hidden; }
.emm-carte__infos { margin: 0; color: var(--emm-texte); font-size: .85rem; font-weight: 600; }
.emm-carte__actions { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px; margin-top: auto; padding-top: 8px; }
.emm-carte__lien { display: inline-flex; align-items: center; gap: 6px; color: var(--emm-bleu); font-weight: 700; font-size: .9rem; text-decoration: none; }
.emm-carte__lien svg { width: 16px; height: 16px; }

/* Formulaire */
.emm-form { margin-top: 12px; }
.emm-form__titre { margin: 0 0 6px; color: var(--emm-bleu); font-family: var(--empabb-serif, Georgia, serif); font-size: 1.35rem; font-weight: 600; }
.emm-form fieldset { margin: 0 0 18px; padding: 20px 22px; border: 1px solid var(--emm-trait); border-radius: 14px; background: #fff; }
.emm-form legend { padding: 0 8px; color: var(--emm-bleu); font-weight: 700; }
.emm-form label { display: block; margin: 0 0 6px; font-size: .9rem; font-weight: 600; color: var(--emm-texte); }
.emm-form input:not([type=radio]):not([type=checkbox]):not([type=file]), .emm-form select, .emm-form textarea {
	width: 100%; padding: 11px 14px; border: 1px solid #cfd5dd; border-radius: 10px; background: #fff; font: inherit; color: var(--emm-texte);
}
.emm-form input:focus-visible, .emm-form select:focus-visible, .emm-form textarea:focus-visible { outline: 2px solid var(--emm-bleu); outline-offset: 1px; border-color: var(--emm-bleu); }
.emm-form input[type=file] { width: 100%; padding: 10px; border: 1px dashed #b9c2cd; border-radius: 10px; background: var(--emm-creme); }
.emm-form [aria-invalid=true] { border-color: #b3261e !important; }
.emm-grille { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 4px 18px; }
.emm-grille > p { margin: 0 0 12px; }
.emm-grille .emm-large { grid-column: 1 / -1; }
@media (max-width: 640px) { .emm-grille { grid-template-columns: 1fr; } .emm-form fieldset { padding: 16px; } }
.emm-radios { display: flex; flex-wrap: wrap; gap: 8px 24px; margin-bottom: 12px; }
.emm-radios label, .emm-case { display: flex; align-items: flex-start; gap: 8px; font-weight: 500; }
.emm-case { margin: 8px 0; }
.emm-case input, .emm-radios input { margin-top: 4px; }
.emm-pieces { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 4px 18px; }
@media (max-width: 640px) { .emm-pieces { grid-template-columns: 1fr; } }
.emm-piece { margin: 0 0 12px; }
.emm-piece__req { font-weight: 500; color: var(--emm-doux); }
.emm-aide { color: var(--emm-doux); font-size: .87rem; }
.emm-compteur { margin: 6px 0 0; color: var(--emm-doux); font-size: .85rem; text-align: right; }
.emm-compteur--depasse { color: #b3261e; font-weight: 700; }
.emm-erreur { display: block; margin-top: 4px; color: #b3261e; font-size: .85rem; font-weight: 600; }
.emm-alerte { padding: 14px 18px; border-radius: 12px; background: #fdecea; color: #7d1a14; }
.emm-succes { padding: 22px 24px; border-radius: 14px; background: #e5f4ea; color: #12432a; }
.emm-succes h3 { margin-top: 0; color: #12432a; }
.emm-hp { position: absolute !important; left: -9999px !important; }
.emm-envoyer { margin-top: 6px; }
.emm-form--apercu { opacity: .85; }
.emm-form--apercu .emm-envoyer[disabled] { cursor: not-allowed; background: #c9ced6 !important; border-color: #c9ced6 !important; color: #3d4856 !important; }

/* Suivi de candidature */
.emm-suivi { max-width: 760px; margin: 0 auto; }
.emm-suivi__form { padding: 24px; border: 1px solid var(--emm-trait); border-radius: 16px; background: #fff; }
.emm-suivi__resultat { margin-top: 24px; padding: 24px; border-radius: 16px; background: var(--emm-creme); }
.emm-suivi__ref { margin: 0 0 8px; color: var(--emm-doux); }
.emm-statut { display: inline-block; padding: 6px 14px; border-radius: 999px; background: #e3f1fb; color: #0b4f7a; font-weight: 700; }
.emm-statut--admis, .emm-statut--inscrit { background: #e5f4ea; color: #146c35; }
.emm-statut--refuse, .emm-statut--desiste { background: #f1f2f4; color: #5b6472; }
.emm-statut--incomplet, .emm-statut--attente { background: #fff3d6; color: #7a5a00; }
.emm-frise { display: flex; gap: 6px; margin: 18px 0; padding: 0; list-style: none; counter-reset: etape; }
.emm-frise__etape { flex: 1; padding: 10px 6px 0; border-top: 4px solid #d5dbe3; color: var(--emm-doux); font-size: .8rem; font-weight: 600; text-align: center; }
.emm-frise__etape--fait { border-color: var(--emm-bleu); color: var(--emm-bleu); }
.emm-frise__etape--actuel { border-color: var(--emm-or); color: var(--emm-texte); }
@media (max-width: 520px) { .emm-frise { flex-direction: column; } .emm-frise__etape { padding: 0 0 0 10px; border-top: 0; border-left: 4px solid #d5dbe3; text-align: left; } .emm-frise__etape--fait { border-color: var(--emm-bleu); } .emm-frise__etape--actuel { border-color: var(--emm-or); } }

/* Liste des candidats retenus et état de l'appel sur les cartes. */
.emm-retenus { width: 100%; border-collapse: collapse; font-size: .95rem; }
.emm-retenus th, .emm-retenus td { padding: .55rem .75rem; border-bottom: 1px solid rgba(0, 0, 0, .1); text-align: left; }
.emm-retenus thead th { font-weight: 600; }
.emm-carte__etat { font-size: .875rem; opacity: .8; }
.emm-questions[hidden] { display: none; }
