Page-CPT.php redirects to archive or single.php

You’re missing this in your code and the names of your template hierachy seems to be wrong.

page-cpt.php relates to a page template and not a CPT archive.

'rewrite'      => array( 'slug' => 'top-ten-list', 'with_front' => false ),

Assuming you use the slug top-ten-list

You should name your archive template archive-top-ten-list.php

You should name your single CPT template single-top-ten-list.php

Here’s an example of all the correct code which is tested and works you can use as a guide

No need to add flush_rewrite_rules(); as you can simply re-save your Permalinks.

You could also use dashicons rather than adding an image for your menu icon.

You may also consider adding custom taxonomy types which enable you to create categories for your CPT.