/* 
File: booking-calendar.css
Last Modified: 2025-12-25
Changes: Extracted from _BookingCalendar.cshtml, added color contrast fixes
*/
/* Booking Calendar Styles */
/* Extracted from _BookingCalendar.cshtml for HTML validation compliance */

.booking-section {
    background-color: #f8f9fa;
    min-height: 600px;
}

/* Theme-aware classes */
.theme-primary {
    background-color: var(--bs-primary, #0d6efd) !important;
    color: white !important; /* Ensure white text on theme background */
}

.theme-primary-hover:hover {
    background-color: var(--bs-primary-dark, #0b5ed7) !important;
}

/* Card header text - force white on colored backgrounds */
.card-header.theme-primary h3,
.card-header.theme-primary h4,
.card-header.theme-primary h5 {
    color: white !important;
}

/* Booking form step content - force dark text on white background */
.booking-step {
    color: #212529; /* Dark text */
}

.booking-step h4 {
    color: #212529 !important; /* Dark text for step headings */
}

.booking-step label,
.booking-step input,
.booking-step .form-label,
.booking-step .form-check-label {
    color: #212529; /* Dark text for form elements */
}

/* Calendar styles */
.calendar-table td {
    padding: 15px;
    cursor: pointer;
    transition: all 0.2s ease;
}
.calendar-table td:hover:not(.disabled):not(.past) {
    background-color: #e9ecef;
    transform: scale(1.05);
}
.calendar-table td.selected {
    background-color: var(--bs-primary, #0d6efd) !important;
    color: white;
    font-weight: bold;
}
.calendar-table td.disabled,
.calendar-table td.past {
    background-color: #f8f9fa;
    color: #adb5bd;
    cursor: not-allowed;
}

/* Time slot styles */
.time-slot {
    padding: 12px;
    margin-bottom: 10px;
    border: 1px solid #dee2e6;
    border-radius: 5px;
    cursor: pointer;
    transition: all 0.2s ease;
    background-color: white;
    color: #212529; /* Black text for readability */
}
.time-slot:hover {
    background-color: #e9ecef;
    border-color: var(--bs-primary, #0d6efd);
    color: #212529; /* Keep black text on hover */
}
.time-slot.selected {
    background-color: var(--bs-primary, #0d6efd);
    color: white; /* White text when selected */
    border-color: var(--bs-primary, #0d6efd);
}
.time-slot.booked {
    background-color: #f8f9fa;
    color: #6c757d; /* Grey text for booked slots */
    cursor: not-allowed;
}

/* Button styles */
.booking-section .btn-primary {
    background-color: var(--bs-primary, #0d6efd);
    border-color: var(--bs-primary, #0d6efd);
    color: white; /* White text on buttons */
}
.booking-section .btn-primary:hover {
    background-color: var(--bs-primary-dark, #0b5ed7);
    border-color: var(--bs-primary-dark, #0b5ed7);
    color: white;
}
.booking-section .btn-success {
    background-color: var(--bs-success, #198754);
    border-color: var(--bs-success, #198754);
    color: white;
}
.booking-section .btn-success:hover {
    background-color: var(--bs-success-dark, #146c43);
    border-color: var(--bs-success-dark, #146c43);
    color: white;
}

/* Ensure form card body has white background and dark text */
#bookingFormCard .card-body {
    background-color: white;
    color: #212529;
}

/* Alert boxes in booking form */
.booking-section .alert {
    color: #212529; /* Dark text in alerts */
}

.booking-section .alert-info {
    background-color: #cfe2ff;
    border-color: #b6d4fe;
    color: #084298;
}

.booking-section .alert-light {
    background-color: #f8f9fa;
    color: #212529;
}

