.mafate-tarifs {
    width: 100%;
    border-collapse: collapse;
}

.mafate-tarifs th,
.mafate-tarifs td {
    border: 1px solid #ddd;
    padding: 8px;
}

.mafate-tarifs th {
    text-align: center;
    font-size: 0.85em !important;
}

.mafate-tarifs td {
    font-size: 0.85em !important;
}

.mafate-tarifs th.price-col,
.mafate-tarifs td.price-col {
    width: 15%;
    text-align: right;
}

.mafate-tarifs .course-description {
    font-style: italic;
    color: #777;
}


/* calendrier semestriel */
.examen-calendar {
    font-family: var(--body-font, sans-serif);
}

.examen-calendar__year-selector {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 0.5rem;
    margin-bottom: 1rem;
    font-weight: 700;
}

.examen-calendar__nav {
    background: none;
    border: 1px solid var(--primary-theme-color, #6c5b7b);
    color: var(--primary-theme-color, #6c5b7b);
    padding: 0.25rem 0.5rem;
    cursor: pointer;
    font-weight: 700;
}

.examen-calendar__nav:disabled {
    opacity: 0.4;
    cursor: default;
}

.examen-calendar__grid {
    /* Adjust the number of months per row via --examen-calendar-cols */
    display: grid;
    grid-template-columns: repeat(var(--examen-calendar-cols, 4), 1fr);
    gap: 1rem;
}

@media (max-width: 768px) {
    .examen-calendar__grid {
        grid-template-columns: 1fr;
    }
}

.examen-calendar__month {
    border: 1px solid #d3d3d3;
    padding: 1rem;
    min-height: 212px;
    background-color: #ff95751a;
}

.examen-calendar__month-title {
    margin: 0 0 0.5rem;
    font-weight: 700;
    text-align: center;
    color: var(--examen-calendar-month-color, #121212);
}
h4.examen-calendar__month-title:after {
    color: aqua;
    display: block;
    border-top: 6px solid var(--quinary-theme-color);
    width: 100%;
    content: " ";
}

.examen-calendar__tag {
    display: inline-block;
    background-color: var(--primary-theme-color, #6c5b7b);
    color: #ffffff;
    padding: 0.2rem 0.5rem;
    margin: 0.25rem 0;
    border-radius: 0.25rem;
    font-size: 0.9rem;
    cursor: pointer;
}

.examen-calendar__tag--registration {
    background-color: var(--theme-color-2);
}

.examen-calendar__tag--session {
    background-color: var(--primary-theme-color, #6c5b7b);
}

.examen-inscription-form {
    max-width: 500px;
    background: var(--input-background);
    padding: 1em;
    border: 1px solid var(--input-border-color);
}
.examen-inscription-form label {
    display: block;
    font-size: var(--label-font-size, 0.9rem);
    margin-bottom: 0.25em;
}
.examen-inscription-form input[type="text"],
.examen-inscription-form input[type="email"],
.examen-inscription-form input[type="tel"],
.examen-inscription-form select {
    width: 100%;
    padding: 0.5em;
    margin-bottom: 1em;
    border: 1px solid var(--input-border-color);
    border-radius: var(--input-border-radius);
    background: var(--input-background);
}
.examen-inscription-form input[type="submit"] {
    background: var(--button-background);
    color: var(--button-color, var(--white));
    border: none;
    border-radius: var(--button-border-radius);
    padding: var(--button-padding);
    display: inline-block;
    margin: 0 auto;
}
.examen-inscription-form .submit-row {
    text-align: center;
    margin-top: 1em;
}
.examen-inscription-form .two-columns,
.examen-inscription-form .three-columns {
    display: flex;
    flex-wrap: wrap;
    gap: 1em;
}
.examen-inscription-form .two-columns p,
.examen-inscription-form .three-columns p {
    flex: 1 1 150px;
    margin-bottom: 1em;
}
@media (max-width: 600px) {
    .examen-inscription-form .two-columns,
    .examen-inscription-form .three-columns {
        flex-direction: column;
    }
}

.examen-inscription-form .ifg-student {
    display: flex;
    align-items: center;
    gap: 0.5em;
    margin-bottom: 1em;
}

.examen-inscription-notice {
    text-align: center;
    font-weight: 700;
    margin-bottom: 1em;
}

.examen-inscription-notice--success {
    color: var(--success-color, #2f855a);
}

.examen-inscription-notice--error {
    color: var(--error-color, #c53030);
}

.examen-iban-info {
    margin-top: 1em;
    background: var(--input-background);
    padding: 1em;
    border: 1px solid var(--input-border-color);
    border-radius: var(--input-border-radius);
    width: 100%;
    box-sizing: border-box;
}
.examen-iban-info .iban-title {
    text-align: center;
    margin-top: 0;
    font-size: 1.25rem;
}
.examen-iban-info p {
    margin: 0.4em 0;
    display: flex;
    align-items: center;
}
.examen-iban-info .label {
    font-weight: 600;
    margin-right: 0.4em;
}
.examen-iban-info .iban-text,
.examen-iban-info .ref-text,
.examen-iban-info .price-text {
    display: inline-block;
    font-family: monospace;
    letter-spacing: 0.05em;
    background: var(--white);
    padding: 0.25em 0.5em;
    border: 1px dashed var(--input-border-color);
    border-radius: var(--input-border-radius);
    margin-right: 0.25em;
}
.copy-iban {
    background: none;
    border: none;
    cursor: pointer;
    padding: 0 0.3em;
}
.copy-iban .dashicons {
    color: var(--link-color, #3558a3);
    font-size: 20px;
}

.registration-file-block {
    margin-top: 1em;
    background: var(--input-background);
    padding: 1em;
    border: 1px solid var(--input-border-color);
    border-radius: var(--input-border-radius);
    width: 100%;
    box-sizing: border-box;
}

.registration-file-block p {
    margin: 0.4em 0;
    display: flex;
    align-items: center;
    gap: 0.6em;
    flex-wrap: wrap;
}

.registration-file-block .registration-file-note {
    display: block;
    margin-top: 0;
    margin-bottom: 0.6em;
    font-style: italic;
}

.registration-file-block .registration-file-upload label {
    font-weight: 600;
}

.registration-file-block .registration-file-upload input[type="file"] {
    flex: 1;
    min-width: 220px;
}
.examen-calendar-modal {
    position: fixed;
    inset: 0;
    background: rgba(0,0,0,0.6);
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 9999;
}
.examen-calendar-modal__content {
    background: #fff;
    padding: 1rem;
    max-width: 400px;
    width: 90%;
    position: relative;
    border-radius: 4px;
}
.examen-calendar-modal__close {
    position: absolute;
    top: 0.25rem;
    right: 0.25rem;
    background: none;
    border: none;
    font-size: 1.5rem;
    line-height: 1;
    cursor: pointer;
}

/* Message affiché lorsque aucune session n'est disponible */
#examen_session_message {
    font-size: 0.9rem;
    text-align: center;
}

#examen_session_message a {
    display: inline-block;
    margin-top: 0.5em;
    padding: 0.5em 1em;
    background: var(--button-background);
    color: var(--button-color, var(--white));
    border-radius: var(--button-border-radius);
    text-decoration: none;
}
