/* -------------------------------------------------------------------------- */
/*              INSERTION DES POLICES DES PAGES                               */
/* -------------------------------------------------------------------------- */
@charset "UTF-8";
@import url("https://fonts.googleapis.com/css?family=Open+Sans:300,300i,400,400i,600,600i,700,700i|Roboto:300,300i,400,400i,500,500i,600,600i,700,700i|Poppins:300,300i,400,400i,500,500i,600,600i,700,700i");
@import url("https://fonts.googleapis.com/css?family=Rubik:400,400i,500,500i,600,700&display=swap");
@import url("https://fonts.googleapis.com/css?family=Open+Sans:300,300i,400,400i,700,700i|Montserrat:300,400,500,700");
@import url("https://fonts.googleapis.com/css?family=Open+Sans:300,400,500,600,700%7cPoppins:300,400,500,600,700,800,900&amp;display=swap");
@import url("https://fonts.googleapis.com/css2?family=Roboto:ital,wght@0,100;0,300;0,400;0,500;0,700;0,900;1,100;1,300;1,400;1,500;1,700;1,900&family=Raleway:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,100;1,200;1,300;1,400;1,500;1,600;1,700;1,800;1,900&family=Ubuntu:ital,wght@0,300;0,400;0,500;0,700;1,300;1,400;1,500;1,700&display=swap");

/*-- ------------------------------------------------------------------------------------- --
| TRAITEMENT DES FONT-FAMILY
| ---------------------------------------------------------------------------------------- --
|
|*/ @import url("bootstrap/bootstrap.min.css");                                            /*
|*/ @import url("bootstrap/bootstrap-grid.min.css");                                       /*
|*/ @import url("bootstrap/bootstrap-5-grid.min.css");                                     /*
|*/ @import url("materialdesignicons/materialdesignicons.css.map");                        /*
|*/ @import url("materialdesignicons/materialdesignicons.min.css");                        /*
|*/ @import url("materialdesignicons/materialdesignicons.min.css.map");                    /*
|*/ @import url("fonts/font-awesome/css/all.min.css");                                     /*
|/* @import url("fonts/font-awesome-pro/css/all.min.css");                                 /*
|*/ @import url("fonts/boxicons/css/animations.css");                                      /*
|*/ @import url("fonts/boxicons/css/boxicons.min.css");                                    /*
|*/ @import url("fonts/boxicons/css/transformations.css");                                 /*
|*/ @import url("fonts/bootstrap/bootstrap-icons.min.css");                                /*
|*/ @import url("fonts/tabler-icons/tabler-icons.min.css");                                /*
|*/ @import url("../js/vendors/aos/aos.css");                                              /*
|*/ @import url("../js/vendors/flatpickr/flatpickr.min.css");                               /*
|*/ @import url("../js/vendors/simplebar/simplebar.min.css");                               /*
|/*                                                                                        /*
|/*                                                                                        /*
| ---------------------------------------------------------------------------------------- */




/*-- ------------------------------------------------------------------------------------- --
| INSERTION DES FEUILLES DE STYLE
| ---------------------------------------------------------------------------------------- --
|
|*/                         /*
|*/ @import url("style-menus-entete-pages.css");                                           /*
|*/ @import url("theme.css");                                                              /*
|*/ @import url("style-overlays.css");                                                     /*
|*/ @import url("styles-mediaquery.css");                                                  /*
|*/ @import url("style-boutons.css");                                                      /*
|/*                                                                                        /*
|*/ @import url("../js/param-signatures/css/style-pave-signature.css");                    /*
|/*                                                                                        /*
|*/ @import url("style-presentation.css");                                                 /*
|*/ @import url("formulaires.css");                                                        /*
|*/ @import url("modalForms.css");                                                         /*
|*/ @import url("style-forms-recherches.css");                                             /*
|/*                                                                                        /*
|/*                                                                                        /*
|*/ @import url("style-feuille.css");                                                      /*
|*/ @import url("themes-tables.css");                                                      /*
|*/ @import url("specials-checkbox.css");                                                  /*
|*/ @import url("style-menus-pieds-pages.css");                                            /*
|*/ @import url("combinaison-css.css");                                                    /*
|*/ @import url("style-app-todo.css");                                                     /*
|*/ @import url("style-chatbox.css");                                                      /*
|*/ @import url("style-game-words.css");                                                   /*
|*/ @import url("dividers.css");                                                           /*
|*/ @import url("variables-styles.css");                                                   /*
|/*                                                                                        /*
| ---------------------------------------------------------------------------------------- */






/* Fonts
:root {
    --default-font: "Roboto", system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", "Liberation Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
    --heading-font: "Raleway", sans-serif;
    --nav-font: "Poppins", sans-serif;
} */

/* Global Colors - The following color variables are used throughout the website. Updating them here will change the color scheme of the entire website */
:root {
    --background-color: #ffffff;
    /* Background color for the entire website, including individual sections */
    --default-color: #666666;
    /* Default color used for the majority of the text content across the entire website */
    --heading-color: #334242;
    /* Color for headings, subheadings and title throughout the website */
    --accent-color: #1b5e9a;
    /* Accent color that represents your brand on the website. It's used for buttons, links, and other elements that need to stand out */
    --surface-color: #ffffff;
    /* The surface color is used as a background of boxed elements within sections, such as cards, icon boxes, or other elements that require a visual separation from the global background. */
    --contrast-color: #ffffff;
    /* Contrast color for text, ensuring readability against backgrounds of accent, heading, or default colors. */
}

/* Nav Menu Colors - The following color variables are used specifically for the navigation menu. They are separate from the global colors to allow for more customization options */
:root {
    --nav-color: #ffffff;
    /* The default color of the main navmenu links */
    --nav-hover-color: #ffffff;
    /* Applied to main navmenu links when they are hovered over or active */
    --nav-mobile-background-color: #ffffff;
    /* Used as the background color for mobile navigation menu */
    --nav-dropdown-background-color: #ffffff;
    /* Used as the background color for dropdown items that appear when hovering over primary navigation items */
    --nav-dropdown-color: #666666;
    /* Used for navigation links of the dropdown items in the navigation menu. */
    --nav-dropdown-hover-color: #1b5e9a;
    /* Similar to --nav-hover-color, this color is applied to dropdown navigation links when they are hovered over. */
}

/* Color Presets - These classes override global colors when applied to any section or element, providing reuse of the sam color scheme. */

.light-background {
    --background-color: #eff4f5;
    --surface-color: #ffffff;
}

.dark-background {
    --background-color: #1f2b2c;
    --default-color: #ffffff;
    --heading-color: #ffffff;
    --surface-color: #34484a;
    --contrast-color: #ffffff;
}

/* Smooth scroll */
:root {
    scroll-behavior: smooth;
}


/*--------------------------------------------------------------
# General Styling & Shared Classes
--------------------------------------------------------------*/
body {

  margin: 0;
  font-family: var(--css-body-font-family);
  font-size: var(--css-body-font-size);
  font-weight: var(--css-body-font-weight);
  line-height: var(--css-body-line-height);
  color: var(--css-body-color);
  text-align: var(--css-body-text-align);
  background-color: var(--css-body-bg);
  -webkit-text-size-adjust: 100%;
  -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
}


a {
  color: var(--accent-color);
  text-decoration: none;
  transition: 0.3s;
}

a:hover {
  color: color-mix(in srgb, var(--accent-color), transparent 25%);
  text-decoration: none;
}

h1,
h2,
h3,
h4,
h5,
h6 {
  color: var(--heading-color);
  font-family: var(--heading-font);
}




i.livicon-evo,
span.livicon-evo {
  display: inline-block;
}

.mdi {
  font-size: 1.5rem !important;  
}


.fa-data-icon::before {
  content: attr(data-icon);

}




/* Global Header on Scroll
------------------------------*/
.scrolled .header {
    --background-color: rgba(0, 0, 0, 0.8);
    box-shadow: 0px 0 18px rgba(0, 0, 0, 0.1);
}



/*--------------------------------------------------------------------------/*
/* Class des couleur du logo Hafani, vert(green), bleu(blue), marron(brown) /*
/*--------------------------------------------------------------------------/*
|*/     .bg_green     { background-color: #25bd27 !important; }             /*
|*/     .bg_blue      { background-color: #27324b !important; }             /*
|*/     .bg_brown     { background-color: #a32c2c !important; }             /*
|*/                                                                         /*
|*/     .color_green  { color: #25bd27 !important; }                        /*
|*/     .color_blue   { color: #27324b !important; }                        /*
|*/     .color_brown  { color: #a32c2c !important; }                        /*
|*--------------------------------------------------------------------------/*
|*--------------------------------------------------------------------------*/



.content__draggable {
    padding: 0;
    padding-top: 2rem !important;
    padding-bottom: 2rem !important;
    max-height: 500px !important;
    overflow: hidden;
    scrollbar-width: none;
    scroll-behavior: smooth;
    overflow-y: scroll;
    touch-action: pan-y;
    position: relative;
}

.draggable,
.maintenance-game-modal .chip-highlighted {
    cursor: grab;
    user-select: none;
    touch-action: none;
    will-change: left, top; /* Optimisation matérielle pour le déplacement */
}

.draggable:active,
.maintenance-game-modal .chip-highlighted:active {
    cursor: grabbing;
    box-shadow: 0 0 25px rgba(6, 182, 212, 0.9); /* Effet lumineux accentué au clic */
    transform: scale(1.05); /* Légère augmentation de taille au survol actif */
}





.content__draggable .content-widgets {
    position: relative;
    margin: 0;
    margin: -2rem auto -1.75rem auto;
    width: 100%;
    min-height: 600px;
    overflow: hidden;
}



/*--------------------------------------------------------------
# Preloader
--------------------------------------------------------------*/
#preloader {
    position: fixed;
    inset: 0;
    z-index: 999999;
    overflow: hidden;
    background: var(--background-color);
    transition: all 0.6s ease-out;
}

#preloader:before {
    content: "";
    position: fixed;
    top: calc(50% - 30px);
    left: calc(50% - 30px);
    border: 6px solid #ffffff;
    border-color: var(--accent-color) transparent var(--accent-color) transparent;
    border-radius: 50%;
    width: 60px;
    height: 60px;
    animation: animate-preloader 1.5s linear infinite;
}

@keyframes animate-preloader {
    0% {
        transform: rotate(0deg);
    }

    100% {
        transform: rotate(360deg);
    }
}




/* DESIGN UNIVERSEL DES SQUELETTES DE CHARGEMENT */
.skeleton-wrapper {
    display: flex;
    flex-direction: column;
    gap: 12px;
    width: 100%;
    padding: 5px;
    box-sizing: border-box;
}

.skeleton-item {
    display: flex;
    align-items: center;
    gap: 16px;
    padding: 16px;
    background: #ffffff;
    border: 1px solid #e2e8f0;
    border-radius: 12px;
    width: 100%;
    box-sizing: border-box;
}

/* Les blocs gris qui simulent le texte et les formes */
.skeleton-blob {
    background: #e2e8f0;
    border-radius: 6px;
    animation: skeletonPulse 1.5s infinite ease-in-out;
}

/* Animation fluide de pulsation sémantique */
@keyframes skeletonPulse {
    0% { opacity: 0.5; }
    50% { opacity: 1; }
    100% { opacity: 0.5; }
}




.isTop-fixed, .onScroll-fixed {
  position: fixed !important;
  top: 65px;
  left: 0;
  right: 0;
  transition: all 0.5s;
  height: 60px;
  background-color: rgba(16, 12, 76, 0.8);
  box-shadow: 0px 2px 20px rgba(1, 41, 112, 0.1);
  padding: 10px;
  z-index: 99997;
}

.isTop-fixed .form-fixed,
.onScroll-fixed .form-fixed {
  width: calc(100%) !important;
  margin: 0 auto !important;
}




.card.overflow-hidden .scrollbar-overlay {
  scrollbar-width: none !important;
}

.effet-ouvrier {

  background-image: url("../../fichiers-config/images/icons/e_securite.gif");
  background-repeat: no-repeat;
  background-position: center center;
  background-size: calc(60%);
  transition: opacity 500ms;
  cursor: not-allowed !important;
}

.progress-chargement {

  background-image: url("../../fichiers-config/images/icons/3Dcharge.gif");
  background-repeat: no-repeat;
  background-position: center center;
  background-size: calc(30%);
  transition: opacity 500ms;
  cursor: not-allowed !important;
}





/*--------------------------------------------------------------
# DEFINITION DE PASTILLE D'ACTIVITE UTILISATEUR
--------------------------------------------------------------*/
.user-avatar.user-statut {
    position: relative;
    display: inline-block;
}

.user-avatar.user-statut::after {
    content: "";
    position: absolute;
    bottom: 2px;
    right: 2px;
    width: 12px;
    height: 12px;
    border-radius: 50%;
    border: 2px solid var(--css-light);
    box-shadow: 0 0 0 0 rgba(255, 255, 255, 0.7);

    /* Application de l'animation de clignotement/pulsation régulier */
    animation: status-pulse 2s infinite ease-in-out;
}


/* En ligne : Vert */
.user-avatar.user-statut.online::after {
    background-color: #2ecc71;
    --pulse-color: rgba(46, 204, 113, 0.7);
}

/* Absent (3 à 59 min) : Orange */
.user-avatar.user-statut.away::after {
    background-color: #e67e22;
    --pulse-color: rgba(230, 126, 34, 0.7);
}

/* Occupé : Rouge */
.user-avatar.user-statut.busy::after {
    background-color: #e74c3c;
    --pulse-color: rgba(231, 76, 60, 0.7);
}

/* Hors ligne : Gris clair */
.user-avatar.user-statut.offline::after {
    background-color: #95a5a6;
    --pulse-color: rgba(149, 165, 166, 0.4);
}


/* 4. L'animation de pulsation (clignotement doux et professionnel) */
@keyframes status-pulse {
    0% {
        transform: scale(0.95);
        box-shadow: 0 0 0 0 var(--pulse-color);
    }
    70% {
        transform: scale(1);
        box-shadow: 0 0 0 6px rgba(0, 0, 0, 0);
    }
    100% {
        transform: scale(0.95);
        box-shadow: 0 0 0 0 rgba(0, 0, 0, 0);
    }
}





/*--------------------------------------------------------------
# DEFINITION D'UNE CLASSE DE TRADUCTION DU MOT
--------------------------------------------------------------*/
.fasiri.active {
    position: relative;
    padding-right: 1rem;
    margin-bottom: 1.25rem;
}


.fasiri::after {
  content: attr(data-fasiri);
  position: absolute;
  top: calc(90%);
  left: 0;
  color: #00a862 !important;
  font-weight: 400 !important;
  font-size: 0.75rem !important;
  pointer-events: none;
  text-transform: none;
  width: calc(100% + 1rem);
  display: none;

}

.fasiri.active::after {
    font-weight: 600;
    width: calc(100% + 1rem);
    display: block;
}




/*--------------------------------------------------------------
# Disable aos animation delay on mobile devices
--------------------------------------------------------------*/
@media screen and (max-width: 768px) {
    [data-aos-delay] {
        transition-delay: 0 !important;
    }

    .overlays, body .body-chargement {
        background-size: calc(60%) !important;
    }
}




@keyframes borderotate {
  from {
    transform: rotate(0deg) scale(1);
  }
  
  to {
    transform: rotate(360deg) scale(1);
  }
}


.dropdown-menu-styled {
    position: relative;
}

.dropdown-menu-styled .dropdown-item {
    padding: 0.5rem 1rem !important;
    border-bottom: 1px solid var(--css-gray-200);
}

.dropdown-menu-styled > :first-child {
    border-top: none;
}

.dropdown-menu-styled > :last-child {
    border-bottom: none;
}


.dropdown-menu-styled .dropdown-item:hover,
.dropdown-menu-styled .dropdown-item:focus,
.dropdown-menu-styled .dropdown-item.active,
.dropdown-menu-styled .dropdown-item.active:hover,
.dropdown-menu-styled .dropdown-item.active:focus,
.dropdown-menu-styled .dropdown-item:active {
  
    text-decoration: none;
    position: relative;
    color: var(--css-danger);
    font-weight: 700;
    text-transform: uppercase;
    text-shadow: 0 0 5px rgb(255, 255, 255), 
            0 0 10px rgb(255, 255, 255), 
            0 0 15px rgb(255, 255, 255), 
            0 0 10px rgb(255, 17, 119), 
            0 0 10px rgb(255, 17, 119), 
            0 0 10px rgb(255, 17, 119);
    margin-right: 7px;
    border: 2px solid transparent;
    border-image: conic-gradient(
                        from 0,
                        #d53e33 0deg 90deg,
                        #fbb300 90deg 180deg,
                        #377af5 180deg 270deg,
                        #399953 270deg 360deg
                    ) 1 stretch;

}

.dropdown-menu-styled .dropdown-item.disabled,
.dropdown-menu-styled .dropdown-item[disabled],
.dropdown-menu-styled .dropdown-item:disabled {
  color: var(--css-dropdown-link-disabled-color);
  pointer-events: none;
  background-color: transparent;
  cursor: not-allowed;
}

.dropdown-menu-styled .dropdown-item.selected {
    position: relative;
    padding-right: 40px;
    background-color: var(--css-success-bg-subtle);
    font-weight: 800;
    text-transform: uppercase;
    border: 2px solid transparent;
    border-image: conic-gradient(
                        from 0,
                        #d53e33 0deg 90deg,
                        #fbb300 90deg 180deg,
                        #377af5 180deg 270deg,
                        #399953 270deg 360deg
                    ) 1 stretch;
}

.dropdown-menu-styled .dropdown-item.selected::after {
    
    content: "";
    position: absolute;
    top: 50%;
    right: 0;
    transform: translateY(-50%); /* Centre verticalement à droite */
    width: 40px;
    height: 28px;
    background-image: url("../../fichiers-config/images/icons/encoche-vert.png");
    background-size: contain; /* Adapte l'image aux 30px sans la déformer */
    background-repeat: no-repeat;
    background-position: center;

}


