diff --git a/htdocs/admin/ihm.php b/htdocs/admin/ihm.php
index 03fab04896223669b047f038d56f17273fe44ecf..83f6701e2a11ad0a0874d70c874aca87a9e23782 100644
--- a/htdocs/admin/ihm.php
+++ b/htdocs/admin/ihm.php
@@ -165,14 +165,14 @@ if ($action == 'edit')	// Edit
 	print '</tr>';
 
     // Default language
-    print '<tr><td width="35%">'.$langs->trans("DefaultLanguage").'</td><td>';
+    print '<tr class="oddeven"><td width="35%">'.$langs->trans("DefaultLanguage").'</td><td>';
     print $formadmin->select_language($conf->global->MAIN_LANG_DEFAULT, 'main_lang_default', 1, 0, 0, 0, 0, 'minwidth300');
     print '</td>';
 	print '<td width="20">&nbsp;</td>';
 	print '</tr>';
 
 	// Multilingual GUI
-    print '<tr><td width="35%">'.$langs->trans("EnableMultilangInterface").'</td><td>';
+    print '<tr class="oddeven"><td width="35%">'.$langs->trans("EnableMultilangInterface").'</td><td>';
     print $form->selectyesno('main_multilangs',$conf->global->MAIN_MULTILANGS,1);
     print '</td>';
 	print '<td width="20">&nbsp;</td>';
@@ -348,7 +348,7 @@ else	// Show
     print '<table class="noborder" width="100%">';
     print '<tr class="liste_titre"><td>'.$langs->trans("Parameters").'</td><td>'.$langs->trans("Value").'</td><td>&nbsp;</td></tr>';
 
-    print '<tr><td width="35%">'.$langs->trans("DefaultLanguage").'</td><td>';
+    print '<tr class="oddeven"><td width="35%">'.$langs->trans("DefaultLanguage").'</td><td>';
     $s=picto_from_langcode($conf->global->MAIN_LANG_DEFAULT);
     print ($s?$s.' ':'');
     print ($conf->global->MAIN_LANG_DEFAULT=='auto'?$langs->trans("AutoDetectLang"):$langs->trans("Language_".$conf->global->MAIN_LANG_DEFAULT));
@@ -358,7 +358,7 @@ else	// Show
 	print '</td>';
 	print "</tr>";
     
-    print '<tr><td width="35%">'.$langs->trans("EnableMultilangInterface").'</td><td>' . yn($conf->global->MAIN_MULTILANGS) . '</td>';
+    print '<tr class="oddeven"><td width="35%">'.$langs->trans("EnableMultilangInterface").'</td><td>' . yn($conf->global->MAIN_MULTILANGS) . '</td>';
 	print '<td width="20">&nbsp;</td>';
 	print "</tr>";
 
@@ -378,7 +378,7 @@ else	// Show
         foreach ($searchform as $key => $value)
         {
             
-            print '<tr><td width="35%">'.$searchformtitle[$key].'</td><td>'.yn($searchformconst[$key]).'</td>';
+            print '<tr class="oddeven"><td width="35%">'.$searchformtitle[$key].'</td><td>'.yn($searchformconst[$key]).'</td>';
     		print '<td align="left">';
     		if (! empty($searchformmodule[$key])) print $langs->trans("IfModuleEnabled",$langs->transnoentitiesnoconv($searchformmodule[$key]));
             print '</td></tr>';
@@ -391,11 +391,11 @@ else	// Show
     print '<table class="noborder" width="100%">';
     print '<tr class="liste_titre"><td width="35%">'.$langs->trans("Parameters").'</td><td colspan="2">'.$langs->trans("Value").'</td></tr>';
 
-    print '<tr><td>'.$langs->trans("DefaultMaxSizeList").'</td><td>' . $conf->global->MAIN_SIZE_LISTE_LIMIT . '</td>';
+    print '<tr class="oddeven"><td>'.$langs->trans("DefaultMaxSizeList").'</td><td>' . $conf->global->MAIN_SIZE_LISTE_LIMIT . '</td>';
 	print '<td width="20">&nbsp;</td>';
 	print "</tr>";
 	
-    print '<tr><td>'.$langs->trans("DefaultMaxSizeShortList").'</td><td>' . $conf->global->MAIN_SIZE_SHORTLIST_LIMIT . '</td>';
+    print '<tr class="oddeven"><td>'.$langs->trans("DefaultMaxSizeShortList").'</td><td>' . $conf->global->MAIN_SIZE_SHORTLIST_LIMIT . '</td>';
 	print '<td width="20">&nbsp;</td>';
 	print "</tr>";
 
@@ -407,7 +407,7 @@ else	// Show
 	*/
 	
     // Disable javascript/ajax
-    print '<tr><td width="35%">'.$langs->trans("DisableJavascript").'</td><td>';
+    print '<tr class="oddeven"><td width="35%">'.$langs->trans("DisableJavascript").'</td><td>';
     print yn($conf->global->MAIN_DISABLE_JAVASCRIPT)."</td>";
     print '<td width="20">&nbsp;</td>';
     print "</tr>";
@@ -416,35 +416,35 @@ else	// Show
     if (class_exists("Imagick"))
 	{
 		
-	    print '<tr><td width="35%">'.$langs->trans("UsePreviewTabs").'</td><td>';
+	    print '<tr class="oddeven"><td width="35%">'.$langs->trans("UsePreviewTabs").'</td><td>';
 	    print yn(isset($conf->global->MAIN_USE_PREVIEW_TABS)?$conf->global->MAIN_USE_PREVIEW_TABS:0)."</td>";
 		print '<td width="20">&nbsp;</td>';
 		print "</tr>";
 	}
 
 	// First day for weeks
-    print '<tr><td width="35%">'.$langs->trans("WeekStartOnDay").'</td><td>';
+    print '<tr class="oddeven"><td width="35%">'.$langs->trans("WeekStartOnDay").'</td><td>';
     print $langs->trans("Day".(isset($conf->global->MAIN_START_WEEK)?$conf->global->MAIN_START_WEEK:'1'));
     print '</td>';
 	print '<td width="20">&nbsp;</td>';
 	print '</tr>';
 
     // DefaultWorkingDays
-    print '<tr><td width="35%">'.$langs->trans("DefaultWorkingDays").'</td><td>';
+    print '<tr class="oddeven"><td width="35%">'.$langs->trans("DefaultWorkingDays").'</td><td>';
     print isset($conf->global->MAIN_DEFAULT_WORKING_DAYS)?$conf->global->MAIN_DEFAULT_WORKING_DAYS:'1-5';
     print '</td>';
 	print '<td width="20">&nbsp;</td>';
 	print '</tr>';
 
     // DefaultWorkingHours
-    print '<tr><td width="35%">'.$langs->trans("DefaultWorkingHours").'</td><td>';
+    print '<tr class="oddeven"><td width="35%">'.$langs->trans("DefaultWorkingHours").'</td><td>';
     print isset($conf->global->MAIN_DEFAULT_WORKING_HOURS)?$conf->global->MAIN_DEFAULT_WORKING_HOURS:'9-18';
     print '</td>';
 	print '<td width="20">&nbsp;</td>';
 	print '</tr>';
 
 	// Firstname / Name position
-    print '<tr><td width="35%">'.$langs->trans("FirstnameNamePosition").'</td><td>';
+    print '<tr class="oddeven"><td width="35%">'.$langs->trans("FirstnameNamePosition").'</td><td>';
     if (empty($conf->global->MAIN_FIRSTNAME_NAME_POSITION)) { print $langs->trans("Firstname").' '.$langs->trans("Lastname"); }
     else { print $langs->trans("Lastname").' '.$langs->trans("Firstname"); }
     print '</td>';
@@ -452,12 +452,12 @@ else	// Show
 	print '</tr>';
 
 	// Hide unauthorized button
-	print '<tr><td width="35%">'.$langs->trans("ButtonHideUnauthorized").'</td><td colspan="2">';
+	print '<tr class="oddeven"><td width="35%">'.$langs->trans("ButtonHideUnauthorized").'</td><td colspan="2">';
 	print yn((isset($conf->global->MAIN_BUTTON_HIDE_UNAUTHORIZED)?$conf->global->MAIN_BUTTON_HIDE_UNAUTHORIZED:0),1);
 	print '</td></tr>';
 
     // Show logo
-    print '<tr><td>'.$langs->trans("EnableShowLogo").'</td><td>' . yn($conf->global->MAIN_SHOW_LOGO) . '</td>';
+    print '<tr class="oddeven"><td>'.$langs->trans("EnableShowLogo").'</td><td>' . yn($conf->global->MAIN_SHOW_LOGO) . '</td>';
 	print '<td width="20">&nbsp;</td>';
 	print "</tr>";
 
@@ -471,29 +471,29 @@ else	// Show
 	 */
 	
     // Show bugtrack link
-	print '<tr"><td width="35%">'.$langs->trans("ShowBugTrackLink", $langs->transnoentitiesnoconv("FindBug")).'</td><td>';
+	print '<tr class="oddeven"><td width="35%">'.$langs->trans("ShowBugTrackLink", $langs->transnoentitiesnoconv("FindBug")).'</td><td>';
 	print yn($conf->global->MAIN_BUGTRACK_ENABLELINK)."</td>";
 	print '<td width="20">&nbsp;</td>';
 	print "</tr>";
 
     // Link to wiki help
-    print '<tr><td width="35%">'.$langs->trans("DisableLinkToHelp",img_picto('',DOL_URL_ROOT.'/theme/'.$conf->theme.'/img/helpdoc.png','',1)).'</td><td colspan="2">';
+    print '<tr class="oddeven"><td width="35%">'.$langs->trans("DisableLinkToHelp",img_picto('',DOL_URL_ROOT.'/theme/'.$conf->theme.'/img/helpdoc.png','',1)).'</td><td colspan="2">';
     print yn((isset($conf->global->MAIN_HELP_DISABLELINK)?$conf->global->MAIN_HELP_DISABLELINK:0),1);
     print '</td></tr>';
 
 	// Link to help center
-    print '<tr><td width="35%">'.$langs->trans("DisableLinkToHelpCenter").'</td><td colspan="2">';
+    print '<tr class="oddeven"><td width="35%">'.$langs->trans("DisableLinkToHelpCenter").'</td><td colspan="2">';
     print yn((isset($conf->global->MAIN_HELPCENTER_DISABLELINK)?$conf->global->MAIN_HELPCENTER_DISABLELINK:0),1);
     print '</td></tr>';
 
 	// Message login
-    print '<tr><td width="35%">'.$langs->trans("MessageLogin").'</td><td colspan="2">';
+    print '<tr class="oddeven"><td width="35%">'.$langs->trans("MessageLogin").'</td><td colspan="2">';
     if (isset($conf->global->MAIN_HOME)) print dol_htmlcleanlastbr($conf->global->MAIN_HOME);
     else print '&nbsp;';
     print '</td></tr>'."\n";
 
     // Message of the day
-    print '<tr><td width="35%">'.$langs->trans("MessageOfDay").'</td><td colspan="2">';
+    print '<tr class="oddeven"><td width="35%">'.$langs->trans("MessageOfDay").'</td><td colspan="2">';
     if (isset($conf->global->MAIN_MOTD)) print dol_htmlcleanlastbr($conf->global->MAIN_MOTD);
     else print '&nbsp;';
     print '</td></tr>'."\n";
diff --git a/htdocs/comm/propal/list.php b/htdocs/comm/propal/list.php
index 0ff70fe910790e178b1b4d0f32ae09bb7ce86cfe..fdcbdde5ca81757e43cc697b067b07d491e5d70f 100644
--- a/htdocs/comm/propal/list.php
+++ b/htdocs/comm/propal/list.php
@@ -751,7 +751,7 @@ if ($resql)
     	$objectstatic->id=$obj->rowid;
     	$objectstatic->ref=$obj->ref;
     		
-		print '<tr>';
+		print '<tr class="oddeven">';
 		
 		if (! empty($arrayfields['p.ref']['checked']))
 		{
diff --git a/htdocs/commande/list.php b/htdocs/commande/list.php
index 03b9cfce56ae842cf17a74f745bf2e2b28df94e1..37170e0af84e3e7b9fd600d38206f38ebdfb4746 100644
--- a/htdocs/commande/list.php
+++ b/htdocs/commande/list.php
@@ -1048,7 +1048,8 @@ if ($resql)
     while ($i < min($num,$limit))
     {
         $obj = $db->fetch_object($resql);
-        print '<tr>';
+        
+        print '<tr class="oddeven">';
 
         $notshippable=0;
         $warning = 0;
diff --git a/htdocs/contact/list.php b/htdocs/contact/list.php
index 80649ef4e069b6743f34b7ceb9dfb5a72d7a03f8..4e7a9c6f19029e8e1cc4984d9fa57665b3fab564 100644
--- a/htdocs/contact/list.php
+++ b/htdocs/contact/list.php
@@ -651,7 +651,7 @@ while ($i < min($num,$limit))
 {
     $obj = $db->fetch_object($result);
 
-    print "<tr>";
+    print '<tr class="oddeven">';
 
 	$contactstatic->lastname=$obj->lastname;
 	$contactstatic->firstname='';
@@ -669,8 +669,8 @@ while ($i < min($num,$limit))
     if (! empty($arrayfields['p.lastname']['checked']))
     {
         print '<td valign="middle">';
-	  print $contactstatic->getNomUrl(1,'',0);
-	  print '</td>';
+        print $contactstatic->getNomUrl(1,'',0);
+        print '</td>';
     }
 	// Firstname
     if (! empty($arrayfields['p.firstname']['checked']))
diff --git a/htdocs/contrat/list.php b/htdocs/contrat/list.php
index c382bfc76126fcdb6eedfe19ba5af31e543220c2..0224da7d88c6a729cbfb3943655d8a1aacc1fd4b 100644
--- a/htdocs/contrat/list.php
+++ b/htdocs/contrat/list.php
@@ -563,7 +563,7 @@ if ($resql)
         $contracttmp->ref_customer=$obj->ref_customer;
         $contracttmp->ref_supplier=$obj->ref_supplier;
         
-        print '<tr>';
+        print '<tr class="oddeven">';
         if (! empty($arrayfields['c.ref']['checked']))
         {
             print '<td class="nowrap">';
diff --git a/htdocs/core/boxes/modules_boxes.php b/htdocs/core/boxes/modules_boxes.php
index 26ee34bdca0f648733b7507bbc7125d56b9f601d..c016741cb39591620822c4a33226f82f61b3ef95 100644
--- a/htdocs/core/boxes/modules_boxes.php
+++ b/htdocs/core/boxes/modules_boxes.php
@@ -234,7 +234,7 @@ class ModeleBoxes    // Can't be abtract as it is instantiated to build "empty"
             // Show box title
             if (! empty($head['text']) || ! empty($head['sublink']) || ! empty($head['subpicto']))
             {
-                $out.= '<tr class="box_titre">';
+                $out.= '<tr class="liste_titre box_titre">';
                 $out.= '<td';
                 if ($nbcol > 0) { $out.= ' colspan="'.$nbcol.'"'; }
                 $out.= '>';
diff --git a/htdocs/core/lib/usergroups.lib.php b/htdocs/core/lib/usergroups.lib.php
index 0c735a97c2f2c7c8a8f108cc9e5c7f09b1702147..6e6e0c7b5112411a04416579c3074e7a1bf76806 100644
--- a/htdocs/core/lib/usergroups.lib.php
+++ b/htdocs/core/lib/usergroups.lib.php
@@ -589,7 +589,7 @@ function show_theme($fuser,$edit=0,$foruserprofile=false)
 	   	{
 	   		print $formother->showColor($conf->global->THEME_ELDY_BACKTITLE1, $langs->trans("Default"));
 	   	}
-    	print ' &nbsp; ('.$langs->trans("Default").': <strong>e6e6e6</strong>) ';
+    	print ' &nbsp; ('.$langs->trans("Default").': <strong>f0f0f0</strong>) ';  // $colorbacktitle1 in CSS
     	print $form->textwithpicto('', $langs->trans("NotSupportedByAllThemes").', '.$langs->trans("PressF5AfterChangingThis"));
 	    print '</td>';
 
diff --git a/htdocs/product/list.php b/htdocs/product/list.php
index 85b63077a05977ff2df4a628a53ec385a7f646d5..69108a893d906b14349d3fc523ce4741862b3d0f 100644
--- a/htdocs/product/list.php
+++ b/htdocs/product/list.php
@@ -473,45 +473,9 @@ else
 
             print '<div class="div-table-responsive">';
             print '<table class="tagtable liste'.($moreforfilter?" listwithfilterbefore":"").'">'."\n";
-    		print '<tr class="liste_titre">';
-    		if (! empty($arrayfields['p.ref']['checked']))  print_liste_field_titre($arrayfields['p.ref']['label'], $_SERVER["PHP_SELF"],"p.ref","",$param,"",$sortfield,$sortorder);
-    		if (! empty($arrayfields['pfp.ref_fourn']['checked']))  print_liste_field_titre($arrayfields['pfp.ref_fourn']['label'], $_SERVER["PHP_SELF"],"pfp.ref_fourn","",$param,"",$sortfield,$sortorder);
-    		if (! empty($arrayfields['p.label']['checked']))  print_liste_field_titre($arrayfields['p.label']['label'], $_SERVER["PHP_SELF"],"p.label","",$param,"",$sortfield,$sortorder);
-    		if (! empty($arrayfields['p.barcode']['checked']))  print_liste_field_titre($arrayfields['p.barcode']['label'], $_SERVER["PHP_SELF"],"p.barcode","",$param,"",$sortfield,$sortorder);
-    		if (! empty($arrayfields['p.duration']['checked']))  print_liste_field_titre($arrayfields['p.duration']['label'], $_SERVER["PHP_SELF"],"p.duration","",$param,'align="center"',$sortfield,$sortorder);
-    		if (! empty($arrayfields['p.sellprice']['checked']))  print_liste_field_titre($arrayfields['p.sellprice']['label'], $_SERVER["PHP_SELF"],"","",$param,'align="right"',$sortfield,$sortorder);
-    		if (! empty($arrayfields['p.minbuyprice']['checked']))  print_liste_field_titre($arrayfields['p.minbuyprice']['label'], $_SERVER["PHP_SELF"],"","",$param,'align="right"',$sortfield,$sortorder);
-    		if (! empty($arrayfields['p.seuil_stock_alerte']['checked']))  print_liste_field_titre($arrayfields['p.seuil_stock_alerte']['label'], $_SERVER["PHP_SELF"],"p.seuil_stock_alerte","",$param,'align="right"',$sortfield,$sortorder);
-    		if (! empty($arrayfields['p.desiredstock']['checked']))  print_liste_field_titre($arrayfields['p.desiredstock']['label'], $_SERVER["PHP_SELF"],"p.desiredstock","",$param,'align="right"',$sortfield,$sortorder);
-    		if (! empty($arrayfields['p.stock']['checked']))  print_liste_field_titre($arrayfields['p.stock']['label'], $_SERVER["PHP_SELF"],"p.stock","",$param,'align="right"',$sortfield,$sortorder);
-    		if (! empty($arrayfields['stock_virtual']['checked']))  print_liste_field_titre($arrayfields['stock_virtual']['label'], $_SERVER["PHP_SELF"],"","",$param,'align="right"',$sortfield,$sortorder);
-    		if (! empty($arrayfields['p.tobatch']['checked']))  print_liste_field_titre($arrayfields['p.tobatch']['label'], $_SERVER["PHP_SELF"],"p.tobatch","",$param,'align="center"',$sortfield,$sortorder);
-    		if (! empty($arrayfields['p.accountancy_code_sell']['checked']))  print_liste_field_titre($arrayfields['p.accountancy_code_sell']['label'], $_SERVER["PHP_SELF"],"p.accountancy_code_sell","",$param,'',$sortfield,$sortorder);
-    		if (! empty($arrayfields['p.accountancy_code_buy']['checked']))  print_liste_field_titre($arrayfields['p.accountancy_code_buy']['label'], $_SERVER["PHP_SELF"],"p.accountancy_code_buy","",$param,'',$sortfield,$sortorder);
-    		if (is_array($extrafields->attribute_label) && count($extrafields->attribute_label))
-			{
-			   foreach($extrafields->attribute_label as $key => $val) 
-			   {
-		           if (! empty($arrayfields["ef.".$key]['checked'])) 
-		           {
-						$align=$extrafields->getAlignFlag($key);
-						print_liste_field_titre($extralabels[$key],$_SERVER["PHP_SELF"],"ef.".$key,"",$param,($align?'align="'.$align.'"':''),$sortfield,$sortorder);
-		           }
-			   }
-			}
-    		// Hook fields
-			$parameters=array('arrayfields'=>$arrayfields);
-		    $reshook=$hookmanager->executeHooks('printFieldListTitle',$parameters);    // Note that $action and $object may have been modified by hook
-		    print $hookmanager->resPrint;
-			if (! empty($arrayfields['p.datec']['checked']))  print_liste_field_titre($arrayfields['p.datec']['label'],$_SERVER["PHP_SELF"],"p.datec","",$param,'align="center" class="nowrap"',$sortfield,$sortorder);
-			if (! empty($arrayfields['p.tms']['checked']))    print_liste_field_titre($arrayfields['p.tms']['label'],$_SERVER["PHP_SELF"],"p.tms","",$param,'align="center" class="nowrap"',$sortfield,$sortorder);
-			if (! empty($arrayfields['p.tosell']['checked'])) print_liste_field_titre($langs->trans("Status").' ('.$langs->trans("Sell").')',$_SERVER["PHP_SELF"],"p.tosell","",$param,'align="right"',$sortfield,$sortorder);
-			if (! empty($arrayfields['p.tobuy']['checked']))  print_liste_field_titre($langs->trans("Status").' ('.$langs->trans("Buy").')',$_SERVER["PHP_SELF"],"p.tobuy","",$param,'align="right"',$sortfield,$sortorder);
-			print_liste_field_titre($selectedfields, $_SERVER["PHP_SELF"],"",'','','align="right"',$sortfield,$sortorder,'maxwidthsearch ');
-			print "</tr>\n";
-
+    		
     		// Lines with input filters
-    		print '<tr class="liste_titre">';
+    		print '<tr class="liste_titre_filter">';
     		if (! empty($arrayfields['p.ref']['checked']))
     		{
     			print '<td class="liste_titre" align="left">';
@@ -624,11 +588,47 @@ else
 
     		print '</tr>';
 
-
+    		print '<tr class="liste_titre">';
+    		if (! empty($arrayfields['p.ref']['checked']))  print_liste_field_titre($arrayfields['p.ref']['label'], $_SERVER["PHP_SELF"],"p.ref","",$param,"",$sortfield,$sortorder);
+    		if (! empty($arrayfields['pfp.ref_fourn']['checked']))  print_liste_field_titre($arrayfields['pfp.ref_fourn']['label'], $_SERVER["PHP_SELF"],"pfp.ref_fourn","",$param,"",$sortfield,$sortorder);
+    		if (! empty($arrayfields['p.label']['checked']))  print_liste_field_titre($arrayfields['p.label']['label'], $_SERVER["PHP_SELF"],"p.label","",$param,"",$sortfield,$sortorder);
+    		if (! empty($arrayfields['p.barcode']['checked']))  print_liste_field_titre($arrayfields['p.barcode']['label'], $_SERVER["PHP_SELF"],"p.barcode","",$param,"",$sortfield,$sortorder);
+    		if (! empty($arrayfields['p.duration']['checked']))  print_liste_field_titre($arrayfields['p.duration']['label'], $_SERVER["PHP_SELF"],"p.duration","",$param,'align="center"',$sortfield,$sortorder);
+    		if (! empty($arrayfields['p.sellprice']['checked']))  print_liste_field_titre($arrayfields['p.sellprice']['label'], $_SERVER["PHP_SELF"],"","",$param,'align="right"',$sortfield,$sortorder);
+    		if (! empty($arrayfields['p.minbuyprice']['checked']))  print_liste_field_titre($arrayfields['p.minbuyprice']['label'], $_SERVER["PHP_SELF"],"","",$param,'align="right"',$sortfield,$sortorder);
+    		if (! empty($arrayfields['p.seuil_stock_alerte']['checked']))  print_liste_field_titre($arrayfields['p.seuil_stock_alerte']['label'], $_SERVER["PHP_SELF"],"p.seuil_stock_alerte","",$param,'align="right"',$sortfield,$sortorder);
+    		if (! empty($arrayfields['p.desiredstock']['checked']))  print_liste_field_titre($arrayfields['p.desiredstock']['label'], $_SERVER["PHP_SELF"],"p.desiredstock","",$param,'align="right"',$sortfield,$sortorder);
+    		if (! empty($arrayfields['p.stock']['checked']))  print_liste_field_titre($arrayfields['p.stock']['label'], $_SERVER["PHP_SELF"],"p.stock","",$param,'align="right"',$sortfield,$sortorder);
+    		if (! empty($arrayfields['stock_virtual']['checked']))  print_liste_field_titre($arrayfields['stock_virtual']['label'], $_SERVER["PHP_SELF"],"","",$param,'align="right"',$sortfield,$sortorder);
+    		if (! empty($arrayfields['p.tobatch']['checked']))  print_liste_field_titre($arrayfields['p.tobatch']['label'], $_SERVER["PHP_SELF"],"p.tobatch","",$param,'align="center"',$sortfield,$sortorder);
+    		if (! empty($arrayfields['p.accountancy_code_sell']['checked']))  print_liste_field_titre($arrayfields['p.accountancy_code_sell']['label'], $_SERVER["PHP_SELF"],"p.accountancy_code_sell","",$param,'',$sortfield,$sortorder);
+    		if (! empty($arrayfields['p.accountancy_code_buy']['checked']))  print_liste_field_titre($arrayfields['p.accountancy_code_buy']['label'], $_SERVER["PHP_SELF"],"p.accountancy_code_buy","",$param,'',$sortfield,$sortorder);
+    		if (is_array($extrafields->attribute_label) && count($extrafields->attribute_label))
+    		{
+    		    foreach($extrafields->attribute_label as $key => $val)
+    		    {
+    		        if (! empty($arrayfields["ef.".$key]['checked']))
+    		        {
+    		            $align=$extrafields->getAlignFlag($key);
+    		            print_liste_field_titre($extralabels[$key],$_SERVER["PHP_SELF"],"ef.".$key,"",$param,($align?'align="'.$align.'"':''),$sortfield,$sortorder);
+    		        }
+    		    }
+    		}
+    		// Hook fields
+    		$parameters=array('arrayfields'=>$arrayfields);
+    		$reshook=$hookmanager->executeHooks('printFieldListTitle',$parameters);    // Note that $action and $object may have been modified by hook
+    		print $hookmanager->resPrint;
+    		if (! empty($arrayfields['p.datec']['checked']))  print_liste_field_titre($arrayfields['p.datec']['label'],$_SERVER["PHP_SELF"],"p.datec","",$param,'align="center" class="nowrap"',$sortfield,$sortorder);
+    		if (! empty($arrayfields['p.tms']['checked']))    print_liste_field_titre($arrayfields['p.tms']['label'],$_SERVER["PHP_SELF"],"p.tms","",$param,'align="center" class="nowrap"',$sortfield,$sortorder);
+    		if (! empty($arrayfields['p.tosell']['checked'])) print_liste_field_titre($langs->trans("Status").' ('.$langs->trans("Sell").')',$_SERVER["PHP_SELF"],"p.tosell","",$param,'align="right"',$sortfield,$sortorder);
+    		if (! empty($arrayfields['p.tobuy']['checked']))  print_liste_field_titre($langs->trans("Status").' ('.$langs->trans("Buy").')',$_SERVER["PHP_SELF"],"p.tobuy","",$param,'align="right"',$sortfield,$sortorder);
+    		print_liste_field_titre($selectedfields, $_SERVER["PHP_SELF"],"",'','','align="right"',$sortfield,$sortorder,'maxwidthsearch ');
+    		print "</tr>\n";
+    		
+    		
     		$product_static=new Product($db);
     		$product_fourn =new ProductFournisseur($db);
 
-    		$var=true;
     	    $i = 0;
     		while ($i < min($num,$limit))
     		{
@@ -669,8 +669,7 @@ else
 				}
 
 
-    			$var=!$var;
-    			print '<tr '.$bc[$var].'>';
+    			print '<tr class="oddeven">';
 
     			// Ref
 			    if (! empty($arrayfields['p.ref']['checked']))
diff --git a/htdocs/projet/list.php b/htdocs/projet/list.php
index 236671eea4ce46844578735e0ae96f305c8e776b..c83356767004b295139b29a8977ba38f7cf90904 100644
--- a/htdocs/projet/list.php
+++ b/htdocs/projet/list.php
@@ -634,7 +634,7 @@ while ($i < min($num,$limit))
 	$userAccess = $projectstatic->restrictedProjectArea($user);    // why this ?
 	if ($userAccess >= 0)
 	{
-		print "<tr>";
+		print '<tr class="oddeven">';
 
 		// Project url
     	if (! empty($arrayfields['p.ref']['checked']))
diff --git a/htdocs/projet/tasks/list.php b/htdocs/projet/tasks/list.php
index dd43fd61d93ed7fcac23852e550184f3d5517fa4..a6a4c855474b668d8fba90c2fd65cdaf5ee0151b 100644
--- a/htdocs/projet/tasks/list.php
+++ b/htdocs/projet/tasks/list.php
@@ -619,7 +619,7 @@ while ($i < min($num,$limit))
 	$userAccess = $projectstatic->restrictedProjectArea($user);    // why this ?
 	if ($userAccess >= 0)
 	{
-		print "<tr>";
+		print '<tr class="oddeven">';
 
     	// Ref
     	if (! empty($arrayfields['t.ref']['checked']))
diff --git a/htdocs/societe/list.php b/htdocs/societe/list.php
index c4412660ea76175b0c833360ff68add584409c06..1a9980bbf12c4ed8386242c1a4d57d3f0bb673ba 100644
--- a/htdocs/societe/list.php
+++ b/htdocs/societe/list.php
@@ -907,10 +907,10 @@ while ($i < min($num, $limit))
 	$companystatic->code_compta_client=$obj->code_compta;
 	$companystatic->code_compta_fournisseur=$obj->code_compta_fournisseur;
 
-    	$companystatic->fk_prospectlevel=$obj->fk_prospectlevel;
-    	$companystatic->name_alias=$obj->name_alias;
+   	$companystatic->fk_prospectlevel=$obj->fk_prospectlevel;
+   	$companystatic->name_alias=$obj->name_alias;
 
-	print "<tr>";
+	print '<tr class="oddeven">';
 	if (! empty($arrayfields['s.nom']['checked']))
 	{
 		print '<td class="tdoverflowmax200">';
diff --git a/htdocs/theme/eldy/style.css.php b/htdocs/theme/eldy/style.css.php
index 9b90e92e30dee893e510c614528359061af50366..49c17a749f0a923b8ffd5bd4edb4f0279148c67f 100644
--- a/htdocs/theme/eldy/style.css.php
+++ b/htdocs/theme/eldy/style.css.php
@@ -82,7 +82,7 @@ $dol_no_mouse_hover=$conf->dol_no_mouse_hover;
 $colorbackhmenu1='110,120,160';      // topmenu
 $colorbackvmenu1='255,255,255';      // vmenu
 $colortopbordertitle1='120,120,120';    // top border of title
-$colorbacktitle1='230,230,230';      // title of tables,list
+$colorbacktitle1='240,240,240';      // title of tables,list
 $colorbacktabcard1='255,255,255';  // card
 $colorbacktabactive='234,234,234';
 $colorbacklineimpair1='255,255,255';    // line impair
@@ -98,7 +98,6 @@ $colortextlink='0,0,120';
 $fontsize='13';
 $fontsizesmaller='12';
 $usegradienttop=(isset($conf->global->THEME_ELDY_TOPMENU_BACK1)?0:1);
-$usegradienttitle=(isset($conf->global->THEME_ELDY_BACKTITLE1)?0:1);
 $useboldtitle=(isset($conf->global->THEME_ELDY_USEBOLDTITLE)?$conf->global->THEME_ELDY_USEBOLDTITLE:1);
 $borderwith=2;
 
@@ -2399,8 +2398,11 @@ table.paddingtopbottomonly tr td {
 	padding-top: 1px;
 	padding-bottom: 2px;
 }
+.liste_titre_filter {
+	background: rgb(<?php echo $colorbacktitle1; ?>) !important;
+}
 tr.liste_titre_filter td.liste_titre {
-    border-bottom: 1px solid #eee;
+    border-bottom: 1px solid #ddd;
 }
 .liste_titre_add td, .liste_titre_add th, .liste_titre_add .tagtd
 {
@@ -2715,11 +2717,7 @@ tr.liste_titre, tr.liste_titre_sel, form.liste_titre, form.liste_titre_sel, tabl
 }
 div.liste_titre_bydiv, .liste_titre div.tagtr, tr.liste_titre, tr.liste_titre_sel, form.liste_titre, form.liste_titre_sel, table.dataTable thead tr
 {
-	background: linear-gradient(bottom, rgb(<?php echo $colorbacklinepair1; ?>) 85%, rgb(<?php echo $colorbacklinepair2; ?>) 100%);
-	background: -o-linear-gradient(bottom, rgb(<?php echo $colorbacklinepair1; ?>) 85%, rgb(<?php echo $colorbacklinepair2; ?>) 100%);
-	background: -moz-linear-gradient(bottom, rgb(<?php echo $colorbacklinepair1; ?>) 85%, rgb(<?php echo $colorbacklinepair2; ?>) 100%);
-	background: -webkit-linear-gradient(bottom, rgb(<?php echo $colorbacklinepair1; ?>) 85%, rgb(<?php echo $colorbacklinepair2; ?>) 100%);
-	background: -ms-linear-gradient(bottom, rgb(<?php echo $colorbacklinepair1; ?>) 85%, rgb(<?php echo $colorbacklinepair2; ?>) 100%);
+	background: rgb(<?php echo $colorbacktitle1; ?>);
 	font-weight: <?php echo $useboldtitle?'bold':'normal'; ?>;
     border-bottom: 1px solid #ddd;
 	
@@ -2987,16 +2985,7 @@ tr.box_titre {
 	color: #000 !important;*/
 
 	/* TO MATCH ELDY */
-	<?php if ($usegradienttitle) { ?>
-	background-image: -o-linear-gradient(bottom, rgba(0,0,0,0.1) 0%, rgba(<?php echo $colorbacktitle1; ?>,0.4) 100%);
-	background-image: -moz-linear-gradient(bottom, rgba(0,0,0,0.1) 0%, rgba(<?php echo $colorbacktitle1; ?>,0.4) 100%);
-	background-image: -webkit-linear-gradient(bottom, rgba(0,0,0,0.1) 0%, rgba(<?php echo $colorbacktitle1; ?>,0.4) 100%);
-	background-image: -ms-linear-gradient(bottom, rgba(0,0,0,0.1) 0%, rgba(<?php echo $colorbacktitle1; ?>,0.4) 100%);
-	background-image: linear-gradient(bottom, rgba(0,0,0,0.1) 0%, rgba(<?php echo $colorbacktitle1; ?>,0.4) 100%);
-	<?php } else { ?>
-	background: rgb(<?php echo $colorbacktitle1; ?>);
-	<?php } ?>
-
+	background: rgb(<?php echo $colorbacktitle1; ?>)
 	color: rgb(<?php echo $colortexttitle; ?>);
     font-family: <?php print $fontlist ?>, sans-serif;
     font-weight: <?php echo $useboldtitle?'bold':'normal'; ?>;
diff --git a/htdocs/theme/md/style.css.php b/htdocs/theme/md/style.css.php
index 2ae5decbf96e17f4c0ac2a6476e41e2e0c943f54..1908fcfef4ab0c1e20390298070b77317182927d 100644
--- a/htdocs/theme/md/style.css.php
+++ b/htdocs/theme/md/style.css.php
@@ -82,7 +82,7 @@ $dol_no_mouse_hover=$conf->dol_no_mouse_hover;
 $colorbackhmenu1='90,50,120';      // topmenu
 $colorbackvmenu1='255,255,255';      // vmenu
 $colortopbordertitle1='';           // top border of tables-lists title. not defined = default to colorbackhmenu1
-$colorbacktitle1='230,230,230';      // title of tables-lists
+$colorbacktitle1='240,240,240';      // title of tables-lists
 $colorbacktabcard1='255,255,255';  // card
 $colorbacktabactive='234,234,234';
 $colorbacklineimpair1='255,255,255';    // line impair
@@ -2304,8 +2304,11 @@ table.paddingtopbottomonly tr td {
 	padding-bottom: 2px;
 }
 
+.liste_titre_filter {
+	background: rgb(<?php echo $colorbacktitle1; ?>) !important;
+}
 tr.liste_titre_filter td.liste_titre {
-    border-bottom: 1px solid #eee;
+    border-bottom: 1px solid #FDFFFF;
 }
 .liste_titre_add td, .liste_titre_add th, .liste_titre_add .tagtd
 {