Because of the gaps, I can not just say "record ID - 1" or "record number - 1".
Actually, you can - but you have to do so in an unstored calculation field in the child table. When this field is placed in a portal, it will be evaluated from the point-of-view of the portal. Unfortunately, conditional formatting doesn't work that way - as you have discovered.
Ok great, I wasn't telling it to be "unstored". I will have to study up on the effects of calculations or fields being stored vs unstored.
When I first tried this solution I thought it wasn't working because I used Get ( RecordID ), but then I changed it to Get ( RecordNumber ) and that did the trick.
The conditional formatting is working now too !
Thanks so much for your help !