/* Generic Overrides */
a { color: #AD0028; }
a:hover { color: #AD0028; }
.btn-primary { background-color: #AD0028; border-color: #AD0028; border-radius: 0; }
.btn-primary:hover, .btn-primary:active, .btn-primary:focus {
    background-color: #AD0028; border-color: #AD0028;
    filter: brightness(120%); outline: none; box-shadow: none;
}
.btn-primary:disabled, .btn-primary.disabled {
    background-color: #AD0028; border-color: #AD0028;
    filter: brightness(70%); opacity: .75;
}
.btn, .btn-outline-secondary, .btn-dark { border-radius: 0; }
.dropdown-item.active, .dropdown-item:active { background-color: #AD0028 !important; }
.nav-pills .nav-link.active, .nav-pills .show > .nav-link { background-color: #AD0028 !important; }
.nav .nav-link:not(.active) { color: #AD0028 !important; }
.form-control, .form-select { border-radius: 0; }
.form-control:focus {
    border-color: #AD0028 !important;
    box-shadow: 0 0 0 2px #AD0028 !important;
}
.form-check-input:checked { background-color: #AD0028 !important; border-color: #AD0028 !important; }
body .modal-header { background: #AD0028 !important; }
body .ui-draggable .ui-dialog-titlebar { background: #AD0028 !important; }
.fc-daygrid-event { color: rgb(51,51,51) !important; }
body .ui-widget.ui-widget-content { border-color: #AD0028; }
body .ui-datepicker .ui-widget-header { background-color: #AD0028; }
body .ui-datepicker th { background-color: #AD0028; }
body .ui-datepicker .ui-datepicker-next-hover,
body .ui-datepicker .ui-datepicker-prev-hover { background: #AD0028; border-color: #AD0028; filter: brightness(140%); }
body .ui-datepicker td a, body .ui-datepicker td span { color: #AD0028 !important; }
html body .ui-datepicker td a.ui-state-active { background: #AD0028 !important; }
body .ui-datepicker td a.ui-state-highlight { background: #AD0028 !important; filter: brightness(140%); }
body .ui-datepicker .ui-slider-handle { border-color: #ad0028 !important; background-color: #AD0028 !important; }


/* Zeitzone ausblenden */
#select-time .mb-3:first-child {
    display: none !important;
}

/* Flatpickr Kalender */
.flatpickr-calendar {
    border-radius: 0 !important;
    border: 1px solid #e0ddd8 !important;
    box-shadow: none !important;
    font-family: 'Roboto', sans-serif !important;
    width: 100% !important;
    max-width: 100% !important;
}
.flatpickr-calendar .flatpickr-months,
.flatpickr-calendar .flatpickr-months .flatpickr-month {
    background: #AD0028 !important;
    border-radius: 0 !important;
    height: 44px !important;
}
.flatpickr-calendar .flatpickr-weekdays,
.flatpickr-calendar span.flatpickr-weekday {
    background: #AD0028 !important;
    color: rgba(255,255,255,0.85) !important;
    font-size: 11px !important;
    font-weight: 500 !important;
    height: auto !important;
    padding: 6px 0 !important;
}
.flatpickr-current-month {
    font-size: 14px !important;
    font-weight: 500 !important;
    color: #fff !important;
    padding-top: 10px !important;
}
.flatpickr-current-month .flatpickr-monthDropdown-months,
.flatpickr-current-month input.cur-year {
    color: #fff !important;
    font-weight: 500 !important;
}
.flatpickr-current-month .flatpickr-monthDropdown-months .flatpickr-monthDropdown-month {
    background-color: #AD0028 !important;
}
.flatpickr-prev-month, .flatpickr-next-month {
    color: #fff !important;
    fill: #fff !important;
}
.flatpickr-prev-month:hover, .flatpickr-next-month:hover {
    color: #AD0028 !important;
    fill: #AD0028 !important;
}
.flatpickr-day {
    border-radius: 0 !important;
    font-size: 13px !important;
    color: #333 !important;
    font-weight: 700 !important;
    border: none !important;
    max-width: none !important;
    height: 54px !important;
    line-height: 54px !important;
}
.flatpickr-day:hover {
    background: #f5e6e6 !important;
    color: #AD0028 !important;
}
.flatpickr-day.selected,
.flatpickr-day.selected:hover {
    background: #AD00280 !important;
    border-color: #AD00280 !important;
    color: #fff !important;
    border-radius: 0 !important;
    font-weight: 700 !important;
}
.flatpickr-day.today {
    border: 2px solid #AD00280 !important;
    font-weight: 700 !important;
}
.flatpickr-day.flatpickr-disabled,
.flatpickr-day.flatpickr-disabled:hover {
    color: #333 !important;
    background: transparent !important;
    font-weight: 400 !important;
}

.flatpickr-day:not(.flatpickr-disabled):not(.prevMonthDay):not(.nextMonthDay) {
    background: #fdf0f3 !important;
}


.flatpickr-day.prevMonthDay,
.flatpickr-day.nextMonthDay {
    color: #ddd !important;
}
.flatpickr-weeks, .dayContainer {
    width: 100% !important;
    max-width: none !important;
    min-width: 0 !important;
}
.flatpickr-rContainer,
.flatpickr-days {
    width: 100% !important;
}


/* Kalender + Zeitauswahl nebeneinander */
#wizard-frame-2 .row.frame-content {
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: nowrap !important;
    align-items: flex-start !important;
    gap: 24px !important;
}
#wizard-frame-2 .col-12.col-md-6 {
    width: 50% !important;
    flex: 0 0 50% !important;
    max-width: 50% !important;
    padding: 0 8px !important;
}
#select-time {
    max-width: 100% !important;
    padding: 0 !important;
    margin-top: 0 !important;
}

#available-hours {
    max-height: 400px !important;
    overflow-y: auto !important;
    margin-top: 0 !important;
    padding-top: 30px !important;
}

#available-hours .btn {
    width: auto !important;
    min-width: 120px !important;
    max-width: 160px !important;
}

/* Booking Layout */
#book-appointment-wizard #header { background: #AD0028; }
#book-appointment-wizard #company-name .display-selected-service,
#book-appointment-wizard #company-name .display-selected-provider {
    color: #AD0028; border-right-color: #AD0028 !important; filter: brightness(35%);
}
#book-appointment-wizard .book-step { background: #AD0028; filter: brightness(75%); }
#book-appointment-wizard .book-step strong { color: #AD0028; filter: brightness(200%); }
#book-appointment-wizard #available-hours .selected-hour { background-color: ##AD0028; border-color: ##AD0028; }
#book-appointment-wizard #company-name .display-booking-selection {
    color: ##AD0028; border-right-color: ##AD0028; filter: brightness(280%);
}
#frame-footer .backend-link { background-color: ##AD0028 !important; }
#frame-footer .backend-link:hover { color: #fff; }

/* Backend Layout */
#header { background-color: ##AD0028 !important; }
#header #header-menu .nav-item:hover,
#header #header-menu .nav-item.active { background: ##AD0028 !important; filter: brightness(85%); }
#header #header-logo small { color: ##AD0028 !important; filter: brightness(60%); }
.backend-page .filter-records .results .entry.selected { border-right-color: ##AD0028 !important; }
#existing-customers-list div:hover { background: #f5e6e6 !important; }

/* Vollbreite Layout */
#main.container {
    max-width: 100% !important;
    width: 100% !important;
    padding: 0 !important;
}
#main .row.wrapper {
    display: flex !important;
    align-items: flex-start !important;
    justify-content: center;
    padding: 0;
    background: #ffffff;
    margin: 0;
}
#main .row.wrapper > .col-12 {
    align-self: flex-start !important;
}
#book-appointment-wizard.col-12.col-lg-10.col-xl-8.col-xxl-7 {
    max-width: 90% !important;
    width: 90% !important;
    flex: 0 0 auto !important;
    align-self: flex-start !important;
}
@media (min-width: 768px) {
    .wrapper {
        min-height: 0 !important;
    }
}

/* Fonts */
@font-face {
    font-family: 'Roboto';
    src: url('https://www.mwi.uni-heidelberg.de/assets/roboto-v16-latin-300-vE1REFhz.woff2') format('woff2');
    font-weight: 300;
}
@font-face {
    font-family: 'Roboto';
    src: url('https://www.mwi.uni-heidelberg.de/assets/roboto-v16-latin-regular-teVGZC04.woff2') format('woff2');
    font-weight: 400;
}
@font-face {
    font-family: 'Roboto';
    src: url('https://www.mwi.uni-heidelberg.de/assets/roboto-v16-latin-700-BZPpeBoA.woff2') format('woff2');
    font-weight: 700;
}
body, button, input, select, textarea {
    font-family: 'Roboto', sans-serif !important;
}