/* === BB Événements — Participation CSS === */
/* Classes partagées (.ipm-h2, .ipm-notice, .ipm-card, .ipm-results, etc.) dans bb-common.css */

/* ===== Section participation (page événement) ===== */

.ipm-participation-section {
    max-width: 900px !important;
    margin: 2rem auto 0 auto !important;
}

.ipm-choices {
    display: grid !important;
    grid-template-columns: repeat(2, 1fr) !important;
    gap: 12px !important;
    max-width: 620px !important;
    margin: 20px auto 0 auto !important;
}

.ipm-choice {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    padding: 14px 16px !important;
    background: #1a1a1a !important;
    border: 2px solid #333 !important;
    border-radius: 10px !important;
    color: #aaa !important;
    cursor: pointer !important;
    transition: all 0.2s ease !important;
    font-size: 14px !important;
    font-weight: 600 !important;
    text-align: center !important;
    line-height: 1.3 !important;
    font-family: inherit !important;
}

.ipm-choice:hover {
    border-color: #ff0099 !important;
    color: #fff !important;
    background: #222 !important;
}

.ipm-choice-active {
    border-color: #ff0099 !important;
    background: rgba(255, 0, 153, 0.1) !important;
    color: #fff !important;
    box-shadow: 0 0 18px rgba(255, 0, 153, 0.25) !important;
}

.ipm-choice-no:hover {
    border-color: #cc3333 !important;
}

.ipm-choice-no.ipm-choice-active {
    border-color: #cc3333 !important;
    background: rgba(204, 51, 51, 0.1) !important;
    box-shadow: 0 0 18px rgba(204, 51, 51, 0.25) !important;
}

.ipm-choice-saving {
    opacity: 0.5 !important;
    pointer-events: none !important;
}

@media screen and (max-width: 500px) {
    .ipm-choices {
        grid-template-columns: 1fr !important;
    }
}

/* ===== Cards - règles supplémentaires ===== */

.ipm-card h3 {
    margin: 0 0 10px 0 !important;
    font-weight: 700 !important;
    color: #ddd !important;
    font-size: 15px !important;
}

/* ===== Résultats - règles supplémentaires ===== */

.ipm-result-card:last-child {
    margin-bottom: 0 !important;
}

.ipm-result-card ul {
    list-style-type: disc !important;
    padding-left: 20px !important;
    margin: 0 !important;
    color: #bbb !important;
}

.ipm-column-wrapper {
    column-count: 2 !important;
    column-gap: 12px !important;
}

.ipm-column-wrapper .ipm-result-card {
    break-inside: avoid !important;
    margin-bottom: 12px !important;
}

.ipm-column-wrapper .ipm-result-card:last-child {
    margin-bottom: 0 !important;
}

@media screen and (min-width: 701px) {
    .ipm-column-wrapper-instrument {
        display: grid !important;
        grid-template-columns: repeat(2, 1fr) !important;
        gap: 16px !important;
        align-items: start !important;
    }
}

@media screen and (max-width: 700px) {
    .ipm-column-wrapper {
        column-count: 1 !important;
    }
    .ipm-column-wrapper-instrument {
        grid-template-columns: 1fr !important;
    }
}

/* ===== Back link ===== */

.bb-back-link {
    display: inline-flex;
    align-items: center;
    gap: 0.4em;
    font-size: 1rem;
    font-weight: 500;
    color: #ffffff;
    text-decoration: none;
    padding: 0.3em 0.6em;
    border: 1px solid transparent;
    border-radius: 6px;
    transition: all 0.3s ease;
}

.bb-back-link i {
    color: #fff;
    padding-top: 3px;
    font-size: 1.1em;
    transition: transform 0.3s ease, color 0.3s ease;
}

.bb-back-link:hover {
    color: #ff0099;
    border-color: #ff0099;
    box-shadow: 0 0 5px #ff0099;
}

.bb-back-link:hover i {
    transform: translateX(-4px);
    color: #ff0099;
}

/* ===== Header événement ===== */

.batuca-event-header .entry-header {
    background-color: var(--tec-color-background-events, #222222) !important;
    margin: 0 !important;
    padding: 2rem 0 0 2rem !important;
}

/* ===== Admin table — allergies & régimes ===== */

.ipm-admin-card-full {
    width: 100% !important;
    grid-column: 1 / -1 !important;
}

.ipm-admin-scroll {
    overflow-x: auto !important;
}

.ipm-admin-table {
    width: 100% !important;
    border-collapse: collapse !important;
}

.ipm-admin-table th {
    text-align: left !important;
    padding: 10px 12px !important;
    border-bottom: 2px solid #333 !important;
    color: #ff0099 !important;
    font-size: 14px !important;
}

.ipm-admin-table td {
    padding: 10px 12px !important;
    font-size: 14px !important;
}

.ipm-admin-table .diet-cell {
    color: #ddd !important;
}

.ipm-admin-table .allergy-cell {
    color: #ccc !important;
    word-break: break-word !important;
}

.ipm-admin-table tbody tr:nth-child(even) {
    background: rgba(255, 255, 255, 0.03) !important;
}

.ipm-admin-table tbody tr:nth-child(odd) {
    background: transparent !important;
}

/* ===== Containment on event pages ===== */

.tribe-events-single-event-description .ipm-participation-section,
.tribe-events-single-event-description #ipm-results-container {
    clear: both !important;
    width: 100% !important;
}

.tribe-events-single-event-description #ipm-results-container::after {
    content: "" !important;
    display: table !important;
    clear: both !important;
}

/* ===== Dashboard grid (page participation) ===== */

.ipm-grid-pu {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(340px, 1fr));
    gap: 20px;
    max-width: 900px;
    margin: 0 auto;
}

@media screen and (max-width: 420px) {
    .ipm-grid-pu {
        grid-template-columns: 1fr !important;
    }
}

/* ===== Event card (dashboard) ===== */

.event-block {
    background: #1a1a1a !important;
    border: 1px solid #333 !important;
    border-left: 4px solid #555 !important;
    border-radius: 10px !important;
    padding: 20px 22px !important;
    transition: box-shadow 0.25s ease, border-color 0.25s ease !important;
}

.event-block:hover {
    box-shadow: 0 6px 20px rgba(255, 0, 153, 0.15) !important;
    border-left-color: #ff0099 !important;
}

.event-block a {
    text-decoration: none !important;
}

.event-block .event-title {
    margin: 0 0 10px 0 !important;
    font-size: 18px !important;
    font-weight: 700 !important;
    line-height: 1.3 !important;
}

/* ===== Category colors ===== */

.event-block:has(h4.cat_stages) {
    border-left-color: #3366ff !important;
}
.event-block:has(h4.cat_reunion-repas) {
    border-left-color: #009933 !important;
}
.event-block:has(h4.cat_sorties) {
    border-left-color: #ff0099 !important;
}
.event-block:has(h4.cat_repetitions) {
    border-left-color: #ff6600 !important;
}

.event-block h4.cat_stages,
.event-block h4.cat_stages a {
    color: #3366ff !important;
}

.event-block h4.cat_reunion-repas,
.event-block h4.cat_reunion-repas a {
    color: #009933 !important;
}

.event-block h4.cat_sorties,
.event-block h4.cat_sorties a {
    color: #ff0099 !important;
}

.event-block h4.cat_repetitions,
.event-block h4.cat_repetitions a {
    color: #ff6600 !important;
}

/* ===== Event details ===== */

.event-block .event-details {
    color: #999 !important;
    font-size: 13px !important;
    line-height: 1.5 !important;
    margin-bottom: 14px !important;
}

.event-block .event-details strong {
    color: #bbb !important;
}

/* ===== Select wrapper ===== */

.ipm-card-select-pu {
    background: transparent !important;
    border: none !important;
    box-shadow: none !important;
    padding: 0 !important;
    margin: 0 !important;
    max-width: none !important;
}

.ipm-card-select-pu:hover {
    box-shadow: none !important;
}

/* ===== Participation select ===== */

.participation-select {
    width: 100% !important;
    padding: 10px 14px !important;
    border-radius: 8px !important;
    border: 1px solid #444 !important;
    font-size: 14px !important;
    font-weight: 600 !important;
    background-color: #222 !important;
    color: #eee !important;
    appearance: none !important;
    outline: none !important;
    cursor: pointer !important;
    transition: border-color 0.3s ease, box-shadow 0.3s ease !important;
}

.participation-select:focus {
    border-color: #ff0099 !important;
    box-shadow: 0 0 8px rgba(255, 0, 153, 0.4) !important;
}

.participation-select option {
    color: #ddd !important;
    background: #222 !important;
}

/* ===== Non-available participation ===== */

.ipm-card-select-pu.ipm-no-select {
    padding: 10px 0 0 0 !important;
}

.ipm-status-gray {
    color: #666 !important;
    font-size: 13px !important;
    font-style: italic !important;
}

.ipm-status-red {
    color: #cc4444 !important;
    font-size: 13px !important;
    font-weight: 600 !important;
}

.ipm-status-green {
    color: #28a745 !important;
    font-size: 13px !important;
}

.ipm-status-orange {
    color: #ff9900 !important;
    font-size: 13px !important;
}

/* ===== Tenue / Messages BatucaBronX ===== */

.tbx-message-box {
    border: 2px solid #ff0099 !important;
    padding: 1em !important;
    margin: 1em 0 !important;
    background: #1a1a1a !important;
    color: white !important;
    border-radius: 8px !important;
}

.tbx-highlight {
    color: #ff0099 !important;
}

.tbx-annulation-msg {
    margin-top: 10px !important;
}
