What labels are legal for cascading style sheet classes

I have never used a cascading style sheet before. Consider the code below:

<style type="text/css">
.tg  {border-collapse:collapse;border-spacing:0;}
.tg td{font-family:Arial, sans-serif;font-size:14px;padding:10px 5px;border-style:solid;border-width:1px;overflow:hidden;word-break:normal;border-color:black;}
.tg th{font-family:Arial, sans-serif;font-size:14px;font-weight:normal;padding:10px 5px;border-style:solid;border-width:1px;overflow:hidden;word-break:normal;border-color:black;}
.tg .tg-lpdh{color:#870000;border-color:#d8baa2;text-align:left;vertical-align:top}
.tg .tg-o8ve{color:#404040;border-color:#d8baa2;text-align:left;vertical-align:top}
.tg .tg-5cwp{font-weight:bold;color:#404040;border-color:#d8baa2;text-align:left;vertical-align:top}
</style>
<table class="tg">
  <tr>
    <th class= "tg-5cwp" >USER'S GOAL</th>
    <th class="tg-5cwp">USER'S ACTION</th>
    <th class="tg-5cwp">OUTCOME</th>
  </tr>
</table>

Can the class label for a cascading style sheet be an arbitrary string, or do various symbols (such as hyphen) have some meaning? I am tempted to:

  • Replace the string "tg-5cwp" with something like “heading_text
  • Replace "tg-o8ve" with “normal_text”
  • Replace “tg-lpdh” with “error_text”

I do not know if - specifies an option list, like it does in most Linux shells. For example, does tg-5cwp mean use "tg" with optional parameters 5cwp Or is the string name simply a name?