.gr-calendar{background:#fff;border:1px solid #d9e0e6;border-radius:12px;padding:16px;margin:16px 0 22px;color:#243241}
.gr-calendar-heading{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap;margin-bottom:15px}
.gr-calendar-heading>div{display:flex;align-items:center;gap:8px}.gr-month{font-weight:600;min-width:135px;text-align:center;font-size:15px}
.gr-calendar button.gr-prev,.gr-calendar button.gr-next{padding:3px 12px;font-size:24px;line-height:1.2;border:1px solid #cbd5df;border-radius:7px;color:#243241;background:#fff;cursor:pointer}
.gr-calendar button:disabled{opacity:.3;cursor:not-allowed}
.gr-weekdays,.gr-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px;text-align:center}
.gr-weekdays{font-size:12px;color:#64748b;font-weight:700;margin-bottom:5px}
.gr-day{border:1px solid transparent;border-radius:7px;min-width:0;min-height:43px;padding:5px 1px;background:#CFEED8;color:#164829;font-size:14px;position:relative;cursor:pointer;line-height:1.2}
.gr-day.gr-confirmed{background:#B91C1C;color:#fff;font-weight:700;cursor:not-allowed}.gr-day.gr-pending{background:#F5B942;color:#644200}
.gr-day.gr-past{opacity:.45;cursor:not-allowed}.gr-day.gr-empty{background:transparent;border:0;cursor:default}
.gr-day.gr-selected{outline:2px solid #2363bc;outline-offset:-2px}
/* Départ : moitié supérieure gauche occupée, moitié inférieure droite disponible.
   Diagonale bien visible, y compris lorsque l'autre séjour est confirmé. */
.gr-day.gr-checkout:not(.gr-confirmed):not(.gr-pending){background:linear-gradient(135deg,#B91C1C 0%,#B91C1C calc(50% - 1px),#fff 50%,#CFEED8 calc(50% + 1px),#CFEED8 100%);color:#102a1b;font-weight:700;text-shadow:0 1px 1px #fff}
.gr-day.gr-checkout.gr-pending{background:linear-gradient(135deg,#B91C1C 0%,#B91C1C calc(50% - 1px),#fff 50%,#F5B942 calc(50% + 1px),#F5B942 100%);color:#493b23}
.gr-day.gr-turnover{background:linear-gradient(135deg,#B91C1C 0%,#B91C1C calc(50% - 1px),#fff 50%,#B91C1C calc(50% + 1px),#B91C1C 100%);color:#fff;font-weight:700;text-shadow:0 1px 2px #511}
.gr-key-transition{background:linear-gradient(135deg,#B91C1C 0%,#B91C1C 47%,#fff 50%,#CFEED8 53%,#CFEED8 100%)}
.gr-calendar button.gr-day:focus-visible{outline:3px solid #1e6bc1;outline-offset:1px}
.gr-legend{display:flex;gap:10px;flex-wrap:wrap;font-size:12px;margin-top:14px}
.gr-legend span{display:inline-flex;align-items:center;gap:5px}
.gr-key{display:inline-block;width:12px;height:12px;border-radius:3px;border:1px solid #cbd5df}.gr-key-free{background:#CFEED8}.gr-key-confirmed{background:#B91C1C;border-color:#881515}.gr-key-pending{background:#F5B942}
.gr-help{font-size:12px;color:#526477;line-height:1.5;margin:10px 0 0!important}
@media(max-width:450px){.gr-calendar{padding:10px}.gr-day{min-height:39px;font-size:13px}.gr-weekdays,.gr-days{gap:2px}.gr-calendar-heading{justify-content:center}}

/* Blocage propriétaire : date finale comprise, gris contrasté, aucune diagonale */
.gr-day.gr-blocked,.gr-day.gr-blocked.gr-confirmed,.gr-day.gr-blocked.gr-checkout{background:#6B7280!important;color:#fff!important;cursor:not-allowed}
.gr-key-blocked{background:#6B7280;border-color:#495363}
.gr-day.gr-past{opacity:.6}

/* Uniformiser le contraste : les boutons désactivés (réservés) ne doivent pas devenir pâles. */
.gr-calendar button.gr-day:disabled{opacity:1}
.gr-calendar button.gr-day.gr-past{opacity:.6}
