/* Complément autonome chargé en production, sans compilation Node. */
:is(button, a).bg-gray-800,
:is(button, a).bg-gray-900,
:is(button, a).bg-slate-900 {
    background-color: #2563eb !important;
    color: #fff;
}

:is(button, a).bg-gray-800:hover,
:is(button, a).bg-gray-900:hover,
:is(button, a).bg-slate-900:hover {
    background-color: #1d4ed8 !important;
}

/* Suivi live : une lecture dense sans cartes très hautes. */
.live-compact .p-6 { padding: 1rem !important; }
.live-compact .p-5 { padding: .875rem !important; }
.live-compact .py-6 { padding-top: 1rem !important; padding-bottom: 1rem !important; }
.live-compact .space-y-6 > :not([hidden]) ~ :not([hidden]) { margin-top: 1rem !important; }
.live-compact .text-4xl { font-size: 1.75rem !important; line-height: 1 !important; }
.live-compact .rounded-2xl { border-radius: .75rem !important; }

/* ======================================================================
   Espace participant — identité visuelle V58.11
   Complément autonome : aucun rebuild Vite/Tailwind requis en production.
   ====================================================================== */
.participant-space {
    min-height: calc(100vh - 4rem);
    background:
        radial-gradient(circle at 8% 5%, rgba(207, 238, 255, .58), transparent 28rem),
        linear-gradient(180deg, #f5faff 0%, #eef6fb 42%, #f7fafc 100%);
    color: #10224a;
    padding: 1.6rem 1rem 3rem;
}

.participant-space__inner {
    width: min(1180px, 100%);
    margin: 0 auto;
}

.participant-alert {
    margin-bottom: 1rem;
    border-radius: .9rem;
    padding: .85rem 1rem;
    font-size: .9rem;
    font-weight: 600;
}

.participant-alert--success {
    border: 1px solid #b7e7d4;
    background: #ebfbf4;
    color: #087856;
}

.participant-hero {
    position: relative;
    display: grid;
    grid-template-columns: minmax(0, 1.25fr) minmax(250px, .9fr) minmax(235px, .7fr);
    grid-template-areas:
        "copy visual status"
        "copy visual actions";
    align-items: center;
    min-height: 215px;
    overflow: hidden;
    border: 1px solid #dce9f3;
    border-radius: 1.15rem 1.15rem 0 0;
    background:
        radial-gradient(circle at 20% 120%, rgba(198, 235, 252, .65), transparent 35%),
        linear-gradient(105deg, #fafdff 0%, #eaf7ff 56%, #effdf9 100%);
    padding: 1.55rem 2.3rem 1.15rem;
    box-shadow: 0 18px 42px rgba(31, 78, 121, .08);
}

.participant-hero__copy { grid-area: copy; position: relative; z-index: 2; }
.participant-hero__visual { grid-area: visual; align-self: end; justify-self: center; width: min(100%, 290px); margin-bottom: -1rem; }
.participant-hero__visual svg { display: block; width: 100%; height: auto; }
.participant-status-card { grid-area: status; }
.participant-hero__actions { grid-area: actions; }

.participant-eyebrow {
    margin: 0;
    color: #58718f;
    font-size: .76rem;
    font-weight: 800;
    letter-spacing: .07em;
    text-transform: uppercase;
}

.participant-hero h1 {
    margin: .35rem 0 0;
    color: #10224a;
    font-size: clamp(2rem, 3vw, 3.15rem);
    line-height: 1.02;
    font-weight: 800;
    letter-spacing: -.035em;
}

.participant-hero__lead {
    max-width: 35rem;
    margin: .9rem 0 0;
    color: #4f6784;
    font-size: 1rem;
    line-height: 1.55;
}

.participant-status-card {
    display: flex;
    align-items: flex-start;
    gap: .8rem;
    border: 1px solid #bdebd8;
    border-radius: .95rem;
    background: rgba(233, 252, 244, .92);
    padding: 1rem;
    box-shadow: 0 10px 28px rgba(17, 105, 86, .06);
}

.participant-status-card__label {
    display: block;
    color: #45627b;
    font-size: .82rem;
    font-weight: 700;
}

.participant-status-card strong {
    display: flex;
    align-items: center;
    gap: .42rem;
    margin-top: .2rem;
    font-size: 1.05rem;
}

.participant-status-card strong.is-active { color: #078158; }
.participant-status-card strong.is-pending { color: #aa6a08; }
.participant-status-card small { display: block; margin-top: .35rem; color: #577187; font-size: .75rem; line-height: 1.4; }

.participant-status-dot {
    width: .58rem;
    height: .58rem;
    border-radius: 999px;
    background: currentColor;
    box-shadow: 0 0 0 3px rgba(17, 160, 113, .1);
}

.participant-hero__actions {
    display: grid;
    grid-template-columns: 1fr;
    gap: .55rem;
    margin-top: .7rem;
}

.participant-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: .48rem;
    min-height: 42px;
    border-radius: .68rem;
    padding: .66rem 1rem;
    font-size: .82rem;
    font-weight: 800;
    line-height: 1.2;
    text-decoration: none;
    transition: transform .15s ease, box-shadow .15s ease, background-color .15s ease;
}

.participant-btn:hover { transform: translateY(-1px); }
.participant-btn svg { width: 1rem; height: 1rem; flex: 0 0 auto; }
.participant-btn--primary {
    border: 1px solid #007a97;
    background: linear-gradient(135deg, #0782a5 0%, #0096a8 100%);
    color: #fff !important;
    box-shadow: 0 7px 18px rgba(2, 126, 151, .18);
}
.participant-btn--primary:hover { background: linear-gradient(135deg, #056f91 0%, #07899b 100%); }
.participant-btn--secondary {
    border: 1px solid #3d7cff;
    background: #fff;
    color: #1557db !important;
}
.participant-btn--secondary:hover { background: #f3f7ff; }
.participant-btn--wide { width: 100%; }

.participant-summary-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: .75rem;
    border-inline: 1px solid #dce9f3;
    background: #f8fbfd;
    padding: .85rem 2.3rem 0;
}

.participant-summary-card {
    position: relative;
    display: flex;
    align-items: flex-start;
    gap: 1rem;
    min-width: 0;
    border: 1px solid #dce5ee;
    border-radius: .9rem;
    background: #fff;
    padding: 1.15rem 3rem 1.15rem 1.15rem;
    color: inherit;
    text-decoration: none;
    box-shadow: 0 8px 22px rgba(23, 57, 93, .045);
}

.participant-summary-card--link:hover { border-color: #bfd6f1; box-shadow: 0 10px 28px rgba(23, 57, 93, .08); }
.participant-summary-card__body { min-width: 0; }
.participant-summary-card__body > span { display: block; color: #17305f; font-size: .9rem; font-weight: 800; }
.participant-summary-card__body > strong { display: block; margin-top: .1rem; color: #10224a; font-size: 1.8rem; line-height: 1.05; font-weight: 800; }
.participant-summary-card__body > p { margin: .35rem 0 0; color: #5f738a; font-size: .78rem; line-height: 1.45; }
.participant-summary-card__email { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 1rem !important; line-height: 1.35 !important; }
.participant-chevron { position: absolute; right: 1.1rem; top: 50%; transform: translateY(-50%); color: #1165e8; font-size: 1.7rem; font-weight: 500; }

.participant-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.55rem;
    height: 2.55rem;
    flex: 0 0 2.55rem;
    border-radius: 999px;
}
.participant-icon svg { width: 1.35rem; height: 1.35rem; }
.participant-icon--blue { background: #e5f3ff; color: #1769e0; }
.participant-icon--cyan { background: #e2f7fb; color: #05879c; }
.participant-icon--violet { background: #edf0ff; color: #375ee9; }
.participant-icon--green { background: #dcf8ec; color: #0a9163; }

.participant-main-grid {
    display: grid;
    grid-template-columns: 1.1fr .9fr;
    gap: .75rem;
    border-inline: 1px solid #dce9f3;
    background: #f8fbfd;
    padding: .75rem 2.3rem 0;
}

.participant-panel {
    border: 1px solid #dce5ee;
    border-radius: .95rem;
    background: #fff;
    box-shadow: 0 8px 22px rgba(23, 57, 93, .045);
}

.participant-panel__heading { display: flex; align-items: flex-start; gap: .9rem; }
.participant-panel__heading--compact { align-items: center; }
.participant-panel__heading h2 { margin: 0; color: #132854; font-size: 1.04rem; line-height: 1.25; font-weight: 800; }
.participant-panel__heading p { margin: .35rem 0 0; color: #587089; font-size: .78rem; line-height: 1.5; }

.participant-qr-card { display: flex; flex-direction: column; padding: 1.3rem; }
.participant-qr-card__qr {
    display: block;
    width: clamp(148px, 38%, 206px);
    margin: 1rem auto .9rem;
    border: 0;
    border-radius: .6rem;
    background: #fff;
    padding: .25rem;
}
.participant-qr-card__qr img { display: block; width: 100%; height: auto; }
.participant-qr-card .participant-btn--wide { width: min(76%, 390px); margin: auto auto 0; }

.participant-profile-card { display: flex; flex-direction: column; padding: 1.3rem; }
.participant-profile-list { margin: 1.1rem 0 0; }
.participant-profile-list > div { padding: .72rem 0; border-bottom: 1px solid #e6edf4; }
.participant-profile-list dt { color: #60758b; font-size: .76rem; font-weight: 600; }
.participant-profile-list dd { margin: .24rem 0 0; color: #152b57; font-size: .88rem; font-weight: 800; overflow-wrap: anywhere; }
.participant-profile-list dd.participant-verified, .participant-profile-list dd.participant-pending { display: flex; align-items: center; gap: .4rem; }
.participant-profile-list dd.participant-verified { color: #078158; }
.participant-profile-list dd.participant-pending { color: #aa6a08; }
.participant-profile-list dd span { display: inline-flex; align-items: center; justify-content: center; width: 1.12rem; height: 1.12rem; border-radius: 999px; background: currentColor; color: #fff; font-size: .68rem; }
.participant-profile-note { display: flex; align-items: flex-start; gap: .55rem; margin: 1rem 0; border-radius: .72rem; background: #eef8ff; padding: .75rem .85rem; color: #4d6883; font-size: .77rem; line-height: 1.45; }
.participant-profile-note > span { color: #1769e0; font-size: 1rem; font-weight: 800; }
.participant-profile-card .participant-btn { margin-top: auto; }

.participant-attestations {
    border-radius: .95rem;
    border-top-left-radius: .95rem;
    border-top-right-radius: .95rem;
    margin: .75rem 2.3rem 0;
    overflow: hidden;
}

.participant-space__inner::after {
    content: "";
    display: block;
    height: 1rem;
    border: 1px solid #dce9f3;
    border-top: 0;
    border-radius: 0 0 1.15rem 1.15rem;
    background: #f8fbfd;
}

.participant-attestations__header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: 1.15rem 1.3rem;
    border-bottom: 1px solid #e5edf4;
}
.participant-attestations__count { color: #1769e0; font-size: .78rem; font-weight: 800; white-space: nowrap; }

.participant-empty-state {
    display: flex;
    min-height: 175px;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 1.4rem;
    text-align: center;
}
.participant-empty-state__icon { width: 3.8rem; height: 3.8rem; margin-bottom: .45rem; }
.participant-empty-state__icon svg { display: block; width: 100%; height: 100%; }
.participant-empty-state strong { color: #152b57; font-size: .9rem; }
.participant-empty-state p { max-width: 34rem; margin: .35rem 0 0; color: #60758b; font-size: .76rem; line-height: 1.45; }

.participant-attestation-list { divide: none; }
.participant-attestation-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: 1rem 1.3rem;
    border-top: 1px solid #edf2f6;
}
.participant-attestation-row:first-child { border-top: 0; }
.participant-attestation-row__title { display: flex; flex-wrap: wrap; align-items: center; gap: .55rem; }
.participant-attestation-row__title strong { color: #162b55; font-size: .9rem; }
.participant-attestation-row__title span { border-radius: 999px; padding: .23rem .55rem; font-size: .68rem; font-weight: 800; }
.participant-attestation-row__title span.is-valid { background: #e3f8ee; color: #087957; }
.participant-attestation-row__title span.is-revoked { background: #fff0f0; color: #b42318; }
.participant-attestation-row p { margin: .28rem 0 0; color: #5e738a; font-size: .77rem; }
.participant-attestation-row small { display: block; margin-top: .2rem; color: #93a1af; font-size: .68rem; }
.participant-attestation-row__actions { display: flex; flex-wrap: wrap; gap: .45rem; flex: 0 0 auto; }
.participant-pagination { border-top: 1px solid #e5edf4; padding: .9rem 1.3rem; }

@media (max-width: 900px) {
    .participant-space { padding: 0 0 2rem; }
    .participant-space__inner { width: 100%; }
    .participant-alert { margin: .8rem .9rem; }
    .participant-hero {
        grid-template-columns: 1fr;
        grid-template-areas:
            "copy"
            "visual"
            "status"
            "actions";
        gap: .65rem;
        border-left: 0;
        border-right: 0;
        border-radius: 0;
        padding: 1rem .9rem .9rem;
        box-shadow: none;
    }
    .participant-eyebrow { font-size: .68rem; }
    .participant-hero h1 { font-size: 1.5rem; }
    .participant-hero__lead { margin-top: .45rem; font-size: .85rem; }
    .participant-hero__visual { width: min(100%, 245px); margin: -.2rem auto -.9rem; }
    .participant-status-card { padding: .75rem; }
    .participant-status-card small { display: none; }
    .participant-hero__actions { margin-top: 0; }
    .participant-summary-grid,
    .participant-main-grid {
        border-inline: 0;
        padding-left: .75rem;
        padding-right: .75rem;
    }
    .participant-summary-grid { gap: .55rem; }
    .participant-summary-card { padding: .85rem 2rem .85rem .75rem; gap: .55rem; }
    .participant-summary-card__body > span { font-size: .75rem; }
    .participant-summary-card__body > strong { font-size: 1.35rem; }
    .participant-summary-card__body > p { font-size: .66rem; line-height: 1.35; }
    .participant-summary-card__email { font-size: .68rem !important; white-space: normal; overflow-wrap: anywhere; }
    .participant-icon { width: 2.15rem; height: 2.15rem; flex-basis: 2.15rem; }
    .participant-icon svg { width: 1.1rem; height: 1.1rem; }
    .participant-main-grid { grid-template-columns: 1fr; }
    .participant-panel { border-radius: .8rem; }
    .participant-qr-card, .participant-profile-card { padding: .9rem; }
    .participant-panel__heading h2 { font-size: .9rem; }
    .participant-panel__heading p { font-size: .7rem; }
    .participant-qr-card__qr { width: 132px; margin: .7rem auto; }
    .participant-qr-card .participant-btn--wide { width: 100%; }
    .participant-attestations { margin: .75rem .75rem 0; }
    .participant-attestations__header { padding: .9rem; align-items: flex-start; }
    .participant-attestations__header .participant-panel__heading p { display: none; }
    .participant-attestations__count { font-size: .68rem; }
    .participant-empty-state { min-height: 145px; padding: 1rem; }
    .participant-attestation-row { align-items: flex-start; flex-direction: column; padding: .9rem; }
    .participant-attestation-row__actions { width: 100%; }
    .participant-attestation-row__actions .participant-btn { flex: 1 1 auto; }
    .participant-space__inner::after { border-inline: 0; border-radius: 0; }
}

@media (max-width: 420px) {
    .participant-summary-grid { grid-template-columns: 1fr 1fr; }
    .participant-summary-card { min-height: 108px; }
    .participant-summary-card__body > p { max-height: 2.8em; overflow: hidden; }
    .participant-btn { font-size: .76rem; }
}
