 #sl-calendar .fc-past {
     text-decoration: line-through;
     color: #ccc;
     background-color: #f5f5f5;
     cursor: not-allowed;
     opacity: 0.5;
 }

 #sl-calendar .fc-past:hover {
     background-color: #f5f5f5 !important;
 }

 #sl-calendar .disabled {
     pointer-events: none;
 }

 .video-wrapper {
     position: relative;
     display: block;
     width: 100%;
     height: 0;
     padding-bottom: 56.25%;
     overflow: hidden;
     background: transparent;
     margin-left: auto;
     margin-right: auto;
 }

 .video-wrapper iframe {
     position: absolute;
     top: 0;
     left: 0;
     width: 100%;
     height: 100%;
     border: 0;
 }

 /* === Flatpickr Thème Épuré === */
 .flatpickr-calendar {
     border: none !important;
     box-shadow: none !important;
     width: 100% !important;
 }

 .flatpickr-rContainer {
     width: 100% !important;
 }

 .flatpickr-days {
     width: 100% !important;
     border: none !important;
 }

 .dayContainer {
     width: 100% !important;
     min-width: 100% !important;
     max-width: 100% !important;
     display: flex !important;
     justify-content: flex-start !important;
     /* Changed from space-around to ensure alignment */
 }

 .flatpickr-day {
     max-width: 14.2857% !important;
     width: 14.2857% !important;
     flex-basis: 14.2857% !important;
     height: 50px !important;
     display: flex !important;
     align-items: center;
     justify-content: center;
     position: relative;
     /* z-index: 1; removed to avoid context issues, we use gradient for bg */
     margin: 0 !important;
 }

 .flatpickr-months {
     display: flex;
     align-items: center;
     justify-content: space-between;
     margin-bottom: 16px;
     padding: 0;
     height: 40px;
 }

 .flatpickr-months .flatpickr-month {
     flex: 1;
     height: 100%;
     display: flex;
     align-items: center;
     justify-content: center;
     background: transparent !important;
 }

 .flatpickr-current-month {
     display: flex;
     align-items: center;
     justify-content: center;
     gap: 8px;
     position: static !important;
     width: auto !important;
     height: auto !important;
     padding: 0 !important;
     left: auto !important;
 }

 .flatpickr-monthDropdown-months {
     appearance: none;
     -webkit-appearance: none;
     background: transparent !important;
     border: none !important;
     padding: 4px 20px 4px 4px !important;
     margin: 0 !important;
     font-size: 1.1rem !important;
     font-weight: 600 !important;
     color: #222 !important;
     cursor: pointer;
     text-transform: capitalize;
     background-repeat: no-repeat !important;
     background-position: right 4px center !important;
 }

 .flatpickr-monthDropdown-months:hover {
     color: #000 !important;
 }

 .flatpickr-monthDropdown-months:focus {
     outline: none;
 }

 .numInputWrapper {
     position: relative;
     display: inline-flex;
     align-items: center;
 }

 .numInput.cur-year {
     appearance: none;
     -webkit-appearance: none;
     -moz-appearance: textfield;
     background: transparent !important;
     border: none !important;
     padding: 4px 18px 4px 0 !important;
     margin: 0 !important;
     font-size: 1.1rem !important;
     font-weight: 600 !important;
     color: #222 !important;
     width: 60px !important;
     text-align: left;
 }

 .numInput.cur-year:hover,
 .numInput.cur-year:focus {
     outline: none;
     color: #000 !important;
 }

 .flatpickr-prev-month,
 .flatpickr-next-month {
     position: static !important;
     display: flex !important;
     align-items: center;
     justify-content: center;
     width: 32px !important;
     height: 32px !important;
     border-radius: 50%;
     background: transparent !important;
     border: 1px solid #e0e0e0 !important;
     padding: 0 !important;
     margin: 0 8px;
     cursor: pointer;
     transition: all 0.15s ease;
     transform: none !important;
     top: auto !important;
 }

 .flatpickr-prev-month:hover,
 .flatpickr-next-month:hover {
     background: #f5f5f5 !important;
     border-color: #ccc !important;
 }

 .flatpickr-prev-month svg,
 .flatpickr-next-month svg {
     width: 10px !important;
     height: 10px !important;
     fill: #555 !important;
 }

 .flatpickr-prev-month:hover svg,
 .flatpickr-next-month:hover svg {
     fill: #222 !important;
 }

 .flatpickr-weekday {
     color: #737373;
     font-weight: 500;
 }

 .flatpickr-day {
     background: transparent !important;
     border: none !important;
     font-weight: 600;
     transition: all 0.2s;
     border-radius: 0 !important;
 }

 /* Circle Pseudo-element for HOVER BORDER only */
 .flatpickr-day::after {
     content: "";
     position: absolute;
     width: 38px;
     height: 38px;
     border-radius: 50%;
     top: 50%;
     left: 50%;
     transform: translate(-50%, -50%);
     z-index: 10;
     /* Sitting ON TOP of content */
     pointer-events: none;
     /* Let clicks pass through to the day */
     border: 1px solid transparent;
     /* Hidden by default */
     transition: all 0.2s;
 }

 /* Hover */
 .flatpickr-day:hover {
     color: var(--bs-secondary);
     background: transparent !important;
     border: none !important;
 }

 .flatpickr-day:hover::after {
     border-color: var(--bs-secondary);
 }

 /* Disabled */
 .flatpickr-day.flatpickr-disabled {
     color: rgba(70, 70, 70, 0.3);
     cursor: not-allowed;
 }

 .flatpickr-day.flatpickr-disabled::after {
     display: none;
 }

 .flatpickr-day.flatpickr-disabled:hover {
     color: rgba(70, 70, 70, 0.3);
     background: transparent !important;
 }

 /* Today */
 .flatpickr-day.today {
     color: var(--bs-secondary);
     border: none !important;
 }

 .flatpickr-day.today::after {
     border-color: var(--bs-secondary);
 }

 /* Selected */
 .flatpickr-day.selected {
     background-color: transparent !important;
     /* Draw the filled circle using gradient to ensure it's behind text (standard bg behavior) and circular */
     background-image: radial-gradient(circle at center, var(--bs-secondary) 0%, var(--bs-secondary) 19px, transparent 20px) !important;
     color: #fff !important;
     border: none !important;
 }

 .flatpickr-day.selected::after {
     /* Hide the border pseudo element if selected, or we can keep it if we want a border too */
     border-color: transparent;
 }