Your problem lies with the fact that table data doesn't/shouldn't support position:relative property within FF or Chrome...
Your only solution is inside all your <td>calendar data</td> tags add a <div style="position:relative;">calendar data</div> to wrap the data inside each table data.
So sample is:
<td class="calendar-day"><div class="day-number">15</div><p> </p><p> </p></td>
make it:
<td class="calendar-day"><div style="position:relative;"><div class="day-number">15</div><p> </p><p> </p></div></td>
Granted your styles break a little but this should get you on the right track.