diff --git a/nbproject/project.properties b/nbproject/project.properties
index 20b5033ff6eb1d4fa6e1fd821012ea6b3171184b..71d9fbf01c81df93f567d81c71aaaba7dc0f0302 100644
--- a/nbproject/project.properties
+++ b/nbproject/project.properties
@@ -1,139 +1,139 @@
-annotation.processing.enabled=true
-annotation.processing.enabled.in.editor=false
-annotation.processing.processors.list=
-annotation.processing.run.all.processors=true
-annotation.processing.source.output=${build.generated.sources.dir}/ap-source-output
-application.title=SIR
-application.vendor=valen
-auxiliary.org-netbeans-spi-editor-hints-projects.perProjectHintSettingsFile=nbproject/cfg_hints.xml
-build.classes.dir=${build.dir}/classes
-build.classes.excludes=**/*.java,**/*.form
-# This directory is removed when the project is cleaned:
-build.dir=build
-build.generated.dir=${build.dir}/generated
-build.generated.sources.dir=${build.dir}/generated-sources
-# Only compile against the classpath explicitly listed here:
-build.sysclasspath=ignore
-build.test.classes.dir=${build.dir}/test/classes
-build.test.results.dir=${build.dir}/test/results
-# Uncomment to specify the preferred debugger connection transport:
-#debug.transport=dt_socket
-debug.classpath=\
-    ${run.classpath}
-debug.modulepath=\
-    ${run.modulepath}
-debug.test.classpath=\
-    ${run.test.classpath}
-debug.test.modulepath=\
-    ${run.test.modulepath}
-# Files in build.classes.dir which should be excluded from distribution jar
-dist.archive.excludes=
-# This directory is removed when the project is cleaned:
-dist.dir=dist
-dist.jar=${dist.dir}/SIR.jar
-dist.javadoc.dir=${dist.dir}/javadoc
-dist.jlink.dir=${dist.dir}/jlink
-dist.jlink.output=${dist.jlink.dir}/SIR
-endorsed.classpath=
-excludes=
-file.reference.javafx-swt.jar=javafx-sdk-21.0.6/lib/javafx-swt.jar
-file.reference.javafx.base.jar=javafx-sdk-21.0.6/lib/javafx.base.jar
-file.reference.javafx.controls.jar=javafx-sdk-21.0.6/lib/javafx.controls.jar
-file.reference.javafx.fxml.jar=javafx-sdk-21.0.6/lib/javafx.fxml.jar
-file.reference.javafx.graphics.jar=javafx-sdk-21.0.6/lib/javafx.graphics.jar
-file.reference.javafx.media.jar=javafx-sdk-21.0.6/lib/javafx.media.jar
-file.reference.javafx.swing.jar=javafx-sdk-21.0.6/lib/javafx.swing.jar
-file.reference.javafx.web.jar=javafx-sdk-21.0.6/lib/javafx.web.jar
-file.reference.ojdbc17.jar=libs/ojdbc17.jar
-includes=**
-jar.archive.disabled=${jnlp.enabled}
-jar.compress=false
-jar.index=${jnlp.enabled}
-javac.classpath=\
-    ${file.reference.ojdbc17.jar}
-# Space-separated list of extra javac options
-javac.compilerargs=\ --enable-preview
-javac.deprecation=false
-javac.external.vm=true
-javac.modulepath=\
-    ${file.reference.javafx-swt.jar}:\
-    ${file.reference.javafx.base.jar}:\
-    ${file.reference.javafx.controls.jar}:\
-    ${file.reference.javafx.fxml.jar}:\
-    ${file.reference.javafx.graphics.jar}:\
-    ${file.reference.javafx.media.jar}:\
-    ${file.reference.javafx.swing.jar}:\
-    ${file.reference.javafx.web.jar}
-javac.processormodulepath=
-javac.processorpath=\
-    ${javac.classpath}
-
-javac.source=23
-javac.target=23
-
-javac.test.classpath=\
-    ${javac.classpath}
-javac.test.modulepath=\
-    ${javac.modulepath}:\
-    ${build.classes.dir}
-javac.test.processorpath=\
-    ${javac.test.classpath}
-javadoc.additionalparam=
-javadoc.author=false
-javadoc.encoding=${source.encoding}
-javadoc.html5=false
-javadoc.noindex=false
-javadoc.nonavbar=false
-javadoc.notree=false
-javadoc.private=false
-javadoc.splitindex=true
-javadoc.use=true
-javadoc.version=false
-javadoc.windowtitle=
-# The jlink additional root modules to resolve
-jlink.additionalmodules=
-# The jlink additional command line parameters
-jlink.additionalparam=
-jlink.launcher=true
-jlink.launcher.name=SIR
-jnlp.codebase.type=no.codebase
-jnlp.descriptor=application
-jnlp.enabled=false
-jnlp.mixed.code=default
-jnlp.offline-allowed=false
-jnlp.signed=false
-jnlp.signing=
-jnlp.signing.alias=
-jnlp.signing.keystore=
-main.class=ui.loader.ConnexionPage
-# Optional override of default Application-Library-Allowable-Codebase attribute identifying the locations where your signed RIA is expected to be found.
-manifest.custom.application.library.allowable.codebase=
-# Optional override of default Caller-Allowable-Codebase attribute identifying the domains from which JavaScript code can make calls to your RIA without security prompts.
-manifest.custom.caller.allowable.codebase=
-# Optional override of default Codebase manifest attribute, use to prevent RIAs from being repurposed
-manifest.custom.codebase=
-# Optional override of default Permissions manifest attribute (supported values: sandbox, all-permissions)
-manifest.custom.permissions=
-manifest.file=manifest.mf
-meta.inf.dir=${src.dir}/META-INF
-mkdist.disabled=false
-platform.active=default_platform
-run.classpath=\
-    ${javac.classpath}:\
-    ${build.classes.dir}
-# Space-separated list of JVM arguments used when running the project.
-# You may also define separate properties like run-sys-prop.name=value instead of -Dname=value.
-# To set system properties for unit tests define test-sys-prop.name=value:
-run.jvmargs=\ --enable-preview
-run.modulepath=\
-    ${javac.modulepath}
-run.test.classpath=\
-    ${javac.test.classpath}
-run.test.modulepath=\
-    ${javac.test.modulepath}
-source.encoding=UTF-8
-src.dir=src
-test.src.dir=test
-javac.classpath=\
-    ${file.reference.ojdbc17.jar}
-
+annotation.processing.enabled=true
+annotation.processing.enabled.in.editor=false
+annotation.processing.processors.list=
+annotation.processing.run.all.processors=true
+annotation.processing.source.output=${build.generated.sources.dir}/ap-source-output
+application.title=SIR
+application.vendor=valen
+auxiliary.org-netbeans-spi-editor-hints-projects.perProjectHintSettingsFile=nbproject/cfg_hints.xml
+build.classes.dir=${build.dir}/classes
+build.classes.excludes=**/*.java,**/*.form
+# This directory is removed when the project is cleaned:
+build.dir=build
+build.generated.dir=${build.dir}/generated
+build.generated.sources.dir=${build.dir}/generated-sources
+# Only compile against the classpath explicitly listed here:
+build.sysclasspath=ignore
+build.test.classes.dir=${build.dir}/test/classes
+build.test.results.dir=${build.dir}/test/results
+# Uncomment to specify the preferred debugger connection transport:
+#debug.transport=dt_socket
+debug.classpath=\
+    ${run.classpath}
+debug.modulepath=\
+    ${run.modulepath}
+debug.test.classpath=\
+    ${run.test.classpath}
+debug.test.modulepath=\
+    ${run.test.modulepath}
+# Files in build.classes.dir which should be excluded from distribution jar
+dist.archive.excludes=
+# This directory is removed when the project is cleaned:
+dist.dir=dist
+dist.jar=${dist.dir}/SIR.jar
+dist.javadoc.dir=${dist.dir}/javadoc
+dist.jlink.dir=${dist.dir}/jlink
+dist.jlink.output=${dist.jlink.dir}/SIR
+endorsed.classpath=
+excludes=
+file.reference.javafx-swt.jar=javafx-sdk-21.0.6/lib/javafx-swt.jar
+file.reference.javafx.base.jar=javafx-sdk-21.0.6/lib/javafx.base.jar
+file.reference.javafx.controls.jar=javafx-sdk-21.0.6/lib/javafx.controls.jar
+file.reference.javafx.fxml.jar=javafx-sdk-21.0.6/lib/javafx.fxml.jar
+file.reference.javafx.graphics.jar=javafx-sdk-21.0.6/lib/javafx.graphics.jar
+file.reference.javafx.media.jar=javafx-sdk-21.0.6/lib/javafx.media.jar
+file.reference.javafx.swing.jar=javafx-sdk-21.0.6/lib/javafx.swing.jar
+file.reference.javafx.web.jar=javafx-sdk-21.0.6/lib/javafx.web.jar
+file.reference.ojdbc17.jar=libs/ojdbc17.jar
+includes=**
+jar.archive.disabled=${jnlp.enabled}
+jar.compress=false
+jar.index=${jnlp.enabled}
+javac.classpath=\
+    ${file.reference.ojdbc17.jar}
+# Space-separated list of extra javac options
+javac.compilerargs=\ --enable-preview
+javac.deprecation=false
+javac.external.vm=true
+javac.modulepath=\
+    ${file.reference.javafx-swt.jar}:\
+    ${file.reference.javafx.base.jar}:\
+    ${file.reference.javafx.controls.jar}:\
+    ${file.reference.javafx.fxml.jar}:\
+    ${file.reference.javafx.graphics.jar}:\
+    ${file.reference.javafx.media.jar}:\
+    ${file.reference.javafx.swing.jar}:\
+    ${file.reference.javafx.web.jar}
+javac.processormodulepath=
+javac.processorpath=\
+    ${javac.classpath}
+
+javac.source=22
+javac.target=22
+
+javac.test.classpath=\
+    ${javac.classpath}
+javac.test.modulepath=\
+    ${javac.modulepath}:\
+    ${build.classes.dir}
+javac.test.processorpath=\
+    ${javac.test.classpath}
+javadoc.additionalparam=
+javadoc.author=false
+javadoc.encoding=${source.encoding}
+javadoc.html5=false
+javadoc.noindex=false
+javadoc.nonavbar=false
+javadoc.notree=false
+javadoc.private=false
+javadoc.splitindex=true
+javadoc.use=true
+javadoc.version=false
+javadoc.windowtitle=
+# The jlink additional root modules to resolve
+jlink.additionalmodules=
+# The jlink additional command line parameters
+jlink.additionalparam=
+jlink.launcher=true
+jlink.launcher.name=SIR
+jnlp.codebase.type=no.codebase
+jnlp.descriptor=application
+jnlp.enabled=false
+jnlp.mixed.code=default
+jnlp.offline-allowed=false
+jnlp.signed=false
+jnlp.signing=
+jnlp.signing.alias=
+jnlp.signing.keystore=
+main.class=ui.loader.ConnexionPage
+# Optional override of default Application-Library-Allowable-Codebase attribute identifying the locations where your signed RIA is expected to be found.
+manifest.custom.application.library.allowable.codebase=
+# Optional override of default Caller-Allowable-Codebase attribute identifying the domains from which JavaScript code can make calls to your RIA without security prompts.
+manifest.custom.caller.allowable.codebase=
+# Optional override of default Codebase manifest attribute, use to prevent RIAs from being repurposed
+manifest.custom.codebase=
+# Optional override of default Permissions manifest attribute (supported values: sandbox, all-permissions)
+manifest.custom.permissions=
+manifest.file=manifest.mf
+meta.inf.dir=${src.dir}/META-INF
+mkdist.disabled=false
+platform.active=default_platform
+run.classpath=\
+    ${javac.classpath}:\
+    ${build.classes.dir}
+# Space-separated list of JVM arguments used when running the project.
+# You may also define separate properties like run-sys-prop.name=value instead of -Dname=value.
+# To set system properties for unit tests define test-sys-prop.name=value:
+run.jvmargs=\ --enable-preview
+run.modulepath=\
+    ${javac.modulepath}
+run.test.classpath=\
+    ${javac.test.classpath}
+run.test.modulepath=\
+    ${javac.test.modulepath}
+source.encoding=UTF-8
+src.dir=src
+test.src.dir=test
+javac.classpath=\
+    ${file.reference.ojdbc17.jar}
+
diff --git a/src/ui/ManipController.java b/src/ui/ManipController.java
deleted file mode 100644
index 94a0ef1e8183610566f4d9deb6a4de08ebc31301..0000000000000000000000000000000000000000
--- a/src/ui/ManipController.java
+++ /dev/null
@@ -1,319 +0,0 @@
-/*
- * Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license
- * Click nbfs://nbhost/SystemFileSystem/Templates/javafx/FXMLController.java to edit this template
- */
-package ui;
-
-import fc.Dmr;
-import fc.DmrPatient;
-import fc.Examen;
-import fc.Genre;
-import static fc.MessageDErreur.validerDate;
-import static fc.MessageDErreur.validerNom;
-import static fc.MessageDErreur.validerNumeroSecu;
-import static fc.MessageDErreur.validerPrenom;
-import fc.Pacs;
-import fc.Patient;
-import java.io.FileInputStream;
-import java.io.IOException;
-import java.net.URL;
-import java.sql.Date;
-import java.time.LocalDate;
-import java.time.LocalTime;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.ResourceBundle;
-import javafx.collections.FXCollections;
-import javafx.collections.ObservableList;
-import javafx.event.ActionEvent;
-import javafx.fxml.FXML;
-import javafx.fxml.FXMLLoader;
-import javafx.fxml.Initializable;
-import javafx.scene.Node;
-import javafx.scene.Parent;
-import javafx.scene.Scene;
-import javafx.scene.control.CheckBox;
-import javafx.scene.control.ComboBox;
-import javafx.scene.control.DatePicker;
-import javafx.scene.control.Label;
-import javafx.scene.control.ListView;
-import javafx.scene.control.TableColumn;
-import javafx.scene.control.TableView;
-import javafx.scene.control.TextField;
-import javafx.scene.control.cell.PropertyValueFactory;
-import javafx.scene.image.Image;
-import javafx.scene.image.ImageView;
-import javafx.stage.Stage;
-import javafx.util.Pair;
-
-/**
- * FXML Controller class
- *
- * @author valen
- */
-public class ManipController implements Initializable {
-
-    /**
-     * Initializes the controller class.
-     */
-    @FXML
-    private ListView liste_image = new ListView();
-
-    @FXML
-    private ListView liste_dmr = new ListView();
-
-    @FXML
-    private CheckBox pasDImage;
-
-    @FXML
-    private ImageView image = new ImageView();
-
-    @FXML
-    private TextField fieldDMR = new TextField();
-
-    @FXML
-    private TableView<DmrPatient> tableViewDmrPatient;
-    @FXML
-    private TableView<Patient> tableViewPatient;
-
-    @FXML
-    private TableColumn<Patient, String> columnIpp;
-    @FXML
-    private TableColumn<Patient, String> columnNom;
-    @FXML
-    private TableColumn<Patient, String> columnPrenom;
-    @FXML
-    private TableColumn<DmrPatient, String> columnMotif;
-    @FXML
-    private TableColumn<DmrPatient, String> columnDateOuverture;
-
-    @FXML
-    private TableColumn<DmrPatient, String> columnNomDmr;
-    @FXML
-    private TableColumn<DmrPatient, String> columnPrenomDmr;
-
-    @FXML
-    private TextField fieldRecherhe = new TextField();
-
-    @FXML
-    private Label messageLabel;
-
-    @FXML
-    private DatePicker fieldDateNaissance = new DatePicker();
-
-    @FXML
-    private DatePicker fieldExamen = new DatePicker();
-
-    @FXML
-    private ComboBox<Integer> comboBoxH;
-
-    @FXML
-    private ComboBox<Integer> comboBoxMin;
-
-    @FXML
-    private ComboBox<String> comboImagerie;
-
-    @FXML
-    private ComboBox<String> comboAnat;
-
-    @Override
-    public void initialize(URL url, ResourceBundle rb) {
-        // TODO
-        columnIpp.setCellValueFactory(new PropertyValueFactory<>("IPP"));
-        columnNom.setCellValueFactory(new PropertyValueFactory<>("nom"));
-        columnPrenom.setCellValueFactory(new PropertyValueFactory<>("prenom"));
-
-        columnDateOuverture.setCellValueFactory(new PropertyValueFactory<>("dateOuverture"));
-        columnMotif.setCellValueFactory(new PropertyValueFactory<>("motif"));
-        columnNomDmr.setCellValueFactory(new PropertyValueFactory<>("nom"));
-        columnPrenomDmr.setCellValueFactory(new PropertyValueFactory<>("prenom"));
-
-        Pacs p = new Pacs();
-        liste_image.setItems(p.ListImage());
-
-        Dmr dmr = new Dmr();
-        List<Dmr> dmr_actif = dmr.dmrActiver();
-        List<DmrPatient> DmrPatient = new ArrayList<>();
-        for (Dmr d : dmr_actif) {
-            Patient pat = new Patient();
-            DmrPatient.add(new DmrPatient(d, pat.rechercherPatients(d.getIPP(), null, null, null, null, null).get(0)));
-        }
-        ObservableList<DmrPatient> patient_actif = FXCollections.observableArrayList(DmrPatient);
-        tableViewDmrPatient.setItems(patient_actif);
-        comboImagerie.getItems().add("Radio");
-        comboImagerie.getItems().add("IRM");
-        comboImagerie.getItems().add("Scanner");
-        comboAnat.getItems().add("abdomen");
-        comboAnat.getItems().add("sinus");
-        comboAnat.getItems().add("brain");
-
-        for (int i = 0; i <= 24; i++) {
-            comboBoxH.getItems().add(i);
-        }
-
-        for (int i = 0; i <= 60; i++) {
-            comboBoxMin.getItems().add(i);
-        }
-
-        LocalTime currentTime = LocalTime.now();
-
-        int heure = currentTime.getHour();  // Récupère l'heure
-        int minute = currentTime.getMinute();
-
-        // Optionnel : définir une valeur par défaut
-        comboBoxH.setValue(heure);
-        comboBoxMin.setValue(minute);
-
-        liste_image.getSelectionModel().selectedItemProperty().addListener((observable, oldValue, newValue) -> {
-            if (newValue != null) { // Vérifie qu'un élément est sélectionné
-
-                System.out.println("Image sélectionnée : " + newValue);
-                actionSurSelection(p.pathWithNom(newValue.toString()));
-
-            }
-        });
-        tableViewPatient.getSelectionModel().selectedItemProperty().addListener((observable, oldValue, newValue) -> {
-            if (newValue != null) { // Vérifie qu'un élément est sélectionné
-
-                actionSurSelectionPatient(newValue);
-
-            }
-        });
-
-    }
-
-    private void actionSurSelection(String path) {
-        try {
-            //Image image2 = new Image("file:" + "src/jpg/abdomen/cor494-i436.jpg");
-            Image image2 = new Image(new FileInputStream(path));// Assurez-vous que le chemin est correct
-            this.image.setImage(image2);
-            this.image.setPreserveRatio(true);
-            this.image.setFitWidth(250);
-            this.image.setFitHeight(250);
-
-            System.out.println("Image chargée : ");
-        } catch (Exception e) {
-            System.out.println("Erreur de chargement de l'image : " + e.getMessage());
-        }
-
-    }
-
-    private void actionSurSelectionPatient(Patient patient) {
-        List<Dmr> dmrs = patient.recupererDMR();
-        List<DmrPatient> DmrPatient = new ArrayList<>();
-        for (Dmr d : dmrs) {
-            Patient pat = new Patient();
-            DmrPatient.add(new DmrPatient(d, pat.rechercherPatients(d.getIPP(), null, null, null, null, null).get(0)));
-        }
-        ObservableList<DmrPatient> patient_actif = FXCollections.observableArrayList(DmrPatient);
-        tableViewDmrPatient.setItems(patient_actif);
-
-    }
-
-    @FXML
-
-    private void actionRechercher() {
-        String rechercheUnifiee = fieldRecherhe.getText().trim();
-        messageLabel.setText("");
-
-        // Validation simplifiée
-        if (rechercheUnifiee.isEmpty()) {
-            messageLabel.setText("Veuillez entrer un critère de recherche");
-            return;
-        }
-
-        // Utilisation de la nouvelle méthode de recherche
-        Patient patient = new Patient();
-        Pair<List<Patient>, String> result = patient.rechercherPatients2(rechercheUnifiee);
-
-        // Gestion des erreurs
-        if (!result.getValue().isEmpty()) {
-            messageLabel.setText(result.getValue());
-        }
-
-        // Affichage des résultats
-        ObservableList<Patient> items = FXCollections.observableArrayList(result.getKey());
-        tableViewPatient.setItems(items);
-    }
-
-    @FXML
-    private void actionDeconnexion(ActionEvent event) {
-        try {
-            // Charger la page de connexion
-
-            Parent root = FXMLLoader.load(getClass().getResource("ConnexionPage.fxml"));
-
-            // Obtenir la scène actuelle et la fenêtre
-            Stage stage = (Stage) ((Node) event.getSource()).getScene().getWindow();
-
-            Scene scene = new Scene(root);
-
-            // Changer la scène pour la page de connexion
-            stage.setScene(scene);
-            stage.setTitle("Page de Connexion");
-            stage.setFullScreen(true);
-            stage.show();
-        } catch (IOException e) {
-            e.printStackTrace();
-            // Afficher un message d'erreur à l'utilisateur si nécessaire
-        }
-    }
-
-    @FXML
-    private void actionValider() {
-        // Vérification des sélections obligatoires
-        if (tableViewDmrPatient.getSelectionModel().getSelectedItems().isEmpty()) {
-            System.out.println("Aucun DMR sélectionné");
-            return;
-        }
-
-        DmrPatient dmrselect = tableViewDmrPatient.getSelectionModel().getSelectedItems().get(0);
-        LocalDate selectedDate = fieldExamen.getValue();
-        Integer selectedItemH = comboBoxH.getValue();
-        Integer selectedItemM = comboBoxMin.getValue();
-        String imagerie = comboImagerie.getValue();
-        String anatomie = comboAnat.getValue();
-
-        // Validation des champs obligatoires
-        if (dmrselect == null || selectedDate == null || selectedItemH == null
-                || selectedItemM == null || imagerie == null || anatomie == null) {
-            System.out.println("Tous les champs obligatoires ne sont pas remplis");
-            return;
-        }
-
-        // Formatage de la date
-        String date = selectedDate.toString() + " " + selectedItemH + ":" + selectedItemM;
-        System.out.println("date : " + date);
-
-        // Gestion de l'image
-        String chemin = null;
-        boolean sansImage = pasDImage.isSelected();
-
-        if (!sansImage) {
-            if (liste_image.getSelectionModel().getSelectedItems().isEmpty()) {
-                System.out.println("Aucune image sélectionnée et la case 'Pas d'image' n'est pas cochée");
-                return;
-            }
-            String imageselect = (String) liste_image.getSelectionModel().getSelectedItems().get(0);
-            Pacs p = new Pacs();
-            chemin = p.pathWithNom(imageselect);
-            System.out.println("Image sélectionnée: " + chemin);
-        }
-
-        // Création de l'examen
-        Examen ex = new Examen();
-        String acte = imagerie + " " + anatomie;
-        System.out.println("Création d'examen - Motif: " + dmrselect.getMotif() + ", Acte: " + acte);
-
-        boolean succes = ex.creerExamen(dmrselect.getId_dmr(), date, chemin, acte);
-
-        if (succes) {
-            System.out.println("Examen créé avec succès");
-            // Rafraîchir l'interface
-            this.initialize(null, null);
-        } else {
-            System.out.println("Échec de la création de l'examen");
-        }
-    }
-
-}
diff --git a/src/ui/fxml/connexionPage.fxml b/src/ui/fxml/connexionPage.fxml
index f9fd550c7d0862d5616b95c419dc2e564ead1e98..b9a05323f85fcae9ddee6526956d33c9860718cc 100644
--- a/src/ui/fxml/connexionPage.fxml
+++ b/src/ui/fxml/connexionPage.fxml
@@ -5,22 +5,61 @@
 <?import javafx.scene.control.PasswordField?>
 <?import javafx.scene.control.TextField?>
 <?import javafx.scene.image.ImageView?>
+<?import javafx.scene.layout.BorderPane?>
+<?import javafx.scene.layout.HBox?>
 <?import javafx.scene.layout.VBox?>
 <?import javafx.scene.text.Font?>
 
-<VBox fx:id="vbox" alignment="CENTER" centerShape="false" onKeyPressed="#handleButtonValider" prefHeight="300" prefWidth="400" spacing="10" xmlns="http://javafx.com/javafx/23.0.1" xmlns:fx="http://javafx.com/fxml/1" fx:controller="ui.Controller.ConnexionPageController">
-   <ImageView fx:id="image" disable="true" fitHeight="55.0" fitWidth="393.0" nodeOrientation="INHERIT" pickOnBounds="true" smooth="false">
-     
-   </ImageView>
-   <Label maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" text="Bienvenue au service de radiologie">
-      <font>
-         <Font name="Calibri Bold Italic" size="20.0" />
-      </font>
-   </Label>
-    <Label text="Identifiant :" />
-    <TextField fx:id="textFieldIdentifiant" maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" promptText="Entrez votre identifiant" />
-    <Label text="Mot de passe :" />
-    <PasswordField fx:id="passwordField" maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" promptText="Entrez votre mot de passe" />
-    <Button fx:id="buttonValider" onAction="#handleButtonValider" text="Valider" translateY="-3.0" />
-   <Label fx:id="errorLabel" />
-</VBox>
+<BorderPane style="-fx-background-color: #f5f9ff;" xmlns="http://javafx.com/javafx/23.0.1" xmlns:fx="http://javafx.com/fxml/1" fx:controller="ui.Controller.ConnexionPageController">
+    
+    <!-- Contenu principal au centre -->
+    <center>
+        <HBox alignment="CENTER" spacing="50" style="-fx-padding: 50;">
+            <!-- Colonne de gauche - Logo -->
+            <VBox alignment="CENTER" prefWidth="350" spacing="20">
+                <ImageView fx:id="image" fitHeight="150" fitWidth="300" preserveRatio="true" smooth="true" />
+                <VBox alignment="CENTER_LEFT" spacing="10">
+                    <Label style="-fx-text-fill: #2c3e50;" text="DMR - Dossier Médical">
+                        <font><Font name="System Bold" size="28.0" /></font>
+                    </Label>
+                    <Label style="-fx-text-fill: #3498db;" text="Service de Radiologie">
+                        <font><Font name="System Bold" size="24.0" /></font>
+                    </Label>
+                    <Label style="-fx-text-fill: #7f8c8d; -fx-padding: 20 0 0 0;" text="Accès sécurisé aux dossiers patients">
+                        <font><Font name="System" size="14.0" /></font>
+                    </Label>
+                </VBox>
+            </VBox>
+
+            <!-- Colonne de droite - Formulaire -->
+            <VBox alignment="CENTER" spacing="20" style="-fx-background-color: white; -fx-background-radius: 10; -fx-padding: 40; -fx-effect: dropshadow(gaussian, rgba(0,0,0,0.1), 10, 0, 0, 5); -fx-min-width: 350;">
+                <Label style="-fx-text-fill: #2c3e50;" text="Connexion">
+                    <font><Font name="System Bold" size="20.0" /></font>
+                </Label>
+
+                <VBox alignment="CENTER_LEFT" spacing="15" style="-fx-padding: 20 0 0 0;">
+                    <VBox alignment="CENTER_LEFT" spacing="5">
+                        <Label style="-fx-text-fill: #2c3e50; -fx-font-weight: bold;" text="Identifiant" />
+                        <TextField fx:id="textFieldIdentifiant" promptText="Entrez votre identifiant" style="-fx-pref-width: 280; -fx-pref-height: 40; -fx-background-radius: 5; -fx-border-radius: 5; -fx-border-color: #bdc3c7; -fx-border-width: 1;" />
+                    </VBox>
+
+                    <VBox alignment="CENTER_LEFT" spacing="5">
+                        <Label style="-fx-text-fill: #2c3e50; -fx-font-weight: bold;" text="Mot de passe" />
+                        <PasswordField fx:id="passwordField" promptText="Entrez votre mot de passe" style="-fx-pref-width: 280; -fx-pref-height: 40; -fx-background-radius: 5; -fx-border-radius: 5; -fx-border-color: #bdc3c7; -fx-border-width: 1;" />
+                    </VBox>
+
+                    <Label fx:id="errorLabel" style="-fx-text-fill: #e74c3c; -fx-wrap-text: true; -fx-max-width: 280;" />
+
+                    <Button fx:id="buttonValider" onAction="#handleButtonValider" style="-fx-background-color: #3498db; -fx-text-fill: white; -fx-font-weight: bold; -fx-pref-width: 280; -fx-pref-height: 45; -fx-background-radius: 5;" text="Se connecter" />
+                </VBox>
+            </VBox>
+        </HBox>
+    </center>
+
+    <!-- Pied de page en bas -->
+    <bottom>
+        <HBox alignment="CENTER" style="-fx-padding: 20; -fx-background-color: #f5f9ff;">
+            <Label style="-fx-text-fill: #7f8c8d; -fx-font-size: 11;" text="© 2025 Service de Radiologie - Tous droits réservés" />
+        </HBox>
+    </bottom>
+</BorderPane>