Sometimes I run into similar problems or situations. A little bit of layouting can be performed with the Grid list but in my opinion a bit very general. Most times I use the flex layout of CSS. Sometimes it’s a bit tricky, but for me it works.
In your case, you have to make the “mat-card-title” also as “display: flex” and use “flex-direction: row”. Maybe need to set the flex attribute of your “span” and “i” to needed ratio…
This is a good flex tutorial: https://css-tricks.com/snippets/css/a-guide-to-flexbox/
CLICK HERE to find out more related problems solutions.