/* ── Page calendrier ── */
.sntm-calendar-wrap {
    max-width: 1140px;
    margin: 0 auto;
    padding: 2rem 1.25rem 4rem;
}

.sntm-calendar-wrap h1 {
    font-family: system-ui, sans-serif;
    font-size: 1.6rem;
    font-weight: 700;
    margin-bottom: 1.5rem;
    color: #1a1a1a;
}

#sntm-calendar {
    background: #fff;
    border-radius: 12px;
    padding: 1.5rem;
    box-shadow: 0 2px 16px rgba(0,0,0,.08);
}

/* ── FullCalendar overrides ── */

/* Toolbar */
.fc .fc-toolbar                     { margin-bottom: 1.25rem; gap: .5rem; flex-wrap: wrap; }
.fc .fc-toolbar-title               { font-size: 1.15rem; font-weight: 700; font-family: system-ui, sans-serif; color: #1a1a1a; }

/* Boutons */
.fc .fc-button {
    background:    #2c5282;
    border-color:  #2c5282;
    border-radius: 6px;
    font-size:     .82rem;
    font-weight:   600;
    padding:       .35rem .85rem;
    text-transform: none;
    letter-spacing: .01em;
    transition: background .15s, border-color .15s;
}
.fc .fc-button:hover,
.fc .fc-button:focus                { background: #1a365d; border-color: #1a365d; box-shadow: none; }
.fc .fc-button:disabled             { background: #a0aec0; border-color: #a0aec0; }
.fc .fc-button-active,
.fc .fc-button-primary:not(:disabled).fc-button-active {
    background:   #1a365d !important;
    border-color: #1a365d !important;
}
.fc .fc-button-group .fc-button     { border-radius: 0; }
.fc .fc-button-group .fc-button:first-child { border-radius: 6px 0 0 6px; }
.fc .fc-button-group .fc-button:last-child  { border-radius: 0 6px 6px 0; }

/* En-têtes de jours */
.fc .fc-col-header-cell             { background: #f7fafc; }
.fc .fc-col-header-cell-cushion     {
    font-family:    system-ui, sans-serif;
    font-size:      .8rem;
    font-weight:    700;
    text-transform: uppercase;
    letter-spacing: .06em;
    color:          #4a5568;
    padding:        .6rem .5rem;
    text-decoration: none;
}

/* Cellules */
.fc .fc-daygrid-day                 { transition: background .1s; }
.fc .fc-daygrid-day:hover           { background: #f7fafc; }
.fc .fc-day-today                   { background: #ebf8ff !important; }
.fc .fc-day-today .fc-daygrid-day-number { font-weight: 800; color: #2c5282; }
.fc .fc-daygrid-day-number          {
    font-family: system-ui, sans-serif;
    font-size:   .82rem;
    color:       #4a5568;
    padding:     .4rem .5rem;
    text-decoration: none;
}

/* Événements */
.fc .fc-event {
    border:        none;
    border-radius: 5px;
    padding:       2px 7px;
    font-size:     .78rem;
    font-weight:   600;
    font-family:   system-ui, sans-serif;
    cursor:        pointer;
    transition:    opacity .15s, transform .1s;
    box-shadow:    0 1px 3px rgba(0,0,0,.15);
}
.fc .fc-event:hover                 { opacity: .88; transform: translateY(-1px); }
.fc .fc-event-title                 { font-weight: 600; }
.fc .fc-daygrid-event-dot           { display: none; }

/* Vue liste */
.fc .fc-list-event:hover td         { background: #f7fafc; }
.fc .fc-list-day-cushion            { background: #edf2f7; }
.fc .fc-list-day-text,
.fc .fc-list-day-side-text          {
    font-family:    system-ui, sans-serif;
    font-weight:    700;
    font-size:      .85rem;
    text-decoration: none;
    color:          #2c5282;
}
.fc .fc-list-event-title a          { text-decoration: none; color: inherit; font-weight: 600; }

/* Message "pas d'événements" */
.fc .fc-list-empty                  { background: #f7fafc; }
.fc .fc-list-empty-cushion          { font-family: system-ui, sans-serif; color: #a0aec0; font-size: .9rem; }

/* Responsive */
@media (max-width: 600px) {
    #sntm-calendar             { padding: .75rem; }
    .fc .fc-toolbar            { flex-direction: column; align-items: flex-start; }
    .fc .fc-toolbar-title      { font-size: 1rem; }
}
