#timeSelect {
    display: grid !important;
    grid-template-columns: repeat(auto-fill, minmax(76px, 1fr));
    gap: 7px;
    margin: 0;
    width: 100%;
}

#timeSelect > .appointment-time-slot {
    width: auto !important;
    max-width: none !important;
    padding: 0 !important;
    margin: 0 !important;
}

#timeSelect .custom-option-item {
    display: flex;
    min-height: 36px;
    align-items: center;
    justify-content: center;
    margin: 0;
    padding: 5px 3px !important;
    font-size: .85rem;
    line-height: 1.15;
}

#timeSelect .custom-option-item-check:disabled + .custom-option-item {
    opacity: .5;
    cursor: not-allowed;
    text-decoration: line-through;
}

/* The theme adds decorative radio circles to every label; time tiles use the whole tile as the control. */
#timeSelect .custom-option-item::before,
#timeSelect .custom-option-item::after {
    content: none !important;
    display: none !important;
}

@media (min-width: 768px) {
    #timeSelect {
        grid-template-columns: repeat(auto-fill, minmax(88px, 1fr));
        gap: 9px;
    }
}
