/* Général */ 
* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

:root {
    --gris: #D2D2D2;
    --blanc: #FFFFFF;
    --noir: #000000;       
}

body {
    background-color: var(--noir);
    color: var(--blanc);
    font-family: 'Arial', sans-serif;
    padding: 0;
    margin: 0;
    overflow-x: hidden; /* <--- AJOUTEZ CETTE LIGNE ICI */
}

h1 {
    font-family: 'Sedan', sans-serif;
    color: var(--gris);
    text-align: center;
    padding-top: 20px;
    margin-bottom: 40px; /* Ajout d'une marge sous le titre principal */
}

/* Conteneur date + ligne */
.ligne {
    display: flex;
    align-items: center;
    margin: 40px 0;
    gap: 10px;        /* espace entre date et hr */
    width: 100%;      /* prend toute la largeur */
    font-size: 0.9rem;
    color: var(--blanc);
}

/* Ancrage à gauche ou à droite */
.ligne_left  { justify-content: flex-start; }
.ligne_right { justify-content: flex-end;   }

/* On fixe l’<hr> à 50% de la largeur du conteneur */
.hr_left,
.hr_right {
    flex: 0 0 45%;    /* largeur fixe = 50% */
    height: 2px;
    border: none;
    background-color: var(--blanc);
    margin: 0;
}

/* pour éviter le retour à la ligne de la date */
.date {
    white-space: nowrap;
}

/* Section Portfolio principale */
.portfolio {
    padding: 40px 20px;
    max-width: 1200px; /* Limite la largeur du contenu pour une meilleure lisibilité */
    margin: 0 auto; /* Centre la section */
}

/* En-tête du projet (Titre, Description courte) */
.projet-header {
    text-align: center;
    margin-bottom: 60px;
    padding: 0 20px;
}

.projet-header h2 {
    font-family: 'Sedan', sans-serif;
    color: var(--blanc);
    font-size: 2.2rem;
    margin-bottom: 10px;
}

.projet-header .project-description-short {
    font-size: 1.1rem;
    color: var(--gris);
    line-height: 1.6;
    max-width: 800px; /* Limite la largeur de la description courte */
    margin: 20px auto 0; /* Centre la description */
}


/* Section d'un contenu de projet (Démarche, Matériel/Logiciels) */
.projet-section {
    margin: 80px 0; /* Marge entre les différentes sections du projet */
    padding: 0 20px;
}

.projet-section h2 {
    font-family: 'Sedan', sans-serif;
    color: var(--blanc);
    text-align: center;
    margin-bottom: 30px;
    font-size: 1.8rem;
    text-transform: uppercase;
}


/* Contenu aligné avec flex (pour texte et image à l'intérieur des sections) */
.content {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 80px; /* Réduit l'espace entre texte et image pour une meilleure lisibilité */
    flex-wrap: wrap;
    margin-top: 10px;
}

.content.right {
    flex-direction: row;
    padding: 20px;
}

.content.left {
    flex-direction: row-reverse;
    padding: 20px;
}

/* Texte */
.text {
    flex: 1; /* Permet au texte de prendre l'espace disponible */
    min-width: 300px; /* Largeur minimale pour le texte */
    max-width: 550px; /* Largeur maximale pour le texte */
    text-align: justify; /* Justifie le texte pour une meilleure lecture */
}

.text h2 { /* Ceci est pour les h2 DANS .text si jamais, mais les h2 de section sont gérés plus haut */
    text-transform: uppercase;
    font-size: 1.3rem;
    margin-bottom: 15px;
    color: var(--blanc);
    text-align: center; /* Centré pour les titres de sections */
}

.text p {
    line-height: 1.8; /* Augmente l'interligne pour la lisibilité */
    font-size: 1rem;
    color: var(--gris);
}

/* Conteneur pour une seule image principale */
.image-container {
    flex: 1; /* L'image prend l'espace disponible */
    display: flex;
    justify-content: center; /* Centre l'image */
    align-items: center;
    min-width: 300px; /* Largeur minimale pour le conteneur d'image */
    max-width: 500px; /* Largeur maximale pour le conteneur d'image */
}

.image-container img {
    width: 100%;
    height: auto; /* Maintient le ratio de l'image */
    max-height: 500px; /* Limite la hauteur de l'image */
    object-fit: contain; /* L'image s'adapte sans être coupée */
    background-color: #ccc;
    display: block;
    border-radius: 8px; /* Ajoute des bords arrondis */
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.5); /* Ajoute une ombre légère */
}

/* Styles pour les boutons d'action dans la liste des projets */

/* Bouton Modifier */
.btn-modifier {
    background-color: #007bff; /* Un bleu vif */
    color: var(--blanc); /* Texte blanc */
    border: none;
    padding: 8px 15px;
    border-radius: 5px;
    cursor: pointer;
    font-size: 0.9rem;
    transition: background-color 0.3s ease;
    margin-right: 5px; /* Petit espacement entre les boutons */
}

.btn-modifier:hover {
    background-color: #0056b3; /* Bleu plus foncé au survol */
}

/* Bouton Supprimer */
.btn-supprimer {
    background-color: #dc3545; /* Un rouge distinct pour la suppression */
    color: var(--blanc); /* Texte blanc */
    border: none;
    padding: 8px 15px;
    border-radius: 5px;
    cursor: pointer;
    font-size: 0.9rem;
    transition: background-color 0.3s ease;
}

.btn-supprimer:hover {
    background-color: #c82333; /* Rouge plus foncé au survol */
}

/* Styles pour les messages de statut (ajoutés précédemment) */
.message-status {
    padding: 10px 20px;
    margin-bottom: 20px;
    border-radius: 5px;
    font-weight: bold;
    text-align: center;
}

.message-status.success {
    background-color: #28a745; /* Vert pour succès */
    color: var(--blanc);
}

.message-status.error {
    background-color: #dc3545; /* Rouge pour erreur */
    color: var(--blanc);
}

.message-status.warning {
    background-color: #ffc107; /* Jaune pour avertissement */
    color: var(--noir); /* Texte noir pour le jaune */
}

/* Styles pour le formulaire de modification (si non déjà définis) */
.section-formulaire {
    background-color: #1a1a1a; /* Fond légèrement plus clair pour le formulaire de modification */
    padding: 30px;
    border-radius: 8px;
    max-width: 800px;
    margin: 40px auto;
    box-shadow: 0 0 15px rgba(0, 0, 0, 0.5);
}

.form-modification .form-group {
    margin-bottom: 20px;
}

.form-modification .form-label {
    display: block;
    margin-bottom: 8px;
    font-weight: bold;
    color: var(--gris);
}

.form-modification .form-input,
.form-modification .form-textarea,
.form-modification .form-file {
    width: 100%;
    padding: 10px;
    border: 1px solid #333;
    border-radius: 4px;
    background-color: #222;
    color: var(--blanc);
    font-size: 1rem;
}

.form-modification .form-textarea {
    resize: vertical;
}

.form-modification .form-input:focus,
.form-modification .form-textarea:focus,
.form-modification .form-file:focus {
    border-color: #007bff;
    outline: none;
    box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);
}

.form-modification .btn-submit {
    background-color: #28a745; /* Vert pour le bouton de soumission */
    color: var(--blanc);
    border: none;
    padding: 12px 25px;
    border-radius: 5px;
    cursor: pointer;
    font-size: 1.1rem;
    transition: background-color 0.3s ease;
    width: auto;
    display: block;
    margin-top: 20px;
}

.form-modification .btn-submit:hover {
    background-color: #218838; /* Vert plus foncé au survol */
}

.form-modification p.error-message {
    color: #dc3545;
    margin-top: 10px;
}

/* Styles pour le tableau des projets */
.table-projets {
    width: 100%;
    border-collapse: collapse;
    margin-top: 30px;
    background-color: #1a1a1a; /* Fond légèrement plus clair pour le tableau */
    border-radius: 8px;
    overflow: hidden; /* Pour que border-radius s'applique */
}

.table-head .table-header {
    background-color: #343a40; /* Fond gris foncé pour l'en-tête */
    color: var(--blanc);
    padding: 15px;
    text-align: left;
    font-weight: bold;
}

.table-body .table-cell {
    padding: 12px 15px;
    border-bottom: 1px solid #2a2a2a; /* Ligne de séparation plus claire */
    color: var(--gris);
    vertical-align: middle;
}

.table-body .table-row:nth-child(even) {
    background-color: #222222; /* Ligne alternée pour meilleure lisibilité */
}

.table-body .table-row:hover {
    background-color: #333333; /* Changement de couleur au survol */
}

.table-actions {
    white-space: nowrap; /* Empêche les boutons de passer à la ligne */
}

.no-projets {
    text-align: center;
    color: var(--gris);
    margin-top: 20px;
    font-style: italic;
}


/* Responsive - Mobile First */

/* Pour les petits écrans (moins de 992px) */
@media (max-width: 991px) {
    .content {
        flex-direction: column !important; /* Force les colonnes */
        text-align: center;
        gap: 40px; /* Réduit l'espace en mobile */
    }

    .image-container,
    .text {
        max-width: 95%; /* Prend plus de largeur sur petits écrans */
        width: 100%;
        margin: 0 auto; /* Centre les blocs texte et image */
    }

    .image-container img {
        max-width: 90%; /* Ajuste la taille de l'image sur mobile */
        height: auto;
    }

    .projet-header h2 {
        font-size: 1.8rem;
    }

    .projet-section h2 {
        font-size: 1.5rem;
    }

    .projet-header .project-description-short,
    .text p {
        font-size: 0.95rem;
    }
}

/* Pour les écrans très petits (moins de 576px) */
@media (max-width: 575px) {
    h1 {
        font-size: 2rem;
    }
    .ligne {
        flex-direction: column;
        align-items: flex-start;
        gap: 5px;
    }
    .hr_left, .hr_right {
        flex: 0 0 90%; /* La barre prend presque toute la largeur */
    }
    .ligne_right {
        align-items: flex-end;
    }
}

/* Pour les écrans moyens à larges (992px et +) */
@media (min-width: 992px) {
    .content {
        gap: 80px; /* Rétablit l'espace sur les grands écrans */
    }

    .text {
        text-align: justify; /* Justifie le texte sur les grands écrans */
    }
}