/* ==========================================================================
   Espace membre UGCB — design premium (sidebar marine + contenu épuré)
   Palette : marine #081C49 (textes compris) · or #b7985f · crème #f7f4ee
   ========================================================================== */

:root {
    --ugcb-navy: #081C49;
    --ugcb-navy-2: #0d2a63;
    --ugcb-gold: #b7985f;
    --ugcb-gold-soft: rgba(183, 152, 95, .12);
    --ugcb-cream: #f7f4ee;
    /* Charte : le texte est dans le marine, pas dans un quasi-noir. */
    --ugcb-ink: #081C49;
    --ugcb-muted: #6b7280;
    --ugcb-radius: 14px;
    --ugcb-shadow: 0 10px 30px rgba(8, 28, 73, .08);
}

/* ── Layout général : sidebar + contenu ─────────────────────────────────── */
/* .ugcb-account (template page-account.twig) : pleine largeur, aucun container
   éditorial. Le flex interne répartit sidebar / contenu sur toute la fenêtre. */
/* Le header du site est en position:fixed. On réserve sa hauteur pour que les
   titres et la carte de connexion ne passent jamais dessous (barre de nav). */
body.woocommerce-account { --ugcb-header-h: 72px; }
@media (min-width: 481px) { body.woocommerce-account { --ugcb-header-h: 72px; } }
@media (min-width: 1024px) { body.woocommerce-account { --ugcb-header-h: 72px; } }

/* Évite que overflow-x (master.css / :root) casse le menu fixe du dashboard. */
body.woocommerce-account,
body.woocommerce-account #content,
body.woocommerce-account .ugcb-account {
    overflow: visible;
}

body.woocommerce-account #content {
    padding-top: var(--ugcb-header-h);
}

/* Header du site sur l'espace membre : fond blanc net + logo lisible. */
body.woocommerce-account header.site-header,
body.woocommerce-account header.site-header.fixed,
body.woocommerce-account header.type-header {
    background-color: #fff !important;
}

/* Logo : rendu foncé (le fichier est blanc) + contenu dans la barre sans être
   rogné (le logo secondaire est empilé sur 3 lignes → il déborderait sinon). */
body.woocommerce-account header .site-branding,
body.woocommerce-account header .site-branding a {
    overflow: visible;
    height: auto;
    align-items: center;
}

body.woocommerce-account header .custom-logo--light {
    display: none !important;
}

body.woocommerce-account header .custom-logo--dark {
    display: block !important;
    filter: none;
    height: auto !important;
    width: auto !important;
    max-height: 32px;
    max-width: 150px;
    object-fit: contain;
}

@media (max-width: 1023px) {
    body.woocommerce-account header .custom-logo--dark { max-height: 28px; }
}

/* Barre mobile (< 1360 px) : master.css y affiche le logo clair et les traits du
   burger en blanc tant qu'on n'a pas scrollé, pour les hero sombres. L'espace
   membre a un header blanc dès le chargement : l'en-tête paraissait vide et
   n'apparaissait qu'au premier scroll. */
@media (max-width: 1360px) {
    body.woocommerce-account header.type-header.top-reached .burger-header .custom-logo--light {
        display: none !important;
    }

    body.woocommerce-account header.type-header.top-reached .burger-header .custom-logo--dark {
        display: block !important;
    }

    body.woocommerce-account header.type-header.top-reached .burger-header .menu span.long-line,
    body.woocommerce-account header.type-header.top-reached .burger-header .menu span.short-line {
        background-color: var(--ugcb-ink) !important;
    }
}

body.woocommerce-account header .main-navigation a,
body.woocommerce-account header .tertiary-navigation a:not(.cta-primary) {
    color: var(--ugcb-ink) !important;
}

/* La règle ci-dessus vise la barre de nav blanche. Le menu burger ouvert est sur
   fond marine : ses libellés y étaient marine sur marine, donc illisibles. */
body.woocommerce-account header .menu-burger-open .main-navigation a,
body.woocommerce-account header .menu-burger-open .tertiary-navigation a:not(.cta-primary) {
    color: #fff !important;
}

body.woocommerce-account header .menu-burger-open .main-navigation a:hover,
body.woocommerce-account header .menu-burger-open .main-navigation a:focus-visible {
    color: var(--ugcb-gold) !important;
}

.ugcb-account {
    width: 100%;
    background: var(--ugcb-cream);
}

.woocommerce-account .woocommerce {
    display: flex;
    align-items: flex-start;
    gap: 0;
    width: 100%;
    max-width: none;
    min-height: calc(100vh - var(--ugcb-header-h));
    background: var(--ugcb-cream);
}

/* ── Sidebar fixe (dashboard) : largeur fixe 288px (pas le 30% WooCommerce) ─ */
body.woocommerce-account .woocommerce-MyAccount-navigation {
    flex: 0 0 288px;
    width: 288px !important;
    max-width: 288px;
    float: none !important;
    background: var(--ugcb-navy);
    color: #fff;
    padding: 0 0 32px;
    display: flex;
    flex-direction: column;
    position: fixed;
    top: var(--ugcb-header-h);
    left: 0;
    z-index: 40;
    height: calc(100vh - var(--ugcb-header-h));
    overflow-x: hidden;
    overflow-y: auto;
    box-sizing: border-box;
}

body.woocommerce-account .woocommerce-MyAccount-content {
    flex: 1;
    float: none !important;
    width: auto !important;
    max-width: none;
    margin-left: 288px;
    padding: 44px clamp(24px, 5vw, 72px) 80px;
    background: var(--ugcb-cream);
    min-width: 0;
    min-height: calc(100vh - var(--ugcb-header-h));
    box-sizing: border-box;
}

.ugcb-member-welcome {
    padding: 30px 26px 24px;
    border-bottom: 1px solid rgba(255, 255, 255, .08);
    margin-bottom: 14px;
}

.ugcb-member-welcome .hello {
    display: block;
    font-size: 12px;
    letter-spacing: 2.5px;
    text-transform: uppercase;
    color: var(--ugcb-gold);
    margin-bottom: 6px;
    font-family: var(--font-secondary, sans-serif);
}

.ugcb-member-welcome .name {
    display: block;
    font-size: 19px;
    line-height: 1.3;
    color: #fff;
    font-weight: 600;
}

.woocommerce-MyAccount-navigation ul {
    list-style: none;
    margin: 0;
    padding: 0 14px;
    display: flex;
    flex-direction: column;
    gap: 4px;
    flex: 1;
}

.woocommerce-MyAccount-navigation li {
    margin: 0;
}

.woocommerce-MyAccount-navigation li a {
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 14px 16px;
    border-radius: 10px;
    color: rgba(255, 255, 255, .82);
    text-decoration: none;
    font-size: 15px;
    font-family: var(--font-secondary, sans-serif);
    transition: background .2s ease, color .2s ease, transform .15s ease;
}

.woocommerce-MyAccount-navigation li a:hover {
    background: rgba(255, 255, 255, .06);
    color: #fff;
    transform: translateX(2px);
}

.woocommerce-MyAccount-navigation li.is-active a {
    background: var(--ugcb-gold);
    color: var(--ugcb-navy);
    font-weight: 600;
}

.woocommerce-MyAccount-navigation li a svg {
    flex: 0 0 18px;
    width: 18px;
    height: 18px;
    stroke: currentColor;
    fill: none;
    stroke-width: 1.7;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.woocommerce-MyAccount-navigation li.ugcb-nav-logout {
    margin-top: auto;
    padding-top: 14px;
    border-top: 1px solid rgba(255, 255, 255, .08);
}

.ugcb-member-breadcrumb {
    font-size: 12px;
    letter-spacing: 2.5px;
    text-transform: uppercase;
    color: var(--ugcb-gold);
    font-family: var(--font-secondary, sans-serif);
    margin: 0 0 10px;
}

.ugcb-member-breadcrumb .sep { margin: 0 8px; }

.ugcb-member-title {
    font-size: clamp(30px, 3.4vw, 44px);
    line-height: 1.1;
    color: var(--ugcb-ink);
    margin: 0 0 30px;
}

.member-events__header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 16px;
    margin-bottom: 30px;
}

.member-events__header .ugcb-member-title {
    margin-bottom: 0;
}

.ugcb-status-filter {
    position: relative;
    flex: 0 0 auto;
    margin-top: 8px;
}

.ugcb-status-filter__btn {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin: 0;
    padding: 10px 14px;
    border: 1.5px solid rgba(8, 28, 73, .14);
    border-radius: 9px;
    background: #fff;
    color: var(--ugcb-navy, #081C49);
    font-size: 13.5px;
    font-weight: 600;
    font-family: var(--font-secondary, sans-serif);
    cursor: pointer;
    box-shadow: var(--ugcb-shadow);
    transition: border-color .15s ease, background .15s ease;
}

.ugcb-status-filter__btn:hover,
.ugcb-status-filter.is-open .ugcb-status-filter__btn {
    border-color: var(--ugcb-gold);
    background: var(--ugcb-gold-soft, #f7f1e4);
}

.ugcb-status-filter__btn svg {
    width: 16px;
    height: 16px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.ugcb-status-filter__chevron {
    width: 14px !important;
    height: 14px !important;
    transition: transform .15s ease;
}

.ugcb-status-filter.is-open .ugcb-status-filter__chevron {
    transform: rotate(180deg);
}

.ugcb-status-filter__menu {
    position: absolute;
    top: calc(100% + 8px);
    right: 0;
    z-index: 40;
    min-width: 260px;
    padding: 8px;
    background: #fff;
    border: 1px solid rgba(8, 28, 73, .08);
    border-radius: 12px;
    box-shadow: 0 12px 32px rgba(8, 28, 73, .12);
}

.ugcb-status-filter__menu[hidden] {
    display: none;
}

.ugcb-status-filter__option {
    display: block;
    width: 100%;
    margin: 0;
    padding: 10px 12px;
    border: 0;
    border-radius: 8px;
    background: transparent;
    color: var(--ugcb-navy, #081C49);
    font-size: 13.5px;
    font-family: var(--font-secondary, sans-serif);
    text-align: left;
    cursor: pointer;
}

.ugcb-status-filter__option:hover {
    background: rgba(8, 28, 73, .04);
}

.ugcb-status-filter__option.is-active {
    background: var(--ugcb-gold-soft, #f7f1e4);
    font-weight: 600;
    color: #8a6f3c;
}

.ugcb-event-card.is-filter-hidden {
    display: none;
}

@media (max-width: 700px) {
    .member-events__header {
        flex-direction: column;
        align-items: stretch;
    }
    .ugcb-status-filter__btn {
        width: 100%;
        justify-content: center;
    }
    .ugcb-status-filter__menu {
        left: 0;
        right: 0;
        min-width: 0;
    }
}

/* ── Boutons documents (Programme, Statuts, CR CA) ─────────────────────── */
.ugcb-doc-buttons {
    display: flex;
    flex-wrap: wrap;
    gap: 14px;
    margin: 0 0 38px;
}

.ugcb-doc-buttons a {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    padding: 13px 26px;
    background: var(--ugcb-gold);
    color: #fff;
    border: 1px solid var(--ugcb-gold);
    border-radius: 8px;
    text-decoration: none;
    font-size: 14px;
    letter-spacing: .4px;
    font-family: var(--font-secondary, sans-serif);
    transition: background .2s ease, color .2s ease, box-shadow .2s ease;
    box-shadow: 0 4px 14px rgba(183, 152, 95, .28);
}

.ugcb-doc-buttons a:hover {
    background: #fff;
    color: var(--ugcb-gold);
}

.ugcb-doc-buttons a svg {
    width: 16px;
    height: 16px;
    stroke: currentColor;
    fill: none;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
}

/* ── Cartes événement ───────────────────────────────────────────────────── */
.ugcb-event-card {
    background: #fff;
    border-radius: var(--ugcb-radius);
    box-shadow: var(--ugcb-shadow);
    margin-bottom: 22px;
    overflow: hidden;
    border: 1px solid rgba(8, 28, 73, .05);
}

/* La carte s'organise en lignes qui se replient : le bloc de texte réclame une
   mesure de lecture minimale, et c'est le badge qui passe à la ligne quand la
   place manque (colonne de contenu étroite entre 900 et 1150 px, mobile).
   Sans cela, le titre et les dates tombaient dans une colonne de quelques
   dizaines de pixels, coupée mot à mot. */
.ugcb-event-card > summary {
    list-style: none;
    cursor: pointer;
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    column-gap: 22px;
    row-gap: 0;
    padding: 0;
}

.ugcb-event-card__media,
.ugcb-event-card__body,
.ugcb-event-card__aside {
    box-sizing: border-box;
}

.ugcb-event-card > summary::-webkit-details-marker { display: none; }

.ugcb-event-card__media {
    flex: 0 0 220px;
    align-self: stretch;
    min-height: 128px;
    background: var(--ugcb-navy);
    position: relative;
    overflow: hidden;
}

.ugcb-event-card__media img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform .35s ease;
}

.ugcb-event-card:hover .ugcb-event-card__media img { transform: scale(1.04); }

.ugcb-event-card__media .placeholder {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--ugcb-gold);
    font-size: 30px;
    font-family: var(--font-first, serif);
}

.ugcb-event-card__body {
    flex: 1 1 300px;
    padding: 22px 12px 22px 0;
    min-width: 0;
}

.woocommerce-MyAccount-content h2.ugcb-event-card__title,
.ugcb-event-card__title {
    font-size: 21px !important;
    line-height: 1.25 !important;
    margin: 0 0 6px !important;
    color: var(--ugcb-ink);
    text-transform: none;
    letter-spacing: 0;
}

.ugcb-event-card__dates {
    display: block;
    font-size: 13.5px;
    color: var(--ugcb-muted);
    font-family: var(--font-secondary, sans-serif);
}

/* Sur une seule ligne hors mobile : « Dates de l’évènement : du … au … ».
   L'espace avant le deux-points est insécable, celui d'après vient du markup. */
.ugcb-event-card__dates-label::after {
    content: "\00a0:";
}

.ugcb-event-card__pre-tag {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    margin-top: 10px;
    padding: 6px 12px 6px 10px;
    border-radius: 6px;
    background: linear-gradient(135deg, #c4a46a 0%, #9a7b4f 100%);
    color: #fff;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    font-family: var(--font-secondary, sans-serif);
    box-shadow: 0 4px 12px -4px rgba(154, 123, 79, 0.55);
    line-height: 1.2;
}

.ugcb-event-card__pre-tag svg {
    width: 13px;
    height: 13px;
    fill: currentColor;
    flex-shrink: 0;
    opacity: 0.95;
}

.ugcb-event-card--preinscription {
    border-color: rgba(154, 123, 79, 0.55);
    box-shadow: 0 0 0 1px rgba(154, 123, 79, 0.12), var(--ugcb-shadow, 0 8px 24px -12px rgba(8, 28, 73, 0.12));
}

.ugcb-event-card--preinscription > summary {
    position: relative;
}

.ugcb-event-card--preinscription > summary::before {
    content: '';
    position: absolute;
    left: 0;
    top: 12px;
    bottom: 12px;
    width: 4px;
    border-radius: 0 3px 3px 0;
    background: linear-gradient(180deg, #c4a46a, #9a7b4f);
}

.member-events__pre-intro,
.member-events__pre-waiting,
.member-events__pre-confirmed,
.member-events__reps-closed {
    margin: 0 0 16px;
    padding: 12px 14px;
    background: #f7f4ef;
    border-left: 3px solid var(--ugcb-gold, #9a7b4f);
    font-size: 14.5px;
    line-height: 1.45;
}

/* Ce message prend la place du formulaire de représentants : il en reprend le
   décrochage par rapport au tableau qui le précède. */
.member-events__reps-closed {
    margin-top: 28px;
}

/* L'adresse est soulignée plutôt que dorée : l'or n'atteint pas le contraste
   requis sur le fond beige du message. Le soulignement suppose la classe
   « std-link » sur le lien, sans quoi master.css l'annule. */
.member-events__reps-closed a {
    color: inherit;
    text-decoration: underline;
    text-underline-offset: 2px;
}

/* ── Annulation de participation ────────────────────────────────────────────
   Action rare et lourde de conséquences : elle est détachée du reste de la carte
   par un filet, et son bouton reste discret (contour, pas d'aplat) pour ne pas
   concurrencer les actions principales. */
.member-events__cancel {
    margin-top: 26px;
    padding-top: 18px;
    border-top: 1px solid rgba(8, 28, 73, .08);
}

.woocommerce-MyAccount-content button[type="submit"].member-events__cancel-btn {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: #fff !important;
    color: #b02a24 !important;
    border: 1.5px solid rgba(176, 42, 36, .45);
    border-radius: 999px;
    padding: 10px 20px;
    font-family: var(--font-secondary, sans-serif);
    font-size: 14px;
    font-weight: 600;
    letter-spacing: .02em;
    box-shadow: none;
    cursor: pointer;
    transition: background .2s ease, border-color .2s ease, color .2s ease;
}

.woocommerce-MyAccount-content button[type="submit"].member-events__cancel-btn:hover,
.woocommerce-MyAccount-content button[type="submit"].member-events__cancel-btn:focus-visible {
    background: #b02a24 !important;
    border-color: #b02a24;
    color: #fff !important;
}

.member-events__cancel-btn svg {
    width: 15px;
    height: 15px;
    fill: none;
    stroke: currentColor;
    stroke-width: 2.2;
    stroke-linecap: round;
}

.member-events__cancel-note {
    margin: 10px 0 0;
    font-size: 13.5px;
    color: var(--ugcb-muted);
}

/* Délai dépassé : même présentation que la clôture des représentants, le membre
   étant renvoyé vers l'équipe dans les deux cas. */
.member-events__cancel-closed {
    margin: 0;
    padding: 12px 14px;
    background: #f7f4ef;
    border-left: 3px solid var(--ugcb-gold, #9a7b4f);
    font-size: 14.5px;
    line-height: 1.45;
}

.member-events__cancel-closed a {
    color: inherit;
    text-decoration: underline;
    text-underline-offset: 2px;
}

/* Retour au formulaire après une annulation. */
.member-events__cancelled-note {
    margin: 0 0 16px;
    padding: 12px 14px;
    background: #f7f4ef;
    border-left: 3px solid var(--ugcb-gold, #9a7b4f);
    font-size: 14.5px;
    line-height: 1.45;
}

.member-events__pre-intro p {
    margin: 0 0 6px;
}

.member-events__pre-intro p:last-child {
    margin-bottom: 0;
}

/* Sondage : teinte or, cohérente avec le tag « Sondage » et le
   liseré de la carte, pour distinguer d'une inscription directe. */
.member-events__pre-intro--interest {
    background: linear-gradient(135deg, #fdf6e8 0%, #f6ead2 100%);
    border-left: 3px solid #9a7b4f;
    color: #5c4622;
}

.member-events__pre-intro--interest strong {
    color: #7a5f33;
}

/* Inscription directe : teinte marine, pour trancher avec le sondage. */
.member-events__pre-intro--registration {
    background: #eef2f9;
    border-left: 3px solid var(--ugcb-navy, #081C49);
    color: #24365e;
}

.member-events__pre-intro--registration strong {
    color: var(--ugcb-navy, #081C49);
}

/* Badge et chevron côte à côte : quand la place manque, l'aside passe à la ligne
   sous le texte et s'y lit comme une seule bande, sans chevron décroché. */
.ugcb-event-card__aside {
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 12px;
    padding: 22px 26px;
}

.ugcb-event-card__chevron {
    width: 22px;
    height: 22px;
    stroke: var(--ugcb-gold);
    fill: none;
    stroke-width: 2;
    transition: transform .25s ease;
}

.ugcb-event-card[open] .ugcb-event-card__chevron { transform: rotate(180deg); }

.ugcb-event-card__content {
    border-top: 1px solid rgba(8, 28, 73, .07);
    padding: 26px 30px 30px;
}

/* Badges de statut */
.ugcb-badge {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    padding: 5px 14px;
    border-radius: 999px;
    font-size: 12px;
    letter-spacing: .8px;
    text-transform: uppercase;
    font-family: var(--font-secondary, sans-serif);
    white-space: nowrap;
}

.ugcb-badge::before {
    content: "";
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: currentColor;
}

.ugcb-badge--open {
    background: #ff8a1f;
    color: #fff;
    font-weight: 700;
}
.ugcb-badge--done {
    background: #16a34a;
    color: #fff;
    font-weight: 700;
}
.ugcb-badge--closed {
    background: #dc2626;
    color: #fff;
    font-weight: 700;
}
.ugcb-badge--pending {
    background: #ea580c;
    color: #fff;
    font-weight: 700;
}
.ugcb-badge--deadline {
    background: #facc15;
    color: #713f12;
    font-weight: 700;
}
.ugcb-badge--neutral {
    background: #e5e7eb;
    color: #374151;
    font-weight: 600;
}

.ugcb-badge--open::before,
.ugcb-badge--done::before,
.ugcb-badge--closed::before,
.ugcb-badge--pending::before {
    background: #fff;
    opacity: .95;
}
.ugcb-badge--deadline::before,
.ugcb-badge--neutral::before {
    background: currentColor;
    opacity: .85;
}

.ugcb-deadline {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: var(--ugcb-navy);
    color: #fff;
    padding: 9px 18px;
    border-radius: 8px;
    font-size: 13.5px;
    font-family: var(--font-secondary, sans-serif);
    margin-bottom: 20px;
}

.ugcb-deadline strong { color: var(--ugcb-gold); }

/* ── Formulaire d'inscription (oui/non) ────────────────────────────────── */
.member-events__form fieldset,
.ugcb-panel {
    border: 1px solid rgba(8, 28, 73, .1);
    border-radius: 12px;
    padding: 20px 24px;
    margin: 0 0 18px;
    background: #fff;
}

.member-events__form legend {
    font-weight: 600;
    padding: 0 10px;
    font-size: 15.5px;
}

.ugcb-choice {
    display: inline-flex;
    gap: 10px;
    margin: 6px 14px 4px 0;
}

.ugcb-choice label,
.member-events__form fieldset label,
.member-events__leaf label {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 9px 22px;
    border: 1.5px solid rgba(8, 28, 73, .18);
    border-radius: 999px;
    cursor: pointer;
    font-family: var(--font-secondary, sans-serif);
    font-size: 14px;
    transition: all .15s ease;
    background: #fff;
}

/* Masquer le radio natif (évite l’icône système dans la pastille verte/rouge).
   Exception : regroupement de crus → radios classiques visibles. */
.ugcb-choice label input[type="radio"],
.member-events__form fieldset label input[type="radio"],
.member-events__leaf label:not(.member-events__regroupement-opt) input[type="radio"],
.ugcb-yesno__opt input[type="radio"] {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
    appearance: none;
}

/* Oui → vert, Non → rouge (retour visuel clair, CDC + retours DA). */
.member-events__form fieldset label:has(input[value="oui"]:checked),
.member-events__leaf label:has(input[value="oui"]:checked),
.ugcb-yesno__opt--yes:has(input:checked) {
    background: #16a34a;
    border-color: #16a34a;
    color: #fff;
}

.member-events__form fieldset label:has(input[value="non"]:checked),
.member-events__leaf label:has(input[value="non"]:checked),
.ugcb-yesno__opt--no:has(input:checked) {
    background: #dc2626;
    border-color: #dc2626;
    color: #fff;
}

.member-events__form input[type="radio"] { accent-color: var(--ugcb-gold); }

/* Groupe Oui/Non aligné à droite. */
.ugcb-yesno {
    display: inline-flex;
    gap: 10px;
    flex: 0 0 auto;
}

.member-events__parent {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 14px;
}

.member-events__parent legend {
    float: none;
    padding: 0;
}

.member-events__branch {
    margin-bottom: 6px;
}

.member-events__nested {
    margin: 2px 0 12px 8px;
    padding: 6px 0 0 16px;
    border-left: 2px solid rgba(196, 161, 74, .55);
}

.member-events__nested[hidden] {
    display: none;
}

.member-events__branch:has(> [data-ugcb-children]) > .member-events__leaf {
    background: #f7f5ef;
    border-color: rgba(8, 28, 73, .12);
}

.member-events__sub h4 {
    font-size: 16px;
    margin: 22px 0 10px;
    color: var(--ugcb-navy);
    border-left: 3px solid var(--ugcb-gold);
    padding-left: 12px;
}

.member-events__leaf {
    background: #fff;
    border: 1px solid rgba(8, 28, 73, .08);
    border-radius: 10px;
    padding: 13px 18px;
    margin-bottom: 10px;
}

.member-events__leaf-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 10px;
}

.ugcb-event-card__content .swiper,
.member-events__leaf-title {
    font-size: 14.5px;
}

/* Choix des participants (visible quand la feuille est à OUI). */
.member-events__participants {
    margin-top: 14px;
    padding-top: 14px;
    border-top: 1px dashed rgba(8, 28, 73, .12);
}

.member-events__participants[hidden] { display: none; }

.member-events__participants-note {
    margin: 0;
    font-size: 14px;
    line-height: 1.45;
    color: var(--ugcb-muted, #5a6578);
    font-style: italic;
}

.member-events__participants-label {
    font-size: 12px;
    letter-spacing: 1.2px;
    text-transform: uppercase;
    color: var(--ugcb-muted);
    margin: 0 0 10px;
    font-family: var(--font-secondary, sans-serif);
}

.member-events__participants-list {
    display: flex;
    flex-wrap: wrap;
    gap: 8px 10px;
}

.ugcb-participant {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 8px 14px;
    border: 1.5px solid rgba(8, 28, 73, .14);
    border-radius: 999px;
    cursor: pointer;
    font-size: 13.5px;
    font-family: var(--font-secondary, sans-serif);
    transition: all .15s ease;
    background: #fff;
}

.ugcb-participant:has(input:checked) {
    background: var(--ugcb-gold-soft);
    border-color: var(--ugcb-gold);
    color: #8a6f3c;
}

.ugcb-participant input { accent-color: var(--ugcb-gold); }
.ugcb-participant__role { color: var(--ugcb-muted); font-size: 12.5px; }
.ugcb-participant:has(input:checked) .ugcb-participant__role { color: #a07f45; }

/* Édition passée listée sans inscription : la phrase explique l'absence d'étapes
   et de réponse, et annonce le bilan téléchargeable juste en dessous. */
.member-history__past-note {
    margin: 0 0 18px;
    font-size: 14px;
    color: var(--ugcb-muted);
    font-family: var(--font-secondary, sans-serif);
}

.member-events__participants-hint {
    font-size: 12.5px;
    color: var(--ugcb-muted);
    margin: 10px 0 0;
    font-family: var(--font-secondary, sans-serif);
}

.member-events__participants-error {
    margin: 10px 0 0;
    padding: 10px 14px;
    border-radius: 8px;
    background: rgba(220, 38, 38, .08);
    border: 1px solid rgba(220, 38, 38, .25);
    color: #b91c1c;
    font-size: 13.5px;
    font-family: var(--font-secondary, sans-serif);
}

.member-events__participants-error[hidden] { display: none; }

.member-events__new-reps {
    margin-top: 14px;
}

.member-events__new-reps-list {
    display: flex;
    flex-direction: column;
    gap: 12px;
    margin-bottom: 12px;
}

.member-events__new-rep-row {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 12px;
}

.member-events__new-rep-row.is-invalid input[type="text"] {
    border-color: #b91c1c;
}

.member-events__new-rep-row input[type="text"] {
    flex: 1 1 140px;
    min-width: 0;
    width: auto;
    margin: 0;
    padding: 11px 14px;
    border: 1.5px solid rgba(8, 28, 73, .14);
    border-radius: 9px;
    font-size: 14px;
    font-family: var(--font-secondary, sans-serif);
    background: #fff;
    box-sizing: border-box;
}

.member-events__new-rep-row input[type="text"]:focus {
    outline: none;
    border-color: var(--ugcb-gold);
}

.ugcb-confirm-rep {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin: 0;
    padding: 11px 16px;
    border: 1.5px solid var(--ugcb-gold, #c4a35a);
    border-radius: 9px;
    background: var(--ugcb-gold-soft, #f7f1e4);
    color: var(--ugcb-navy, #081C49);
    font-size: 13.5px;
    font-weight: 600;
    font-family: var(--font-secondary, sans-serif);
    cursor: pointer;
    transition: background .15s ease, border-color .15s ease, transform .1s ease;
}

.ugcb-confirm-rep:hover {
    background: #fff;
    border-color: var(--ugcb-navy, #081C49);
}

.ugcb-confirm-rep:active {
    transform: translateY(1px);
}

.ugcb-confirm-rep svg {
    width: 16px;
    height: 16px;
    fill: none;
    stroke: currentColor;
    stroke-width: 2.2;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.ugcb-add-btn.is-disabled,
.ugcb-add-btn:disabled {
    opacity: .45;
    cursor: not-allowed;
    pointer-events: none;
}

/* Pastille d’un représentant nouvellement validé (alignée sur les pré-enregistrés). */
.ugcb-participant--confirmed {
    background: var(--ugcb-gold-soft);
    border-color: var(--ugcb-gold);
    color: #8a6f3c;
    cursor: default;
    gap: 8px;
}

.ugcb-participant__tick {
    width: 14px;
    height: 14px;
    border-radius: 3px;
    border: 1.5px solid var(--ugcb-gold);
    background: var(--ugcb-gold);
    position: relative;
    flex: 0 0 auto;
}

.ugcb-participant__tick::after {
    content: '';
    position: absolute;
    left: 3px;
    top: 0;
    width: 4px;
    height: 8px;
    border: solid #fff;
    border-width: 0 1.5px 1.5px 0;
    transform: rotate(45deg);
}

.ugcb-participant__remove {
    margin: 0 0 0 2px;
    padding: 0;
    width: 22px;
    height: 22px;
    border: 0;
    border-radius: 50%;
    background: transparent;
    color: #8a6f3c;
    font-size: 18px;
    line-height: 1;
    cursor: pointer;
    opacity: .7;
}

.ugcb-participant__remove:hover {
    opacity: 1;
    background: rgba(8, 28, 73, .06);
}

.member-events__new-reps-list:has(.ugcb-participant--confirmed) {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    gap: 8px 10px;
}

@media (max-width: 700px) {
    .member-events__new-rep-row {
        flex-wrap: wrap;
    }
    .member-events__new-rep-row input[type="text"] {
        flex: 1 1 calc(50% - 6px);
    }
    .ugcb-confirm-rep {
        width: 100%;
        justify-content: center;
    }
}

/* Regroupement de crus — encart d'une étape, visible si la propriété participe. */
.member-events__regroupement {
    display: block;
    margin-top: 16px;
    padding: 14px 16px;
    border-left: 3px solid var(--ugcb-gold, #B7985F);
    background: rgba(183, 152, 95, .07);
    border-radius: 0 8px 8px 0;
}

.member-events__regroupement[hidden] {
    display: none;
}

.member-events__regroupement-legend {
    margin: 0 0 6px;
    font-weight: 600;
    font-size: 15.5px;
    color: var(--ugcb-navy, #081C49);
}

.member-events__regroupement-hint {
    margin: 0 0 14px;
    font-size: 13px;
    font-style: italic;
    color: var(--ugcb-muted, #5a6a8a);
    font-family: var(--font-secondary, sans-serif);
}

.member-events__regroupement-options {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

/* Radios classiques (pas les pastilles Oui/Non vert/rouge). */
.member-events__regroupement .member-events__regroupement-opt,
.member-events__leaf label.member-events__regroupement-opt {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    color: var(--ugcb-navy, #081C49);
    font-size: 14.5px;
    line-height: 1.45;
    cursor: pointer;
}

.member-events__leaf label.member-events__regroupement-opt:has(input:checked),
.member-events__leaf label.member-events__regroupement-opt:has(input[value="oui"]:checked),
.member-events__leaf label.member-events__regroupement-opt:has(input[value="non"]:checked) {
    background: transparent;
    border-color: transparent;
    color: var(--ugcb-navy, #081C49);
}

.member-events__regroupement-opt input[type="radio"] {
    position: static;
    width: 1.1em;
    height: 1.1em;
    margin: 3px 0 0;
    padding: 0;
    overflow: visible;
    clip: auto;
    white-space: normal;
    border: initial;
    appearance: auto;
    -webkit-appearance: radio;
    flex: 0 0 auto;
    accent-color: var(--ugcb-gold, #B7985F);
    cursor: pointer;
}

.member-events__regroupement-comment {
    margin-top: 12px;
}

.member-events__regroupement-comment[hidden] {
    display: none;
}

.member-events__regroupement-comment textarea {
    width: 100%;
    box-sizing: border-box;
    min-height: 84px;
    padding: 12px 14px;
    border: 1.5px solid rgba(8, 28, 73, .18);
    border-radius: 8px;
    font-family: var(--font-secondary, sans-serif);
    font-size: 14px;
    color: var(--ugcb-navy, #081C49);
    resize: vertical;
}

.member-events__regroupement-comment textarea:focus {
    outline: none;
    border-color: var(--ugcb-gold, #B7985F);
}

.member-events__regroupement-recap {
    margin: 8px 0 0;
    font-size: 13.5px;
    color: var(--ugcb-muted, #5a6a8a);
    font-family: var(--font-secondary, sans-serif);
    white-space: pre-wrap;
}

.member-events__warning {
    font-size: 13px;
    color: var(--ugcb-muted);
    margin-top: 14px;
}

/* ── Boutons ────────────────────────────────────────────────────────────── */
.woocommerce-MyAccount-content .button,
.woocommerce-MyAccount-content button[type="submit"] {
    background: var(--ugcb-navy) !important;
    color: #fff !important;
    border: 0;
    border-radius: 8px;
    padding: 13px 30px;
    font-size: 14px;
    letter-spacing: .5px;
    font-family: var(--font-secondary, sans-serif);
    cursor: pointer;
    transition: background .2s ease, box-shadow .2s ease;
    box-shadow: 0 4px 14px rgba(8, 28, 73, .2);
}

.woocommerce-MyAccount-content .button:hover,
.woocommerce-MyAccount-content button[type="submit"]:hover {
    background: var(--ugcb-gold) !important;
}

/* Lien d'aperçu : le .button de l'espace membre n'est pas prévu pour une icône,
   d'où l'alignement explicite du pictogramme avec le libellé. */
.member-chateau__apercu-lien {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    text-decoration: none;
}

.member-chateau__apercu-lien svg {
    width: 17px;
    height: 17px;
    flex: none;
}

/* Aperçu et envoi côte à côte sous le formulaire ; empilés sur mobile. */
.member-chateau__envoi {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 12px;
    margin-top: 24px;
}

.member-chateau__envoi-aide {
    margin-top: 12px;
}

@media (max-width: 600px) {
    .member-chateau__envoi .button {
        width: 100%;
        justify-content: center;
    }
}

/* ── Tableaux (historique) ─────────────────────────────────────────────── */
.ugcb-table {
    width: 100%;
    background: #fff;
    border-radius: var(--ugcb-radius);
    box-shadow: var(--ugcb-shadow);
    border-collapse: separate;
    border-spacing: 0;
    overflow: hidden;
    font-family: var(--font-secondary, sans-serif);
    font-size: 14px;
}

.ugcb-table th {
    text-align: left;
    padding: 16px 20px;
    font-size: 11.5px;
    letter-spacing: 1.5px;
    text-transform: uppercase;
    color: var(--ugcb-muted);
    border-bottom: 1px solid rgba(8, 28, 73, .08);
    background: #fff;
    font-weight: 600;
}

.ugcb-table td {
    padding: 15px 20px;
    border-bottom: 1px solid rgba(8, 28, 73, .05);
    vertical-align: middle;
}

.ugcb-table tr:last-child td { border-bottom: 0; }

/* Intitulé de colonne repris dans la cellule : utile seulement quand le tableau
   s'empile sur petit écran, l'en-tête n'étant alors plus affiché. */
.ugcb-table__intitule { display: none; }

/* ── Tableaux récapitulatifs sur petit écran ────────────────────────────────
   Un tableau ne descend pas sous la largeur de ses colonnes : celui de
   l'historique (étape, réponse, représentants) débordait de l'écran et obligeait
   à faire défiler la page latéralement pour le lire en entier. Chaque ligne
   devient donc un bloc, l'intitulé de colonne passant dans la cellule. */
@media (max-width: 700px) {
    .ugcb-table,
    .ugcb-table tbody,
    .ugcb-table tr,
    .ugcb-table td {
        display: block;
    }

    .ugcb-table thead { display: none; }

    .ugcb-table tr {
        padding: 14px 18px;
        border-bottom: 1px solid rgba(8, 28, 73, .07);
    }

    .ugcb-table tr:last-child { border-bottom: 0; }

    .ugcb-table td {
        padding: 0;
        border-bottom: 0;
    }

    .ugcb-table td:first-child {
        font-weight: 600;
        line-height: 1.35;
    }

    .ugcb-table td + td { margin-top: 9px; }

    /* Une étape sans représentant ne laisse pas de blanc dans le bloc. */
    .ugcb-table td:empty { display: none; }

    .ugcb-table__intitule {
        display: block;
        margin-bottom: 6px;
        font-size: 11px;
        letter-spacing: 1.2px;
        text-transform: uppercase;
        font-weight: 400;
        color: var(--ugcb-muted);
    }

    .member-history__rep { margin: 3px 6px 3px 0; }
}

.member-history__rep {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: var(--ugcb-cream);
    border-radius: 999px;
    padding: 4px 14px 4px 4px;
    margin: 2px 6px 2px 0;
    font-size: 13px;
    vertical-align: middle;
    line-height: 1.2;
}

.member-history__rep img,
.member-history__rep-avatar {
    width: 28px;
    height: 28px;
    border-radius: 50%;
    flex: 0 0 28px;
    object-fit: cover;
}

.member-history__rep-avatar {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: var(--ugcb-navy, #081C49);
    color: #fff;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .02em;
    font-family: var(--font-secondary, sans-serif);
    text-transform: uppercase;
}

/* ── Formulaires (infos château) ───────────────────────────────────────── */
/* min(290px, 100%) : sous 290 px de large, une colonne de 290 px dépasserait
   son conteneur — la carte se retrouvait plus étroite que son formulaire. */
.ugcb-form-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(min(290px, 100%), 1fr));
    gap: 18px 26px;
}

/* master.css ne reprend pas le `min-width: 0` des resets sur les éléments de
   grille : la largeur minimale d'une colonne suivait alors le contenu (une
   colonne « 1fr » de 258 px dans une carte de 243 px) et les champs sortaient
   de la carte par la droite. */
.ugcb-form-grid > * {
    min-width: 0;
}

/* Fiche technique : grille 2 colonnes aérée, textareas pleine largeur, largeur
   contenue — même respiration que le formulaire « Mon profil » (edit-account). */
.ugcb-form-grid--2col {
    grid-template-columns: 1fr 1fr;
    align-items: start;
    gap: 26px 32px;
    max-width: 820px;
}

.ugcb-form-grid--2col .form-row.wide {
    grid-column: 1 / -1;
}

/* Libellés de formulaire uniquement — ne pas cibler le bouton-photo (label). */
.member-chateau .form-row > label,
/* ── Onglets de langue de la fiche château ─────────────────────────────── */
.member-chateau__langs {
    display: flex;
    gap: 8px;
    margin: 0 0 22px;
    border-bottom: 1px solid rgba(8, 28, 73, .1);
}

.member-chateau__langs-intro {
    margin: 8px 0 12px;
}

.member-chateau__lang {
    padding: 10px 20px;
    margin-bottom: -1px;
    border: 1px solid transparent;
    border-bottom: 2px solid transparent;
    border-radius: 8px 8px 0 0;
    background: transparent;
    color: var(--ugcb-muted);
    font-size: 13.5px;
    font-weight: 600;
    letter-spacing: .4px;
    font-family: var(--font-secondary, sans-serif);
    cursor: pointer;
    transition: color .15s ease, background .15s ease, border-color .15s ease;
}

.member-chateau__lang:hover {
    color: var(--ugcb-navy);
    background: rgba(8, 28, 73, .04);
}

.member-chateau__lang.is-active {
    color: var(--ugcb-navy);
    background: #fff;
    border-color: rgba(8, 28, 73, .08);
    border-bottom-color: var(--ugcb-gold);
}

/* Langue d'une demande, dans les listes de suivi. */
.ugcb-lang-chip {
    display: inline-block;
    margin-left: 8px;
    padding: 2px 9px;
    border-radius: 999px;
    background: var(--ugcb-gold-soft);
    color: #8a6f3c;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .6px;
    text-transform: uppercase;
    font-family: var(--font-secondary, sans-serif);
    vertical-align: middle;
}

.member-chateau__form label {
    display: block;
    font-size: 12px;
    letter-spacing: 1.4px;
    text-transform: uppercase;
    color: var(--ugcb-muted);
    margin-bottom: 9px;
    font-family: var(--font-secondary, sans-serif);
}

.member-chateau__form input[type="text"],
.member-chateau__form input[type="email"],
.member-chateau__form textarea {
    padding: 13px 16px;
}

.member-chateau__form textarea { min-height: 96px; }

.ugcb-form-grid .form-row,
.member-chateau .form-row {
    margin: 0;
}

.member-chateau__etiquette-preview {
    max-width: 120px;
    border-radius: 8px;
    display: block;
    margin-bottom: 8px;
}

.member-chateau__audio-preview {
    display: block;
    width: 100%;
    max-width: 320px;
    margin-bottom: 8px;
}

.member-chateau__media-empty {
    display: block;
    margin-bottom: 8px;
    font-size: 13px;
    font-style: italic;
    color: var(--ugcb-muted, #5a6a8a);
}

.member-chateau__media-hint {
    display: block;
    margin-top: 6px;
    font-size: 12.5px;
    color: var(--ugcb-muted, #5a6a8a);
    font-family: var(--font-secondary, sans-serif);
}

.member-chateau__count {
    display: block;
    margin-top: 6px;
    font-size: 12px;
    color: var(--ugcb-muted, #5a6a8a);
    font-family: var(--font-secondary, sans-serif);
    letter-spacing: .3px;
    text-align: right;
}

.member-chateau__count.is-near {
    color: #8a6a2a;
}

.member-chateau__count.is-full {
    color: #8a2a2a;
    font-weight: 600;
}

/* Vignettes avant / après dans la modale de détail d'une demande. */
.ugcb-request-detail__img {
    max-width: 140px;
    height: auto;
    border-radius: 6px;
    display: block;
}

@media (max-width: 700px) {
    .ugcb-form-grid--2col { grid-template-columns: minmax(0, 1fr); }
}

/* Les champs du site ne sont pas en border-box (master.css ne porte pas le
   reset universel) : une largeur de 100 % leur ajoutait padding et bordure,
   soit 33 px de plus que leur colonne. Sur mobile, où il n'y a pas de marge
   à prendre, ils débordaient de la carte — les blocs paraissaient décalés
   vers la droite et le champ était rogné. */
.ugcb-account input,
.ugcb-account select,
.ugcb-account textarea {
    box-sizing: border-box;
}

.member-chateau input[type="text"],
.member-chateau input[type="email"],
.member-chateau textarea,
.member-history__rep-row input,
.member-history__rep-row select,
.member-chateau__emails input[type="email"] {
    width: 100%;
    background: #fff;
    border: 1.5px solid rgba(8, 28, 73, .12);
    border-radius: 9px;
    padding: 12px 15px;
    font-size: 14.5px;
    font-family: var(--font-secondary, sans-serif);
    color: var(--ugcb-ink);
    transition: border-color .15s ease, box-shadow .15s ease;
}

.member-chateau input:focus,
.member-chateau textarea:focus {
    outline: none;
    border-color: var(--ugcb-gold);
    box-shadow: 0 0 0 3px var(--ugcb-gold-soft);
}

.ugcb-section-card {
    background: #fff;
    border-radius: var(--ugcb-radius);
    box-shadow: var(--ugcb-shadow);
    padding: 30px 32px;
    margin-bottom: 28px;
    border: 1px solid rgba(8, 28, 73, .05);
}

.ugcb-section-card > h3 {
    margin: 0 0 6px;
    font-size: 21px;
    color: var(--ugcb-navy);
}

.ugcb-section-card > .desc {
    font-size: 13.5px;
    color: var(--ugcb-muted);
    margin: 0 0 22px;
    font-family: var(--font-secondary, sans-serif);
}

.ugcb-section-card__head {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 10px 14px;
    margin: 0 0 6px;
}

.ugcb-section-card__head h3 {
    margin: 0;
    font-size: 21px;
    color: var(--ugcb-navy);
}

.ugcb-section-card__tag {
    display: inline-flex;
    align-items: center;
    padding: 4px 10px;
    border-radius: 5px;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.07em;
    text-transform: uppercase;
    font-family: var(--font-secondary, sans-serif);
    line-height: 1.3;
}

.ugcb-section-card__tag--pre {
    background: linear-gradient(135deg, #c4a46a, #9a7b4f);
    color: #fff;
}

.ugcb-section-card__tag--inscription {
    background: #081c49;
    color: #fff;
}

.ugcb-section-card__tag--reps {
    background: #f0e8d8;
    color: #7a5c2e;
}

.ugcb-section-card--pre {
    border-color: rgba(154, 123, 79, 0.35);
    box-shadow: 0 0 0 1px rgba(154, 123, 79, 0.08), var(--ugcb-shadow);
}

.ugcb-section-card--pre .ugcb-section-card__head + .desc {
    border-left: 3px solid #9a7b4f;
    padding-left: 12px;
}

.member-chateau__rep-row {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 12px;
    border: 1px solid rgba(8, 28, 73, .08);
    border-radius: 10px;
    padding: 12px 14px;
    margin-bottom: 12px;
    background: #fff;
    box-sizing: border-box;
}

.member-chateau__rep-row > input[type="text"] {
    flex: 1 1 140px;
    min-width: 0;
    width: auto;
    margin: 0;
}

/* Photo + corbeille sur la même ligne, alignés verticalement. */
.member-chateau__rep-actions {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    flex: 0 0 auto;
    margin-left: auto;
}

.member-chateau__rep-avatar {
    flex: 0 0 44px;
    width: 44px;
    height: 44px;
    border-radius: 50%;
    background: var(--ugcb-navy, #081C49);
    overflow: hidden;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #fff;
}

.member-chateau__rep-avatar img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.member-chateau__rep-initials {
    font-size: 14px;
    font-weight: 700;
    letter-spacing: .02em;
    font-family: var(--font-secondary, sans-serif);
    text-transform: uppercase;
    line-height: 1;
    user-select: none;
}

/* Bouton photo (icône seule) : ouvre le sélecteur de fichier local. */
.member-chateau label.member-chateau__photo,
.member-chateau__photo {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    box-sizing: border-box;
    width: 44px;
    height: 44px;
    min-width: 44px;
    min-height: 44px;
    padding: 0;
    margin: 0;
    border: 1.5px solid rgba(8, 28, 73, .18);
    border-radius: 10px;
    background: #fff;
    color: var(--ugcb-navy);
    cursor: pointer;
    transition: all .15s ease;
    text-transform: none;
    letter-spacing: 0;
    font-size: 0;
    line-height: 0;
    overflow: hidden;
}

/* WooCommerce met tous les labels d'un .form-row en display:block, et son
   sélecteur (.woocommerce-page form .form-row label) est plus spécifique que
   celui ci-dessus : le carré restait un bloc et l'icône se posait en haut à
   gauche au lieu d'être centrée. On vise donc le label par son conteneur. */
.member-chateau .member-chateau__rep-actions label.member-chateau__photo {
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.member-chateau label.member-chateau__photo:hover,
.member-chateau__photo:hover {
    border-color: var(--ugcb-gold);
    color: var(--ugcb-gold);
    background: var(--ugcb-gold-soft);
}

.member-chateau__photo svg {
    display: block;
    width: 20px;
    height: 20px;
    margin: 0;
    stroke: currentColor;
    fill: none;
    stroke-width: 1.7;
    stroke-linecap: round;
    stroke-linejoin: round;
    flex: 0 0 auto;
    pointer-events: none;
}

.member-chateau__photo input[type="file"] {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    opacity: 0;
    margin: 0;
    padding: 0;
    border: 0;
    cursor: pointer;
    font-size: 0;
}

.member-chateau label.member-chateau__photo.has-file,
.member-chateau__photo.has-file {
    border-color: #16a34a;
    color: #16a34a;
    width: auto;
    min-width: 44px;
    padding: 0 14px;
    font-size: 12.5px;
    line-height: 1.2;
}

.member-chateau__photo-name {
    display: none;
    max-width: 130px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-size: 12.5px;
    line-height: 1.2;
    letter-spacing: 0;
    text-transform: none;
}

.member-chateau__photo.has-file .member-chateau__photo-name { display: inline; }

/* Bouton corbeille (supprimer une ligne) */
.member-chateau__remove {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    padding: 0;
    border: 1.5px solid rgba(8, 28, 73, .12);
    border-radius: 10px;
    background: #fff;
    color: var(--ugcb-muted);
    cursor: pointer;
    transition: all .15s ease;
}

.member-chateau__remove:hover {
    border-color: #dc2626;
    color: #dc2626;
    background: rgba(220, 38, 38, .06);
}

.member-chateau__remove svg {
    width: 18px;
    height: 18px;
    stroke: currentColor;
    fill: none;
    stroke-width: 1.7;
    stroke-linecap: round;
    stroke-linejoin: round;
}

/* Ligne email + corbeille */
.member-chateau__email-rows {
    display: flex;
    flex-direction: column;
    gap: 12px;
    max-width: 560px;
}

.member-chateau__email-row {
    display: flex;
    gap: 12px;
    align-items: center;
}

.member-chateau__email-row input[type="email"] { flex: 1; }

/* Bouton « Ajouter » (ghost, icône +) */
.ugcb-add-btn {
    display: inline-flex;
    align-items: center;
    gap: 9px;
    margin-top: 4px;
    padding: 11px 20px;
    background: var(--ugcb-gold-soft);
    color: #8a6f3c;
    border: 1.5px dashed var(--ugcb-gold);
    border-radius: 9px;
    font-size: 14px;
    letter-spacing: .3px;
    font-family: var(--font-secondary, sans-serif);
    cursor: pointer;
    transition: background .2s ease, color .2s ease;
}

.ugcb-add-btn:hover {
    background: var(--ugcb-gold);
    color: #fff;
}

.ugcb-add-btn svg {
    width: 17px;
    height: 17px;
    stroke: currentColor;
    fill: none;
    stroke-width: 2;
    stroke-linecap: round;
    stroke-linejoin: round;
}

@media (max-width: 640px) {
    .member-chateau__rep-row > input[type="text"] {
        flex: 1 1 calc(50% - 6px);
    }
    .member-chateau__rep-actions {
        flex: 1 1 100%;
        margin-left: 0;
        justify-content: flex-start;
    }
}

/* Bannière(s) demande en attente */
.ugcb-pending-list,
.ugcb-resolved-list {
    margin-bottom: 26px;
}

.ugcb-pending-list__title {
    margin: 0 0 8px;
    font-family: var(--font-secondary, sans-serif);
    font-size: 16px;
    font-weight: 600;
    color: var(--ugcb-ink);
}

.ugcb-pending-list__intro {
    margin: 0 0 14px;
    font-family: var(--font-secondary, sans-serif);
    font-size: 13px;
    color: #6b7280;
}

.ugcb-pending-banner {
    display: flex;
    gap: 14px;
    align-items: flex-start;
    background: rgba(180, 83, 9, .08);
    border: 1px solid rgba(180, 83, 9, .25);
    border-radius: 12px;
    padding: 18px 22px;
    margin-bottom: 12px;
    font-family: var(--font-secondary, sans-serif);
    font-size: 14px;
    color: #92400e;
}

.ugcb-pending-banner:last-child { margin-bottom: 0; }
.ugcb-pending-banner strong { display: block; margin-bottom: 4px; }
.ugcb-pending-banner ul { margin: 6px 0 0 16px; padding: 0; }

button.ugcb-pending-banner,
button.ugcb-resolved-banner {
    width: 100%;
    text-align: left;
    cursor: pointer;
    font: inherit;
    color: inherit;
    appearance: none;
    -webkit-appearance: none;
}

.ugcb-pending-banner--clickable:hover,
.ugcb-resolved-banner--clickable:hover {
    filter: brightness(0.98);
    box-shadow: 0 1px 0 rgba(0, 0, 0, .04);
}

.ugcb-pending-banner--clickable:focus-visible,
.ugcb-resolved-banner--clickable:focus-visible {
    outline: 2px solid #081C49;
    outline-offset: 2px;
}

.ugcb-pending-banner__body { display: block; width: 100%; }

.ugcb-pending-banner__hint {
    display: inline-block;
    margin-top: 10px;
    font-size: 12px;
    font-weight: 600;
    text-decoration: underline;
    text-underline-offset: 2px;
    opacity: .85;
}

.ugcb-resolved-banner {
    display: block;
    border-radius: 12px;
    margin-bottom: 10px;
    font-family: var(--font-secondary, sans-serif);
    font-size: 13px;
    position: relative;
    padding: 0;
}

.ugcb-resolved-item {
    position: relative;
}

.ugcb-resolved-banner__main {
    display: block;
    width: 100%;
    padding: 14px 42px 14px 18px;
    border: 0;
    background: transparent;
    text-align: left;
    cursor: pointer;
    font: inherit;
    color: inherit;
    appearance: none;
    -webkit-appearance: none;
    border-radius: 12px;
}

.ugcb-resolved-dismiss-form {
    position: absolute;
    top: 10px;
    right: 10px;
    z-index: 2;
    margin: 0;
}

/* Icône corbeille seule — reset des styles bouton Woo / thème. */
.ugcb-resolved-item .ugcb-resolved-dismiss.member-chateau__remove,
.woocommerce-MyAccount-content .ugcb-resolved-dismiss.member-chateau__remove {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    min-height: 0;
    padding: 0;
    margin: 0;
    border: 0;
    border-radius: 8px;
    background: transparent;
    box-shadow: none;
    color: rgba(8, 28, 73, .45);
    line-height: 1;
    text-decoration: none;
    cursor: pointer;
    transition: color .15s ease, background .15s ease;
}

.ugcb-resolved-item .ugcb-resolved-dismiss.member-chateau__remove:hover,
.ugcb-resolved-item .ugcb-resolved-dismiss.member-chateau__remove:focus-visible,
.woocommerce-MyAccount-content .ugcb-resolved-dismiss.member-chateau__remove:hover,
.woocommerce-MyAccount-content .ugcb-resolved-dismiss.member-chateau__remove:focus-visible {
    background: rgba(220, 38, 38, .08);
    color: #dc2626;
    border: 0;
    box-shadow: none;
    outline: none;
}

.ugcb-resolved-item .ugcb-resolved-dismiss.member-chateau__remove svg {
    width: 18px;
    height: 18px;
    stroke: currentColor;
    fill: none;
    stroke-width: 1.7;
    stroke-linecap: round;
    stroke-linejoin: round;
    display: block;
}

.ugcb-resolved-banner:last-child { margin-bottom: 0; }
.ugcb-resolved-banner strong { display: block; margin-bottom: 4px; }
.ugcb-resolved-banner ul { margin: 6px 0 0 16px; padding: 0; }

.ugcb-resolved-banner--approved {
    background: rgba(22, 163, 74, .08);
    border: 1px solid rgba(22, 163, 74, .25);
    color: #166534;
}

.ugcb-resolved-banner--rejected {
    background: rgba(185, 28, 28, .06);
    border: 1px solid rgba(185, 28, 28, .2);
    color: #991b1b;
}

.ugcb-modal__dialog--wide {
    max-width: 640px;
    width: calc(100% - 32px);
}

.ugcb-request-detail {
    margin: 8px 0 4px;
    max-height: min(50vh, 420px);
    overflow: auto;
    text-align: left;
}

.ugcb-request-detail__row {
    border: 1px solid #e8e2d6;
    border-radius: 10px;
    padding: 12px 14px;
    margin-bottom: 10px;
    background: #fff;
}

.ugcb-request-detail__row:last-child { margin-bottom: 0; }

.ugcb-request-detail__label {
    font-weight: 700;
    font-size: 13px;
    color: #081C49;
    margin-bottom: 10px;
}

.ugcb-request-detail__cols {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 10px;
}

.ugcb-request-detail__col-label {
    display: block;
    font-size: 11px;
    font-weight: 600;
    letter-spacing: .04em;
    text-transform: uppercase;
    color: #9a938a;
    margin-bottom: 4px;
}

.ugcb-request-detail__value {
    font-size: 13px;
    line-height: 1.45;
    color: var(--ugcb-ink);
    white-space: pre-wrap;
    word-break: break-word;
}

.ugcb-request-detail__col--new .ugcb-request-detail__value {
    color: #166534;
}

@media (max-width: 640px) {
    .ugcb-request-detail__cols { grid-template-columns: 1fr; }
}

/* Messages Woo dans le contenu */
.woocommerce-MyAccount-content .woocommerce-message,
.woocommerce-MyAccount-content .woocommerce-error {
    border-radius: 10px;
}

/* ── Page de connexion (déconnecté) ────────────────────────────────────── */
.ugcb-login {
    display: flex;
    align-items: flex-start;
    justify-content: center;
    min-height: calc(100vh - var(--ugcb-header-h));
    /* Marge haute supplémentaire : la carte ne colle plus à la barre de nav. */
    padding: clamp(40px, 7vw, 96px) 20px clamp(40px, 6vw, 80px);
    background: var(--ugcb-cream);
}

.ugcb-login__card {
    width: 100%;
    max-width: 480px;
    background: #fff;
    border: 1px solid rgba(8, 28, 73, .06);
    border-radius: var(--ugcb-radius);
    box-shadow: var(--ugcb-shadow);
    padding: clamp(28px, 5vw, 48px);
}

.ugcb-login__card .ugcb-member-breadcrumb { text-align: center; }

.ugcb-login__title {
    font-size: clamp(28px, 4vw, 38px);
    line-height: 1.15;
    color: var(--ugcb-ink);
    text-align: center;
    margin: 0 0 28px;
}

/* Le h2 « Se connecter » de WooCommerce fait doublon avec le titre de la carte. */
.ugcb-login .woocommerce > h2 {
    display: none;
}

/* Le wrapper .woocommerce de la carte de connexion ne doit pas hériter du
   layout flex sidebar + contenu défini plus haut. */
.ugcb-login .woocommerce {
    display: block;
    min-height: 0;
    background: transparent;
}

.ugcb-login .woocommerce,
.ugcb-login .woocommerce-form-login {
    max-width: none;
}

.ugcb-login form.woocommerce-form-login {
    border: 0 !important;
    padding: 0 !important;
    margin: 0 !important;
}

.ugcb-login .form-row {
    margin: 0 0 18px;
    padding: 0;
    width: 100%;
    float: none;
}

.ugcb-login label {
    display: block;
    font-size: 12px;
    letter-spacing: 1.4px;
    text-transform: uppercase;
    color: var(--ugcb-muted);
    margin-bottom: 7px;
    font-family: var(--font-secondary, sans-serif);
}

.ugcb-login input[type="text"],
.ugcb-login input[type="email"],
.ugcb-login input[type="password"] {
    width: 100%;
    background: #fff;
    border: 1.5px solid rgba(8, 28, 73, .12);
    border-radius: 9px;
    padding: 13px 16px;
    font-size: 15px;
    font-family: var(--font-secondary, sans-serif);
    color: var(--ugcb-ink);
    transition: border-color .15s ease, box-shadow .15s ease;
}

.ugcb-login input:focus {
    outline: none;
    border-color: var(--ugcb-gold);
    box-shadow: 0 0 0 3px var(--ugcb-gold-soft);
}

/* Afficher/masquer le mot de passe (icône œil Woo) */
.ugcb-login .show-password-input { top: 13px; right: 14px; }

/* « Se souvenir de moi » : case + libellé sur une ligne, en minuscules. */
.ugcb-login .woocommerce-form-login__rememberme {
    display: flex;
    align-items: center;
    gap: 9px;
    text-transform: none;
    letter-spacing: 0;
    font-size: 14px;
    color: var(--ugcb-ink);
    margin: 2px 0 18px;
    cursor: pointer;
}

.ugcb-login .woocommerce-form-login__rememberme input {
    width: 16px;
    height: 16px;
    accent-color: var(--ugcb-gold);
}

.ugcb-login .woocommerce-form-login__submit,
.ugcb-login button[type="submit"] {
    width: 100%;
    background: var(--ugcb-navy) !important;
    color: #fff !important;
    border: 0;
    border-radius: 9px;
    padding: 15px 30px;
    font-size: 15px;
    letter-spacing: .5px;
    font-family: var(--font-secondary, sans-serif);
    cursor: pointer;
    transition: background .2s ease, box-shadow .2s ease;
    box-shadow: 0 4px 14px rgba(8, 28, 73, .2);
}

.ugcb-login .woocommerce-form-login__submit:hover,
.ugcb-login button[type="submit"]:hover {
    background: var(--ugcb-gold) !important;
}

.ugcb-login .lost_password {
    text-align: center;
    margin: 18px 0 0;
    font-size: 14px;
    font-family: var(--font-secondary, sans-serif);
}

.ugcb-login .lost_password a {
    color: var(--ugcb-gold);
    text-decoration: none;
    border-bottom: 1px solid currentColor;
}

.ugcb-login .lost_password a:hover {
    color: var(--ugcb-navy);
}

/* Formulaire mot de passe oublié / nouveau mot de passe (même carte). */
.ugcb-login .woocommerce-ResetPassword {
    border: 0 !important;
    padding: 0 !important;
    margin: 0 !important;
}

.ugcb-login .ugcb-login__lead {
    font-size: 15px;
    line-height: 1.55;
    color: var(--ugcb-muted);
    text-align: center;
    margin: 0 0 24px;
    text-transform: none;
    letter-spacing: 0;
    font-family: var(--font-secondary, sans-serif);
}

.ugcb-login .woocommerce-ResetPassword .form-row-first,
.ugcb-login .woocommerce-ResetPassword .form-row-last,
.ugcb-login .woocommerce-ResetPassword .woocommerce-form-row--first,
.ugcb-login .woocommerce-ResetPassword .woocommerce-form-row--last {
    float: none;
    width: 100%;
}

.ugcb-login .woocommerce-ResetPassword .clear {
    display: none;
}

.ugcb-login .woocommerce-ResetPassword .required {
    color: var(--ugcb-gold);
    font-weight: 400;
    text-decoration: none;
}

.ugcb-login .woocommerce-error,
.ugcb-login .woocommerce-message,
.ugcb-login .woocommerce-info {
    border-radius: 10px;
    margin-bottom: 20px;
}

/* ── Formulaire « Mon profil » (edit-account WooCommerce) ──────────────── */
.woocommerce-MyAccount-content .woocommerce-EditAccountForm {
    max-width: 760px;
    background: #fff;
    border: 1px solid rgba(8, 28, 73, .05);
    border-radius: var(--ugcb-radius);
    box-shadow: var(--ugcb-shadow);
    padding: 30px 32px;
}

.woocommerce-MyAccount-content .woocommerce-EditAccountForm .form-row {
    margin: 0 0 18px;
    padding: 0;
}

.woocommerce-MyAccount-content .woocommerce-EditAccountForm .form-row-first,
.woocommerce-MyAccount-content .woocommerce-EditAccountForm .form-row-last {
    width: calc(50% - 10px);
    float: left;
}

.woocommerce-MyAccount-content .woocommerce-EditAccountForm .form-row-first { margin-right: 20px; }

.woocommerce-MyAccount-content .woocommerce-EditAccountForm .clear { clear: both; }

.woocommerce-MyAccount-content .woocommerce-EditAccountForm label {
    display: block;
    font-size: 12px;
    letter-spacing: 1.4px;
    text-transform: uppercase;
    color: var(--ugcb-muted);
    margin-bottom: 7px;
    font-family: var(--font-secondary, sans-serif);
}

.woocommerce-MyAccount-content .woocommerce-EditAccountForm input[type="text"],
.woocommerce-MyAccount-content .woocommerce-EditAccountForm input[type="email"],
.woocommerce-MyAccount-content .woocommerce-EditAccountForm input[type="password"] {
    width: 100%;
    background: #fff;
    border: 1.5px solid rgba(8, 28, 73, .12);
    border-radius: 9px;
    padding: 12px 15px;
    font-size: 14.5px;
    font-family: var(--font-secondary, sans-serif);
    color: var(--ugcb-ink);
    transition: border-color .15s ease, box-shadow .15s ease;
}

.woocommerce-MyAccount-content .woocommerce-EditAccountForm input:focus {
    outline: none;
    border-color: var(--ugcb-gold);
    box-shadow: 0 0 0 3px var(--ugcb-gold-soft);
}

.woocommerce-MyAccount-content .woocommerce-EditAccountForm .show-password-input { top: 40px; right: 14px; }

/* Texte d'aide sous les champs (« Indique comment votre nom apparaîtra… ») */
.woocommerce-MyAccount-content .woocommerce-EditAccountForm em,
.woocommerce-MyAccount-content .woocommerce-EditAccountForm span em {
    display: block;
    font-style: normal;
    font-size: 12.5px;
    color: var(--ugcb-muted);
    margin-top: 6px;
    font-family: var(--font-secondary, sans-serif);
}

/* Bloc « Changement de mot de passe » */
.woocommerce-MyAccount-content .woocommerce-EditAccountForm fieldset {
    border: 1px solid rgba(8, 28, 73, .1);
    border-radius: 12px;
    padding: 20px 24px 8px;
    margin: 26px 0 22px;
}

.woocommerce-MyAccount-content .woocommerce-EditAccountForm fieldset legend {
    font-size: 12px;
    letter-spacing: 1.6px;
    text-transform: uppercase;
    color: var(--ugcb-navy);
    font-weight: 600;
    padding: 0 10px;
    font-family: var(--font-secondary, sans-serif);
}

/* ── Responsive ────────────────────────────────────────────────────────── */
@media (max-width: 900px) {
    /* stretch : sans lui, l'alignement flex-start du bandeau desktop dimensionne
       la colonne de contenu sur son contenu (fit-content), pas sur l'écran. Elle
       dépassait alors à droite — page à faire défiler latéralement et bande vide
       à droite du bloc marine, dont la largeur reste celle de l'écran. */
    .woocommerce-account .woocommerce { flex-direction: column; align-items: stretch; }
    body.woocommerce-account .woocommerce-MyAccount-navigation {
        width: 100% !important;
        max-width: none;
        flex-basis: auto;
        position: static;
        left: auto;
        top: auto;
        height: auto;
        overflow: visible;
        z-index: auto;
    }
    body.woocommerce-account .woocommerce-MyAccount-content {
        margin-left: 0;
        min-height: 0;
    }
    /* Un onglet par ligne, comme dans la colonne du bureau. En ligne avec
       repli, les intitulés de longueurs très inégales laissaient un onglet
       seul à côté d'un autre en fin de ligne (« Mon profil » contre
       « Informations Château ») : une disposition illisible, où rien
       n'indiquait que ces deux-là n'allaient pas ensemble. */
    .woocommerce-MyAccount-navigation ul {
        flex-direction: column;
        flex-wrap: nowrap;
        padding-bottom: 14px;
    }
    /* Le séparateur du bureau est conservé : « Se déconnecter » se détache des
       onglets de navigation, sans le margin-top:auto qui n'a de sens que dans
       une colonne pleine hauteur. */
    .woocommerce-MyAccount-navigation li.ugcb-nav-logout {
        margin: 6px 0 0;
        padding-top: 10px;
    }
    /* Visuel, texte et badge : une ligne entière chacun, titre et dates ayant
       alors toute la largeur de la carte. */
    /* master.css ne porte pas le reset universel `box-sizing` : une colonne en
       `flex: 0 0 100%` s'ajoutait ses 20 px de marge intérieure de chaque côté
       et sortait de l'écran. La page se faisait défiler latéralement et le bloc
       marine, large comme l'écran, laissait une bande blanche à sa droite. */
    .ugcb-event-card,
    .ugcb-event-card > summary,
    .ugcb-event-card__media,
    .ugcb-event-card__body,
    .ugcb-event-card__aside,
    .ugcb-event-card__content {
        box-sizing: border-box;
    }

    .ugcb-event-card > summary { flex-wrap: wrap; row-gap: 0; }
    .ugcb-event-card__media { flex: 0 0 100%; height: 150px; }
    .ugcb-event-card__body { flex: 0 0 100%; min-width: 0; padding: 18px 20px 0; }
    .ugcb-event-card__aside { flex: 0 0 100%; padding: 14px 20px 20px; }

    /* Dates : intitulé discret sur sa ligne, valeur en pleine largeur en dessous. */
    .ugcb-event-card__dates { margin-top: 10px; }

    .ugcb-event-card__dates-label {
        display: block;
        font-size: 11.5px;
        letter-spacing: .07em;
        text-transform: uppercase;
        color: var(--ugcb-gold);
    }

    .ugcb-event-card__dates-label::after { content: none; }

    .ugcb-event-card__dates-value {
        display: block;
        margin-top: 2px;
        font-size: 14px;
        line-height: 1.45;
        color: var(--ugcb-ink);
    }
    .woocommerce-MyAccount-content .woocommerce-EditAccountForm { padding: 22px 18px; }
    .woocommerce-MyAccount-content .woocommerce-EditAccountForm .form-row-first,
    .woocommerce-MyAccount-content .woocommerce-EditAccountForm .form-row-last {
        width: 100%;
        float: none;
        margin-right: 0;
    }
}

/* ── Modale de confirmation (design UGCB) ───────────────────────────────── */
body.ugcb-modal-open { overflow: hidden; }

.ugcb-modal {
    position: fixed;
    inset: 0;
    z-index: 100000;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 20px;
}

.ugcb-modal[hidden] { display: none; }

.ugcb-modal__overlay {
    position: absolute;
    inset: 0;
    background: rgba(8, 28, 73, .5);
    backdrop-filter: blur(4px);
    -webkit-backdrop-filter: blur(4px);
    opacity: 0;
    transition: opacity .2s ease;
}

.ugcb-modal.is-open .ugcb-modal__overlay { opacity: 1; }

.ugcb-modal__dialog {
    position: relative;
    width: 100%;
    max-width: 400px;
    background: #fff;
    border-radius: 20px;
    border: 1px solid rgba(8, 28, 73, .06);
    box-shadow: 0 24px 60px -12px rgba(8, 28, 73, .35);
    padding: 32px 30px 26px;
    text-align: center;
    transform: translateY(10px) scale(.98);
    opacity: 0;
    transition: transform .24s cubic-bezier(.2, .8, .2, 1), opacity .2s ease;
}

.ugcb-modal.is-open .ugcb-modal__dialog {
    transform: translateY(0) scale(1);
    opacity: 1;
}

/* Pastille d'icône : touche moderne, rappelle l'action « transmettre ». */
.ugcb-modal__icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 52px;
    height: 52px;
    margin: 0 auto 18px;
    border-radius: 50%;
    background: rgba(8, 28, 73, .06);
    color: var(--ugcb-navy);
}

.ugcb-modal__icon svg {
    width: 24px;
    height: 24px;
    display: block;
}

.ugcb-modal__eyebrow {
    display: block;
    font-size: 10.5px;
    letter-spacing: 2px;
    text-transform: uppercase;
    color: var(--ugcb-gold);
    font-family: var(--font-secondary, sans-serif);
    margin-bottom: 8px;
}

/* Titre compact (les styles de titre du thème forcent une taille via !important,
   d'où le !important ici pour garder un titre de modale sobre et moderne). */
.ugcb-modal .ugcb-modal__title,
.woocommerce-MyAccount-content .ugcb-modal__title {
    font-size: 20px !important;
    line-height: 1.3 !important;
    font-weight: 600;
    font-family: var(--font-first, serif);
    letter-spacing: 0;
    text-transform: none;
    color: var(--ugcb-ink);
    margin: 0 0 10px !important;
}

.ugcb-modal__text {
    font-size: 14px;
    line-height: 1.55;
    color: var(--ugcb-muted);
    font-family: var(--font-secondary, sans-serif);
    margin: 0 auto 24px;
    max-width: 320px;
}

.ugcb-modal__actions {
    display: flex;
    gap: 10px;
    justify-content: center;
    flex-wrap: wrap;
}

.ugcb-modal__btn {
    flex: 1 1 auto;
    min-width: 140px;
    border: 0;
    border-radius: 12px;
    padding: 12px 22px;
    font-size: 14px;
    font-weight: 600;
    letter-spacing: .2px;
    font-family: var(--font-secondary, sans-serif);
    cursor: pointer;
    transition: background .2s ease, color .2s ease, box-shadow .2s ease, transform .12s ease;
}

.ugcb-modal__btn:active { transform: translateY(1px); }

.ugcb-modal__btn--ghost {
    background: transparent;
    color: var(--ugcb-navy);
    border: 1.5px solid rgba(8, 28, 73, .15);
}

.ugcb-modal__btn--ghost:hover {
    background: rgba(8, 28, 73, .04);
    border-color: rgba(8, 28, 73, .3);
}

.ugcb-modal__btn--primary {
    background: var(--ugcb-navy);
    color: #fff;
    box-shadow: 0 8px 20px -6px rgba(8, 28, 73, .5);
}

.ugcb-modal__btn--primary:hover {
    background: var(--ugcb-gold);
    box-shadow: 0 8px 20px -6px rgba(183, 152, 95, .6);
}

@media (max-width: 420px) {
    .ugcb-modal__actions { flex-direction: column-reverse; }
    .ugcb-modal__btn { width: 100%; }
}

/* ── Tableau de bord membre ─────────────────────────────────────────────── */
.ugcb-dashboard-stats {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 18px;
    margin: 24px 0 32px;
}

@media (max-width: 720px) {
    .ugcb-dashboard-stats { grid-template-columns: 1fr; }
}

.ugcb-stat-card {
    background: #fff;
    border: 1px solid var(--ugcb-gold-soft);
    border-radius: var(--ugcb-radius);
    box-shadow: var(--ugcb-shadow);
    padding: 22px 24px;
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.ugcb-stat-card__value {
    font-size: 34px;
    font-weight: 700;
    color: var(--ugcb-navy);
    line-height: 1.1;
}

.ugcb-stat-card__label {
    font-size: 13px;
    color: var(--ugcb-muted);
    text-transform: uppercase;
    letter-spacing: .5px;
}

.ugcb-dashboard-section {
    margin: 8px 0 40px;
}

.ugcb-dashboard-section__head {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 10px 14px;
    margin: 0 0 6px;
}

.ugcb-dashboard-section__head h3 {
    margin: 0;
    font-size: 21px;
    color: var(--ugcb-navy);
}

.ugcb-dashboard-section__desc {
    font-size: 13.5px;
    color: var(--ugcb-muted);
    margin: 0 0 20px;
    font-family: var(--font-secondary, sans-serif);
    max-width: 52em;
}

.ugcb-dashboard-section__more {
    margin: 12px 0 0;
    font-size: 13.5px;
    font-family: var(--font-secondary, sans-serif);
}

.ugcb-dashboard-section__more a {
    color: var(--ugcb-navy);
    font-weight: 600;
    text-decoration: none;
    border-bottom: 1px solid rgba(8, 28, 73, .25);
}

.ugcb-dashboard-section__more a:hover {
    border-bottom-color: var(--ugcb-navy);
}

.ugcb-dashboard-card__steps {
    margin: 4px 0 12px;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: var(--ugcb-gold);
    font-family: var(--font-secondary, sans-serif);
}

.ugcb-dashboard-card__missing {
    margin: 0 0 16px;
}

.member-dashboard .ugcb-event-card__content .button {
    margin-top: 8px;
    display: inline-block;
    text-decoration: none;
}

/* Étapes : mêmes cartes empilées que « Événements à venir ». */
.ugcb-dashboard-subtree {
    list-style: none;
    margin: 0 0 18px;
    padding: 0;
}

.ugcb-dashboard-subtree .ugcb-dashboard-subtree {
    margin: 4px 0 8px 4px;
    padding: 8px 0 0 16px;
    border-left: 2px solid rgba(183, 152, 95, .5);
}

.ugcb-dashboard-subtree__item {
    padding: 0;
    border: 0;
}

.ugcb-dashboard-subtree__row {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 6px 14px;
    background: #fff;
    border: 1px solid rgba(8, 28, 73, .08);
    border-radius: 10px;
    padding: 12px 16px;
    margin-bottom: 8px;
}

.ugcb-dashboard-subtree__title {
    color: var(--ugcb-ink, #081C49);
    font-weight: 600;
    font-size: 15px;
}

.ugcb-dashboard-subtree__date {
    font-size: 13px;
    color: var(--ugcb-muted, #5a6a8a);
    font-family: var(--font-secondary, sans-serif);
}

/* ── Onglet « Documents » : bibliothèque cherchable ─────────────────────────
   Liste des documents déposés par les équipes UGCB dans les événements :
   recherche en tête, une ligne par fichier, deux boutons icône (voir /
   télécharger) et aperçu image dans la page. Voir member.js § 8. */
.ugcb-member-intro {
    max-width: 720px;
    margin: -14px 0 26px;
    font-size: 14.5px;
    line-height: 1.6;
    color: var(--ugcb-muted);
    font-family: var(--font-secondary, sans-serif);
}

.member-documents .screen-reader-text {
    position: absolute !important;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip: rect(1px, 1px, 1px, 1px);
    clip-path: inset(50%);
    white-space: nowrap;
}

.ugcb-doc-search {
    position: relative;
    display: flex;
    align-items: center;
    max-width: 560px;
    margin: 0 0 14px;
    background: #fff;
    border: 1px solid rgba(8, 28, 73, .12);
    border-radius: 10px;
    box-shadow: var(--ugcb-shadow);
    transition: border-color .2s ease, box-shadow .2s ease;
}

.ugcb-doc-search:focus-within {
    border-color: var(--ugcb-gold);
    box-shadow: 0 6px 20px rgba(183, 152, 95, .22);
}

.ugcb-doc-search__icon {
    flex: 0 0 auto;
    width: 18px;
    height: 18px;
    margin: 0 0 0 16px;
    stroke: var(--ugcb-gold);
    fill: none;
    stroke-width: 1.8;
    stroke-linecap: round;
}

.ugcb-doc-search__input {
    flex: 1 1 auto;
    min-width: 0;
    border: 0;
    outline: 0;
    background: transparent;
    padding: 14px 12px;
    font-size: 15px;
    color: var(--ugcb-ink);
    font-family: var(--font-secondary, sans-serif);
}

.ugcb-doc-search__input::placeholder {
    color: var(--ugcb-muted);
}

/* Croix native de Safari / Chrome : la nôtre gère aussi le filtre. */
.ugcb-doc-search__input::-webkit-search-cancel-button {
    -webkit-appearance: none;
    appearance: none;
}

.ugcb-doc-search__clear {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 34px;
    height: 34px;
    margin-right: 8px;
    padding: 0;
    border: 0;
    border-radius: 8px;
    background: transparent;
    cursor: pointer;
    color: var(--ugcb-muted);
}

.ugcb-doc-search__clear:hover {
    background: var(--ugcb-cream);
    color: var(--ugcb-navy);
}

.ugcb-doc-search__clear[hidden] { display: none; }

.ugcb-doc-search__clear svg {
    width: 15px;
    height: 15px;
    stroke: currentColor;
    fill: none;
    stroke-width: 2;
    stroke-linecap: round;
}

.ugcb-doc-count {
    margin: 0 0 18px;
    font-size: 12.5px;
    letter-spacing: .06em;
    text-transform: uppercase;
    color: var(--ugcb-muted);
    font-family: var(--font-secondary, sans-serif);
}

.ugcb-doc-list {
    list-style: none;
    margin: 0;
    padding: 0;
}

.ugcb-doc-row {
    display: flex;
    align-items: center;
    gap: 16px;
    padding: 14px 18px;
    margin-bottom: 10px;
    background: #fff;
    border: 1px solid rgba(8, 28, 73, .06);
    border-radius: 10px;
    box-shadow: 0 4px 16px rgba(8, 28, 73, .05);
    transition: border-color .2s ease, box-shadow .2s ease, transform .2s ease;
}

.ugcb-doc-row:hover {
    border-color: rgba(183, 152, 95, .45);
    box-shadow: 0 8px 22px rgba(8, 28, 73, .09);
    transform: translateY(-1px);
}

.ugcb-doc-row[hidden] { display: none; }

.ugcb-doc-row__icon {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 42px;
    height: 42px;
    border-radius: 9px;
    background: var(--ugcb-gold-soft);
}

.ugcb-doc-row__icon svg {
    width: 20px;
    height: 20px;
    stroke: var(--ugcb-gold);
    fill: none;
    stroke-width: 1.6;
    stroke-linecap: round;
    stroke-linejoin: round;
}

/* Toute la ligne est cliquable : c'est le geste « voir » du document. */
.ugcb-doc-row__main {
    flex: 1 1 auto;
    min-width: 0;
    display: block;
    text-decoration: none;
    color: inherit;
}

.ugcb-doc-row__title {
    display: block;
    font-size: 16px;
    line-height: 1.35;
    color: var(--ugcb-ink);
    font-weight: 600;
}

.ugcb-doc-row__main:hover .ugcb-doc-row__title {
    color: var(--ugcb-gold);
}

.ugcb-doc-row__meta {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 4px 10px;
    margin-top: 4px;
    font-size: 12.5px;
    color: var(--ugcb-muted);
    font-family: var(--font-secondary, sans-serif);
}

/* Puces de séparation, sauf devant la première information. */
.ugcb-doc-row__meta span + span::before {
    content: '•';
    margin-right: 10px;
    color: rgba(8, 28, 73, .25);
}

.ugcb-doc-row__actions {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    gap: 8px;
}

.ugcb-doc-action {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 38px;
    height: 38px;
    padding: 0;
    border: 1px solid rgba(8, 28, 73, .14);
    border-radius: 8px;
    background: #fff;
    color: var(--ugcb-navy);
    cursor: pointer;
    text-decoration: none;
    transition: background .2s ease, border-color .2s ease, color .2s ease;
}

.ugcb-doc-action:hover,
.ugcb-doc-action:focus-visible {
    background: var(--ugcb-gold);
    border-color: var(--ugcb-gold);
    color: #fff;
}

.ugcb-doc-action svg {
    width: 17px;
    height: 17px;
    stroke: currentColor;
    fill: none;
    stroke-width: 1.7;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.ugcb-doc-empty {
    margin: 4px 0 0;
    padding: 22px 24px;
    background: #fff;
    border: 1px dashed rgba(8, 28, 73, .14);
    border-radius: 10px;
    color: var(--ugcb-muted);
    font-size: 14px;
    font-family: var(--font-secondary, sans-serif);
}

.ugcb-doc-empty[hidden] { display: none; }

@media (max-width: 640px) {
    .ugcb-doc-row {
        flex-wrap: wrap;
        gap: 12px;
    }

    .ugcb-doc-row__main {
        flex: 1 1 100%;
        order: 2;
    }

    .ugcb-doc-row__actions {
        order: 3;
        margin-left: auto;
    }
}

/* ── Aperçu image (reste dans l'onglet courant) ─────────────────────────── */
.ugcb-doc-preview {
    position: fixed;
    inset: 0;
    z-index: 100000;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 20px;
    background: rgba(8, 28, 73, .72);
    backdrop-filter: blur(4px);
    -webkit-backdrop-filter: blur(4px);
}

.ugcb-doc-preview[hidden] { display: none; }

.ugcb-doc-preview__inner {
    position: relative;
    display: flex;
    flex-direction: column;
    width: 100%;
    max-width: 1000px;
    max-height: 92vh;
    background: #fff;
    border-radius: var(--ugcb-radius);
    box-shadow: 0 24px 60px rgba(8, 28, 73, .35);
    overflow: hidden;
}

.ugcb-doc-preview__bar {
    display: flex;
    align-items: center;
    gap: 16px;
    padding: 12px 14px 12px 20px;
    border-bottom: 1px solid rgba(8, 28, 73, .08);
}

.ugcb-doc-preview__title {
    flex: 1 1 auto;
    min-width: 0;
    font-size: 15px;
    font-weight: 600;
    color: var(--ugcb-ink);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.ugcb-doc-preview__tools {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    gap: 8px;
}

.ugcb-doc-preview img {
    display: block;
    max-width: 100%;
    max-height: calc(92vh - 64px);
    margin: 0 auto;
    background: var(--ugcb-cream);
    object-fit: contain;
}
