diff --git a/app/static/css/gt_table.css b/app/static/css/gt_table.css
index 9d04b0deb7cf73b7980811bc2042f481cf50b606..2e8253e60b21d205866c1fc95737f9c863ca2835 100644
--- a/app/static/css/gt_table.css
+++ b/app/static/css/gt_table.css
@@ -46,4 +46,14 @@ table.dataTable tr.gt_lastrow th {
 table.dataTable td.etudinfo,
 table.dataTable td.group {
   text-align: left;
+}
+
+div.dt-container div.dt-search {
+  display: inline-block;
+  margin-left: 16px;
+  margin-top: 4px;
+}
+
+div.dt-container div.dt-search input {
+  margin-left: 0.5em;
 }
\ No newline at end of file
diff --git a/app/static/css/scodoc.css b/app/static/css/scodoc.css
index 2e75972200f929be594868c99e0da513390c27da..7fede43eded04d23cc35da9e6d99adacb84f7fbd 100644
--- a/app/static/css/scodoc.css
+++ b/app/static/css/scodoc.css
@@ -4367,7 +4367,7 @@ div.table_recap {
 }
 
 .table_recap .but_on {
-  background-color: rgb(177, 238, 162);
+  background-color: rgb(177, 238, 162) !important;
   font-weight: bold;
 }
 
@@ -4381,17 +4381,17 @@ button.unselect {
 .table_recap div.but_on:hover:not(.disabled),
 .table_recap a.but_on:hover:not(.disabled),
 .table_recap input.but_on:hover:not(.disabled) {
-  background: linear-gradient(to bottom, lightgray 0%, rgb(51, 255, 0) 100%);
+  background: linear-gradient(to bottom, lightgray 0%, rgb(255, 0, 0) 100%) !important;
 }
 
 .table_recap button.but_off:hover:not(.disabled),
 .table_recap div.but_off:hover:not(.disabled),
 .table_recap a.but_off:hover:not(.disabled),
 .table_recap input.but_off:hover:not(.disabled) {
-  background: linear-gradient(to bottom, rgb(51, 255, 0) 0%, lightgray 100%);
+  background: linear-gradient(to bottom, rgb(51, 255, 0) 0%, lightgray 100%) !important;
 }
 
-/* Non supproté par les navigateurs (en Fev. 2023)
+/* Non supporté par les navigateurs (en Fev. 2023)
 .table_recap button:has(span a.clearreaload) {
 }
 */
diff --git a/app/static/js/table_recap.js b/app/static/js/table_recap.js
index 031d791f296771a3cc1bbd7407f96bc2c297ffdf..8b861b7579199f76e8c0f1dbf6ebce6d8471cce1 100644
--- a/app/static/js/table_recap.js
+++ b/app/static/js/table_recap.js
@@ -206,11 +206,22 @@ $(function () {
         fixedColumns: { // fige les 3 colonnes de gauche
            start: 3
         },
+        initComplete: function (settings, json) {
+          // fixe la largeur de la table (évite décalages colonnes)
+          document.getElementById("DataTables_Table_0").style.width =
+            document.querySelector(
+              "#DataTables_Table_0_wrapper .dt-scroll-head .dt-scroll-headInner"
+            ).style.width;
+          // déplace champ recherche à côté des boutons
+          let div_search = document.querySelector('div.dt-search');
+          let div_buttons = document.querySelector('div.dt-buttons');
+          div_buttons.appendChild(div_search);
+        },
         fixedHeader: { // fige les lignes de titre
           header: true,
           footer: false,
         },
-        orderCellsTop: true, // cellules ligne 1 pour tri
+        ordering: true, // bouton tri
         aaSorting: [], // Prevent initial sorting
         colReorder: true,
         stateSave: true, // enregistre état de la table (tris, ...)
diff --git a/app/tables/table_builder.py b/app/tables/table_builder.py
index d7e01358fa879b1ba807128d2155ae2a99db717d..cec24081eeabc966021ded06cd67ab434b07e6e0 100644
--- a/app/tables/table_builder.py
+++ b/app/tables/table_builder.py
@@ -565,6 +565,8 @@ class RowGroupsHeader(Row):
             ):
                 idx += 1
                 colspan += 1
-            elements.append(f"""<th colspan="{colspan}">{group_title or ""}</th>""")
+            elements.append(
+                f"""<th data-dt-order="disable" colspan="{colspan}">{group_title or ""}</th>"""
+            )
 
         return "\n".join(elements) if len(elements) > 1 else ""
diff --git a/sco_version.py b/sco_version.py
index c05bb3986e75840bebe56997f75d81bfb11a4086..1d70b4ec2d570ad3767d16f45f6d7c86fbe0385c 100644
--- a/sco_version.py
+++ b/sco_version.py
@@ -1,7 +1,7 @@
 # -*- mode: python -*-
 # -*- coding: utf-8 -*-
 
-SCOVERSION = "9.7.R000"
+SCOVERSION = "9.7.R001"
 
 SCONAME = "ScoDoc"
 
diff --git a/scodoc.py b/scodoc.py
index 955113991f3a685433e7c8928afe3ed8242d97c0..e2bdc2812bc8105458ddd674feeca1c35263f214 100755
--- a/scodoc.py
+++ b/scodoc.py
@@ -386,6 +386,7 @@ def user_role(username, dept_acronym=None, add_role_name=None, remove_role_name=
         if user_role:
             db.session.delete(user_role)
     db.session.commit()
+    return 0
 
 
 @app.cli.command()