Change background color of subpages

Another solution could be you register a meta box for the project pages which lets you type in whatever class name you want for each page…

function add_project_page_metabox() {
    add_meta_box(
        'project_page_meta',    //  $id
        'Project Meta', 
                        //  $title
        'ppm_callback', //  $callback
        'page', //  $post_type  
        'side',         //  $context
        'low'           //  $priority
    );
}
add_action( 'admin_init', 'add_project_page_metabox' );

function ppm_callback() {
    global $post;
    $project_class = get_post_meta($post->ID,'project_class',TRUE);
    wp_nonce_field( $_POST['page_meta_noncename'],__FILE__);

    /*  some UI styling */ ?>
<style type="text/css">
#project_page_meta          {display:block;margin:0 0 12px;float:none;}
#project_page_meta label    {display:block;margin:0 1em .6em 0;}
#project_page_meta input    {margin:0 0 .25em;clear:both;float:none;max-width:97%;}
</style>
    <label>Add class name</label>
    <input class="project_class" size="35" type="text" name="project_class" value="<?php if($project_class) { echo $project_class; } ?>"/>
    <?php
}

    //  process the meta
function project_meta_save($post_id) {
    if(!current_user_can('edit_post', $post_id)) { return $post_id; }
    $accepted_fields['page'] = array(
        'project_class' 
    );
    foreach($accepted_fields['page'] as $key){
        $custom_field = $_POST[$key];
        //If no data is entered
        if      (is_null($custom_field)) { delete_post_meta($post_id, $key); }
        elseif  (isset($custom_field) && !is_null($custom_field))
                { update_post_meta($post_id,$key,$custom_field); } 
        else    { add_post_meta($post_id, $key, $custom_field, TRUE); }
    }
    return $post_id;
}
add_action('save_post', 'project_meta_save', 3, 1 );

…then use this in your page.php like class="<?php echo get_post_meta($post->ID,'project_class',TRUE); ?>"