/* ===================================================================
* STYLE GLOBAL & GRAPHIQUE SIGMA
* =================================================================== */
#sigma-container {
width: 100%;
height: 600px; /* Un peu plus de hauteur pour un meilleur confort */
border: 1px solid var(--bs-border-color); /* Variable Bootstrap */
margin-top: 1rem;
border-radius: var(--bs-border-radius); /* Variable Bootstrap */
background-color: var(--bs-light-bg-subtle); /* Fond légèrement teinté */
}
/* ===================================================================
* STYLE DES CARTES "HIGHLIGHTS"
* =================================================================== */
/* Applique une hauteur de 100% aux cartes dans les colonnes pour un alignement parfait */
.genealogy-column .card {
height: 100%;
}
/* Style spécifique pour la carte centrale du modèle recherché */
.card-searched {
border: 2px solid var(--bs-primary); /* Bordure primaire de Bootstrap */
box-shadow: 0 4px 12px rgba(0,0,0,0.1); /* Ombre plus prononcée */
background-color: var(--bs-light); /* Fond clair Bootstrap */
}
/* ===================================================================
* STYLE DES TABLES (DATATABLES)
* =================================================================== */
/* Permet au texte de revenir à la ligne naturellement */
#descendance-table th, #descendance-table td,
#ascendance-table th, #ascendance-table td {
white-space: normal; /* <-- La correction clé ! */
word-wrap: break-word; /* Force le retour à la ligne des mots longs */
vertical-align: middle; /* Garde le centrage vertical */
}
/* On peut donner une largeur minimale aux colonnes pour garder une bonne structure */
#descendance-table th, #ascendance-table th {
min-width: 120px; /* Ajustez cette valeur selon vos besoins */
}
/* Cas spécifique pour les colonnes potentiellement longues comme le nom du modèle */
#descendance-table th:first-child, #ascendance-table th:first-child {
min-width: 200px;
}
/* Empêche le texte de se couper dans les cellules, force le défilement horizontal */
#descendance-table th, #descendance-table td,
#ascendance-table th, #ascendance-table td {
white-space: nowrap;
vertical-align: middle; /* Centrage vertical pour un look plus propre */
}
/* Personnalisation de l'input de recherche de DataTables pour qu'il ressemble à un champ Bootstrap */
div.dataTables_wrapper div.dataTables_filter input {
border: 1px solid var(--bs-border-color);
border-radius: var(--bs-border-radius);
padding: 0.375rem 0.75rem;
margin-left: 0.5em;
}
/* Amélioration de la visibilité des flèches de tri de DataTables */
div.dataTables_wrapper .table thead th.sorting::before,
div.dataTables_wrapper .table thead th.sorting::after {
opacity: 0.4;
color: var(--bs-body-color);
}
div.dataTables_wrapper .table thead th.sorting_asc::after,
div.dataTables_wrapper .table thead th.sorting_desc::before {
opacity: 1;
color: var(--bs-primary); /* Couleur primaire de Bootstrap */
}
div.dataTables_wrapper .table thead th.sorting_asc::before,
div.dataTables_wrapper .table thead th.sorting_desc::after {
opacity: 0.2;
}
/* ===================================================================
* STYLE DES COMPOSANTS D'INTERFACE
* =================================================================== */
/* NOTE: La plupart des classes de layout comme .search-controls-container, .depth-controls
* ont été supprimées car la mise en page est maintenant gérée par la grille et
* les utilitaires Flexbox de Bootstrap directement dans le HTML (row, col, d-flex, gap-3).
*/
/* Style pour la liste de suggestions de l'autocomplétion */
/* Le HTML utilise maintenant
, ce CSS est donc obsolète. */
/* Si vous n'utilisez pas list-group, ce style peut être adapté. */
#suggestions-list {
/* Ce style est pour si vous utilisez une simple.
Si vous avez bien une , vous pouvez supprimer ce bloc. */
box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15);
border-radius: var(--bs-border-radius);
background-color: var(--bs-light);
}
#suggestions-list li:hover {
background-color: #94bfeb; ;
}
/* Légendes du graphe */
.legend-item {
/* Cette classe est maintenant principalement utilisée pour le JS (clic) */
cursor: pointer;
transition: background-color 0.2s;
}
.legend-item:hover {
background-color: var(--bs-light-bg-subtle);
}
.legend-item.active {
font-weight: bold;
background-color: var(--bs-primary-bg-subtle);
}
/* Le style de la puce colorée reste le même */
.legend-color {
width: 15px;
height: 15px;
border-radius: 50%;
margin-right: 0.75rem;
flex-shrink: 0;
}
.legend-color.edge {
height: 4px;
width: 20px;
border-radius: 2px;
}
/* ===================================================================
* CONNECTEURS VISUELS POUR LA VUE GÉNÉALOGIQUE
* (Cette logique est indépendante du framework et n'a besoin que de la mise à jour des couleurs)
* =================================================================== */
.genealogy-row {
position: relative;
}
/* On utilise la classe de la colonne centrale pour attacher les connecteurs */
#center-column {
position: static; /* Important pour que les connecteurs ne soient pas piégés dedans */
}
/* Média query pour n'afficher les connecteurs que sur les grands écrans (lg et plus) */
@media (min-width: 992px) {
/* Connecteur vers l'ascendance (gauche) */
#center-column::before {
content: '';
position: absolute;
z-index: -1;
top: 100px; /* Ajustez cette hauteur pour aligner avec vos cartes */
left: 20%; /* Commence à 20% de la largeur */
right: 60%; /* S'arrête à 40% de la largeur */
height: 3px;
background-color: var(--bs-secondary-border-subtle); /* Couleur Bootstrap subtile */
border-radius: 3px;
}
/* Connecteur vers la descendance (droite) */
#center-column::after {
content: '';
position: absolute;
z-index: -1;
top: 100px; /* Même hauteur */
left: 60%;
right: 20%;
height: 3px;
background-color: var(--bs-secondary-border-subtle);
border-radius: 3px;
}
}
/* Style de base pour la carte interactive */
.card-interactive {
/* Ajoute une transition douce pour tous les changements de style (couleur, ombre...) */
transition: background-color 0.2s ease-in-out, box-shadow 0.2s ease-in-out;
}
.form-check-input:checked {
background-color: #6a11cb; /* Bleu primaire par défaut */
border-color:#6a11cb; /* Bleu primaire par défaut */
}
/* Change la couleur de fond des cases à cocher lorsqu'elles sont cochées */
.btn {
background-color: #6a11cb;
border-color:#6a11cb;
}
.stretched-link{
color: #6a11cb;
}
/* Style appliqué LORSQUE LA SOURIS SURVOLE la carte */
.card-interactive:hover {
cursor: pointer; /* Le curseur change en main, indiquant un clic possible */
background-color: #94bfeb; /* Une couleur de fond légèrement grise (standard Bootstrap) */
/* Optionnel : ajoute une ombre subtile pour faire "ressortir" la carte */
box-shadow: 0 4px 8px rgba(0,0,0,0.1);
}
.card-recherche p:not(.text-muted) {
color: #212529 !important; /* Couleur noire standard de Bootstrap */
}
.card-recherche{
border-color:#6a11cb;
}
.card-recherche-header{
border-color:#6a11cb;
background-color: #6a11cb;
}
.on-top {
position: relative;
z-index: 2; /* Doit être supérieur à 1 (le z-index du stretched-link) */
}
.beta {
background-color: #6a11cb;
}
.alpha {
background-color: #b476f7;
color : #000000;
}
main {
margin-bottom: 5rem; /* ajuste la valeur selon tes besoins */
}
#floating-legend .legend-color { width: 1em; height: 1em; display: inline-block; border-radius: 2px; }
#floating-legend .legend-color.edge { border-radius: 0; height: 0.25em; transform: translateY(-0.35em); }
.btn-modern {
min-width: 200px;
padding: 14px 24px;
font-weight: bold;
color: white;
background: linear-gradient(135deg, #6a11cb, #f8a5f8);
border: none;
border-radius: 50px;
cursor: pointer;
transition: all 0.3s ease;
box-shadow: 0 3px 8px rgba(0,0,0,0.15);
text-align: center;
text-decoration: none;
}
.btn-modern:hover {
background: linear-gradient(135deg, #5a0fbf, #1d63e1);
transform: translateY(-3px);
}