/* Opportunités Mali — feuille de style refondue.
   Identité : vert profond + or chaud (Mali), typo Source Sans, icônes Material Symbols.
   Pensé mobile-first / 3G. Aucune police lourde ; icônes chargées depuis le CDN Google. */

:root {
    --vert: #0b6b4f;          /* primaire */
    --vert-fonce: #084c38;
    --vert-nuit: #0a2d22;     /* pied de page */
    --or: #e2a600;            /* accent */
    --or-fonce: #b98600;
    --encre: #1c2321;         /* texte */
    --encre-doux: #2a3230;
    --gris: #5c6663;
    --gris-clair: #8a938f;
    --trait: #e4e7e5;
    --trait-fort: #d6ddd8;
    --fond: #f4f7f5;
    --carte: #ffffff;
    --rayon: 13px;
    --rayon-sm: 10px;
    --largeur: 840px;

    /* Couleurs par catégorie (puce ronde + libellé) */
    --stage-fg: #0b6b4f;      --stage-bg: #e7f3ee;
    --concours-fg: #a97400;   --concours-bg: #f8efd7;
    --bourse-fg: #1f6f8b;     --bourse-bg: #e3eff4;
    --emploi-fg: #b4532a;     --emploi-bg: #f7e9e1;

    font-synthesis: none;
}

* { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }

body {
    margin: 0;
    color: var(--encre);
    background: var(--fond);
    font-family: "Source Sans Pro", "Source Sans 3", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
    line-height: 1.55;
    font-size: 16px;
    display: flex;
    flex-direction: column;
    min-height: 100vh;
}

a { color: var(--vert); }
a:hover { color: var(--vert-fonce); }
::selection { background: var(--or); color: #241c00; }

.container {
    width: 100%;
    max-width: var(--largeur);
    margin: 0 auto;
    padding: 18px 18px 40px;
    flex: 1;
}

/* --- Icônes Material Symbols --- */
.ms {
    font-family: "Material Symbols Outlined";
    font-weight: 400;
    font-style: normal;
    font-size: 20px;
    line-height: 1;
    letter-spacing: normal;
    text-transform: none;
    white-space: nowrap;
    display: inline-block;
    vertical-align: middle;
    -webkit-font-feature-settings: 'liga';
    -webkit-font-smoothing: antialiased;
    font-variation-settings: 'FILL' 0;
}
.ms.fill { font-variation-settings: 'FILL' 1; }

/* --- En-tête --- */
.site-header {
    position: sticky;
    top: 0;
    z-index: 20;
    background: var(--vert);
    color: #fff;
    box-shadow: 0 1px 3px rgba(0,0,0,.18);
}
.header-inner {
    max-width: var(--largeur);
    margin: 0 auto;
    padding: 11px 18px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
}
.brand { display: inline-flex; align-items: center; gap: 10px; text-decoration: none; }
.brand:hover { color: #fff; }
.brand-icon { height: 40px; width: 40px; border-radius: 10px; display: block; box-shadow: 0 1px 3px rgba(0,0,0,.15); }
.brand-name { font-weight: 800; font-size: 22px; color: #fff; letter-spacing: .5px; }
.site-nav { display: flex; align-items: center; gap: 8px; }
.nav-saved {
    display: inline-flex; align-items: center; gap: 6px;
    background: rgba(255,255,255,.12); border: 0; color: #fff;
    font-weight: 600; font-size: 14px; padding: 8px 12px; border-radius: 7px;
    text-decoration: none; cursor: pointer;
}
.nav-saved:hover { background: rgba(255,255,255,.2); color: #fff; }
.nav-alerts {
    display: inline-flex; align-items: center; gap: 6px;
    background: var(--or); color: #241c00;
    font-weight: 700; font-size: 14px; padding: 9px 13px; border-radius: 7px;
    text-decoration: none;
}
.nav-alerts:hover { filter: brightness(.96); color: #241c00; }
.nav-alerts .ms, .nav-saved .ms { font-size: 19px; }

/* --- Hero --- */
.carrousel {
    position: relative;
    overflow: hidden;
    border-radius: var(--rayon);
    margin-bottom: 20px;
}
.carrousel-piste {
    display: flex;
    transition: transform .55s cubic-bezier(.2,0,0,1);
}
.hero {
    position: relative;
    overflow: hidden;
    flex: 0 0 100%;
    display: flex;
    flex-direction: column;
    min-height: 236px;
    background: linear-gradient(135deg, var(--vert-fonce) 0%, var(--vert) 60%, #0e7a5a 100%);
    color: #fff;
    padding: 26px 46px 34px;
}
.hero::after {
    content: ""; position: absolute; right: -40px; top: -40px;
    width: 180px; height: 180px; border-radius: 50%;
    background: radial-gradient(circle, rgba(226,166,0,.28), transparent 70%);
    pointer-events: none;
}
.hero-eyebrow {
    margin: 0 0 8px; font-size: 12px; font-weight: 600;
    letter-spacing: .06em; text-transform: uppercase; color: #f4d78a;
}
.hero h1 { margin: 0 0 8px; font-size: 27px; line-height: 1.18; font-weight: 700; max-width: 16ch; text-wrap: balance; }
.hero p { margin: 0 0 18px; font-size: 15.5px; opacity: .92; max-width: 44ch; }
.hero-cta { display: flex; flex-wrap: wrap; gap: 10px 16px; align-items: center; margin-top: auto; position: relative; z-index: 1; }
.hero-trust { display: flex; flex-wrap: wrap; gap: 6px 14px; font-size: 13px; color: #dff0e8; }
.hero-trust span { display: inline-flex; align-items: center; gap: 4px; }
.hero-trust .ms { font-size: 16px; }
.hero-trust .ok { color: #8fe3bd; }
.hero-trust .gold { color: #f4d78a; }

/* Thèmes de bannière */
.hero-vert     { background: linear-gradient(135deg, #084c38 0%, #0b6b4f 60%, #0e7a5a 100%); }
.hero-emeraude { background: linear-gradient(135deg, #0a2d22 0%, #0e5540 55%, #12876a 100%); }
.hero-emeraude::after { background: radial-gradient(circle, rgba(143,227,189,.30), transparent 70%); }
.hero-emeraude .hero-eyebrow { color: #8fe3bd; }
.hero-or       { background: linear-gradient(135deg, #5a3a00 0%, #8a6100 55%, #b98600 100%); }
.hero-or::after { background: radial-gradient(circle, rgba(255,255,255,.28), transparent 70%); }
.hero-or .hero-eyebrow { color: #ffe9b0; }
.hero-teal     { background: linear-gradient(135deg, #0c3a4a 0%, #155e77 55%, #1f8aad 100%); }
.hero-teal::after { background: radial-gradient(circle, rgba(255,255,255,.24), transparent 70%); }
.hero-teal .hero-eyebrow { color: #bfe8f5; }

.btn-blanc { background: #fff; color: var(--encre); }
.btn-blanc:hover { background: #f0f3f1; color: var(--encre); }

/* Flèches — sans fond, juste l'icône */
.carrousel-fleche {
    position: absolute; top: 50%; transform: translateY(-50%);
    width: 30px; height: 30px; border: 0; padding: 0;
    background: transparent; color: #fff; cursor: pointer;
    display: flex; align-items: center; justify-content: center;
    z-index: 2; opacity: .8; text-shadow: 0 1px 4px rgba(0,0,0,.4);
}
.carrousel-fleche:hover { opacity: 1; background: transparent; }
.carrousel-fleche.prec { left: 6px; }
.carrousel-fleche.suiv { right: 6px; }
.carrousel-fleche .ms { font-size: 28px; }

.carrousel-points {
    position: absolute; left: 0; right: 0; bottom: 12px; z-index: 2;
    display: flex; justify-content: center; gap: 7px;
}
.carrousel-point {
    width: 8px; height: 8px; border-radius: 20px; border: 0; padding: 0;
    background: rgba(255,255,255,.45); cursor: pointer;
    transition: width .3s, background .3s;
}
.carrousel-point.actif { width: 22px; background: #fff; }

/* Sans JS : une seule bannière, pas de flèches/points */
.carrousel:not([data-pret]) .carrousel-fleche,
.carrousel:not([data-pret]) .carrousel-points { display: none; }
.carrousel:not([data-pret]) .carrousel-piste > .hero + .hero { display: none; }

@media (max-width: 520px) {
    .hero { padding: 22px 40px 30px; min-height: 220px; }
    .hero h1 { font-size: 22px; }
}

/* --- Recherche --- */
.recherche { margin-bottom: 14px; }
.champ-recherche { position: relative; display: flex; align-items: center; }
.champ-recherche .ms { position: absolute; left: 13px; font-size: 21px; color: var(--gris); pointer-events: none; }
.champ-recherche input[type="search"] {
    width: 100%; font-size: 15px; padding: 12px 14px 12px 42px;
    border: 1px solid var(--trait-fort); border-radius: var(--rayon-sm);
    background: #fff; box-shadow: 0 1px 2px rgba(0,0,0,.03);
}

/* --- Filtres catégories (puces) --- */
.filtres {
    display: flex; gap: 8px; overflow-x: auto; padding-bottom: 4px;
    margin-bottom: 12px; -webkit-overflow-scrolling: touch;
}
.puce {
    display: inline-flex; align-items: center; gap: 6px; flex: none;
    padding: 8px 14px; border-radius: 60px; border: 1px solid var(--trait-fort);
    background: #fff; color: #3a423f; text-decoration: none;
    font-size: 14px; font-weight: 600; white-space: nowrap; cursor: pointer;
    transition: all .15s var(--ease, ease);
}
.puce:hover { border-color: #b9c7c0; color: var(--encre); }
.puce .ms { font-size: 18px; }
.puce.actif { background: var(--vert); color: #fff; border-color: var(--vert); }
.puce.actif:hover { color: #fff; }

/* --- Barre ville / compteur --- */
.barre-ville {
    display: flex; align-items: center; justify-content: space-between;
    gap: 12px; margin-bottom: 14px; flex-wrap: wrap;
}
.compteur { margin: 0; font-size: 13.5px; color: var(--gris); }
.barre-ville label { display: inline-flex; align-items: center; gap: 7px; font-size: 13.5px; color: var(--gris); margin: 0; font-weight: 400; }
.barre-ville select { width: auto; font-size: 14px; padding: 7px 10px; border-radius: 8px; cursor: pointer; }
.barre-ville .ms { font-size: 18px; }

/* --- Champs (formulaires — alertes, admin, etc.) --- */
input, select, textarea {
    font: inherit; padding: 10px 12px; border: 1px solid var(--trait-fort);
    border-radius: 8px; background: #fff; color: var(--encre); width: 100%;
    outline: none;
}
input:focus, select:focus, textarea:focus {
    border-color: var(--vert); box-shadow: 0 0 0 3px rgba(11,107,79,.18);
}
button:focus-visible, a:focus-visible { outline: 2px solid var(--or); outline-offset: 1px; }
label { display: block; font-weight: 600; margin: 12px 0 4px; font-size: 14px; }
.aide { color: var(--gris); font-size: 13px; margin-top: 4px; }

/* --- Boutons --- */
.btn {
    display: inline-flex; align-items: center; gap: 7px; justify-content: center;
    padding: 11px 18px; border-radius: var(--rayon-sm); border: 0;
    background: var(--vert); color: #fff; font-weight: 700; cursor: pointer;
    text-decoration: none; font-size: 15px;
    transition: filter .15s, background .15s;
}
.btn:hover { background: var(--vert-fonce); color: #fff; }
.btn .ms { font-size: 19px; }
.btn-or { background: var(--or); color: #241c00; }
.btn-or:hover { filter: brightness(.96); background: var(--or); color: #241c00; }
.btn-vert { background: var(--vert); color: #fff; }
.btn-fantome { background: #fff; border: 1px solid var(--trait-fort); color: var(--encre); font-weight: 600; }
.btn-fantome:hover { background: var(--fond); color: var(--encre); border-color: #b9c7c0; }

/* --- Liste d'opportunités (carte style « icône ronde ») --- */
.liste { list-style: none; margin: 0; padding: 0; display: grid; gap: 13px; }
.carte {
    position: relative;
    background: var(--carte); border: 1px solid var(--trait);
    border-radius: var(--rayon); padding: 15px;
    display: flex; gap: 14px;
    box-shadow: 0 1px 2px rgba(0,0,0,.03);
    transition: box-shadow .18s, border-color .18s;
}
.carte:hover { border-color: #c3d3cb; box-shadow: 0 4px 16px rgba(11,107,79,.10); }

.cat-ico {
    flex: none; width: 46px; height: 46px; border-radius: 12px;
    display: flex; align-items: center; justify-content: center;
    background: var(--stage-bg); color: var(--stage-fg);
}
.cat-ico .ms { font-size: 24px; }
.carte-corps { flex: 1; min-width: 0; }
.carte-tete { display: flex; align-items: center; gap: 8px; margin-bottom: 3px; flex-wrap: wrap; }
.cat-label {
    font-size: 11.5px; font-weight: 700; letter-spacing: .04em;
    text-transform: uppercase; color: var(--stage-fg);
}
.carte h2 { margin: 0 0 3px; font-size: 17px; line-height: 1.28; font-weight: 700; }
.carte h2 a { color: var(--encre); text-decoration: none; }
.carte h2 a:hover { color: var(--vert); }
.carte h2 a.stretched::after { content: ""; position: absolute; inset: 0; z-index: 1; }
.carte-org { font-size: 14px; color: var(--gris); margin-bottom: 9px; }

/* Coloration par catégorie */
.cat-stage .cat-ico { background: var(--stage-bg); color: var(--stage-fg); }
.cat-stage .cat-label { color: var(--stage-fg); }
.cat-concours .cat-ico { background: var(--concours-bg); color: var(--concours-fg); }
.cat-concours .cat-label { color: var(--concours-fg); }
.cat-bourse .cat-ico { background: var(--bourse-bg); color: var(--bourse-fg); }
.cat-bourse .cat-label { color: var(--bourse-fg); }
.cat-emploi_junior .cat-ico { background: var(--emploi-bg); color: var(--emploi-fg); }
.cat-emploi_junior .cat-label { color: var(--emploi-fg); }

.meta { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 12px; color: var(--gris); font-size: 13px; }
.meta-item { display: inline-flex; align-items: center; gap: 4px; }
.meta-item .ms { font-size: 16px; }
.meta-item.proche { color: var(--or-fonce); font-weight: 700; }
.meta-item.urgent { color: #b00020; font-weight: 700; }

.verifie {
    display: inline-flex; align-items: center; gap: 3px;
    font-size: 11px; font-weight: 700; color: #0e6641;
    background: #e8f8f1; padding: 1px 7px; border-radius: 20px;
}
.verifie .ms { font-size: 13px; }

.btn-save {
    position: relative; z-index: 2; flex: none; align-self: flex-start;
    width: 38px; height: 38px; border-radius: 10px;
    border: 1px solid var(--trait); background: #fff; color: var(--gris-clair);
    cursor: pointer; display: flex; align-items: center; justify-content: center;
}
.btn-save:hover { color: var(--vert); border-color: #c3d3cb; }
.btn-save .ms { font-size: 20px; }

/* --- Détail --- */
.retour {
    display: inline-flex; align-items: center; gap: 6px;
    background: none; border: 0; color: var(--vert);
    font-weight: 600; font-size: 14.5px; padding: 6px 0; margin-bottom: 8px;
    text-decoration: none; cursor: pointer;
}
.retour .ms { font-size: 19px; }
.detail-carte {
    background: #fff; border: 1px solid var(--trait);
    border-radius: var(--rayon); overflow: hidden; box-shadow: 0 1px 3px rgba(0,0,0,.05);
}
.detail-accent { height: 6px; background: var(--stage-fg); }
.cat-stage .detail-accent { background: var(--stage-fg); }
.cat-concours .detail-accent { background: var(--concours-fg); }
.cat-bourse .detail-accent { background: var(--bourse-fg); }
.cat-emploi_junior .detail-accent { background: var(--emploi-fg); }
.detail-corps { padding: 22px 22px 24px; }
.detail-tete { display: flex; align-items: center; gap: 12px; margin-bottom: 14px; }
.detail-tete .cat-ico { width: 52px; height: 52px; border-radius: 13px; }
.detail-tete .cat-ico .ms { font-size: 28px; }
.detail h1 { margin: 0 0 4px; font-size: 24px; line-height: 1.25; font-weight: 700; text-wrap: balance; }
.detail-org { margin: 0 0 16px; color: var(--gris); font-size: 15px; }
.detail-faits { display: flex; flex-wrap: wrap; gap: 10px; margin-bottom: 18px; }
.fait {
    display: inline-flex; align-items: center; gap: 7px;
    background: var(--fond); border: 1px solid var(--trait); border-radius: 9px;
    padding: 8px 12px; font-size: 14px; color: var(--encre);
}
.fait .ms { font-size: 18px; color: var(--gris); }
.fait.proche { color: var(--or-fonce); font-weight: 700; }
.fait.proche .ms { color: var(--or-fonce); }
.fait.urgent { color: #b00020; font-weight: 700; }
.fait.urgent .ms { color: #b00020; }
.corps { white-space: pre-wrap; margin: 14px 0; font-size: 15.5px; line-height: 1.62; color: var(--encre-doux); }
.affiche { max-width: 100%; height: auto; border-radius: 8px; border: 1px solid var(--trait); margin: 4px 0 14px; }
.actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 20px; padding-top: 18px; border-top: 1px solid #eef1ef; }
.detail .signaler { text-align: center; font-size: 13px; color: var(--gris-clair); margin: 16px 0 0; }

/* --- Divers --- */
.muted { color: var(--gris); }
.vide {
    text-align: center; padding: 48px 20px; color: var(--gris);
    background: #fff; border: 1px dashed var(--trait-fort); border-radius: var(--rayon);
}
.vide .ms { font-size: 38px; color: #b6c2bc; }
.vide p { margin: 10px 0 4px; }
.vide strong { color: var(--encre); }
.alerte-info { background: #fff8e1; border: 1px solid #f0d98c; border-radius: 8px; padding: 12px; margin: 12px 0; }
.alerte-ok { background: #e7f3ee; border: 1px solid #b8ddca; border-radius: 8px; padding: 12px; margin: 12px 0; }
.alerte-danger { background: #fdecea; border: 1px solid #f3b7b0; border-radius: 8px; padding: 12px; margin: 12px 0; }

/* --- Pied de page --- */
.site-footer {
    background: var(--vert-nuit); color: #cfe0d8; margin-top: auto;
}
.footer-inner { max-width: var(--largeur); margin: 0 auto; padding: 24px 18px; font-size: 14px; display: flex; align-items: center; justify-content: space-between; gap: 24px; flex-wrap: wrap; }
.footer-logo img { height: 72px; width: auto; display: block; }
@media (max-width: 560px) {
    .footer-inner { flex-direction: column-reverse; align-items: flex-start; }
    .footer-logo img { height: 60px; }
}
.site-footer .fort { margin: 0 0 6px; color: #fff; font-weight: 600; }
.site-footer .sous { margin: 0 0 12px; opacity: .8; }
.site-footer .liens { margin: 0; font-size: 13px; opacity: .75; display: flex; gap: 14px; flex-wrap: wrap; }
.site-footer a { color: #cfe0d8; }
.site-footer a:hover { color: #fff; }

@media (prefers-reduced-motion: reduce) {
    * { transition: none !important; animation: none !important; }
}

/* --- Lot 2 : blocs du formulaire CV + admin --- */
.bloc-cv{border:1px solid var(--trait);border-radius:12px;padding:12px 14px;margin-bottom:12px;background:#fff}
.bloc-cv label{margin-top:8px}
.admin-nav{display:flex;gap:8px;flex-wrap:wrap;margin:8px 0 18px}
.admin-nav a{display:inline-flex;align-items:center;gap:6px;padding:8px 14px;border-radius:999px;
  border:1px solid var(--trait);background:#fff;color:var(--encre);font-weight:600;font-size:14px;text-decoration:none}
.admin-nav a.actif{background:var(--vert);color:#fff;border-color:var(--vert)}
.admin-nav a .ms{font-size:18px}
.stat-grille{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin:10px 0 20px}
.stat-carte{border:1px solid var(--trait);border-radius:14px;padding:16px;background:var(--carte)}
.stat-num{font-size:28px;font-weight:800;color:var(--vert);line-height:1}
.stat-lbl{font-size:13px;color:var(--encre-doux,#667);margin-top:4px}
.barre{display:flex;align-items:center;gap:10px;margin:6px 0}
.barre .lbl{flex:0 0 150px;font-size:14px}
.barre .piste{flex:1;background:#eef1f0;border-radius:999px;height:14px;overflow:hidden}
.barre .rempli{height:100%;background:var(--vert);border-radius:999px}
.barre .val{flex:0 0 46px;text-align:right;font-size:13px;color:#667}
/* Modale Postuler */
.modale-fond{position:fixed;inset:0;background:rgba(0,0,0,.45);display:none;align-items:center;justify-content:center;padding:18px;z-index:50}
.modale-fond.ouvert{display:flex}
.modale{background:#fff;border-radius:16px;max-width:460px;width:100%;padding:22px;box-shadow:0 20px 50px rgba(0,0,0,.25)}
.modale h2{margin:0 0 4px;font-size:20px}
.modale .ligne{display:flex;align-items:center;gap:10px;padding:8px 0;border-bottom:1px solid var(--trait)}
.modale .ligne .ms{color:var(--vert)}
.modale-fermer{background:none;border:none;font-size:22px;cursor:pointer;color:#999;float:right;line-height:1}

/* --- Tri du fil --- */
.tri{display:flex;gap:8px;flex-wrap:wrap;margin-top:8px}
.tri .puce{display:inline-flex;align-items:center;gap:5px;font-size:13px}
.tri .puce .ms{font-size:17px}

/* --- Mon compte --- */
.compte-tete{display:flex;align-items:center;gap:16px;margin:6px 0 16px}
.avatar{flex:0 0 auto;width:60px;height:60px;border-radius:50%;background:var(--vert);color:#fff;
  display:flex;align-items:center;justify-content:center;font-size:22px;font-weight:800;letter-spacing:1px}
.compte-info h1{font-size:22px;margin:0 0 4px}
.compte-coord{display:flex;gap:14px;flex-wrap:wrap;color:var(--gris);font-size:14px}
.compte-coord span{display:inline-flex;align-items:center;gap:5px}
.compte-coord .ms{font-size:17px}
.actions-grille{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin-bottom:16px}
.action-carte{display:flex;flex-direction:column;gap:2px;padding:16px;border:1px solid var(--trait);
  border-radius:14px;background:var(--carte);text-decoration:none;color:var(--encre);transition:border-color .15s,transform .05s}
.action-carte:hover{border-color:var(--vert);transform:translateY(-1px)}
.action-carte .ms{font-size:26px;color:var(--vert);margin-bottom:4px}
.action-carte .ac-titre{font-weight:700;font-size:15px}
.action-carte .ac-sous{font-size:13px;color:var(--gris)}

/* --- Admin : annonces --- */
.admin-tete{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:10px}
.admin-section{margin-top:22px}
.admin-section > h2{display:flex;align-items:center;gap:8px;font-size:17px;margin:0 0 4px}
.admin-section > h2 .ms{color:var(--vert);font-size:20px}
.admin-section .pastille{display:inline-flex;align-items:center;justify-content:center;min-width:22px;height:22px;
  padding:0 7px;border-radius:999px;background:var(--fond);border:1px solid var(--trait);font-size:12px;font-weight:700;color:var(--gris)}
.admin-aide{margin:0 0 8px}
.admin-titre{font-size:16px;margin:2px 0 6px;line-height:1.25}
.admin-titre a{color:var(--encre)}
.admin-titre a:hover{color:var(--vert)}
.admin-meta{display:flex;flex-wrap:wrap;gap:6px 14px;color:var(--gris);font-size:13px;margin-bottom:6px}
.admin-meta span{display:inline-flex;align-items:center;gap:4px}
.admin-meta .ms{font-size:16px}
.admin-meta .urgent{color:#b00020;font-weight:600}
.admin-extrait{margin:2px 0 10px;color:var(--encre-doux);font-size:14px;line-height:1.45}
.admin-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.admin-actions form{margin:0}
.admin-actions .btn{padding:8px 14px;font-size:14px}
.admin-actions .btn .ms{font-size:18px}
.btn.danger{color:#b00020;border-color:#f0c8c8}
.btn.danger:hover{background:#fdecea;color:#b00020}

/* --- Cartes admin (annonces) --- */
.admin-section{font-size:17px;margin:24px 0 8px}
.admin-meta{display:flex;flex-wrap:wrap;gap:6px 14px;color:var(--gris);font-size:13px;margin:4px 0}
.admin-meta span{display:inline-flex;align-items:center;gap:4px}
.admin-meta .ms{font-size:16px}
.admin-extrait{margin:6px 0 0;font-size:13.5px;color:var(--encre-doux);line-height:1.45}
.admin-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}
.admin-actions form{margin:0}
.admin-actions .btn{padding:7px 12px;font-size:14px}

/* Marqueur champ obligatoire */
.oblig{color:#b00020;font-weight:700}
