/* ═══════════════════════════════════════════════════════════
   CÔTÉ FAMILLES — shortcodes.css
   Styles propres aux shortcodes : messages globaux, formulaires
   (creer/modifier fiche/structure, login, register), autocomplete commune,
   mon compte, carte fiches, liste structures.
   Repris depuis l'ancien child/style.css.
═══════════════════════════════════════════════════════════ */

/* ═══════════════════════════════════════════════════════════
   MESSAGES GLOBAUX
═══════════════════════════════════════════════════════════ */
.ceer-message,
.mc-message {
    padding       : 12px 16px;
    margin-bottom : 14px;
    border-radius : var(--radius-sm);
    font-size     : .9rem;
    line-height   : 1.5;
    display       : flex;
    align-items   : flex-start;
    gap           : 8px;
}

.ceer-error,
.mc-error {
    background : var(--c-orange-light);
    border     : 1px solid var(--c-orange-mid);
    color      : #a52a00;
}
.ceer-success,
.mc-success {
    background : var(--c-green-light);
    border     : 1px solid var(--c-green-mid);
    color      : #077a61;
}
.ceer-info,
.mc-info {
    background : var(--c-green-light);
    border     : 1px solid var(--c-green-mid);
    color      : #0a7a63;
}
.ceer-warning {
    background : #fff8e1;
    border     : 1px solid #ffe082;
    color      : #7a5c00;
}

/* ═══════════════════════════════════════════════════════════
   FORMULAIRES STRUCTURE/FICHE — LAYOUT MODERNE
   Carte blanche centrée, sections numérotées, grille responsive.
   Mobile-first : base 1 colonne, ≥640px → 2 colonnes pour les paires.
═══════════════════════════════════════════════════════════ */

.cf-form-card {
    max-width    : 880px;
    margin       : 0 auto var(--sp-6);
    background   : var(--c-white);
    border       : 1px solid var(--c-border);
    border-radius: var(--radius-lg);
    box-shadow   : var(--shadow-sm);
    padding      : var(--sp-5) var(--sp-4);
}
@media (min-width: 640px) {
    .cf-form-card { padding: var(--sp-6) var(--sp-6); }
}
@media (min-width: 900px) {
    .cf-form-card { padding: var(--sp-7) var(--sp-7); }
}

.cf-form-section {
    padding-bottom: var(--sp-5);
    margin-bottom : var(--sp-5);
    border-bottom : 1px dashed var(--c-border-light);
}
.cf-form-section:last-of-type {
    padding-bottom: 0;
    margin-bottom : var(--sp-4);
    border-bottom : 0;
}

.cf-form-section__head {
    display      : flex;
    align-items  : baseline;
    gap          : var(--sp-3);
    margin-bottom: var(--sp-4);
}
.cf-form-section__num {
    flex-shrink  : 0;
    font-family  : 'Cabin Sketch', cursive, sans-serif;
    font-weight  : 700;
    font-size    : 1.4rem;
    line-height  : 1;
    color        : var(--c-green);
    letter-spacing: 0;
}
.cf-form-section__title {
    margin       : 0;
    font-size    : 1.1rem;
    font-weight  : 700;
    color        : var(--c-text);
    letter-spacing: 0;
    text-transform: none;
    padding-bottom: 6px;
    border-bottom: 2px solid var(--c-green-light);
    flex         : 1 1 auto;
    min-width    : 0;
}
.cf-form-section__help {
    margin    : -8px 0 var(--sp-3);
    font-size : .85rem;
    color     : var(--c-text-muted);
    line-height: 1.45;
}

/* Grille mobile-first : 12 colonnes au-delà de 640px, 1 colonne en dessous. */
.cf-form-grid {
    display              : grid;
    grid-template-columns: 1fr;
    gap                  : var(--sp-3) var(--sp-4);
}
@media (min-width: 640px) {
    .cf-form-grid {
        grid-template-columns: repeat(12, 1fr);
    }
    .cf-form-field--full      { grid-column: span 12; }
    .cf-form-field--half      { grid-column: span 6;  }
    .cf-form-field--third     { grid-column: span 4;  }
    .cf-form-field--twothirds { grid-column: span 8;  }
}

.cf-form-field {
    display       : flex;
    flex-direction: column;
    gap           : 6px;
    min-width     : 0;
}
.cf-form-field label {
    font-size  : .88rem;
    font-weight: 600;
    color      : var(--c-text);
}
.cf-form-field input[type="text"],
.cf-form-field input[type="email"],
.cf-form-field input[type="tel"],
.cf-form-field input[type="url"],
.cf-form-field select {
    max-width: 100%;
    width    : 100%;
}

/* Champ "file" : style minimal cohérent */
.cf-form-file {
    padding      : 8px 10px;
    border       : 1.5px dashed var(--c-border);
    border-radius: var(--radius-sm);
    background   : var(--c-bg);
    font-size    : .88rem;
    cursor       : pointer;
    width        : 100%;
    box-sizing   : border-box;
}
.cf-form-file::file-selector-button {
    margin-right : 12px;
    padding      : 6px 12px;
    background   : var(--c-green);
    color        : var(--c-white);
    border       : 0;
    border-radius: var(--radius-sm);
    font-weight  : 600;
    font-size    : .82rem;
    cursor       : pointer;
}
.cf-form-file::file-selector-button:hover { background: var(--c-green-dark); }

/* Liste verticale des communes d'intervention */
.cf-communes-list {
    display       : flex;
    flex-direction: column;
    gap           : 8px;
    margin-bottom : 10px;
}
.cf-communes-list .commune-intervention-row {
    display    : flex;
    align-items: stretch;
    gap        : 8px;
    margin     : 0;
}
.cf-communes-list .ceer-commune-wrap {
    max-width: 100%;
    flex     : 1 1 auto;
}
.cf-communes-list .suppr-commune {
    flex-shrink   : 0;
    width         : 36px;
    height        : auto;
    margin        : 0 !important;
    padding       : 0;
    background    : var(--c-white);
    color         : var(--c-orange);
    border        : 1.5px solid var(--c-border);
    border-radius : var(--radius-sm);
    font-size     : 1rem;
    font-weight   : 700;
    cursor        : pointer;
    transition    : background .15s, color .15s, border-color .15s;
}
.cf-communes-list .suppr-commune:hover {
    background  : var(--c-orange-light);
    border-color: var(--c-orange);
}

.cf-form-add-btn {
    display       : inline-flex;
    align-items   : center;
    gap           : 6px;
    padding       : 8px 14px;
    background    : var(--c-white);
    color         : var(--c-green-dark);
    border        : 1.5px dashed var(--c-green-mid);
    border-radius : var(--radius-sm);
    font-size     : .88rem;
    font-weight   : 600;
    cursor        : pointer;
    transition    : background .15s, border-color .15s;
}
.cf-form-add-btn:hover {
    background  : var(--c-green-light);
    border-color: var(--c-green);
    border-style: solid;
}

/* Barre d'actions en bas du formulaire */
.cf-form-actions {
    display     : flex;
    flex-direction: column;
    gap         : var(--sp-3);
    align-items : stretch;
    padding-top : var(--sp-5);
    border-top  : 1px solid var(--c-border-light);
}
@media (min-width: 640px) {
    .cf-form-actions {
        flex-direction: row;
        justify-content: flex-end;
        align-items   : center;
    }
}

.cf-form-submit {
    padding       : 12px 28px;
    background    : var(--c-green);
    color         : var(--c-white);
    border        : 0;
    border-radius : var(--radius-sm);
    font-size     : 1rem;
    font-weight   : 700;
    font-family   : inherit;
    cursor        : pointer;
    transition    : background .15s, box-shadow .15s, transform .1s;
    letter-spacing: .02em;
}
.cf-form-submit:hover  { background: var(--c-green-dark); box-shadow: var(--shadow-green); }
.cf-form-submit:active { transform: scale(.98); }

.cf-form-cancel {
    display       : inline-flex;
    align-items   : center;
    justify-content: center;
    padding       : 10px 18px;
    color         : var(--c-text-muted);
    font-size     : .92rem;
    font-weight   : 500;
    text-decoration: none;
    border-radius : var(--radius-sm);
    transition    : color .15s, background .15s;
}
.cf-form-cancel:hover {
    color     : var(--c-text);
    background: var(--c-bg);
}

/* ═══════════════════════════════════════════════════════════
   FORMULAIRES — BASE COMMUNE
═══════════════════════════════════════════════════════════ */
.ceer-fiche-form label,
.creer-structure-form label {
    font-weight : 600;
    color       : var(--c-text);
}

.required { color: var(--c-orange); }

.ceer-field-error,
.cr-field-error {
    display    : block;
    color      : var(--c-orange);
    font-size  : .78rem;
    margin-top : 4px;
    min-height : 1em;
    font-weight: 500;
}

.ceer-input-error {
    border-color : var(--c-orange-mid) !important;
    background   : var(--c-orange-light) !important;
    outline-color: var(--c-orange) !important;
}

/* ── Inputs, selects, textareas ── */
.ceer-fiche-form input[type="text"],
.ceer-fiche-form input[type="email"],
.ceer-fiche-form input[type="tel"],
.ceer-fiche-form input[type="url"],
.ceer-fiche-form select,
.ceer-fiche-form textarea,
.creer-structure-form input[type="text"],
.creer-structure-form input[type="email"],
.creer-structure-form input[type="tel"],
.creer-structure-form input[type="url"],
.creer-structure-form select,
.creer-structure-form textarea {
    border        : 1.5px solid var(--c-border);
    border-radius : var(--radius-sm);
    padding       : 9px 12px;
    font-size     : .92rem;
    color         : var(--c-text);
    background    : var(--c-white);
    transition    : border-color var(--transition), box-shadow var(--transition);
    width         : 100%;
    appearance    : none;
}

.ceer-fiche-form input:focus,
.ceer-fiche-form select:focus,
.ceer-fiche-form textarea:focus,
.creer-structure-form input:focus,
.creer-structure-form select:focus,
.creer-structure-form textarea:focus {
    outline      : none;
    border-color : var(--c-green);
    box-shadow   : 0 0 0 3px rgba(16,196,159,.15);
}

/* ── Boutons submit ── */
.ceer-fiche-form button[type="submit"],
.creer-structure-form button[type="submit"] {
    background    : var(--c-green);
    color         : #fff;
    border        : none;
    border-radius : var(--radius-sm);
    padding       : 10px 24px;
    font-size     : .92rem;
    font-weight   : 700;
    cursor        : pointer;
    transition    : background var(--transition), box-shadow var(--transition), transform .1s;
    letter-spacing: .02em;
}
.ceer-fiche-form button[type="submit"]:hover,
.creer-structure-form button[type="submit"]:hover {
    background : var(--c-green-dark);
    box-shadow : var(--shadow-green);
}
.ceer-fiche-form button[type="submit"]:active,
.creer-structure-form button[type="submit"]:active {
    transform: scale(.98);
}

/* ── Sélecteur de paires catégorie / sous-catégorie ── */
.cf-cat-pairs {
    border : 0;
    padding: 0;
    margin : 0 0 var(--sp-4);
}
.cf-cat-pairs > legend {
    padding      : 0 0 6px;
    font-weight  : 600;
    font-size    : .98rem;
    color        : var(--c-text);
}
.cf-cat-pairs > legend .required { color: var(--c-orange); }
.cf-cat-pairs__help {
    margin     : 0 0 10px;
    font-size  : .82rem;
    color      : var(--c-text-muted);
    line-height: 1.45;
}
.cf-cat-pair-row {
    display      : flex;
    flex-wrap    : wrap;
    align-items  : stretch;
    gap          : 8px;
    margin-bottom: 8px;
}
.cf-cat-pair-row > select {
    flex     : 1 1 200px;
    min-width: 0;
}
.cf-cat-pair-row__remove {
    flex-shrink   : 0;
    width         : 36px;
    background    : var(--c-white);
    color         : var(--c-orange);
    border        : 1.5px solid var(--c-border);
    border-radius : var(--radius-sm);
    font-size     : 1rem;
    font-weight   : 700;
    cursor        : pointer;
    transition    : background .15s, color .15s, border-color .15s;
}
.cf-cat-pair-row__remove:hover {
    background  : var(--c-orange-light);
    border-color: var(--c-orange);
}
.cf-cat-pairs #ajouter-cat-pair { margin-top: 6px; }

/* ── Sélecteur de publics (taxo public_fiche) — pastilles colorées ── */
.ceer-publics-fieldset {
    border       : 0;
    padding      : 0;
    margin       : 0 0 var(--sp-4);
}
.ceer-publics-fieldset > legend {
    padding      : 0 0 8px;
    font-weight  : 600;
    font-size    : .95rem;
    color        : var(--c-text);
}
.ceer-publics-fieldset > legend .required { color: var(--c-orange); }
.ceer-publics-help {
    margin       : 0 0 10px;
    font-size    : .82rem;
    color        : var(--c-text-muted);
}
.ceer-publics-grid {
    display      : flex;
    flex-wrap    : wrap;
    gap          : 8px;
    padding      : 4px;
    margin       : -4px;
    border-radius: var(--radius-md);
    transition   : box-shadow .2s;
}
.ceer-public-pill {
    display      : inline-flex;
    align-items  : center;
    gap          : 8px;
    padding      : 8px 14px;
    border       : 1.5px solid var(--c-border);
    border-radius: var(--radius-pill);
    background   : var(--c-white);
    cursor       : pointer;
    font-size    : .9rem;
    font-weight  : 500;
    color        : var(--c-text);
    transition   : background .15s, border-color .15s, box-shadow .15s, color .15s;
    user-select  : none;
    position     : relative;
}
.ceer-public-pill input[type="checkbox"] {
    position     : absolute;
    opacity      : 0;
    pointer-events: none;
    width        : 1px;
    height       : 1px;
}
.ceer-public-pill__dot {
    width        : 12px;
    height       : 12px;
    border-radius: 50%;
    background   : var(--c-pub, var(--c-green));
    box-shadow   : inset 0 0 0 1px rgba(0,0,0,.06);
    flex-shrink  : 0;
}
.ceer-public-pill:hover { border-color: var(--c-pub, var(--c-green)); }
.ceer-public-pill.is-checked,
.ceer-public-pill:has(input:checked) {
    background  : var(--c-pub, var(--c-green));
    border-color: var(--c-pub, var(--c-green));
    color       : var(--c-white);
    box-shadow  : 0 2px 6px color-mix(in srgb, var(--c-pub, var(--c-green)) 40%, transparent);
}
.ceer-public-pill.is-checked .ceer-public-pill__dot,
.ceer-public-pill:has(input:checked) .ceer-public-pill__dot {
    background : rgba(255,255,255,.95);
    box-shadow : none;
}
.ceer-public-pill input:focus-visible + .ceer-public-pill__dot,
.ceer-public-pill:focus-within {
    outline      : 2px solid color-mix(in srgb, var(--c-pub, var(--c-green)) 55%, transparent);
    outline-offset: 2px;
    border-radius: var(--radius-pill);
}
/* Texte plus lisible sur pastilles "grossesse" (vert très clair) */
.ceer-public-pill[data-slug="grossesse"].is-checked,
.ceer-public-pill[data-slug="grossesse"]:has(input:checked) {
    color: var(--c-green-dark);
    box-shadow: 0 0 0 1.5px var(--c-green-dark) inset,
                0 2px 6px color-mix(in srgb, var(--c-green-dark) 25%, transparent);
}
.ceer-public-pill[data-slug="grossesse"].is-checked .ceer-public-pill__dot,
.ceer-public-pill[data-slug="grossesse"]:has(input:checked) .ceer-public-pill__dot {
    background: var(--c-green-dark);
}
.ceer-publics-fieldset.ceer-input-error .ceer-publics-grid {
    box-shadow: 0 0 0 2px var(--c-orange);
}

/* ── Boutons secondaires ── */
.creer-structure-form button[type="button"],
#ajouter-commune {
    background    : var(--c-white);
    color         : var(--c-green);
    border        : 1.5px solid var(--c-green-mid);
    border-radius : var(--radius-sm);
    padding       : 7px 16px;
    font-size     : .87rem;
    font-weight   : 600;
    cursor        : pointer;
    transition    : background var(--transition), border-color var(--transition);
}
.creer-structure-form button[type="button"]:hover,
#ajouter-commune:hover {
    background   : var(--c-green-light);
    border-color : var(--c-green);
}

/* ── Sections des formulaires structure ── */
.creer-structure-form h3 {
    margin-top    : 28px;
    margin-bottom : 12px;
    padding-bottom: 8px;
    border-bottom : 2px solid var(--c-green-light);
    font-size     : .82rem;
    font-weight   : 700;
    text-transform: uppercase;
    letter-spacing: .08em;
    color         : var(--c-green);
}

.commune-intervention-row { margin-bottom: 6px; }

.suppr-commune {
    background    : var(--c-orange-light) !important;
    color         : var(--c-orange) !important;
    border        : 1.5px solid var(--c-orange-mid) !important;
    border-radius : var(--radius-sm) !important;
    padding       : 6px 10px !important;
    font-size     : .8rem !important;
    cursor        : pointer;
    transition    : background var(--transition);
    font-weight   : 600 !important;
}
.suppr-commune:hover {
    background : var(--c-orange-mid) !important;
}

/* ═══════════════════════════════════════════════════════════
   AUTOCOMPLETE COMMUNE
═══════════════════════════════════════════════════════════ */
/* Hiding : deux mécanismes selon le shortcode :
   - structure (creer/modifier-structure.php) → bascule `list.hidden = true/false`
   - fiche    (creer/modifier-fiche.php)     → bascule `style.display = 'block/none'`
   On retire `display: none` de la règle de base (qui battait `[hidden]` par
   spécificité de classe vs attribut) et on hide les ul vides via `:empty`. */
#commune_fiche_suggestions,
.ceer-commune-suggestions {
    position      : absolute;
    top           : 100%;
    left          : 0;
    right         : 0;
    background    : var(--c-white);
    border        : 1.5px solid var(--c-green-mid);
    border-top    : none;
    border-radius : 0 0 var(--radius-sm) var(--radius-sm);
    list-style    : none;
    margin        : 0;
    padding       : 0;
    z-index       : 999;
    max-height    : 220px;
    overflow-y    : auto;
    box-shadow    : var(--shadow-md);
}
#commune_fiche_suggestions:empty,
.ceer-commune-suggestions:empty { display: none; }

#commune_fiche_suggestions li,
.ceer-commune-suggestions li {
    padding       : 9px 13px;
    cursor        : pointer;
    font-size     : .88rem;
    color         : var(--c-text);
    border-bottom : 1px solid var(--c-green-light);
    transition    : background var(--transition);
}
#commune_fiche_suggestions li:last-child,
.ceer-commune-suggestions li:last-child { border-bottom: none; }

#commune_fiche_suggestions li:hover,
#commune_fiche_suggestions li.active,
.ceer-commune-suggestions li:hover,
.ceer-commune-suggestions li.ceer-active {
    background : var(--c-green-light);
    color      : #077a61;
}

.ceer-commune-suggestions li.ceer-loading {
    color      : var(--c-text-muted);
    font-style : italic;
}
.ceer-commune-suggestions li.ceer-no-result {
    color      : var(--c-orange);
    font-style : italic;
}

/* ═══════════════════════════════════════════════════════════
   MON COMPTE
═══════════════════════════════════════════════════════════ */
.mc-wrap *,
.mc-wrap *::before,
.mc-wrap *::after { box-sizing: border-box; }

.mc-wrap {
    max-width   : 960px;
    margin      : 0 auto;
    padding     : 0 16px 60px;
    font-family : -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
    color       : var(--c-text);
    line-height : 1.6;
}

/* ── Header ── */
.mc-header {
    display         : flex;
    align-items     : center;
    justify-content : space-between;
    gap             : 16px;
    background      : var(--c-white);
    border          : 1.5px solid var(--c-border);
    border-left     : 4px solid var(--c-green);
    border-radius   : var(--radius-md);
    padding         : 20px 28px;
    margin-bottom   : 24px;
    box-shadow      : var(--shadow-sm);
}
.mc-header__info    { display: flex; flex-direction: column; gap: 2px; }
.mc-header__name    { font-size: 1.2rem; font-weight: 700; color: var(--c-text); line-height: 1.2; }
.mc-header__email   { font-size: .84rem; color: var(--c-text-muted); }

.mc-header__logout {
    display         : inline-flex;
    align-items     : center;
    gap             : 6px;
    background      : var(--c-white);
    border          : 1.5px solid var(--c-border);
    color           : var(--c-text-light);
    padding         : 7px 16px;
    border-radius   : var(--radius-sm);
    font-size       : .83rem;
    font-weight     : 600;
    text-decoration : none;
    transition      : border-color var(--transition), color var(--transition);
    white-space     : nowrap;
}
.mc-header__logout:hover {
    border-color    : var(--c-orange);
    color           : var(--c-orange);
    text-decoration : none;
}

/* ── Layout ── */
.mc-layout {
    display               : grid;
    grid-template-columns : 1fr 1fr;
    gap                   : 20px;
    align-items           : start;
}
.mc-col-full { grid-column: 1 / -1; }

/* ── Cards ── */
.mc-card {
    background    : var(--c-white);
    border        : 1.5px solid var(--c-border);
    border-radius : var(--radius-md);
    overflow      : hidden;
    box-shadow    : var(--shadow-sm);
}
.mc-card__head {
    display         : flex;
    align-items     : center;
    justify-content : space-between;
    gap             : 10px;
    padding         : 14px 20px;
    background      : var(--c-bg);
    border-bottom   : 1.5px solid var(--c-border);
}
.mc-card__title {
    font-size      : .76rem;
    font-weight    : 700;
    text-transform : uppercase;
    letter-spacing : .09em;
    color          : var(--c-green);
    display        : flex;
    align-items    : center;
    gap            : 7px;
    margin         : 0;
}
.mc-card__action {
    font-size      : .8rem;
    font-weight    : 600;
    color          : var(--c-green);
    text-decoration: none;
    padding        : 4px 12px;
    border         : 1.5px solid var(--c-green-mid);
    border-radius  : var(--radius-sm);
    background     : var(--c-white);
    transition     : background var(--transition);
    white-space    : nowrap;
}
.mc-card__action:hover {
    background     : var(--c-green-light);
    text-decoration: none;
}
.mc-card__body { padding: 20px; }

/* ── Structure dans mon compte ── */
.mc-structure       { display: flex; gap: 16px; align-items: flex-start; }
.mc-structure__logo {
    width          : 64px;
    height         : 64px;
    border-radius  : var(--radius-sm);
    border         : 1.5px solid var(--c-border);
    background     : var(--c-green-light);
    display        : flex;
    align-items    : center;
    justify-content: center;
    font-size      : 1.8rem;
    flex-shrink    : 0;
    overflow       : hidden;
}
.mc-structure__logo img { width: 100%; height: 100%; object-fit: contain; }
.mc-structure__info     { flex: 1; min-width: 0; }

.mc-structure__name {
    font-size      : 1rem;
    font-weight    : 700;
    color          : var(--c-text);
    margin         : 0 0 5px;
    display        : block;
    text-decoration: none;
    transition     : color var(--transition);
}
.mc-structure__name:hover {
    color          : var(--c-green);
    text-decoration: underline;
}
.mc-structure__badge {
    display        : inline-block;
    background     : var(--c-green-light);
    color          : #077a61;
    font-size      : .68rem;
    font-weight    : 700;
    padding        : 2px 9px;
    border-radius  : var(--radius-pill);
    letter-spacing : .04em;
    text-transform : uppercase;
    margin-bottom  : 8px;
}
.mc-structure__meta {
    display        : flex;
    flex-direction : column;
    gap            : 3px;
    font-size      : .82rem;
    color          : var(--c-text-light);
}
.mc-structure__actions {
    display        : flex;
    gap            : 10px;
    flex-wrap      : wrap;
    margin-top     : 18px;
    padding-top    : 16px;
    border-top     : 1.5px solid var(--c-border-light);
}

/* ── Boutons mc ── */
.mc-btn {
    display        : inline-flex;
    align-items    : center;
    gap            : 6px;
    padding        : 8px 18px;
    border-radius  : var(--radius-sm);
    font-size      : .84rem;
    font-weight    : 600;
    text-decoration: none;
    transition     : opacity var(--transition), box-shadow var(--transition);
    border         : none;
    cursor         : pointer;
    white-space    : nowrap;
}
.mc-btn:hover        { opacity: .85; text-decoration: none; box-shadow: var(--shadow-sm); }
.mc-btn--primary     { background: var(--c-green); color: #fff; }
.mc-btn--secondary   { background: var(--c-green-light); color: #077a61; border: 1.5px solid var(--c-green-mid); }
.mc-btn--edit        { background: var(--c-orange-light); color: var(--c-orange); border: 1.5px solid var(--c-orange-mid); }

/* ── Empty states ── */
.mc-empty        { text-align: center; padding: 32px 20px; }
.mc-empty__icon  { font-size: 2.4rem; margin-bottom: 12px; }
.mc-empty__text  { font-size: .9rem; margin-bottom: 18px; color: var(--c-text-muted); }

/* ── Profil ── */
.mc-profile-rows { display: flex; flex-direction: column; gap: 12px; }
.mc-profile-row  { display: flex; align-items: flex-start; gap: 12px; }
.mc-profile-row__label {
    font-size      : .72rem;
    font-weight    : 700;
    text-transform : uppercase;
    letter-spacing : .05em;
    color          : var(--c-text-muted);
    min-width      : 110px;
    padding-top    : 2px;
}
.mc-profile-row__value {
    font-size  : .9rem;
    color      : var(--c-text);
    word-break : break-word;
}

/* ── Changement de mot de passe ── */
.mc-mdp            { margin-top: 18px; }
.mc-mdp > summary  { list-style: none; cursor: pointer; display: inline-flex; }
.mc-mdp > summary::-webkit-details-marker { display: none; }
.mc-mdp[open] > summary { margin-bottom: 14px; }
.mc-mdp__form      { display: flex; flex-direction: column; gap: 6px; max-width: 360px; }
.mc-mdp__form label { font-size: .82rem; font-weight: 600; color: var(--c-text-light); margin-top: 6px; }
.mc-mdp__form input {
    font-size     : 16px; /* pas de zoom forcé sur iPhone */
    padding       : 10px 12px;
    border        : 1.5px solid var(--c-green-mid);
    border-radius : var(--radius-sm);
    width         : 100%;
    box-sizing    : border-box;
}
.mc-mdp__form button { margin-top: 12px; align-self: flex-start; border: 0; cursor: pointer; }

/* ── Badge compteur ── */
.mc-count-badge {
    background    : var(--c-green);
    color         : #fff;
    font-size     : .66rem;
    font-weight   : 800;
    padding       : 1px 8px;
    border-radius : 10px;
    line-height   : 1.7;
}

/* ── Fiches liste ── */
.mc-fiches-list { display: flex; flex-direction: column; gap: 10px; }

.mc-fiche-item {
    display        : flex;
    align-items    : center;
    gap            : 12px;
    padding        : 12px 14px;
    background     : var(--c-bg);
    border         : 1.5px solid var(--c-border);
    border-radius  : var(--radius-sm);
    transition     : border-color var(--transition), box-shadow var(--transition);
}
.mc-fiche-item:hover {
    border-color : var(--c-green-mid);
    box-shadow   : 0 2px 10px rgba(16,196,159,.1);
}
.mc-fiche-item--pending {
    border-left  : 3px solid var(--c-green);
    background   : var(--c-green-light);
}

.mc-fiche-item__icon {
    width          : 38px;
    height         : 38px;
    border-radius  : var(--radius-sm);
    background     : var(--c-green-light);
    display        : flex;
    align-items    : center;
    justify-content: center;
    font-size      : 1.1rem;
    flex-shrink    : 0;
    color          : var(--c-green);
}
.mc-fiche-item__info  { flex: 1; min-width: 0; }
.mc-fiche-item__name {
    font-weight    : 700;
    font-size      : .9rem;
    color          : var(--c-text);
    text-decoration: none;
    white-space    : nowrap;
    overflow       : hidden;
    text-overflow  : ellipsis;
    display        : block;
    transition     : color var(--transition);
}
.mc-fiche-item__name:hover { color: var(--c-green); text-decoration: underline; }

.mc-fiche-item__meta {
    font-size     : .76rem;
    color         : var(--c-text-muted);
    margin-top    : 2px;
    white-space   : nowrap;
    overflow      : hidden;
    text-overflow : ellipsis;
}
.mc-fiche-item__desc {
    font-size     : .76rem;
    color         : var(--c-text-muted);
    margin-top    : 2px;
    font-style    : italic;
    white-space   : nowrap;
    overflow      : hidden;
    text-overflow : ellipsis;
}
.mc-fiche-item__actions { display: flex; gap: 6px; flex-shrink: 0; }

/* ── Boutons fiches ── */
.mc-fiche-btn {
    display        : inline-flex;
    align-items    : center;
    gap            : 4px;
    padding        : 5px 11px;
    border-radius  : var(--radius-sm);
    font-size      : .76rem;
    font-weight    : 600;
    text-decoration: none;
    white-space    : nowrap;
    transition     : opacity var(--transition), background var(--transition);
    border         : 1.5px solid transparent;
}
.mc-fiche-btn:hover        { opacity: .85; text-decoration: none; }
.mc-fiche-btn--view        { background: var(--c-green-light); color: #077a61; border-color: var(--c-green-mid); }
.mc-fiche-btn--edit        { background: var(--c-orange-light); color: var(--c-orange); border-color: var(--c-orange-mid); }
.mc-fiche-btn--delete      { background: var(--c-white); color: var(--c-text-muted); border-color: var(--c-border); }
.mc-fiche-btn--delete:hover {
    background   : var(--c-orange-light);
    color        : var(--c-orange);
    border-color : var(--c-orange-mid);
    opacity      : 1;
}

/* ── Pending badge ── */
.mc-fiche-badge-pending {
    display        : inline-block;
    background     : var(--c-white);
    color          : #077a61;
    border         : 1.5px solid var(--c-green-mid);
    font-size      : .66rem;
    font-weight    : 700;
    padding        : 1px 8px;
    border-radius  : var(--radius-pill);
    letter-spacing : .04em;
    text-transform : uppercase;
    margin-top     : 3px;
    vertical-align : middle;
}

/* ── No fiches ── */
.mc-no-fiches {
    text-align : center;
    padding    : 28px 20px;
    color      : var(--c-text-muted);
    font-size  : .9rem;
}

/* ═══════════════════════════════════════════════════════════
   CARTE FICHES
═══════════════════════════════════════════════════════════ */
.cf-carte-wrap {
    font-family : -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
}

/* ── Bandeau « catégorie active » ── */
.cf-cat-active {
    display       : flex;
    flex-wrap     : wrap;
    align-items   : center;
    gap           : 12px;
    padding       : 14px 16px;
    background    : var(--c-white);
    border        : 2px solid var(--c-border);
    border-radius : var(--radius-md);
    box-shadow    : var(--shadow-sm);
}
.cf-cat-active[hidden] { display: none; }
.cf-cat-active__back {
    display       : inline-flex;
    align-items   : center;
    gap           : 6px;
    padding       : 8px 14px;
    border        : 2px solid var(--c-border);
    border-radius : var(--radius-pill);
    background    : var(--c-bg);
    color         : var(--c-text-light);
    font-size     : .85rem;
    font-weight   : 600;
    cursor        : pointer;
    transition    : background .15s ease, border-color .15s ease, color .15s ease;
}
.cf-cat-active__back:hover,
.cf-cat-active__back:focus-visible {
    background   : var(--c-green-light);
    border-color : var(--c-green);
    color        : var(--c-green-dark);
    outline      : none;
}
.cf-cat-active__pill {
    display       : inline-flex;
    align-items   : center;
    gap           : 8px;
    padding       : 8px 16px;
    border-radius : var(--radius-pill);
    background    : color-mix(in srgb, var(--cat-color, var(--c-green)) 14%, var(--c-white));
    border        : 2px solid var(--cat-color, var(--c-green));
    color         : var(--c-text);
    font-size     : .9rem;
    font-weight   : 600;
}
.cf-cat-active__dot {
    width         : 10px;
    height        : 10px;
    border-radius : 50%;
    flex-shrink   : 0;
}
.cf-cat-active__count {
    display       : inline-flex;
    align-items   : center;
    justify-content: center;
    min-width     : 22px;
    height        : 22px;
    padding       : 0 8px;
    border-radius : var(--radius-pill);
    background    : var(--cat-color, var(--c-green));
    color         : var(--c-white);
    font-size     : .75rem;
    font-weight   : 700;
}

/* ── Filtre des types en overlay carte ────────────────────────────────────
   Panneau flottant top-right, compact, double rôle :
     1. Filtre cliquable (toggle activités / structures)
     2. Légende — chaque pill montre exactement le marker tel qu'il
        apparaît sur la carte (mini-réplique SVG du marqueur réel).
   État inactif : opacité réduite + dim. État actif : pleine opacité. */
.cf-types-filtres {
    position       : absolute;
    top            : 12px;
    right          : 12px;
    z-index        : 600;
    display        : flex;
    flex-direction : column;
    gap            : 2px;
    padding        : 4px;
    background     : rgba(255, 255, 255, .96);
    border         : 1px solid rgba(0, 0, 0, .08);
    border-radius  : 10px;
    box-shadow     : 0 2px 12px rgba(0, 0, 0, .14);
    backdrop-filter: blur(6px);
    -webkit-backdrop-filter: blur(6px);
    min-width      : 168px;
    font-family    : inherit;
}

.cf-type-pill {
    display     : flex;
    align-items : center;
    gap         : 8px;
    padding     : 7px 10px 7px 8px;
    border      : 0;
    border-radius: 8px;
    background  : transparent;
    color       : var(--c-text);
    font-size   : .82rem;
    font-weight : 600;
    cursor      : pointer;
    text-align  : left;
    width       : 100%;
    transition  : background var(--transition), color var(--transition);
    -webkit-tap-highlight-color: transparent;
}
.cf-type-pill:hover    { background: var(--c-bg); }
.cf-type-pill:focus    { outline: none; }
.cf-type-pill:focus-visible {
    outline       : 2px solid var(--c-green);
    outline-offset: -1px;
}

.cf-type-pill__marker {
    flex-shrink     : 0;
    width           : 18px;
    height          : 22px;
    display         : inline-flex;
    align-items     : center;
    justify-content : center;
    transition      : filter var(--transition), opacity var(--transition);
}
.cf-type-pill__marker svg { display: block; }

.cf-type-pill__label {
    flex      : 1;
    min-width : 0;
    color     : inherit;
}

.cf-type-pill__count {
    flex-shrink   : 0;
    background    : var(--c-border-light);
    color         : var(--c-text-muted);
    font-size     : .68rem;
    font-weight   : 700;
    padding       : 1px 7px;
    border-radius : var(--radius-pill);
    line-height   : 1.6;
    min-width     : 22px;
    text-align    : center;
    transition    : background var(--transition), color var(--transition);
}

/* État inactif : marker grisé, label & count en gris doux */
.cf-type-pill:not(.is-active) {
    color : var(--c-text-muted);
}
.cf-type-pill:not(.is-active) .cf-type-pill__marker {
    filter : grayscale(.85) opacity(.45);
}
.cf-type-pill:not(.is-active):hover .cf-type-pill__marker {
    filter : grayscale(.5) opacity(.7);
}

/* État actif : count fond foncé qui rappelle le caractère sélectionné */
.cf-type-pill.is-active .cf-type-pill__count {
    background : var(--c-text);
    color      : #fff;
}

/* Sur petits écrans : on resserre encore */
@media (max-width: 600px) {
    .cf-types-filtres {
        top      : 8px;
        right    : 8px;
        min-width: 148px;
    }
    .cf-type-pill {
        font-size : .76rem;
        padding   : 6px 8px 6px 6px;
        gap       : 6px;
    }
    .cf-type-pill__marker { width: 16px; height: 20px; }
    .cf-type-pill__count  { font-size: .64rem; padding: 1px 6px; }
}

/* ── Base filtres ── */
.cf-filtres {
    display     : flex;
    flex-wrap   : wrap;
    gap         : 8px;
    padding     : 12px 16px;
}

/* ── Catégories parentes ── */
#cf-filtres-parents {
    background    : var(--c-white);
    border        : 2px solid var(--c-border);
    border-radius : var(--radius-md);
    padding       : 14px 16px;
    box-shadow    : var(--shadow-sm);
}
#cf-filtres-parents::before {
    content       : "CATÉGORIES";
    display       : block;
    width         : 100%;
    font-size     : .65rem;
    font-weight   : 700;
    letter-spacing: 1.4px;
    color         : var(--c-text-muted);
    margin-bottom : 8px;
}
#cf-filtres-parents .cf-filtre-btn {
    display      : inline-flex;
    align-items  : center;
    gap          : 6px;
    padding      : 8px 16px;
    border       : 2px solid transparent;
    border-radius: var(--radius-pill);
    background   : var(--c-bg);
    color        : var(--c-text-light);
    font-size    : .85rem;
    font-weight  : 600;
    cursor       : pointer;
    transition   : all var(--transition);
    white-space  : nowrap;
}
#cf-filtres-parents .cf-filtre-btn:hover {
    background   : var(--c-border-light);
    color        : var(--c-text);
    transform    : translateY(-1px);
    box-shadow   : var(--shadow-sm);
}
#cf-filtres-parents .cf-filtre-btn.active {
    background   : var(--cat-color, var(--c-green));
    border-color : var(--cat-color, var(--c-green));
    color        : #fff;
    box-shadow   : 0 4px 12px rgba(0,0,0,.15);
}
#cf-filtres-parents .cf-filtre-btn[data-cat="all"].active {
    background   : var(--c-text);
    border-color : var(--c-text);
}

/* ── Sous-catégories ── */
#cf-filtres-enfants {
    position      : relative;
    background    : var(--c-green-light);
    border        : 2px dashed var(--c-green-mid);
    border-radius : var(--radius-md);
    padding       : 12px 16px;
    margin-top    : 4px;
}
#cf-filtres-enfants::before {
    content       : "AFFINER PAR SOUS-CATÉGORIE";
    display       : block;
    width         : 100%;
    font-size     : .65rem;
    font-weight   : 700;
    letter-spacing: 1.4px;
    color         : var(--c-green-dark);
    margin-bottom : 8px;
    opacity       : .7;
}
#cf-filtres-enfants::after {
    content      : "";
    position     : absolute;
    top          : -10px;
    left         : 28px;
    width        : 0;
    height       : 0;
    border-left  : 9px solid transparent;
    border-right : 9px solid transparent;
    border-bottom: 10px solid var(--c-green-mid);
}

.cf-filtre-sous-btn {
    display      : inline-flex;
    align-items  : center;
    gap          : 5px;
    padding      : 5px 12px;
    border       : 1.5px solid var(--c-green-mid);
    border-radius: var(--radius-sm);
    background   : var(--c-white);
    color        : var(--c-green-dark);
    font-size    : .8rem;
    font-weight  : 500;
    cursor       : pointer;
    transition   : all var(--transition);
    white-space  : nowrap;
}
.cf-filtre-sous-btn:hover {
    background   : var(--c-white);
    border-color : var(--cat-color, var(--c-green));
    color        : var(--c-green-dark);
    transform    : translateY(-1px);
    box-shadow   : var(--shadow-sm);
}
.cf-filtre-sous-btn.active {
    background   : var(--cat-color, var(--c-green));
    border-color : var(--cat-color, var(--c-green));
    color        : #fff;
    font-weight  : 600;
    box-shadow   : var(--shadow-green);
}

/* ── Dot & count ── */
.cf-filtre-dot {
    display      : inline-block;
    width        : 8px;
    height       : 8px;
    border-radius: 50%;
    flex-shrink  : 0;
}
.cf-filtre-count {
    display        : inline-flex;
    align-items    : center;
    justify-content: center;
    min-width      : 20px;
    height         : 20px;
    padding        : 0 5px;
    border-radius  : var(--radius-pill);
    background     : rgba(0,0,0,.1);
    color          : inherit;
    font-size      : .7rem;
    font-weight    : 700;
    line-height    : 1;
}
.cf-filtre-btn.active .cf-filtre-count,
.cf-filtre-sous-btn.active .cf-filtre-count {
    background : rgba(255,255,255,.25);
}

/* ── Résultats info ── */
.cf-resultats-info {
    padding    : 8px 4px;
    font-size  : .82rem;
    color      : var(--c-text-muted);
    font-style : italic;
}
#cf-compteur { font-weight: 700; color: var(--c-text); font-style: normal; }

/* ── Carte Leaflet ── */
.cf-map-wrapper {
    position    : relative;
    margin-top  : 8px;
}
.cf-map-wrapper[hidden] { display: none; }
#cf-map {
    height        : 560px;
    border-radius : var(--radius-md);
    border        : 2px solid var(--c-border);
    overflow      : hidden;
}

/* ── Overlay « aucune fiche » sur la carte ── */
.cf-map-empty {
    position        : absolute;
    inset           : 0;
    display         : flex;
    flex-direction  : column;
    align-items     : center;
    justify-content : center;
    gap             : 8px;
    padding         : 24px;
    text-align      : center;
    background      : rgba(255, 255, 255, .92);
    border-radius   : var(--radius-md);
    color           : var(--c-text-light);
    pointer-events  : none;
    z-index         : 500;
    backdrop-filter : blur(2px);
}
.cf-map-empty[hidden] { display: none; }
.cf-map-empty svg { color: var(--c-text-muted); }
.cf-map-empty__title {
    margin     : 0;
    font-size  : 1.05rem;
    font-weight: 700;
    color      : var(--c-text);
}
.cf-map-empty__hint {
    margin    : 0;
    font-size : .9rem;
    max-width : 32ch;
}

/* État « catégorie vide » sur les boutons de filtre */
.cf-filtre-btn.is-empty {
    opacity : .5;
}
.cf-filtre-btn.is-empty:hover { opacity: .75; }

/* ── Popup ── */
.cf-popup {
    font-family : -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
    min-width   : 200px;
    max-width   : 260px;
}
.cf-popup__cat {
    font-size      : .68rem;
    font-weight    : 700;
    text-transform : uppercase;
    letter-spacing : .05em;
    padding        : 2px 8px;
    border-radius  : var(--radius-pill);
    color          : #fff;
    display        : inline-block;
    margin-bottom  : 6px;
}
.cf-popup__nom {
    font-size   : .95rem;
    font-weight : 700;
    color       : var(--c-text);
    margin      : 0 0 4px;
    line-height : 1.3;
}
.cf-popup__structure { font-size: .78rem; color: var(--c-text-muted); margin-bottom: 4px; }
.cf-popup__commune   { font-size: .78rem; color: var(--c-text-light); margin-bottom: 6px; }
.cf-popup__desc      { font-size: .8rem; color: var(--c-text-light); margin-bottom: 10px; line-height: 1.4; }
.cf-popup__link {
    display        : inline-block;
    background     : var(--c-green);
    color          : #fff;
    font-size      : .78rem;
    font-weight    : 600;
    padding        : 5px 14px;
    border-radius  : var(--radius-sm);
    text-decoration: none;
    transition     : background var(--transition);
}
.cf-popup__link:hover { background: var(--c-green-dark); color: #fff; text-decoration: none; }

/* ── Clusters ── */
.marker-cluster-small,
.marker-cluster-medium,
.marker-cluster-large { background: none !important; }
.marker-cluster-small div,
.marker-cluster-medium div,
.marker-cluster-large div { background: none !important; }
.leaflet-cluster-anim .leaflet-marker-icon,
.leaflet-cluster-anim .leaflet-marker-shadow {
    transition: transform .3s ease-out, opacity .3s ease-in;
}


/* ── LISTE STRUCTURES ── */
/* ═══════════════════════════════════════════════════════════
   LISTE STRUCTURES
═══════════════════════════════════════════════════════════ */
.ls-wrap *,
.ls-wrap *::before,
.ls-wrap *::after { box-sizing: border-box; }

.ls-wrap {
    font-family : -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
    color       : var(--c-text);
    max-width   : 1280px;
    margin      : 0 auto;
    padding     : 0 4px;
}

.ls-filtres { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 20px; }

.ls-filtre-btn {
    display      : inline-flex;
    align-items  : center;
    gap          : 6px;
    padding      : 7px 16px;
    border       : 1.5px solid var(--c-border);
    border-radius: var(--radius-pill);
    background   : var(--c-white);
    color        : var(--c-text-light);
    font-size    : .82rem;
    font-weight  : 600;
    cursor       : pointer;
    transition   : all var(--transition);
    white-space  : nowrap;
}
.ls-filtre-btn:hover {
    border-color : var(--ls-type-color, var(--c-green));
    color        : var(--ls-type-color, var(--c-green));
    background   : var(--c-bg);
}
.ls-filtre-btn.active {
    background   : var(--ls-type-color, var(--c-green));
    border-color : var(--ls-type-color, var(--c-green));
    color        : #fff;
    box-shadow   : var(--shadow-green);
}
.ls-filtre-btn[data-type="all"] { --ls-type-color: var(--c-green); }

.ls-filtre-count {
    background    : rgba(255,255,255,.28);
    color         : inherit;
    border-radius : var(--radius-pill);
    padding       : 1px 7px;
    font-size     : .7rem;
    font-weight   : 700;
    line-height   : 1.6;
}
.ls-filtre-btn:not(.active) .ls-filtre-count { background: var(--c-bg); color: var(--c-text-muted); }

.ls-info-bar { font-size: .82rem; color: var(--c-text-muted); margin-bottom: 20px; font-weight: 500; }
#ls-compteur { font-weight: 700; color: var(--c-text-light); }

.ls-grid {
    display               : grid;
    grid-template-columns : repeat(6, 1fr);
    gap                   : 16px;
}

.ls-card {
    position      : relative;
    background    : var(--c-white);
    border        : 1.5px solid var(--c-border);
    border-radius : var(--radius-md);
    display       : flex;
    flex-direction: column;
    overflow      : hidden;
    transition    : transform var(--transition), box-shadow var(--transition), border-color var(--transition);
    box-shadow    : var(--shadow-sm);
}
.ls-card:hover {
    transform    : translateY(-4px);
    box-shadow   : var(--shadow-md);
    border-color : var(--c-green-mid);
}
.ls-card__link { position: absolute; inset: 0; z-index: 0; }

.ls-card__top {
    display        : flex;
    align-items    : flex-start;
    justify-content: space-between;
    gap            : 8px;
    padding        : 16px 14px 0;
}
.ls-card__avatar {
    width          : 52px;
    height         : 52px;
    border-radius  : var(--radius-sm);
    display        : flex;
    align-items    : center;
    justify-content: center;
    flex-shrink    : 0;
    overflow       : hidden;
}
.ls-card__logo    { width: 100%; height: 100%; object-fit: contain; }
.ls-card__initials { font-size: 1.1rem; font-weight: 800; letter-spacing: -.02em; }

.ls-card__badge {
    font-size     : .66rem;
    font-weight   : 700;
    padding       : 3px 9px;
    border-radius : var(--radius-pill);
    white-space   : nowrap;
    line-height   : 1.6;
    max-width     : calc(100% - 64px);
    overflow      : hidden;
    text-overflow : ellipsis;
}

.ls-card__body { padding: 12px 14px 12px; flex: 1; }
.ls-card__name {
    font-size   : .9rem;
    font-weight : 700;
    color       : var(--c-text);
    margin      : 0 0 6px;
    line-height : 1.35;
}
.ls-card__name a { color: inherit; text-decoration: none; position: relative; z-index: 1; transition: color var(--transition); }
.ls-card__name a:hover { color: var(--c-green); }

.ls-card__desc { font-size: .76rem; color: var(--c-text-light); line-height: 1.5; margin: 0 0 10px; }

.ls-card__meta { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 4px; }
.ls-card__meta-item { display: flex; align-items: flex-start; gap: 5px; font-size: .74rem; color: var(--c-text-light); line-height: 1.5; }
.ls-meta-icon { flex-shrink: 0; color: var(--c-text-muted); margin-top: 1px; }

.ls-card__footer { padding: 0 14px 14px; margin-top: auto; position: relative; z-index: 1; }
.ls-card__cta {
    display        : inline-flex;
    align-items    : center;
    gap            : 5px;
    font-size      : .75rem;
    font-weight    : 700;
    color          : var(--c-green);
    text-decoration: none;
    padding        : 5px 10px;
    border         : 1.5px solid var(--c-green-mid);
    border-radius  : var(--radius-sm);
    background     : var(--c-green-light);
    transition     : all var(--transition);
    position       : relative;
    z-index        : 1;
}
.ls-card__cta:hover { background: var(--c-green); border-color: var(--c-green); color: #fff; }
.ls-card__cta svg  { transition: transform var(--transition); }
.ls-card__cta:hover svg { transform: translateX(3px); }

.ls-no-result { text-align: center; padding: 60px 20px; color: var(--c-text-muted); }
.ls-no-result p { font-size: .95rem; margin: 14px 0 0; }
.ls-card.ls-hidden { display: none; }


/* ── RESPONSIVE SHORTCODES ── */
/* ── Liste structures ── */
@media (max-width: 1200px) { .ls-grid { grid-template-columns: repeat(4, 1fr); } }
@media (max-width: 900px)  { .ls-grid { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 640px) {
    .ls-grid { grid-template-columns: repeat(2, 1fr); gap: 12px; }
    .ls-card__badge { display: none; }
    .ls-card__desc  { display: none; }
}
@media (max-width: 400px)  { .ls-grid { grid-template-columns: 1fr; } }
/* ── Mon compte ── */
@media (max-width: 680px) {
    .mc-layout   { grid-template-columns: 1fr; }
    .mc-col-full { grid-column: 1; }
}
@media (max-width: 500px) {
    .mc-header              { padding: 16px 18px; flex-wrap: wrap; }
    .mc-header__logout      { width: 100%; justify-content: center; margin-top: 8px; }
    .mc-fiche-item__actions { flex-direction: column; }
}

/* ── Carte filtres ── */
@media (max-width: 600px) {
    #cf-filtres-parents .cf-filtre-btn { font-size: .8rem; padding: 7px 12px; }
    .cf-filtre-sous-btn                { font-size: .75rem; padding: 5px 10px; }
    #cf-map                            { height: 400px; }
}

/* ═══════════════════════════════════════════════════════════
   MINI ÉDITEUR RICH-TEXT (cf_render_rte_field)
   Utilisé pour les descriptions structure/fiche dans les formulaires
   front-end. JS dans assets/js/rte.js.
═══════════════════════════════════════════════════════════ */
.cf-rte {
    max-width    : 800px;
    border       : 1.5px solid var(--c-border);
    border-radius: var(--radius-sm);
    background   : var(--c-white);
    overflow     : hidden;
    transition   : border-color .15s, box-shadow .15s;
}
.cf-rte:focus-within {
    border-color: var(--c-green);
    box-shadow  : 0 0 0 3px color-mix(in srgb, var(--c-green) 18%, transparent);
}
.cf-rte__toolbar {
    display        : flex;
    flex-wrap      : wrap;
    gap            : 2px;
    padding        : 6px 8px;
    background     : var(--c-bg);
    border-bottom  : 1px solid var(--c-border);
}
.cf-rte__btn {
    display       : inline-flex;
    align-items   : center;
    justify-content: center;
    min-width     : 32px;
    height        : 32px;
    padding       : 0 8px;
    background    : transparent;
    border        : 1px solid transparent;
    border-radius : var(--radius-sm);
    color         : var(--c-text-light);
    font-size     : .92rem;
    font-weight   : 700;
    cursor        : pointer;
    transition    : background .12s, color .12s, border-color .12s;
    line-height   : 1;
}
.cf-rte__btn:hover {
    background  : var(--c-green-light);
    color       : var(--c-green-dark);
    border-color: var(--c-green-mid);
}
.cf-rte__btn.is-active {
    background  : var(--c-green);
    color       : var(--c-white);
    border-color: var(--c-green);
}
.cf-rte__btn--italic   { font-style: italic; font-weight: 600; }
.cf-rte__btn--underline{ text-decoration: underline; }
.cf-rte__btn svg       { width: 16px; height: 16px; }
.cf-rte__btn:focus-visible {
    outline: 2px solid color-mix(in srgb, var(--c-green) 55%, transparent);
    outline-offset: 2px;
}
.cf-rte__sep {
    width  : 1px;
    height : 22px;
    background: var(--c-border);
    margin : 5px 4px;
    align-self: center;
}
.cf-rte__area {
    min-height : 110px;
    padding    : 12px 14px;
    font-family: inherit;
    font-size  : 1rem;
    line-height: 1.55;
    color      : var(--c-text);
    outline    : none;
    cursor     : text;
}
.cf-rte__area[data-rows="6"] { min-height: 180px; }
.cf-rte__area[data-rows="3"] { min-height: 90px;  }
.cf-rte__area p { margin: 0 0 .6em; }
.cf-rte__area p:last-child { margin-bottom: 0; }
.cf-rte__area ul,
.cf-rte__area ol { margin: 0 0 .6em; padding-left: 1.4em; }
.cf-rte__area li { margin: .2em 0; }
.cf-rte__area a {
    color: var(--c-green-dark);
    text-decoration: underline;
}
.cf-rte__area:empty::before {
    content: attr(data-placeholder);
    color  : var(--c-text-muted);
    pointer-events: none;
}
/* Erreur de validation */
.cf-rte.ceer-input-error {
    border-color: var(--c-orange);
    box-shadow  : 0 0 0 3px color-mix(in srgb, var(--c-orange) 18%, transparent);
}

/* ─────────────────────────────────────────────────────────────────────────
   MON COMPTE — activités retirées de l'annuaire
   Le bouton « Retirer » bascule l'activité en brouillon. Sans cette section
   elle disparaissait de l'espace de son auteur·rice, qui ne pouvait plus la
   récupérer. On la garde visible, en retrait, avec sa remise en ligne.
   ───────────────────────────────────────────────────────────────────────── */

.mc-retirees {
    margin-top   : var(--sp-5);
    padding-top  : var(--sp-5);
    border-top   : 1px dashed var(--c-border);
}
.mc-retirees__titre {
    display      : flex;
    align-items  : center;
    gap          : var(--sp-2);
    margin       : 0 0 var(--sp-1);
    font-size    : .95rem;
    font-weight  : 700;
    color        : var(--c-text-light);
}
.mc-retirees__intro {
    margin       : 0 0 var(--sp-3);
    font-size    : .84rem;
    line-height  : 1.5;
    color        : var(--c-text-muted);
    max-width    : 62ch;
}
.mc-retirees__list { margin: 0; padding: 0; list-style: none; display: grid; gap: var(--sp-2); }
.mc-retirees__item {
    display        : flex;
    flex-wrap      : wrap;
    align-items    : center;
    justify-content: space-between;
    gap            : var(--sp-2);
    padding        : var(--sp-3);
    border         : 1px solid var(--c-border);
    border-radius  : var(--radius-sm);
    background     : var(--c-bg);
}
.mc-retirees__nom     { font-weight: 600; font-size: .9rem; color: var(--c-text-light); }
.mc-retirees__actions { display: flex; flex-wrap: wrap; gap: var(--sp-2); }

.mc-fiche-btn--restore {
    background  : var(--c-green-light);
    color       : #077a61;
    border-color: var(--c-green-mid);
}

/* ── Boutons au doigt (téléphone) ── */
@media (max-width: 680px) {
    .mc-fiche-btn { min-height: 44px; padding: 10px 14px; font-size: .9rem; }
    .cf-rte__btn  { min-width: 40px; min-height: 40px; }
}
