/* static/css/ma-genealogie.css */
/* ==== Police et typographie ==== */
.ma-geno,.person-section,.family-tree-section,.ma-geno *,.person-section *,.family-tree-section *{font-family:Arial,sans-serif!important}



.family-tree-section, .family-tree-section * {
  box-sizing: border-box;
}
.gallery-icon{margin-left:.5rem;cursor:pointer;font-size:1.2em;vertical-align:middle;width:1.3em;height:1.3em;margin-left:.2em}
.person-section p,.person-section .detail-list li,.person-section .parents-section li,.unions-section p,.unions-section ul li,.siblings-section ul li,.halfsiblings-section ul li{font-size:12px!important}
.person-section h2{text-align:center;font-size:1.5rem;margin-bottom:1rem}

/* ==== Bouton arbre et header de la personne ==== */
.person-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1rem}
.action-buttons{display:flex;gap:0.5rem}
.tree-btn{
  background:linear-gradient(135deg, #3b82f6 0%, #1d4ed8 100%);
  color:white;
  border:none;
  border-radius:10px;
  padding:.75rem 1.5rem;
  font-size:1.1rem;
  font-weight:500;
  cursor:pointer;
  transition:all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
  box-shadow:0 4px 12px rgba(59, 130, 246, 0.3);
}
.tree-btn:hover{
  background:linear-gradient(135deg, #2563eb 0%, #1e40af 100%);
  transform:translateY(-2px);
  box-shadow:0 8px 20px rgba(59, 130, 246, 0.4);
}

/* Styles de l'arbre déplacés dans ma-genealogie-tree.css */


/* Styles communs pour toutes les cartes - Design moderne */
.person-card, .spouse-card{
  border:none;
  border-radius:12px;
  padding:1rem;
  width:160px;
  height:100px;
  text-align:center;
  position:relative;
  transition:all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
  cursor:pointer;
  display:flex;
  flex-direction:column;
  justify-content:center;
  /* Forcer le même alignement */
  vertical-align:top;
  float:none;
  margin:0;
  box-sizing:border-box;
  /* Design moderne */
  background:linear-gradient(135deg, #ffffff 0%, #f8fafc 100%);
  box-shadow:0 4px 20px rgba(0, 0, 0, 0.08), 0 2px 8px rgba(0, 0, 0, 0.04);
  backdrop-filter:blur(10px);
  border:1px solid rgba(255, 255, 255, 0.18);
  /* overflow:hidden supprimé car il cache les connexions */
}

/* Effet glassmorphism pour les cartes de personnes */
.person-card{
  background:linear-gradient(135deg, rgba(255, 255, 255, 0.95) 0%, rgba(248, 250, 252, 0.9) 100%);
  border:1px solid rgba(59, 130, 246, 0.12);
}

/* Effet glassmorphism pour les cartes de conjoints */
.spouse-card{
  background:linear-gradient(135deg, rgba(236, 254, 255, 0.95) 0%, rgba(207, 250, 254, 0.9) 100%);
  border:1px solid rgba(6, 182, 212, 0.12);
}

/* Effet hover moderne */
.person-card:hover, .spouse-card:hover{
  transform:translateY(-8px) scale(1.02);
  box-shadow:0 20px 40px rgba(0, 0, 0, 0.12), 0 8px 16px rgba(0, 0, 0, 0.08);
  border-color:rgba(59, 130, 246, 0.3);
}

.spouse-card:hover{
  border-color:rgba(6, 182, 212, 0.3);
}

/* Carte sélectionnée avec effet moderne */
.person-card.selected{
  background:linear-gradient(135deg, rgba(255, 247, 237, 0.95) 0%, rgba(255, 237, 213, 0.9) 100%);
  border:2px solid #f59e0b;
  box-shadow:0 0 0 4px rgba(245, 158, 11, 0.1), 0 20px 40px rgba(245, 158, 11, 0.15);
  transform:scale(1.05);
}

/* Typographie moderne */
.person-card .first-name, .spouse-card .first-name{
  font-weight:500;
  font-size:0.85rem;
  margin-bottom:0.2rem;
  color:#1f2937;
  font-family:-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
  letter-spacing:0.01em;
}

.person-card .last-name, .spouse-card .last-name{
  font-weight:700;
  font-size:0.9rem;
  margin-bottom:0.3rem;
  color:#111827;
  text-transform:uppercase;
  font-family:-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
  letter-spacing:0.05em;
}

.person-card .dates, .spouse-card .dates{
  font-size:0.7rem;
  color:#6b7280;
  margin-bottom:0;
  font-weight:400;
  font-family:'Inter', -apple-system, BlinkMacSystemFont, sans-serif;
  letter-spacing:0.02em;
}

/* Effet de micro-interaction sur le prénom */
.person-card .first-name, .spouse-card .first-name{
  transition:color 0.2s ease;
}

.person-card:hover .first-name, .spouse-card:hover .first-name{
  color:#3b82f6;
}

.spouse-card:hover .first-name{
  color:#06b6d4;
}

/* Ajout d'une ligne décorative subtile */
.person-card .dates::after, .spouse-card .dates::after{
  content:'';
  position:absolute;
  bottom:12px;
  left:50%;
  transform:translateX(-50%);
  width:30px;
  height:2px;
  background:linear-gradient(90deg, transparent, #e5e7eb, transparent);
  transition:all 0.3s ease;
}

.person-card:hover .dates::after{
  background:linear-gradient(90deg, transparent, #3b82f6, transparent);
  width:50px;
}

.spouse-card:hover .dates::after{
  background:linear-gradient(90deg, transparent, #06b6d4, transparent);
  width:50px;
}

/* Connexions entre frères et sœurs - combinaison des propriétés */
.siblings-group{
  display:flex;
  align-items:center;
  gap:2rem;
  position:relative;
  padding-top:30px;
  /* Force l'alignement */
  align-content:center;
}

/* Alignement forcé pour tous les enfants directs */
.siblings-group > *{
  align-self:center !important;
  vertical-align:middle !important;
  display:flex !important;
  flex-direction:column !important;
  justify-content:center !important;
}

/* Styles de l'arbre déplacés dans ma-genealogie-tree.css */

/* Responsive design moderne */
@media (max-width: 768px) {
  .siblings-group{gap:1.5rem}
  .person-card, .spouse-card{
    width:140px;
    height:90px;
    padding:0.8rem;
    border-radius:10px;
  }
  .person-card .first-name, .spouse-card .first-name{font-size:0.75rem}
  .person-card .last-name, .spouse-card .last-name{font-size:0.8rem}
  .person-card .dates, .spouse-card .dates{font-size:0.65rem}
  /* Styles d'arbre mobile déplacés dans ma-genealogie-tree.css */
}
.parents-section h3,.unions-section h3,.siblings-section h3,.halfsiblings-section h3,.presences-section h3,.events-section h3,.general-notes-section h3{display:flex;align-items:center;margin:1.5rem 0 1rem;font-size:1.2rem}
.parents-section h3::after,.unions-section h3::after,.siblings-section h3::after,.halfsiblings-section h3::after,.presences-section h3::after,.events-section h3::after,.general-notes-section h3::after{content:"";flex:1;height:1px;background:var(--btn-border);margin-left:.75rem}
.halfsiblings-section h4{display:block;font-size:12px!important;margin:0}
/* ==== Structure générale ==== */
.hero{padding:4rem 2rem;text-align:center;background-color:var(--bg-main)}
.return-btn a{display:inline-block;padding:.75rem 1.5rem;background-color:var(--btn-bg);color:var(--btn-text);border:2px solid var(--btn-border);border-radius:.5rem;text-decoration:none;font-weight:600;transition:background .2s,transform .2s}
.return-btn a:hover{background-color:var(--btn-hover-bg);transform:translateY(-1px)}
.ma-geno{max-width:1200px;margin:2rem auto;position:relative}
.family-tree-section .ma-geno{max-width:none;margin:0;width:100%}
/* Résultats et pagination */
.results{list-style:none;padding:0;margin:0}
.results h2{margin-top:2rem;border-bottom:1px solid var(--btn-border);padding-bottom:.25rem;font-size:14px}
.results ul{list-style:none;padding-left:1rem;margin:0}
.results li{position:relative;font-size:12px;line-height:1.4;padding:.5rem 1rem .5rem 1.8rem;border-bottom:1px solid var(--btn-border)}
.results li::before{content:'•';position:absolute;left:.5rem;top:50%;transform:translateY(-50%);font-size:12px;color:var(--btn-border)}
.results li a{color:#a76107;text-decoration:none}
.results li a:hover{text-decoration:underline}
.pagination{display:flex;justify-content:center;gap:.5rem;margin:1.5rem 0}
.pagination button{padding:.5rem .75rem;border:1px solid var(--btn-border);background:var(--btn-bg);cursor:pointer;border-radius:.25rem;font-size:12px}
.pagination button.active{font-weight:bold;background:var(--btn-hover-bg)}
/* Pagination Geneanet */
.pagination-geneanet{display:flex;flex-direction:column;align-items:center;gap:1rem;text-align:center;margin:2rem 0;padding:1rem;border-top:1px solid #ccc}
.pagination-geneanet .nav-container{display:flex;align-items:center;justify-content:center;gap:1rem}
.pagination-geneanet .nav-arrow{display:inline-flex;align-items:center;justify-content:center;width:2rem;height:2rem;background:#f5f5f5;border:1px solid #ccc;border-radius:4px;text-decoration:none;font-size:1.2rem;color:#333;transition:all .2s ease}
.pagination-geneanet .nav-arrow:hover{background:#e9ecef;border-color:#adb5bd;transform:translateY(-1px)}
.pagination-geneanet .nav-arrow:active{background:#dee2e6;transform:translateY(0)}
.pagination-geneanet form{display:flex;align-items:center;justify-content:center;gap:.5rem;margin:0!important}
.pagination-geneanet input{width:60px;text-align:center;padding:5px;border:1px solid #ccc;border-radius:3px;margin:0}
.pagination-geneanet>div{display:flex;align-items:center;justify-content:center;gap:1rem}
.pagination-geneanet a{color:#14705a;text-decoration:none;padding:.5rem 1rem;border-radius:4px;transition:background-color .2s}
.pagination-geneanet a:hover{text-decoration:underline;font-weight:bold;background-color:#f0f0f0}
.pagination-geneanet p{font-size:.9em!important;color:#666!important;margin:0!important}
/* Thème sombre */
:root.theme-dark .alphabet a,:root.theme-dark .results li a{color:#FFB061!important}
/* Thème sombre - Liste des personnes */
:root.theme-dark .filters-container{background:var(--bg-secondary);border-color:var(--arrow-bg);color:var(--text-alt)}
:root.theme-dark .filters-container .search-wrapper input{background:var(--bg-main);color:var(--text-alt);border-color:var(--arrow-bg)}
:root.theme-dark .filters-container .search-wrapper input:focus{border-color:#FFB061;box-shadow:0 0 3px rgba(255,176,97,.4)}
:root.theme-dark .filters-container .gender-filters label{background:var(--bg-main);color:var(--text-alt);border-color:var(--arrow-bg)}
:root.theme-dark .filters-container .gender-filters label:hover{background:var(--btn-return-bg)}
:root.theme-dark .filters-container .gender-filters input[type="radio"]:checked+label{background:var(--btn-return-bg);border-color:var(--text-alt)}
:root.theme-dark .filters-container .alphabet a{background:var(--bg-main);color:var(--text-alt);border-color:var(--arrow-bg)}
:root.theme-dark .filters-container .alphabet a:hover{background:var(--btn-return-bg)}
:root.theme-dark .filters-container .alphabet a.active{background:#FFB061;border-color:#FFB061;color:#333}
:root.theme-dark .filters-container #geneo-stats .stats-list li{background:var(--bg-main);border-color:var(--arrow-bg);color:var(--text-alt)}
:root.theme-dark .filters-container #geneo-stats .stats-list li strong{color:var(--text-alt)}
:root.theme-dark .filters-container #geneo-stats .stats-list a{color:#FFB061}
:root.theme-dark .results{background:var(--bg-secondary)}
:root.theme-dark .results h2{color:var(--text-alt);border-color:var(--arrow-bg)}
:root.theme-dark .results li{border-color:var(--arrow-bg);color:var(--text-alt)}
:root.theme-dark .results li::before{color:var(--arrow-bg)}
:root.theme-dark .pagination button{background:var(--bg-main);color:var(--text-alt);border-color:var(--arrow-bg)}
:root.theme-dark .pagination button:hover{background:var(--btn-return-bg)}
:root.theme-dark .pagination button.active{background:#FFB061;color:#333}
:root.theme-dark .pagination-geneanet{border-color:var(--arrow-bg)}
:root.theme-dark .pagination-geneanet .nav-arrow{background:var(--bg-main);border-color:var(--arrow-bg);color:var(--text-alt)}
:root.theme-dark .pagination-geneanet .nav-arrow:hover{background:var(--btn-return-bg)}
:root.theme-dark .pagination-geneanet input{background:var(--bg-main);color:var(--text-alt);border-color:var(--arrow-bg)}
:root.theme-dark .pagination-geneanet a{color:#FFB061}
:root.theme-dark .pagination-geneanet a:hover{background:var(--btn-return-bg)}
:root.theme-dark .pagination-geneanet p{color:var(--text-alt-muted)!important}
:root.theme-dark .search-container{background:var(--bg-secondary);border-color:var(--arrow-bg);color:var(--text-alt)}
:root.theme-dark .search-container input[type="text"]{background:var(--bg-main);color:var(--text-alt);border-color:var(--arrow-bg)}
:root.theme-dark .search-container input[type="text"]:focus{border-color:#FFB061;box-shadow:0 0 3px rgba(255,176,97,.4)}
:root.theme-dark .search-container .filters-row label{color:var(--text-alt)!important}
:root.theme-dark .search-container .filters-row button{background:var(--bg-main)!important;color:var(--text-alt)!important;border-color:var(--arrow-bg)!important}
:root.theme-dark .search-container .filters-row button:hover{background:var(--btn-return-bg)!important}
:root.theme-dark .search-container .search-title{color:#FFB061}
:root.theme-dark .filters-container input[type="submit"],:root.theme-dark .filters-container button[type="submit"],:root.theme-dark .search-container input[type="submit"],:root.theme-dark .search-container button[type="submit"]{background:#FFB061;color:#333}
:root.theme-dark .filters-container input[type="submit"]:hover,:root.theme-dark .filters-container button[type="submit"]:hover,:root.theme-dark .search-container input[type="submit"]:hover,:root.theme-dark .search-container button[type="submit"]:hover{background:#e6a055}
/* Thème sombre - Fiche personne */
:root.theme-dark .person-section{background:var(--bg-secondary);color:var(--text-alt)}
:root.theme-dark .person-section h2{color:var(--text-alt)}
:root.theme-dark .person-section .detail-list li{color:var(--text-alt)}
:root.theme-dark .person-section .detail-list li::before{color:var(--arrow-bg)}
:root.theme-dark .parents-section h3,:root.theme-dark .unions-section h3,:root.theme-dark .siblings-section h3,:root.theme-dark .halfsiblings-section h3,:root.theme-dark .presences-section h3,:root.theme-dark .events-section h3,:root.theme-dark .general-notes-section h3{color:var(--text-alt)}
:root.theme-dark .parents-section h3::after,:root.theme-dark .unions-section h3::after,:root.theme-dark .siblings-section h3::after,:root.theme-dark .halfsiblings-section h3::after,:root.theme-dark .presences-section h3::after,:root.theme-dark .events-section h3::after,:root.theme-dark .general-notes-section h3::after{background:var(--arrow-bg)}
:root.theme-dark .parents-section ul li a,:root.theme-dark .unions-section a,:root.theme-dark .siblings-section a,:root.theme-dark .halfsiblings-section a,:root.theme-dark .presences-section a,:root.theme-dark .person-section a[href^="/racines/"],:root.theme-dark .ma-geno a[href^="/racines/"]{color:#FFB061}
:root.theme-dark .unions-section .union{color:var(--text-alt)}
:root.theme-dark .unions-section .union>p{color:var(--text-alt)}
:root.theme-dark .unions-section ul li{color:var(--text-alt)}
:root.theme-dark .unions-section ul li::before{color:var(--arrow-bg)}
:root.theme-dark .siblings-section ul li{color:var(--text-alt)}
:root.theme-dark .siblings-section ul li::before{color:var(--arrow-bg)}
:root.theme-dark .halfsiblings-section p{color:var(--text-alt)}
:root.theme-dark .halfsiblings-section ul li{color:var(--text-alt)}
:root.theme-dark .halfsiblings-section ul li::before{color:var(--arrow-bg)}
:root.theme-dark .presences-section ul li{color:var(--text-alt)}
:root.theme-dark .presences-section ul li::before{color:var(--arrow-bg)}
:root.theme-dark .events-section ul li{color:var(--text-alt)}
:root.theme-dark .events-section ul li .event-date{color:var(--text-alt)}
:root.theme-dark .events-section ul li .event-desc{color:var(--text-alt)}
:root.theme-dark .events-section .sub-item{color:var(--text-alt-muted)}
:root.theme-dark .events-section .sub-item a{color:#FFB061}
/* ==== Fiche personne ==== */
.person-section{margin:2rem auto;max-width:1200px}
.person-section .detail-thumb{float:left;width:100px;margin:0 1rem 1rem 0;border-radius:4px;object-fit:cover}
.person-section .detail-thumb+.detail-list{margin-left:calc(100px + 1rem)}
.person-section .detail-list{list-style:none;padding:0;margin:0}
.person-section .detail-list li{position:relative;padding-left:1.2em;margin-bottom:.6em;white-space:pre-wrap}
.person-section .detail-list li:empty{display:none}
.person-section .detail-list li::before{content:'•';position:absolute;left:0;top:0}
.parents-section,.unions-section,.siblings-section,.halfsiblings-section,.presences-section,.events-section{clear:left}
/* Liens */
.parents-section ul li a,.unions-section a,.siblings-section a,.halfsiblings-section a,.presences-section a,.person-section a[href^="/racines/"],.ma-geno a[href^="/racines/"],.person-section a[href^="/genealogie/racines/"],.ma-geno a[href^="/genealogie/racines/"]{color:#a76107;text-decoration:none;font-weight:500}
.parents-section ul li a:hover,.unions-section a:hover,.siblings-section a:hover,.halfsiblings-section a:hover,.presences-section a:hover,.person-section a[href^="/genealogie/racines/"]:hover,.ma-geno a[href^="/genealogie/racines/"]:hover{text-decoration:underline}
/* Unions et enfants */
.unions-section .union{position:relative;padding-left:1.2em;margin-bottom:1.5rem}
.unions-section .union::before{content:'•';position:absolute;left:0;top:0}
.unions-section .union>p{margin:0 0 .5rem;font-size:.95rem}
.unions-section ul{list-style:none;margin:0;padding-left:1.8rem}
.unions-section ul li{position:relative;margin-bottom:.4rem;padding-left:1.2rem}
.unions-section ul li::before{content:'•';position:absolute;left:0;top:0;font-size:1rem}
/* Fratrie */
.siblings-section ul{list-style:none;padding-left:1.8rem;margin:0}
.siblings-section ul li{position:relative;margin-bottom:.4rem;padding-left:1.6rem}
.siblings-section ul li::before{content:'•';position:absolute;left:0;top:0;font-size:1rem}
/* Demi-frères/demi-sœurs */
.halfsiblings-section p{margin:0;font-size:12px}
.halfsiblings-section ul{list-style:none;padding-left:1.8rem;margin:0 0 1rem}
.halfsiblings-section ul li{position:relative;margin-bottom:.4rem;padding-left:1.6rem}
.halfsiblings-section ul li::before{content:'•';position:absolute;left:0;top:0;font-size:1rem}
/* Présences */
.presences-section ul{list-style:none;padding-left:1.8rem;margin:0}
.presences-section ul li{position:relative;margin-bottom:.4rem;padding-left:1.6rem}
.presences-section ul li::before{content:'•';position:absolute;left:0;top:0;font-size:1rem}
/* Événements */
.events-section ul{list-style:none;margin:0;padding:0}
.events-section ul li{display:grid;grid-template-columns:10em 1fr;column-gap:.5em;align-items:start;margin-bottom:1rem}
.events-section ul li .event-date{text-align:right;font-weight:bold}
.events-section ul li .event-desc{white-space:normal}
.events-section .sub-item {
  grid-column: 2 / -1;
  /* 6ch = largeur approximative de "Note:␣" (5 lettres + ":" + espace) */
  padding-left: 6ch;
  text-indent: -6ch;
  margin-bottom: .4em;
  font-size: 12px;
  word-wrap: break-word;
  overflow-wrap: break-word;
  max-width: 100%;
  overflow: hidden;
}




.events-section .sub-item a{color:#a76107;text-decoration:none;font-weight:normal}
.events-section .sub-item a:hover{text-decoration:underline}
.events-section .detail-list li::before,#detail-events li::before{content:none!important}
/* Conteneur général */
.search-filters{max-width:800px;margin:1.5rem auto}
.filters-container{background:#fff;border:1px solid #ddd;border-radius:6px;padding:.8rem;box-shadow:0 1.6px 6px rgba(0,0,0,.04);margin-bottom:1.6rem;display:flex;flex-direction:column;align-items:center}
.filters-row{display:flex;align-items:center;justify-content:center;gap:1rem;width:100%;max-width:600px;margin-bottom:.8rem}
.filters-container .search-wrapper{display:flex;align-items:center;gap:.6rem}
.filters-container .search-wrapper input{flex:1 1 auto;min-width:0;padding:.45rem .75rem;border:1px solid #ddd;border-radius:5px;font-size:.8rem;line-height:1.2rem;height:1.8rem;box-sizing:border-box;transition:border-color .2s,box-shadow .2s}
.filters-container .search-wrapper input:focus{outline:none;border-color:#66afe9;box-shadow:0 0 3px rgba(102,175,233,.4)}
.filters-container #search-name,.filters-container #search-place{flex:0 0 160px;max-width:160px}
.filters-container #search-year{flex:0 0 17ch;max-width:17ch}
.filters-container .gender-filters{display:flex;align-items:center;gap:.8rem}
.filters-container .gender-filters input[type="radio"]{position:absolute;opacity:0;width:0;height:0}
.filters-container .gender-filters label{position:relative;display:inline-flex;align-items:center;padding:.45rem .8rem .45rem 2rem;background:#f5f5f5;border:1px solid #ccc;border-radius:5px;font-size:.75rem;cursor:pointer;transition:background .2s,border-color .2s;height:1.8rem;box-sizing:border-box}
.filters-container .gender-filters label:hover{background:#e9e9e9}
.filters-container .gender-filters label::before{content:"";position:absolute;left:.6rem;top:50%;transform:translateY(-50%);width:1rem;height:1rem;border:1px solid #aaa;border-radius:2px;background:white;transition:border-color .2s}
.filters-container .gender-filters label::after{content:"✔";position:absolute;left:.65rem;top:50%;transform:translateY(-50%);width:1rem;height:1rem;line-height:1rem;text-align:center;font-size:.7rem;color:transparent;transition:color .2s}
.filters-container .gender-filters input[type="radio"]:checked+label{background:#e0e0e0;border-color:#bbb;color:#333}
.filters-container .gender-filters input[type="radio"]:checked+label::before{border-color:#333}
.filters-container .gender-filters input[type="radio"]:checked+label::after{color:#333}
.filters-container .alphabet{display:flex;flex-wrap:wrap;justify-content:center;gap:.4rem;margin:0}
.filters-container .alphabet a{display:inline-flex;align-items:center;justify-content:center;width:1.4rem;height:1.4rem;font-size:.65rem;font-weight:500;color:#555;background:#f7f7f7;border:1px solid #ddd;border-radius:3px;text-decoration:none;transition:background .2s,border-color .2s,color .2s,transform .1s}
.filters-container .alphabet a:hover{background:#ececec;border-color:#ccc;transform:translateY(-1px)}
.filters-container .alphabet a.active{background:#a76107;border-color:#a76107;color:#fff}
.filters-container #geneo-stats{width:100%;max-width:1200px;margin:0 auto 1.2rem;border-bottom:1px solid #ddd;padding-bottom:.8rem;align-self:center}
.filters-container #geneo-stats .stats-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:.6rem;padding:0;margin:0;list-style:none}
.filters-container #geneo-stats .stats-list li{background:#fafafa;border:1px solid #eee;border-radius:4px;padding:.4rem;text-align:center;font-size:.75rem}
.filters-container #geneo-stats .stats-list li strong{display:block;font-size:.7rem;font-weight:600;color:#555;margin-bottom:.2rem}
.filters-container #geneo-stats .stats-list a{color:#a76107;text-decoration:none}
.filters-container #geneo-stats .stats-list a:hover{text-decoration:underline}
.filters-container .filters-row .search-title{flex:1 1 100%;font-size:.9rem!important;font-weight:600;margin:0 0 .5rem;line-height:1.2;text-align:center}
.filters-container #geneo-stats .stats-title{width:100%;text-align:center;font-weight:600;color:#a76107;margin:0 0 .5rem;line-height:1.2}
.stats-title a{color:inherit;text-decoration:none}
.stats-title a:hover{text-decoration:underline}
.gender-icon{width:1em;height:1em;vertical-align:middle;margin-right:.2em}
/* Recherche intégrée */
.search-container{background:#fff;border:1px solid #ddd;border-radius:6px;padding:.8rem;box-shadow:0 1.6px 6px rgba(0,0,0,.04);margin:2rem auto;max-width:1200px;display:flex;flex-direction:column;align-items:center}
.search-container .search-title{width:100%;text-align:center;font-size:.9rem!important;font-weight:600;margin:0 0 .8rem;line-height:1.2;color:#a76107}
.search-container .filters-row{display:flex;align-items:center;justify-content:center;gap:1rem;width:100%;max-width:600px;margin-bottom:.8rem}
.search-container input[type="text"]{flex:1 1 auto;min-width:0;padding:.45rem .75rem;border:1px solid #ddd;border-radius:5px;font-size:.8rem;line-height:1.2rem;height:1.8rem;box-sizing:border-box;transition:border-color .2s,box-shadow .2s}
.search-container input[type="text"]:focus{outline:none;border-color:#66afe9;box-shadow:0 0 3px rgba(102,175,233,.4)}
.search-container #search-name,.search-container #search-place{flex:0 0 160px;max-width:160px}
.search-container #search-year{flex:0 0 17ch;max-width:17ch}
.search-container .filters-row input[type="radio"]{margin:0!important;margin-right:4px!important;flex-shrink:0!important}
.search-container .filters-row label{font-size:13px!important;cursor:pointer;color:var(--text-main);margin:0!important;margin-right:1rem!important}
.search-container .filters-row button{background:#e9ecef!important;color:#333!important;border:1px solid #ced4da!important;padding:6px 12px!important;border-radius:4px;cursor:pointer;font-size:13px!important;font-weight:500;transition:background-color .2s;white-space:nowrap!important;flex-shrink:0!important;box-shadow:0 1px 2px rgba(0,0,0,.1)!important}
.search-container .filters-row button:hover{background:#dee2e6!important;border-color:#adb5bd!important}
.search-container .filters-row button:active{background:#ced4da!important;box-shadow:inset 0 1px 2px rgba(0,0,0,.1)!important}
/* Responsive */
@media (max-width:768px){
.ma-geno{padding:2rem 1rem;margin:1.5rem auto}
.filters-container{margin:1rem .5rem;padding:1rem}
.filters-container .filters-row{flex-direction:column;align-items:stretch;gap:.8rem}
.filters-container .search-wrapper{width:100%;flex-direction:row;gap:.5rem;align-items:center}
.filters-container #search-name{flex:1 1 auto;max-width:none;width:auto;text-align:center}
.filters-container input[type="submit"],.filters-container button[type="submit"]{flex:0 0 auto;padding:8px 12px;font-size:14px;border-radius:4px;background:#a76107;color:white;border:none;cursor:pointer}
.filters-container input[type="submit"]:hover,.filters-container button[type="submit"]:hover{background:#8b5a06}
.filters-container #search-place,.filters-container #search-year{display:none}
.filters-container .gender-filters{display:flex!important;justify-content:center}
.filters-container .gender-filters input[type="radio"]{display:none!important}
.filters-container .gender-filters label{display:none!important}
.filters-container input[name="genre"]{display:none!important}
.filters-container label[for="g-all"],.filters-container label[for="g-men"],.filters-container label[for="g-women"]{display:none!important}
.filters-container #g-all,.filters-container #g-men,.filters-container #g-women{display:none!important}
.filters-container .alphabet{display:none}
.filters-container #geneo-stats .stats-list{grid-template-columns:repeat(auto-fit,minmax(90px,1fr))}
.gallery-icon,.gender-icon{width:1.4em;height:1.4em}
.person-section .detail-thumb{width:80px;margin-right:.75rem}
.person-section .detail-thumb+.detail-list{margin-left:calc(80px + .75rem)}
/* Événements mobile - nouvel affichage optimisé */
.events-section ul li{display:block;margin-bottom:1rem}
.events-section ul li .event-date{display:block;font-weight:bold;margin-bottom:.2rem;text-align:left}
.events-section ul li .event-desc{display:block;word-wrap:break-word;overflow-wrap:break-word;margin-left:.5rem}
.events-section .sub-item{display:block;margin-top:.3rem;margin-left:0;font-size:11px;word-wrap:break-word;overflow-wrap:break-word;width:100%;flex-basis:100%}
.events-section .sub-item strong{display:inline;margin-right:.25rem}
.events-section *{max-width:100%;box-sizing:border-box}
.pagination button{padding:.4rem .6rem;font-size:11px}
.search-container{margin:1rem .5rem;padding:1rem}
.search-container .filters-row{flex-direction:column;align-items:stretch;gap:.8rem}
.search-container .search-wrapper{width:100%;flex-direction:row;gap:.5rem;align-items:center}
.search-container #search-name{flex:1 1 auto;max-width:none;width:auto;text-align:center}
.search-container input[type="submit"],.search-container button[type="submit"]{flex:0 0 auto;padding:8px 12px;font-size:14px;border-radius:4px;background:#a76107;color:white;border:none;cursor:pointer}
.search-container input[type="submit"]:hover,.search-container button[type="submit"]:hover{background:#8b5a06}
.search-container #search-place,.search-container #search-year{display:none}
.search-container .filters-row input[type="radio"]{display:none}
.search-container .filters-row label{display:none}
.search-container .filters-row button{font-size:14px!important;padding:8px 12px!important;flex:0 0 auto;margin-top:0}
/* Améliorations liste des personnes mobile */
.results{margin:0 .5rem}
.results li{padding:.75rem 1rem .75rem 1.5rem;border-bottom:1px solid var(--btn-border);line-height:1.5}
.results li a{display:block;padding:.25rem 0;word-wrap:break-word;overflow-wrap:break-word}
.results h2{font-size:1.1rem;margin:1.5rem 0 .5rem;padding-bottom:.5rem}
/* Éviter les débordements */
.ma-geno *{box-sizing:border-box;max-width:100%}
/* Améliorations fiche personne mobile */
.person-section{margin:1rem auto;padding:0 1rem;max-width:100%}
.person-section h2{font-size:1.3rem;margin-bottom:1.5rem}
.person-section .detail-list li{margin-bottom:.8rem;line-height:1.4}
.parents-section h3,.unions-section h3,.siblings-section h3,.halfsiblings-section h3,.presences-section h3,.events-section h3,.general-notes-section h3{font-size:1.1rem;margin:2rem 0 1rem}
.unions-section .union{margin-bottom:2rem}
.unions-section .union>p{font-weight:600;margin-bottom:.75rem}
.unions-section ul{padding-left:1rem}
.siblings-section ul,.halfsiblings-section ul{padding-left:1rem}
.presences-section ul{padding-left:1rem}
}
@media (max-width:480px){
.ma-geno{padding:2rem .5rem}
.filters-container{margin:.5rem;padding:.8rem}
.filters-container .filters-row{gap:.5rem}
.filters-container .search-wrapper{gap:.4rem;flex-direction:row}
.filters-container #search-name{width:auto;flex:1;text-align:center}
.filters-container #search-place,.filters-container #search-year{display:none}
.filters-container .gender-filters{display:flex!important;justify-content:center}
.filters-container .gender-filters input[type="radio"]{display:none!important}
.filters-container .gender-filters label{display:none!important}
.filters-container input[name="genre"]{display:none!important}
.filters-container label[for="g-all"],.filters-container label[for="g-men"],.filters-container label[for="g-women"]{display:none!important}
.filters-container #g-all,.filters-container #g-men,.filters-container #g-women{display:none!important}
.filters-container .alphabet{display:none}
.results li{padding-left:1.4rem;font-size:10px}
.person-section .detail-thumb{width:60px;margin-right:.5rem}
.person-section .detail-thumb+.detail-list{margin-left:calc(60px + .5rem)}
/* Événements mobile très petit écran - même logique optimisée */
.events-section ul li{display:block;margin-bottom:.8rem}
.events-section ul li .event-date{display:block;font-weight:bold;margin-bottom:.2rem;text-align:left}
.events-section ul li .event-desc{display:block;word-wrap:break-word;overflow-wrap:break-word;margin-left:.5rem}
.events-section .sub-item{display:block;margin-top:.25rem;margin-left:0;font-size:10px;word-wrap:break-word;overflow-wrap:break-word;width:100%;flex-basis:100%}
.events-section .sub-item strong{display:inline;margin-right:.25rem}
.unions-section .union>p,.person-section p,.siblings-section ul li,.halfsiblings-section ul li{font-size:11px}
.search-container{margin:.5rem;padding:.75rem}
.search-container .filters-row{gap:.5rem}
.search-container .search-wrapper{flex-direction:row;gap:.5rem}
.search-container #search-name{flex:1;text-align:center}
.search-container .filters-row button{font-size:13px!important;padding:6px 10px!important}
}
@media (max-width:400px){
.filters-container #geneo-stats .stats-list{grid-template-columns:repeat(2,1fr)}
}
@media (min-width:769px) and (max-width:1024px){
.ma-geno{padding:2rem 1.5rem;margin:1.5rem auto}
.filters-container{padding:1rem;margin-bottom:1.5rem}
.filters-container .filters-row{gap:.8rem}
.filters-container #search-name,.filters-container #search-place{flex:0 0 140px;max-width:140px}
.filters-container #search-year{flex:0 0 15ch;max-width:15ch}
.filters-container #geneo-stats .stats-list{grid-template-columns:repeat(auto-fit,minmax(100px,1fr))}
.search-container .filters-row button{font-size:12px!important;padding:6px 8px!important}
/* Améliorations liste des personnes tablette */
.results li{padding:.6rem 1rem .6rem 1.6rem;font-size:13px}
.results h2{font-size:1.2rem;margin:1.8rem 0 .6rem}
/* Améliorations fiche personne tablette */
.person-section{margin:1.5rem auto;padding:0 1.5rem;max-width:95%}
.person-section h2{font-size:1.4rem}
.person-section .detail-thumb{width:90px;margin-right:.8rem}
.person-section .detail-thumb+.detail-list{margin-left:calc(90px + .8rem)}
.person-section .detail-list li{font-size:13px;margin-bottom:.7rem}
.parents-section h3,.unions-section h3,.siblings-section h3,.halfsiblings-section h3,.presences-section h3,.events-section h3,.general-notes-section h3{font-size:1.15rem;margin:1.8rem 0 1rem}
.unions-section .union{margin-bottom:1.8rem}
/* Événements tablette - garder le format desktop grid */
.events-section ul li{grid-template-columns:9em 1fr}
.pagination button{padding:.45rem .7rem;font-size:12px}
}
@media (max-width:1024px){
.search-container .filters-row button{font-size:12px!important;padding:6px 8px!important}
}

/* ==== Contrôles de navigation de l'arbre ==== */
.tree-controls{
  position:absolute;
  top:5rem;
  left:1rem;
  display:flex;
  flex-direction:column;
  gap:0.5rem;
  z-index:1000;
}

.tree-control-btn{
  background:linear-gradient(135deg, rgba(255, 255, 255, 0.95) 0%, rgba(248, 250, 252, 0.9) 100%);
  border:1px solid rgba(59, 130, 246, 0.12);
  border-radius:8px;
  padding:0.5rem;
  cursor:pointer;
  transition:all 0.2s ease;
  box-shadow:0 2px 8px rgba(0, 0, 0, 0.1);
  backdrop-filter:blur(10px);
  width:36px;
  height:36px;
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:16px;
}

.tree-control-btn:hover{
  background:linear-gradient(135deg, rgba(59, 130, 246, 0.1) 0%, rgba(59, 130, 246, 0.05) 100%);
  border-color:rgba(59, 130, 246, 0.3);
  transform:translateY(-2px);
  box-shadow:0 4px 12px rgba(0, 0, 0, 0.15);
}

.tree-control-btn:active{
  transform:translateY(0);
}

/* Styles de l'arbre déplacés dans ma-genealogie-tree.css */

/* ==== Bouton de recherche ==== */
.search-button {
  background: linear-gradient(135deg, #a76107 0%, #8a4f06 100%);
  color: white;
  border: none;
  border-radius: 8px;
  padding: 0.75rem 1.5rem;
  font-size: 1rem;
  font-weight: 500;
  cursor: pointer;
  transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
  box-shadow: 0 2px 8px rgba(167, 97, 7, 0.3);
  margin-left: 0.5rem;
}

.search-button:hover {
  background: linear-gradient(135deg, #8a4f06 0%, #6d3e05 100%);
  transform: translateY(-1px);
  box-shadow: 0 4px 12px rgba(167, 97, 7, 0.4);
}

.search-button:active {
  transform: translateY(0);
}

/* Masquer les éléments supprimés sur mobile/tablette */
@media (max-width: 768px) {
  .desc-desktop { display: none; }
}

/* Afficher les éléments mobiles uniquement sur mobile/tablette */
@media (min-width: 769px) {
  .desc-mobile { display: none; }
}

/* ==== THEME SOMBRE - Nouvelles classes ==== */

/* Navigation alphabétique */
:root.theme-dark .alphabet-nav {
  background: var(--bg-secondary);
  border-color: var(--border-dark, #444);
}

:root.theme-dark .alphabet-link {
  background: var(--bg-main);
  color: var(--text-alt);
  border-color: var(--border-dark, #444);
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.3);
}

:root.theme-dark .alphabet-link:hover {
  background: var(--btn-return-bg);
  color: var(--text-main);
  box-shadow: 0 4px 8px rgba(0, 0, 0, 0.4);
}

:root.theme-dark .alphabet-disabled {
  background: var(--bg-tertiary, #2a2a2a);
  color: var(--text-alt-muted, #666);
  border-color: var(--border-dark, #444);
}

/* Liste des personnes */
:root.theme-dark .people-section h2 {
  color: var(--text-main);
  background: linear-gradient(135deg, var(--bg-tertiary, #2a2a2a) 0%, var(--bg-secondary) 100%);
  border-left-color: #FFB061;
}

:root.theme-dark .people-section ul {
  background: var(--bg-secondary);
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.3);
}

:root.theme-dark .people-section li {
  border-bottom-color: var(--border-dark, #444);
  color: var(--text-alt);
}

:root.theme-dark .people-section li:hover {
  background: var(--bg-tertiary, #2a2a2a);
}

:root.theme-dark .people-section li a {
  color: #FFB061;
}

:root.theme-dark .people-section li a:hover {
  color: #e6a055;
}

/* Pagination */
:root.theme-dark .pagination-geneanet {
  color: var(--text-alt);
}

:root.theme-dark .pagination-info {
  color: var(--text-alt-muted);
}

:root.theme-dark .page-input {
  background: var(--bg-main);
  color: var(--text-alt);
  border-color: var(--border-dark, #444);
}

:root.theme-dark .page-input:focus {
  border-color: #FFB061;
  box-shadow: 0 0 3px rgba(255, 176, 97, 0.4);
}

:root.theme-dark .pagination-links a {
  background: var(--bg-main);
  color: var(--text-alt);
  border-color: var(--border-dark, #444);
}

:root.theme-dark .pagination-links a:hover {
  background: var(--btn-return-bg);
  color: var(--text-main);
}

:root.theme-dark .current-page {
  background: var(--bg-tertiary, #2a2a2a);
  color: var(--text-alt);
}

:root.theme-dark .page-info {
  color: var(--text-alt-muted);
}

/* Bouton de recherche */
:root.theme-dark .search-button {
  background: #FFB061;
  color: #333;
  box-shadow: 0 2px 8px rgba(255, 176, 97, 0.3);
}

:root.theme-dark .search-button:hover {
  background: #e6a055;
  box-shadow: 0 4px 12px rgba(255, 176, 97, 0.4);
}

/* ==== Styles de navigation alphabétique ==== */
.alphabet-nav {
  text-align: center;
  margin: 1rem 0;
  padding: 0.5rem;
  background: #fafafa;
  border-radius: 4px;
  border: 1px solid #e0e0e0;
}

.alphabet-link {
  display: inline-block;
  padding: 0.25rem 0.4rem;
  margin: 0.1rem;
  background: #f5f5f5;
  color: #666;
  text-decoration: none;
  border-radius: 3px;
  font-weight: normal;
  font-size: 11px;
  transition: background-color 0.2s ease;
  border: 1px solid #ddd;
}

.alphabet-link:hover {
  background: #e0e0e0;
  color: #333;
}

.alphabet-disabled {
  display: inline-block;
  padding: 0.25rem 0.4rem;
  margin: 0.1rem;
  background: #f9f9f9;
  color: #ccc;
  border-radius: 3px;
  font-weight: normal;
  font-size: 11px;
  cursor: not-allowed;
  border: 1px solid #eee;
}

/* ==== Styles de la liste des personnes ==== */
.people-list {
  max-width: 1200px;
  margin: 2rem auto;
  padding: 0 1rem;
}

.people-section {
  margin-bottom: 2.5rem;
}

.people-section h2 {
  font-size: 1.8rem;
  color: #2c3e50;
  margin: 0 0 1rem 0;
  padding: 0.5rem 1rem;
  background: linear-gradient(135deg, #f8f9fa 0%, #e9ecef 100%);
  border-left: 4px solid #a76107;
  border-radius: 6px;
  font-weight: 600;
  letter-spacing: 0.5px;
}

.people-section ul {
  list-style: none;
  padding: 0;
  margin: 0;
  background: white;
  border-radius: 8px;
  box-shadow: 0 2px 8px rgba(0,0,0,0.1);
  overflow: hidden;
}

.people-section li {
  padding: 0.75rem 1.25rem;
  border-bottom: 1px solid #f1f3f4;
  font-size: 12px;
  line-height: 1.6;
  transition: background-color 0.2s ease;
}

.people-section li:last-child {
  border-bottom: none;
}

.people-section li:hover {
  background: #f8f9fa;
}

.people-section li a {
  color: #a76107;
  text-decoration: none;
  font-weight: 600;
  transition: color 0.2s ease;
}

.people-section li a:hover {
  color: #8a4f06;
  text-decoration: underline;
}

/* ==== Pagination style Geneanet ==== */
.pagination-geneanet {
  text-align: center;
  margin: 2rem auto;
  max-width: 600px;
}

.pagination-info {
  font-size: 0.9rem;
  color: #666;
  margin-bottom: 0.5rem;
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 0.5rem;
}

.page-input {
  width: 40px;
  padding: 0.25rem;
  text-align: center;
  border: 1px solid #ccc;
  border-radius: 3px;
  font-size: 0.9rem;
}

.pagination-links {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 0.5rem;
}

.pagination-links a {
  display: inline-block;
  padding: 0.5rem 0.75rem;
  background: #a76107;
  color: white;
  text-decoration: none;
  border-radius: 4px;
  font-weight: 500;
  transition: all 0.2s ease;
}

.pagination-links a:hover {
  background: #8a4f06;
  transform: translateY(-1px);
}

.current-page {
  display: inline-block;
  padding: 0.5rem 0.75rem;
  background: #e9ecef;
  color: #495057;
  border-radius: 4px;
  font-weight: 600;
}

.page-info {
  font-size: 0.9rem;
  color: #666;
  margin-top: 0.5rem;
}

/* ========== LOADERS ET INDICATEURS DE CHARGEMENT ========== */

/* Loader global pour le chargement de page */
.main-loader {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(255, 255, 255, 0.95);
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    z-index: 10000;
}

/* Spinner rotatif */
.spinner {
    width: 50px;
    height: 50px;
    border: 4px solid #f3f3f3;
    border-top: 4px solid #a76107;
    border-radius: 50%;
    animation: spin 1s linear infinite;
    margin-bottom: 1rem;
}

@keyframes spin {
    0% { transform: rotate(0deg); }
    100% { transform: rotate(360deg); }
}

/* Texte du loader */
.loader-text {
    color: #666;
    font-size: 14px;
    font-family: Arial, sans-serif;
}

/* Loader pour les recherches (plus petit) */
.search-loading {
    text-align: center;
    padding: 3rem 1rem;
}

.search-loading .spinner {
    width: 30px;
    height: 30px;
    border-width: 3px;
    margin: 0 auto 1rem;
}

/* Theme sombre */
:root.theme-dark .main-loader {
    background: rgba(30, 30, 30, 0.95);
}

:root.theme-dark .spinner {
    border-color: #444;
    border-top-color: #FFB061;
}

:root.theme-dark .loader-text {
    color: #ccc;
}