.formation-calendar { text-align: left; margin-bottom: 24px; }
.formation-calendar__city + .formation-calendar__city { margin-top: 10px; }
.formation-calendar__heading { display: flex; align-items: center; gap: 12px; min-height: 44px; padding: 10px 16px; background: #fff; color: #e73c3c; font-size: 0.95em; font-weight: 700; cursor: pointer; list-style: none; }
.formation-calendar__city > summary { border: 2px solid #e73c3c; }
.formation-calendar__heading::-webkit-details-marker { display: none; }
.formation-calendar__heading > span:first-child { flex: 1; min-width: 0; }
.formation-calendar__heading::after { content: ''; width: 8px; height: 8px; flex-shrink: 0; border-right: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: rotate(45deg); }
.formation-calendar details[open] > summary::after { transform: rotate(225deg); }
.formation-calendar__heading:focus-visible { outline: 3px solid #222; outline-offset: 3px; }
.formation-calendar__count { font-size: 12px; font-weight: 400; white-space: nowrap; }
.formation-calendar__content { padding: 12px; border: 1px solid #ddd; border-top: 0; }
.formation-calendar__type + .formation-calendar__type { margin-top: 8px; }
.formation-calendar__type > summary { border: 2px solid #000; color: #000; font-size: 0.9em; }
.formation-calendar .table { margin: 0; width: 100%; }
.formation-calendar .table-responsive { margin: 0; overflow-x: auto; }
.formation-calendar th { font-weight: 700; }
.formation-calendar td, .formation-calendar th { vertical-align: middle; }
.formation-calendar tr:has(.check_exam) { cursor: pointer; }
.formation-calendar tr:has(.check_exam:checked) { background: #fff0f0; }
.formation-calendar .check_exam { accent-color: #e73c3c; }
@media (max-width: 575px) {
    .formation-calendar__heading { padding: 10px 12px; gap: 10px; }
    .formation-calendar__content { padding: 8px; }
    .formation-calendar .table { min-width: 480px; }
}
