.year-heading { font-size: 1.75rem; color: #343a40; text-align: center }
.calendar-month h4 { font-size: 1.25rem; color: #495057; text-align:center; margin-bottom: 0.75rem;}
.calendar-container { padding-left: 0; padding-right: 0; }
.calendar-table {
    border-collapse: collapse;
    border-spacing: 0;
    table-layout: fixed;
}
.calendar-table td { text-align: center; vertical-align: top; padding: 10px 0 2px 0; min-height: 35px; width: 14.28%; position: relative; font-size: 1rem; border: none; background-color: #ffffff; }
.calendar-table th {
    border: none !important;
}
.calendar-table td {
    border: none !important;
}
.calendar-table td.weekend { background: #f8f9fa; }
.calendar-table th { font-weight: 500; font-size: 0.9rem; color: #6c757d; padding-bottom: 0.5rem; text-align:center; }
.calendar-table th.weekend { color: #dc3545; }
.calendar-table tr {height:6px}
.calendar-table td span.day-number-display {
    display: block;
    width: 100%;
    text-align: center;
    font-weight: 300;
    font-size: 1rem;
    margin-bottom: 10px;
    color: #999;
}
.calendar-table td .trip-lines-container {
    display: flex;
    flex-direction: column;
    gap: 0;
    min-height: 5px;
    margin-top: 0;
}

.calendar-table td .trip-line {
    height: 5px;
    border-radius: 0;
    cursor: default;
    position: relative;
    margin-bottom: 2px;
    pointer-events: none;
}

.calendar-table td .trip-line.line-start {
    border-top-left-radius: 20px;
    border-bottom-left-radius: 20px;
    margin-left: 3px;
}

.calendar-table td .trip-line.line-end {
    border-top-right-radius: 20px;
    border-bottom-right-radius: 20px;
    margin-right: 3px;
}

.calendar-table td .trip-line.line-one-day {
    border-top-left-radius: 10px;
    border-bottom-left-radius: 10px;
    border-top-right-radius: 10px;
    border-bottom-right-radius: 10px;
}

.calendar-table td .trip-line.empty-slot {
    background-color: transparent !important;
    cursor: default;
    pointer-events: none;
}

.calendar-table td span.today-highlight {
    position: relative !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 24px !important;
    height: 24px !important;
    text-align: center !important;
    font-weight: 500 !important;
    font-size: 1rem !important;
    color: #fff !important;
    background-color: rgb(255, 56, 60) !important;
    border-radius: 50% !important;
    line-height: 1 !important;
    margin: 0 auto 10px !important;
}
.calendar-table td span.today-highlight::before {
    content: none;
}
td.not-available { background-color: #ffffff !important; }
.not-available span { color: #adb5bd; }
.calendar-table td.bg-available-blue span.day-number-display:not(.today-highlight),
.calendar-table td.bg-available-blue a span.day-number-display:not(.today-highlight) {
    color: rgb(13, 110, 253) !important;
    font-weight: 400 !important;
    background-color: transparent !important;
}
.bg-available-blue { background-color: transparent !important; }
.legend-text-private-available { color: rgb(13, 110, 253) !important; font-weight: 400 !important; }
.legend-text-past { color: rgb(136, 136, 136) !important; font-weight: 400 !important; }

.bg-date-tour {
    font-weight: 600 !important;
}
.calendar-table td.bg-date-tour span.day-number-display:not(.today-highlight) {
    color: rgb(19, 121, 91) !important;
    font-weight: 400 !important;
}
.calendar-table td.bg-date-workshop span.day-number-display:not(.today-highlight) {
    color: rgb(13, 110, 253) !important;
    font-weight: 400 !important;
}
.calendar-table td.bg-date-past span.day-number-display:not(.today-highlight) {
    color: rgb(136, 136, 136) !important;
    font-weight: 400 !important;
}
.calendar-table td.bg-date-holiday span.day-number-display:not(.today-highlight) {
    color: rgb(255, 59, 48) !important;
    font-weight: 400 !important;
}
.trip-line.trip-color-blue { background-color: rgb(13, 110, 253); }
.trip-line.trip-color-green { background-color: rgb(19, 121, 91); }
.trip-line.trip-color-gray { background-color: rgb(136, 136, 136); }
.trip-line.trip-color-red { background-color: rgb(255, 59, 48); }
td.tour-day-segment.cell-tour-bar-start.tour-color-blue,
td.tour-day-segment.cell-tour-bar-middle.tour-color-blue,
td.tour-day-segment.cell-tour-bar-end.tour-color-blue {
    position: relative;
}
td.tour-day-segment.cell-tour-bar-start.tour-color-blue::after,
td.tour-day-segment.cell-tour-bar-middle.tour-color-blue::after,
td.tour-day-segment.cell-tour-bar-end.tour-color-blue::after {
    content: '';
    position: absolute;
    bottom: 8px;
    left: 0;
    right: 0;
    height: 5px;
    background-color: rgb(13, 110, 253);
    margin-bottom: 3px;
}
td.tour-day-segment.cell-tour-bar-start.tour-color-blue.pill-rounded-left::after {
    border-top-left-radius: 10px;
    border-bottom-left-radius: 10px;
}
td.tour-day-segment.cell-tour-bar-end.tour-color-blue.pill-rounded-right::after,
td.tour-day-segment.tour-color-blue.pill-rounded-left.pill-rounded-right::after {
    border-top-right-radius: 10px;
    border-bottom-right-radius: 10px;
}
td.holiday-indicator.holiday-color-gray {
    background-color: rgb(204, 204, 204) !important;
}
td.holiday-indicator.holiday-color-gray span.day-number-display:not(.today-highlight) {
    color: rgb(136, 136, 136) !important;
    font-weight: 400 !important;
    background-color: transparent !important;
}
td.holiday-indicator.holiday-color-blue {
    background-color: rgb(204, 204, 204) !important;
}
td.holiday-indicator.holiday-color-blue span.day-number-display:not(.today-highlight) {
    color: rgb(13, 110, 253) !important;
    font-weight: 400 !important;
    background-color: transparent !important;
}
td.holiday-indicator.holiday-color-green {
    background-color: rgb(204, 204, 204) !important;
}
td.holiday-indicator.holiday-color-green span.day-number-display:not(.today-highlight) {
    color: rgb(19, 121, 91) !important;
    font-weight: 400 !important;
    background-color: transparent !important;
}
.legend-indicator { display: inline-block; width: 18px; height: 5px; margin-right: 4px; vertical-align: middle; border-radius: 5px; border: none; box-sizing: border-box; }
.legend-indicator.bg-available { background-color: var(--bs-success) !important; }
.legend-indicator.indicator-blue { background-color: rgb(13, 110, 253) !important; }
.legend-indicator.indicator-green { background-color: rgb(19, 121, 91) !important; }
.legend-indicator.indicator-gray { background-color: rgb(136, 136, 136) !important; }
.legend-indicator.indicator-red { background-color: rgb(255, 59, 48) !important; }
.legend-item a.legend-text-available-private, .legend-item span.legend-text-available-private {
    background-color: transparent !important;
    color: rgb(13, 110, 253) !important;
    font-weight: 400 !important;
    padding: 0;
    text-decoration: none;
}
.legend-item a.legend-text-sold-out, .legend-item span.legend-text-sold-out {
    background-color: transparent !important;
    color: #212529 !important;
    font-weight: 400 !important;
    padding: 0;
    text-decoration: none;
}
.legend-item span.legend-text-red-holiday {
    color: rgb(255,59,48) !important;
    font-weight: 400 !important;
    cursor: default;
    pointer-events: none;
}
.legend-item a.text-dark, .legend-item span.text-dark {
    color: rgb(85,85,85) !important;
    font-weight: 400 !important;
}
.legend-item a.legend-text-workshop-type, .legend-item span.legend-text-workshop-type {
    color: rgb(13, 110, 253) !important;
    font-weight: 400 !important;
}
.legend-item a.legend-text-tour-type, .legend-item span.legend-text-tour-type {
    color: rgb(19, 121, 91) !important;
    font-weight: 400 !important;
}
.legend-type-badge {
    display: inline-block;
    font-size: 0.7rem;
    font-weight: 600;
    padding: 2px 5px;
    border-radius: 3px;
    margin-right: 4px;
    vertical-align: middle;
    line-height: 1;
}
.legend-type-badge.badge-tour {
    background-color: rgb(19, 121, 91);
    color: #fff;
}
.legend-type-badge.badge-workshop {
    background-color: rgb(13, 110, 253);
    color: #fff;
}
.legend-type-badge.badge-full {
    background-color: rgb(52, 199, 89);
    color: #fff;
}
.legend-date-indicator {
    display: block;
    font-size: 0.75rem;
    font-weight: 600;
    line-height: 1;
    text-align: center;
    margin-bottom: 2px;
}
.legend-indicator-wrapper {
    display: inline-flex;
    flex-direction: column;
    align-items: center;
    margin-right: 6px;
    vertical-align: middle;
}
.legend-date-tour { color: rgb(19, 121, 91) !important; }
.legend-date-workshop { color: rgb(13, 110, 253) !important; }
.legend-date-holiday { color: rgb(255, 59, 48) !important; }
.legend-date-past { color: rgb(136, 136, 136) !important; }
.legend-trip-name { color: rgb(0, 0, 0) !important; font-weight: 400 !important; }
