.booking-title {
    font-size: 32px;
    font-weight: 500;
}

#bookingType {
    border: 2px solid #181E221A;
    border-radius: 4px;
    width: 320px;
    padding: 9px 24px;
    font-weight: 500;
    font-size: 18px;
    line-height: 28px;
}

.booking-date {
    display: grid;
    grid-template-columns: max-content 1fr max-content;
    background-color: var(--grey);
    border-radius: 10px;
    padding: 12px;
}

.arrow {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 34px;
    border-radius: 4px;
    border: 2px solid rgba(var(--rgb-grey), 0.12);
    cursor: pointer;
}

.arrow:hover {
    background-color: var(--green-dark);
}

.arrow:hover > img {
    filter: invert(1);
}

.date {
    display: grid;
}

#date-label {
    grid-column: 1/2;
    grid-row: 1/2;
}

#datepicker {
    cursor: pointer;
    opacity: 0;
    grid-column: 1/2;
    grid-row: 1/2;
    z-index: 10;
    position: relative;
}

/* #date::-webkit-calendar-picker-indicator {
    position: absolute;
    left: -20px;
    right: 0;
    top: 0;
    bottom: 0;
    width: 100%;
    height: 100%;
} */


.sims-container {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    column-gap: 48px;
}

.sim {
    border: 2px solid var(--grey);
    border-radius: 8px 8px 0px 0px;
}

.sim-name {
    text-align: center;
    padding: 8px 0 12px;
    border-bottom: 2px solid var(--grey);
}

.slots-container {
    display: grid;
    padding: 16px 24px;
    row-gap: 8px;
}

.slot {
    cursor: pointer;
    border-radius: 3px;
    padding: 9px 0;
    background-color: rgba(var(--rgb-grey), 0.05);
    text-align: center;
    display: grid;
}

.slot:hover {
    background-color: rgba(var(--rgb-grey), 0.1);
}

.slot.closed {
    pointer-events: none;
    color: rgba(var(--rgb-green-dark), 0.2);
    background-color: rgba(var(--rgb-grey), 0.02);
}

.slot.closed_admin {
    background-color: rgba(var(--rgb-green-light), 0.15);
    color: var(--green-light);
}

.slot.booked {
    pointer-events: none;
}

.slot.selected {
    background-color: var(--green-light);
    color: var(--white);
}

.slot-hour {
    grid-column: 1/2;
    grid-row: 1/2;
}

.slot-add {
    grid-column: 1/2;
    grid-row: 1/2;
    align-self: center;
    justify-self: center;
    opacity: 0;
    z-index: -1;
}

.slot:not(.selected):hover>.slot-add {
    opacity: 1;
    z-index: 10;
}

.slot:not(.selected):hover>.slot-hour {
    opacity: 0;
    z-index: -1;
}

.slot.not-for-booking {
    pointer-events: none;
    color: rgba(var(--rgb-green-dark), 0.2);
    background-color: rgba(var(--rgb-grey), 0.02);
}

#bookingBar {
    position: fixed;
    background: #fff;
    bottom: 0;
    left: 0;
    z-index: 9999999;
    right: 0;
    box-shadow: 0px 0px 30px #00000022;
    padding: 8px 0;

    opacity: 1;
    pointer-events: initial;

    transition: all .3s ease-in;
}

#bookingBar.hide {
    opacity: 0;
    z-index: -1;
    pointer-events: none;
}

.booking-bar-container {
    display: grid;
    grid-template-columns: 1fr repeat(2, max-content);
}

.bookings {
    display: grid;
    grid-template-columns: repeat(3, max-content);
    column-gap: 27px;
}

@media (max-width: 1023px) {
    .slot:not(.selected):hover>.slot-add {
        opacity: 0;
        z-index: -1;
    }

    .slot:not(.selected):hover>.slot-hour {
        opacity: 1;
        z-index: 10;
    }
}

@media (max-width: 767px) {
    .sims-container {
        column-gap: 0;
    }

    .sim:not(:nth-last-child(1)) {
        border-right: none;
        border-radius: 8px 0 0px 0px;
    }

    .sim:not(:nth-child(1)) {
        border-left: none;
        border-radius: 0;
    }

    .sim:not(:nth-last-child(1))>.slots-container {
        border-right: 2px solid var(--grey);
    }

    .slots-container {
        padding: 8px;
    }

    .slot-hour {
        font-size: 16px;
    }

    #bookingBar {
        padding: 12px 0;
    }

    .booking-bar-container {
        grid-template-columns: 1fr max-content;
        grid-template-rows: repeat(2, min-content);
        row-gap: 12px;
    }

    .bookings {
        grid-row: 1/2;
        grid-column: 1/-1;
        grid-template-columns: repeat(3, 1fr);
        column-gap: 15px;
    }
}

@media (max-width: 390px) {
    .slots-container {
        padding: 8px 4px;
    }
}

/* Floating error toast for fitting booking validation */
.booking-error-toast {
    position: fixed;
    top: 100px;
    left: 50%;
    transform: translateX(-50%);
    background-color: #fff;
    color: var(--red);
    padding: 16px 24px;
    border-radius: 8px;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.15);
    border: 2px solid var(--red);
    z-index: 10000000;
    font-weight: 600;
    font-size: 14px;
    max-width: 90%;
    text-align: center;
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.3s ease, visibility 0.3s ease;
}

.booking-error-toast.show {
    opacity: 1;
    visibility: visible;
}