You can try this:
$pattern = '~(?:{|\G(?!\A))\s*?;?\s*\K[^;}]+~';
echo preg_replace($pattern, "\t$0" , $css);
pattern details:
(?: # possible beginings of the match
{ # a curly bracket
| # OR
\G(?!\A) # the end of a precedent match
)
\s*?;?\s* # spaces (after the curly bracket) or ending ; of a property
\K # resets all the begining from match result
[^;}]+ # all that is not a closing curly bracket or a semi-colon