/* ============================= */
/* 1. Styles généraux            */
/* ============================= */
* {
    box-sizing: border-box;
    margin: 0;
    padding: 0;
}
body {
    font-family: Arial, sans-serif;
    background-color: #000060;       /* bleu nuit */
    color: #f0f0f0;                  /* texte clair */
    min-height: 100vh;
    padding: 0px 0px;
}

/* Layout : nav + contenu */
.layout {
    display: flex;
    min-height: calc(100vh - 60px);  /* moins la hauteur du header */
}

/* ============================= */
/* 2. Header                      */
/* ============================= */
.site-header {
    height: 60px;
    background-color: #000040;
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0 1rem;
    border-bottom: 1px solid #222;
}
.site-header h1 {
    font-size: 1.2rem;
    color: #fff;
}
.site-header .user-actions {
    display: flex;
    align-items: center;
}
.site-header .username {
    margin-right: 1rem;
}
.btn-logout {
    background-color: #440000;
    color: #fff;
    padding: 0.3rem 0.6rem;
    border-radius: 4px;
    text-decoration: none;
}
/* Boîte d’affichage du logo (dans le header) */
.site-header .logo {
    width: 180px;
    height: 50px;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
}
.site-header .logo img {
    width: 100%;
    height: 100%;
    object-fit: cover;      /* remplit la zone, peut rogner */
    object-position: center;/* ajuste le cadrage si besoin: left / 20% 50% … */
    display: block;
}
.avatar-circle{
    display:inline-grid; place-items:center; width:28px; height:28px; border-radius:50%;
    background:#0f172a; color:#fff; font-weight:700; font-size:.8rem;
}
.avatar-circle.lg{ width:44px; height:44px; font-size:1rem; }
.user-actions .btn{ border-color:rgba(255,255,255,.25) !important; }
.dropdown-menu .token-block .token-line{
    display:flex; align-items:center; justify-content:space-between; gap:.5rem;
    padding:.25rem .5rem; border:1px dashed var(--bs-border-color); border-radius:.5rem; background:var(--bs-tertiary-bg);
}
.dropdown-menu code{ white-space:nowrap; overflow:hidden; text-overflow:ellipsis; max-width: 60%; display:inline-block; }
.xsmall{ font-size:.775rem; }


/* Mobile : un peu plus compact */
@media (max-width: 768px) {
    .site-header .logo {
        width: 140px;
        height: 32px;
    }
}


/* ============================= */
/* 3. Navigation (menu principal) */
/* ============================= */
nav.site-menu {
    width: 240px;
    background-color: #000050;
    transition: transform 0.3s ease;
    overflow-y: auto;
}
ul.menu-principal {
    list-style: none;
}
ul.menu-principal > li {
    border-bottom: 1px solid #222;
}
ul.menu-principal li a {
    display: block;
    padding: 0.75rem 1rem;
    color: #f0f0f0;
    text-decoration: none;
}
ul.menu-principal li a:hover,
ul.menu-principal li.active > a {
    background-color: #333399;
}

/* ============================= */
/* 4. Sous-menu                   */
/* ============================= */
ul.sous-menu {
    list-style: none;
    padding-left: 1rem;
    display: none;
}
li.open > ul.sous-menu { display: block; }

ul.sous-menu li a {
    display: block;
    padding: 0.5rem 1rem;
    font-size: 0.9rem;
}
ul.menu-principal li.active > ul.sous-menu {
    display: block;
}

/* style du lien actif */
li.active > a { background-color: #333399; }

/* ============================= */
/* 5. Onglets                     */
/* ============================= */
ul.tabs {
    list-style: none;
    display: flex;
    border-bottom: 1px solid #222;
    margin-bottom: 1rem;
}
ul.tabs li {
    margin-right: 1rem;
}
ul.tabs li a {
    color: #f0f0f0;
    padding: 0.5rem 1rem;
    text-decoration: none;
    border: 1px solid transparent;
    border-bottom: none;
}
ul.tabs li a.active {
    background-color: #000080;
    border-color: #000080 #000080 #000060;
    border-radius: 4px 4px 0 0;
}
@media (max-width: 768px) {
    nav.menu-principal {
        width: 100%;
        display: none;
        flex-direction: column;
        gap: 10px;
        margin: 0;
    }

    nav.site-menu.open {
        display: flex;
    }

    ul.menu-principal,
    ul.sous-menu {
        flex-direction: column;
        padding: 0;
        margin: 0;
        list-style: none;
    }

    ul.sous-menu {
        display: none; /* on masque sauf si activé */
    }

    li.open > ul.sous-menu {
        display: block;
    }

    #menu-toggle {
        display: block;
    }
}
/* Par défaut : on affiche le texte, pas l’icône */
.btn-logout .logout-icon {
    display: none;
}
.btn-logout .logout-text {
    display: inline;
}

/* En mobile, on inverse : texte masqué, icône affichée */
@media (max-width: 768px) {
    .btn-logout .logout-text {
        display: none;
    }
    .btn-logout .logout-icon {
        display: inline;
        font-size: 1.2rem;
        margin-left: 0.2rem;
    }
}
/* Masquer en version mobile */
@media (max-width: 768px) {
    .hide-mobile {
        display: none !important;
    }
}


/* ============================= */
/* 6. Contenu principal           */
/* ============================= */
main.content {
    flex-grow: 1;
    padding: 1rem;
}

/* ============================= */
/* 7. Bouton hamburger (mobile)   */
/* ============================= */
#menu-toggle {
    display: none;
    background: none;
    border: none;
    color: #fff;
    font-size: 1.5rem;
    padding: 0.75rem;
    cursor: pointer;
}

/* ============================= */
/* 8. Responsive (mobile)         */
/* ============================= */
@media (max-width: 768px) {
    /* Header reste en haut */
    .layout {
        flex-direction: column;
    }
    /* Afficher le bouton menu */
    #menu-toggle {
        display: block;
    }
    /* Masquer le menu par défaut */
    nav.site-menu {
        position: absolute;
        top: 60px;
        left: 0;
        transform: translateX(-100%);
        width: 80%;
        height: calc(100% - 60px);
        z-index: 1000;
    }
    /* Quand la classe .open est appliquée */
    nav.site-menu.open {
        transform: translateX(0);
    }
    /* Ajustement du contenu */
    main.content {
        padding: 1rem 0.5rem;
    }
}
/* Section Support */
.support-section {
    margin: 1rem;
}
.support-section h2 {
    margin-bottom: 0.5rem;
    color: #fff;
}
.support-section p {
    margin-bottom: 1rem;
    line-height: 1.5;
}

/* Formulaire de support */
.support-form label {
    display: block;
    margin-top: 1rem;
    font-weight: bold;
}
.support-form input,
.support-form textarea {
    width: 100%;
    padding: 0.6rem;
    margin-top: 0.3rem;
    border: 1px solid #444;
    border-radius: 4px;
    background-color: #000080;
    color: #f0f0f0;
}
.support-form button {
    margin-top: 1.2rem;
    padding: 0.8rem 1.5rem;
    background-color: #002080;
    color: #fff;
    border: none;
    border-radius: 4px;
    cursor: pointer;
}
.support-form button:hover {
    background-color: #0030a0;
}
.construction {
    text-align: center;
    margin-top: 2rem;
}
.construction h2 {
    font-size: 1.5rem;
    color: #fff;
}
.construction p {
    margin-top: 1rem;
    color: #ccc;
}
.construction a {
    color: #66f;
    text-decoration: underline;
}
/* ======= Section accueil (dashboard) ======= */
.welcome-dashboard {
    max-width: 1200px;
    margin: 0 auto;
    padding: 1rem;
}
.welcome-header h2 {
    font-size: 2rem;
    margin-bottom: 0.5rem;
    color: #ffffff;
}
.welcome-header .welcome-subtitle {
    font-size: 1.1rem;
    color: #cccccc;
    margin-bottom: 1.5rem;
}

/* ======= Cartes d’accès rapide ======= */
.dashboard-cards {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
    gap: 1rem;
}
.card {
    background-color: #001040;
    border: 1px solid #002060;
    border-radius: 8px;
    padding: 1.5rem;
    text-align: center;
    text-decoration: none;
    color: #f0f0f0;
    transition: transform 0.2s ease, background-color 0.2s ease;
}
.card:hover {
    background-color: #002060;
    transform: translateY(-5px);
}
.card-icon {
    font-size: 2.5rem;
    margin-bottom: 0.5rem;
}
.card-title {
    font-size: 1.1rem;
    font-weight: bold;
}

/* ======= Responsive small ======= */
@media (max-width: 600px) {
    .welcome-header h2 {
        font-size: 1.5rem;
    }
    .welcome-header .welcome-subtitle {
        font-size: 1rem;
    }
    .card {
        padding: 1rem;
    }
    .card-icon {
        font-size: 2rem;
    }
    .card-title {
        font-size: 1rem;
    }
}
/* ===== Menu design avec icônes ===== */
nav.site-menu {
    background: #000050;
    width: 240px;
    position: relative;
    transition: transform .3s ease;
}
.menu-principal, .sous-menu {
    list-style: none;
    margin: 0;
    padding: 0;
}
.menu-principal > li, .sous-menu > li {
    border-bottom: 1px solid #111;
}
nav.site-menu li a {
    display: flex;
    align-items: center;
    padding: 0.75rem 1rem;
    color: #eee;
    text-decoration: none;
    transition: background .2s;
}
nav.site-menu li a .icone {
    width: 24px;
    text-align: center;
    margin-right: 0.75rem;
    font-size: 1.1rem;
}
nav.site-menu li a .libelle {
    flex-grow: 1;
}

/* Item actif */
nav.site-menu li.active > a,
nav.site-menu li a:hover {
    background: #002080;
}

/* Sous-menu (niveau 1+) masqué par défaut */
.sous-menu {
    display: none;
}
nav.site-menu li.open > .sous-menu {
    display: block;
}

/* Styles pour le bouton hamburger mobile */
#menu-toggle {
    display: none;
    background: none;
    border: none;
    color: #fff;
    font-size: 1.5rem;
    padding: 0.75rem;
    cursor: pointer;
}

/* Responsive mobile */
@media (max-width: 768px) {
    nav.site-menu {
        position: absolute;
        left: 0; top: 60px;
        height: calc(100% - 60px);
        transform: translateX(-100%);
        z-index: 1000;
    }
    nav.site-menu.open {
        transform: translateX(0);
    }
    #menu-toggle {
        display: block;
    }
}
/* Grille responsive des widgets */
.widgets-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
    gap: 1rem;
}

/* Carte de chaque widget */
.widget-card {
    background: #001040;
    border: 1px solid #002060;
    border-radius: 8px;
    overflow: hidden;
    display: flex;
    flex-direction: column;
}

/* Titre */
.widget-card header {
    background: #000080;
    padding: 0.5rem;
}
.widget-card header h3 {
    color: #fff;
    font-size: 1rem;
    margin: 0;
}

/* Container pour forcer le ratio 16:9 */
.iframe-container {
    position: relative;
    width: 100%;
    padding-bottom: 56.25%; /* 16:9 */
    flex-grow: 1;
}
.iframe-container iframe {
    position: absolute;
    top: 0; left: 0;
    width: 100%; height: 100%;
}

/* Responsive mobile */
@media (max-width: 600px) {
    .widgets-grid {
        grid-template-columns: 1fr;
    }
}
.paginate_button {
    padding: 0px !important;
}
.form-text{

    color: #f0f0f0;
}
.text-muted{

    color: #9f9f9f !important;
}
.bg-light{
    color: #9f9f9f;
}
/* ============================= */
/* 9. Modales - Thème sombre      */
/* ============================= */

/* Backdrop */
.modal-backdrop {
    background-color: rgba(0, 0, 0, 0.75);
    backdrop-filter: blur(2px);
}

/* Animation */
.modal.fade .modal-dialog {
    transition: transform 0.3s ease-out;
}

/* Container principal */
.modal-content {
    background-color: #000050;
    color: #f0f0f0;
    border: 1px solid #333399;
    border-radius: 8px;
    box-shadow: 0 10px 40px rgba(0, 0, 0, 0.5);
}

/* Header */
.modal-header {
    background-color: #000080;
    color: #ffffff;
    border-bottom: 1px solid #333399;
    border-radius: 8px 8px 0 0;
    padding: 1rem 1.5rem;
}

.modal-header .modal-title {
    color: #ffffff !important;
    font-weight: 600;
}

.modal-header .btn-close {
    filter: brightness(0) invert(1);
    opacity: 0.9;
}

.modal-header .btn-close:hover {
    opacity: 1;
}

/* Corps */
.modal-body {
    background-color: #000050;
    color: #f0f0f0 !important;
    padding: 1.5rem;
    max-height: calc(100vh - 250px);
    overflow-y: auto;
}

/* Scrollbar */
.modal-body::-webkit-scrollbar {
    width: 10px;
}

.modal-body::-webkit-scrollbar-track {
    background: #000040;
}

.modal-body::-webkit-scrollbar-thumb {
    background: #333399;
    border-radius: 5px;
}

.modal-body::-webkit-scrollbar-thumb:hover {
    background: #4444bb;
}

/* Footer */
.modal-footer {
    background-color: #000060;
    border-top: 1px solid #333399;
    border-radius: 0 0 8px 8px;
    padding: 1rem 1.5rem;
}

/* Tous les textes en clair */
.modal h1, .modal h2, .modal h3, .modal h4, .modal h5, .modal h6,
.modal p, .modal li, .modal dt, .modal dd, .modal small, .modal span,
.modal label, .modal .form-label, .modal .form-text,
.modal div, .modal td, .modal th {
    color: #f0f0f0 !important;
}

.modal .text-muted {
    color: #cccccc !important;
}

/* Liens */
.modal a {
    color: #8888ff !important;
    text-decoration: underline;
}

.modal a:hover {
    color: #aaaaff !important;
}

/* ===== FORMULAIRES ===== */

/* Inputs et Selects */
.modal input[type="text"],
.modal input[type="email"],
.modal input[type="url"],
.modal input[type="tel"],
.modal input[type="number"],
.modal input[type="password"],
.modal input[type="date"],
.modal input[type="datetime-local"],
.modal input[type="time"],
.modal select,
.modal textarea,
.modal .form-control,
.modal .form-select {
    background-color: #000080 !important;
    color: #ffffff !important;
    border: 1px solid #333399 !important;
    border-radius: 4px;
    padding: 0.5rem 0.75rem;
}

/* Focus */
.modal input:focus,
.modal select:focus,
.modal textarea:focus,
.modal .form-control:focus,
.modal .form-select:focus {
    background-color: #0000a0 !important;
    color: #ffffff !important;
    border-color: #6666ff !important;
    box-shadow: 0 0 0 0.2rem rgba(102, 102, 255, 0.25) !important;
    outline: none !important;
}

/* Disabled */
.modal input:disabled,
.modal select:disabled,
.modal textarea:disabled,
.modal .form-control:disabled,
.modal .form-select:disabled {
    background-color: #000040 !important;
    color: #999999 !important;
    opacity: 0.7;
}

/* Placeholder */
.modal input::placeholder,
.modal textarea::placeholder,
.modal ::placeholder {
    color: #aaaaaa !important;
    opacity: 1 !important;
}

/* Options des select */
.modal select option,
.modal .form-select option {
    background-color: #000080;
    color: #ffffff;
}

/* Checkbox et Radio */
.modal input[type="checkbox"],
.modal input[type="radio"],
.modal .form-check-input {
    background-color: #000080;
    border: 1px solid #333399;
    width: 1.2em;
    height: 1.2em;
}

.modal input[type="checkbox"]:checked,
.modal input[type="radio"]:checked,
.modal .form-check-input:checked {
    background-color: #6666ff;
    border-color: #6666ff;
}

.modal .form-check-label {
    color: #f0f0f0 !important;
    margin-left: 0.5rem;
}

/* Switch */
.modal .form-switch .form-check-input {
    width: 2em;
    background-color: #333399;
}

.modal .form-switch .form-check-input:checked {
    background-color: #6666ff;
}

/* Input group */
.modal .input-group-text {
    background-color: #000080;
    color: #f0f0f0;
    border: 1px solid #333399;
}

/* Boutons */
.modal .btn-primary {
    background-color: #6666ff;
    border-color: #6666ff;
    color: #ffffff;
}

.modal .btn-primary:hover {
    background-color: #5555ee;
    border-color: #5555ee;
}

.modal .btn-secondary {
    background-color: #666666;
    border-color: #666666;
    color: #ffffff;
}

.modal .btn-secondary:hover {
    background-color: #555555;
    border-color: #555555;
}

.modal .btn-outline-primary {
    color: #6666ff;
    border-color: #6666ff;
}

.modal .btn-outline-primary:hover {
    background-color: #6666ff;
    color: #ffffff;
}

.modal .btn-outline-secondary {
    color: #cccccc;
    border-color: #666666;
}

.modal .btn-outline-secondary:hover {
    background-color: #666666;
    color: #ffffff;
}

/* Variables Bootstrap */
.modal {
    --bs-body-color: #f0f0f0;
    --bs-body-bg: #000050;
    --bs-border-color: #333399;
}

/* Tailles */
.modal-xl { max-width: 1200px; }
.modal-lg { max-width: 900px; }
.modal-sm { max-width: 400px; }

/* Responsive */
@media (max-width: 768px) {
    .modal-dialog {
        margin: 0.5rem;
    }
    .modal-body {
        padding: 1rem;
        max-height: calc(100vh - 180px);
    }
    .modal-header,
    .modal-footer {
        padding: 0.75rem 1rem;
    }
}

/* ============================= */
/* Styles globaux pour cartes/encarts */
/* ============================= */

/* Toutes les cartes Bootstrap et encarts personnalisés */
.card,
.table-card,
.scan-section,
.alert,
.list-group-item,
.accordion-item,
.offcanvas,
.toast,
.popover {
    /*background-color: #1a1a4d !important;*/
    border-color: #333399 !important;
    color: #f0f0f0 !important;
}

/* Headers de cartes */
.card-header,
.accordion-header,
.offcanvas-header,
.table-header {
    background-color: #000050 !important;
    border-color: #333399 !important;
    color: #f0f0f0 !important;
}

/* Corps de cartes */
.card-body,
.card-footer,
.accordion-body,
.offcanvas-body {
    /*background-color: #1a1a4d !important;*/
    color: #f0f0f0 !important;
}

/* Alertes avec couleurs appropriées */
.alert-primary { background-color: #1e3a8a !important; border-color: #3b82f6 !important; }
.alert-secondary { background-color: #374151 !important; border-color: #6b7280 !important; }
.alert-success { background-color: #065f46 !important; border-color: #10b981 !important; }
.alert-danger { background-color: #7f1d1d !important; border-color: #ef4444 !important; }
.alert-warning { background-color: #78350f !important; border-color: #f59e0b !important; color: #fef3c7 !important; }
.alert-info { background-color: #164e63 !important; border-color: #06b6d4 !important; }
.alert-light { background-color: #1f2937 !important; border-color: #4b5563 !important; }
.alert-dark { background-color: #0f0f2d !important; border-color: #1f1f4d !important; }

/* Listes */
.list-group-item {
    /*background-color: #1a1a4d !important;*/
    border-color: #333399 !important;
    color: #f0f0f0 !important;
}

.list-group-item:hover {
    background-color: #252560 !important;
}

.list-group-item.active {
    background-color: #3b82f6 !important;
    border-color: #3b82f6 !important;
}

/* Badges sur fond sombre */
.badge {
    font-weight: 600;
}

.badge.bg-light {
    background-color: #374151 !important;
    color: #f0f0f0 !important;
}

.badge.bg-dark {
    background-color: #0f0f2d !important;
    color: #f0f0f0 !important;
}

/* Code blocks */
pre, code {
    background-color: #0f0f2d !important;
    border-color: #333399 !important;
    color: #a8dadc !important;
}

pre {
    padding: 1rem;
    border-radius: 6px;
    border: 1px solid #333399;
}

code {
    padding: 0.2rem 0.4rem;
    border-radius: 3px;
}

/* Progress bars */
.progress {
    background-color: #0f0f2d !important;
    border: 1px solid #333399;
}

.progress-bar {
    background-color: #3b82f6 !important;
}

/* Formulaires dans les cartes */
.card input[type="text"],
.card input[type="email"],
.card input[type="password"],
.card input[type="number"],
.card input[type="date"],
.card select,
.card textarea {
    background-color: #0f0f2d !important;
    border-color: #333399 !important;
    color: #f0f0f0 !important;
}

/* Pagination */
.pagination .page-item .page-link {
    /*background-color: #1a1a4d !important;*/
    border-color: #333399 !important;
    color: #f0f0f0 !important;
}

.pagination .page-item.active .page-link {
    background-color: #3b82f6 !important;
    border-color: #3b82f6 !important;
}
.filter-section{
    background-color:#000060!important;
}
.pagination .page-item:hover .page-link {
    background-color: #252560 !important;
}

/* Breadcrumb */
.breadcrumb {
    /*background-color: #1a1a4d !important;*/
    border: 1px solid #333399;
}

.breadcrumb-item a {
    color: #60a5fa !important;
}

/* Tooltips et Popovers */
.tooltip-inner {
    background-color: #0f0f2d !important;
    color: #f0f0f0 !important;
}

.popover-body {
    /*background-color: #1a1a4d !important;*/
    color: #f0f0f0 !important;
}

/* Nav pills/tabs dans les cartes */
.nav-pills .nav-link,
.nav-tabs .nav-link {
    color: #f0f0f0 !important;
}

.nav-pills .nav-link.active {
    background-color: #3b82f6 !important;
}

.nav-tabs .nav-link.active {
    /*background-color: #1a1a4d !important;*/
    border-color: #333399 !important;
    color: #f0f0f0 !important;
}

/* Dropdowns */
.dropdown-menu {
    /*background-color: #1a1a4d !important;*/
    border-color: #333399 !important;
}

.dropdown-item {
    color: #f0f0f0 !important;
}

.dropdown-item:hover {
    background-color: #252560 !important;
    color: #fff !important;
}

.dropdown-divider {
    border-color: #333399 !important;
}

/* Styles spécifiques pour l'outil de migration */
.diff-view {
    padding: 0.75rem;
    background-color: #0f0f2d !important;
    border: 1px solid #333399;
    border-radius: 6px;
    margin-top: 0.5rem;
}

.diff-add {
    color: #10b981 !important;
}

.diff-modify {
    color: #f59e0b !important;
}

.diff-remove {
    color: #ef4444 !important;
}

.sql-preview {
    background-color: #0f0f2d !important;
    border: 1px solid #333399;
    border-radius: 6px;
    padding: 1rem;
    margin-top: 0.5rem;
    overflow-x: auto;
}

.file-usage {
    font-size: 0.875rem;
    opacity: 0.8;
}

/* Hover effects pour cartes */
.table-card:hover,
.card:hover {
    border-color: #4f46e5 !important;
    box-shadow: 0 4px 12px rgba(79, 70, 229, 0.3);
    transform: translateY(-2px);
    transition: all 0.2s ease;
}

/* ============================================
   SELECT2 - STYLES GLOBAUX (BLEU NUIT)
   ============================================ */

/* Container principal Select2 */
.select2-container,
.select2-container--bootstrap-5 {
    width: 100% !important;
}

/* Selection box (le champ lui-même) */
.select2-selection,
.select2-selection--single,
.select2-selection--multiple,
.select2-container--bootstrap-5 .select2-selection,
.select2-container--bootstrap-5 .select2-selection--single,
.select2-container--bootstrap-5 .select2-selection--multiple {
    background: #000040 !important;
    border: 1px solid rgba(255,255,255,0.2) !important;
    color: #f0f0f0 !important;
    min-height: 38px !important;
}

/* Texte dans le champ */
.select2-selection__rendered,
.select2-container--bootstrap-5 .select2-selection__rendered {
    color: #f0f0f0 !important;
    line-height: 36px !important;
    padding-left: 12px !important;
}

/* Placeholder */
.select2-selection__placeholder,
.select2-container--bootstrap-5 .select2-selection__placeholder {
    color: #999999 !important;
}

/* Flèche dropdown */
.select2-selection__arrow,
.select2-container--bootstrap-5 .select2-selection__arrow {
    height: 36px !important;
}

.select2-selection__arrow b {
    border-color: #f0f0f0 transparent transparent transparent !important;
}

/* Dropdown (CRITIQUE pour la lisibilité) */
.select2-dropdown,
.select2-container--bootstrap-5 .select2-dropdown {
    background: #000040 !important;
    border: 1px solid rgba(255,255,255,0.2) !important;
    z-index: 9999 !important;
}

/* Champ de recherche dans le dropdown */
.select2-search--dropdown,
.select2-container--bootstrap-5 .select2-search--dropdown {
    background: #000040 !important;
    padding: 8px !important;
}

.select2-search__field,
.select2-container--bootstrap-5 .select2-search__field {
    background: #000030 !important;
    border: 1px solid rgba(255,255,255,0.3) !important;
    color: #f0f0f0 !important;
    padding: 6px 12px !important;
    border-radius: 4px !important;
}

.select2-search__field::placeholder {
    color: #999999 !important;
}

.select2-search__field:focus {
    background: #000050 !important;
    border-color: #0dcaf0 !important;
    outline: none !important;
}

/* Container des résultats */
.select2-results,
.select2-results__options,
.select2-container--bootstrap-5 .select2-results,
.select2-container--bootstrap-5 .select2-results__options {
    background: #000040 !important;
    color: #f0f0f0 !important;
}

/* Chaque option dans la liste */
.select2-results__option,
.select2-container--bootstrap-5 .select2-results__option {
    color: #f0f0f0 !important;
    background: #000040 !important;
    padding: 8px 12px !important;
    transition: background 0.15s ease !important;
}

/* Option survolée (hover) */
.select2-results__option--highlighted,
.select2-results__option:hover,
.select2-container--bootstrap-5 .select2-results__option--highlighted,
.select2-container--bootstrap-5 .select2-results__option:hover {
    background: rgba(13,202,240,0.3) !important;
    color: #ffffff !important;
}

/* Option sélectionnée */
.select2-results__option--selected,
.select2-results__option[aria-selected="true"],
.select2-container--bootstrap-5 .select2-results__option--selected,
.select2-container--bootstrap-5 .select2-results__option[aria-selected="true"] {
    background: rgba(13,202,240,0.2) !important;
    color: #0dcaf0 !important;
}

/* Option désactivée */
.select2-results__option--disabled,
.select2-results__option[aria-disabled="true"],
.select2-container--bootstrap-5 .select2-results__option--disabled {
    color: #666666 !important;
    background: #000030 !important;
}

/* Message "Aucun résultat" */
.select2-results__message,
.select2-container--bootstrap-5 .select2-results__message {
    color: #cccccc !important;
    background: #000040 !important;
    padding: 8px 12px !important;
}

/* Groupe d'options */
.select2-results__group,
.select2-container--bootstrap-5 .select2-results__group {
    color: #0dcaf0 !important;
    font-weight: 600 !important;
    background: #000030 !important;
    padding: 8px 12px !important;
}

/* Select2 multiple - tags */
.select2-selection--multiple .select2-selection__choice,
.select2-container--bootstrap-5 .select2-selection--multiple .select2-selection__choice {
    background: #0dcaf0 !important;
    color: #000030 !important;
    border: none !important;
    padding: 4px 8px !important;
    margin: 4px !important;
    border-radius: 4px !important;
}

.select2-selection--multiple .select2-selection__choice__remove,
.select2-container--bootstrap-5 .select2-selection--multiple .select2-selection__choice__remove {
    color: #000030 !important;
    margin-right: 6px !important;
}

.select2-selection--multiple .select2-selection__choice__remove:hover {
    color: #dc3545 !important;
}

/* Focus sur le container */
.select2-container--focus .select2-selection,
.select2-container--bootstrap-5.select2-container--focus .select2-selection {
    border-color: #0dcaf0 !important;
    box-shadow: 0 0 0 0.2rem rgba(13, 202, 240, 0.25) !important;
}

/* Ouvrir vers le haut si besoin */
.select2-container--open .select2-dropdown--above {
    border-bottom: 1px solid rgba(255,255,255,0.2) !important;
}

.select2-container--open .select2-dropdown--below {
    border-top: 1px solid rgba(255,255,255,0.2) !important;
}

/* ============================================
   FORM SELECTS & INPUTS - STYLES GLOBAUX
   ============================================ */

/* Tous les form-control et form-select (Bootstrap) */
.form-control,
.form-select,
input[type="text"],
input[type="email"],
input[type="password"],
input[type="number"],
input[type="date"],
input[type="datetime-local"],
input[type="time"],
textarea,
select {
    background: #000040 !important;
    color: #f0f0f0 !important;
    border: 1px solid rgba(255,255,255,0.2) !important;
}

.form-control:focus,
.form-select:focus,
input:focus,
textarea:focus,
select:focus {
    background: #000050 !important;
    color: #f0f0f0 !important;
    border-color: #0dcaf0 !important;
    box-shadow: 0 0 0 0.2rem rgba(13, 202, 240, 0.25) !important;
}

/* Options des select standards */
.form-select option,
select option {
    background: #000030 !important;
    color: #f0f0f0 !important;
}

/* Placeholder */
.form-control::placeholder,
input::placeholder,
textarea::placeholder {
    color: #999999 !important;
}

/* Disabled */
.form-control:disabled,
.form-select:disabled,
input:disabled,
textarea:disabled,
select:disabled {
    background: #000030 !important;
    color: #666666 !important;
    opacity: 0.6;
}
