.icon {
  width: 1em;           /* la largeur suit la taille du texte parent */
  height: 1em;          /* la hauteur suit la largeur, ratio conservé */
  fill: currentColor;    /* couleur = couleur du texte */
  vertical-align: middle;
}

.icon_wrapper {
  position: relative;
  display: inline-block;
  width: 1.25em;   /* fixe la zone de l'icône */
  height: 1.25em;
text-decoration: none;
}

.icon_badge {
  width: 100%;
  height: 100%;
  fill: currentColor;
  display: block;
}

.task_badge {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  background: red;
  color: white;
  border-radius: 50%;
  padding: 4px 6px;
  font-size: 10px;
  line-height: 1;
  text-align: center;
  pointer-events: none;
}


.clickable{
    cursor: pointer;
}

.margetop60{
    margin-top: 60px;
}

.margetop100{
    margin-top: 100px;
}


body {
	background-color: #FDFFFE;
	font-family: 'Roboto', sans-serif;
	font-size: 0.8rem;
	
}


a{
    text-decoration: none;
	
}

li {
    list-style: none;
}

h1{
    font-size: 40px;
    color: #2980b9;
}


.editpwd-page h1,h2{
    color: #2e6da4;
}

.editpwd-page h1{
    font-size: 45px;
}


.editpwd-page h2{
    font-size: 40px;
    font-weight: bold;
}

.editpwd-page form{
    width: 400px;
    margin: auto;
}

.editpwd-page input{
    margin-bottom: 20px;
}

.input-container {
    position: relative;
    margin-bottom: 10px;
}

.show-old-pwd,.show-new-pwd {
    position: absolute;
    top: 0px;
    right: -35px;
}


/*  +++++++ fin edit pwd ++++++   */



/*+++++++++  Debut nouvel utilisateur ***********/

.user-page form{
    width: 400px;
}


/*+++++++++  fin nouvel utilisateur ***********/

.table-fixed tbody {
    height: 200px;
    overflow-y: auto;
    width: 100%;
}

.table-fixed thead,
.table-fixed tbody,
.table-fixed tr,
.table-fixed td,
.table-fixed th {
    display: block;
}

.table-fixed tbody td,
.table-fixed tbody th,
.table-fixed thead > tr > th {
    float: left;
    position: relative;
	
    &::after {
	content: '';
	clear: both;
	display: block;
}
}
.parent-container {
	display: flex;
}

td {
	font-size:0.7rem;
	font-family: 'Roboto', sans-serif;
}

.fixTableHead {
	overflow-y: auto;
}


table {
	border-collapse: collapse;        
	width: 100%;
}
th,
td {
	padding: 8px 15px;
	border: 0px solid #555;
    max-width: 400px;
    overflow-wrap: break-word;
    word-wrap: break-word;
}
.custom-panel {
    box-shadow: 0 0 20px rgba(0, 0, 0, 0.3); 
}


.fixTableHead {
	overflow-y: auto;
	max-height: 50vh;
}
.fixTableHead thead th {
	position: sticky;
	top: 0;
}
.table {
	border-collapse: collapse;        
	width: 100%;
}
.th,
.td {
	padding: 8px 15px;
	border: 0px solid #404040;
}


/* Définition de la taille de police pour le formulaire */
.form_2 {
	font-family: 'Roboto', sans-serif;
	font-size: 0.8rem;
}

.navbar-nav {
	margin-top: auto; /* Pour centrer verticalement les éléments dans la barre de navigation */
	margin-bottom: auto;
}

.navbar-toggler {
	margin-bottom: auto; /* Pour centrer verticalement le bouton de bascule (toggle button) */
}
.navbar-nav .nav-link{
	font-size: 0.8rem;
	color: #fff;
	
}
.navbar-nav .nav-link2{
	font-size: 0.8rem;
	color: #1D4999;
	
}
.dropend .dropdown-toggle{
	color: #1D4999;
	margin-left: auto;
}
.dropdown-item:hover{
	background-color: orangered;
	color: #fff;
	margin-left: auto;
	
}
.dropdown-menu:hover{
	display: block;
	color: #1D4999;
	font-size: 0.8rem;
	
	
}

.col-form-label{
	font-weight:bold;
	color:#1D4999;
	font-family: 'Roboto', sans-serif;
	
}


.auto-height {
    height: auto;
    min-height: 10vh; 
    min-height: 25vh;}
	
.card_shad{
  border-radius: 8px;
  box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
  }

.no-border {
    border: none !important;
    box-shadow: none !important;
    background-color: transparent !important;
    padding-left: 0;
}




.custom-table tbody tr:nth-child(odd) {
    background-color: #FFFFFF;
	color:darkblue;
}

.custom-table tbody tr:nth-child(even) {
    background-color: #f7f7f7;
	color:darkblue;
}

.custom-table tbody tr:hover {
    background-color: #bbdefb;
	color:darkblue;
}

.custom-table thead th.custom-header {
    background-color: #e3f2fd;
    color: darkblue;
    font-weight: bold;
}


.custom-table tr.cloture {
    background-color: #aef7e2 !important;
}

.custom-table tr.echu {
    background-color: #ff99a3 !important;
}

.custom-table tr.ouvert {
    background-color: #eb5e5e75 !important;
}


.custom-table td.nowrap {
    white-space: nowrap;
}

.titre {
  font-size: 2.25rem; 
  text-align: center;
}

@media (max-width: 768px) {
  .titre {
    font-size: 1.75rem; 
  }
}

@media (max-width: 480px) {
  .titre {
    font-size: 1.25rem; 
  }
}


.postit-card {
    background-color: #fff8b3; /* Jaune doux */
    border: none;
    border-left: 6px solid #f7d600;
    box-shadow: 2px 2px 8px rgba(0, 0, 0, 0.2);
    border-radius: 8px;
    transform: rotate(-1deg);
    transition: transform 0.2s ease;
}

.postit-card:hover {
    transform: rotate(0deg) scale(1.02);
    box-shadow: 4px 4px 12px rgba(0, 0, 0, 0.25);
}

.postit-card .card-body {
    font-family: 'Comic Sans MS', cursive, sans-serif;
    color: #333;
}



        .kpi-container {
            display: flex;
            flex-wrap: wrap;
            justify-content: center;
            gap: 20px;
        }

        .kpi-card {
            flex: 1 1 250px;
            max-width: 280px;
            background-color: white;
            border-radius: 12px;
            box-shadow: 0 4px 10px rgba(0,0,0,0.1);
            padding: 20px 25px;
            text-align: center;
        }

        .kpi-title {
            font-size: 1rem;
            color: #555;
            margin-bottom: 10px;
        }

        .kpi-value {
            font-size: 1.5rem;
            font-weight: bold;
            color: #2E86C1;
        }

/* === HEADER STICKY (desktop) === */
@media (min-width: 992px) {
  .sticky-search {
	  position: sticky;
    top: 0;
    z-index: 100;
    background: #FDFFFE;
  }
}

/* === TRACKER GLOBAL === */
.tracker {
  position: relative;
  display: flex;
  justify-content: space-between;
  margin-top: 40px;
  flex-wrap: nowrap;
  width: 100%;
}

/* === ÉTAPES HORIZONTALES (DESKTOP) === */
.step {
  text-align: center;
  position: relative;
  flex: 1;
}

.step:not(:last-child)::after {
  content: '';
  position: absolute;
  top: 20px;
  right: -50%;
  width: 100%;
  height: 4px;
  background-color: #dee2e6;
  z-index: 0;
}

.step.completed:not(:last-child)::after {
  background-color: #198754;
}

.step.active:not(:last-child)::after {
  background-color: #0d6efd;
  animation: progressLine 1s ease-in-out;
}

/* Animation de progression horizontale */
@keyframes progressLine {
  from { width: 0; }
  to { width: 100%; }
}

/* === CERCLES === */
.circle {
  width: 42px;
  height: 42px;
  border-radius: 50%;
  background-color: #dee2e6;
  margin: 0 auto 8px;
  display: flex;
  justify-content: center;
  align-items: center;
  color: white;
  font-size: 1rem;
  position: relative;
  z-index: 1;
}

.circle svg {
  display: block;
}

/* Couleurs selon l’état */
.step.completed .circle { background-color: #198754; }
.step.active .circle { background-color: #0d6efd; animation: pulse 1.2s infinite; }
.step.canceled .circle { background-color: #dc3545; }

/* Effet de pulsation sur la pastille active */
@keyframes pulse {
  0% { box-shadow: 0 0 0 0 rgba(13,110,253, 0.7); }
  70% { box-shadow: 0 0 0 8px rgba(13,110,253, 0); }
  100% { box-shadow: 0 0 0 0 rgba(13,110,253, 0); }
}

/* === TEXTES === */
.label {
  font-size: 0.9rem;
  font-weight: 500;
}

.date {
  font-size: 0.8rem;
  color: #6c757d;
}

/* === TABLETTES : disposition semi-horizontale === */
@media (min-width: 577px) and (max-width: 991px) {
  .tracker {
    flex-wrap: wrap;
    justify-content: space-around;
    gap: 30px;
  }

  .step {
    flex: 0 0 calc(50% - 30px); /* 2 colonnes */
    display: flex;
    flex-direction: row;
    align-items: center;
    text-align: left;
    position: relative;
  }

  .circle {
    margin-right: 12px;
    flex-shrink: 0;
  }

  .step:not(:last-child)::after {
    content: '';
    position: absolute;
    top: 20px;
    left: 21px;
    width: 4px;
    height: calc(100% - 20px);
    background-color: #dee2e6;
  }

  .step.completed:not(:last-child)::after {
    background-color: #198754;
  }
}

/* === 📱 MODE MOBILE : VERTICAL === */
@media (max-width: 576px) {
  .tracker {
    flex-direction: column;
    align-items: flex-start;
    gap: 18px;
  }

  .step {
    display: flex;
    flex-direction: row;       /* icône à gauche, texte à droite */
    align-items: center;       /* ⬅️ aligne le centre du texte avec le centre du cercle */
    text-align: left;
    position: relative;
  }

  .circle {
    flex-shrink: 0;
    margin-right: 12px;
    position: relative;
    z-index: 2;
  }

  /* Conteneur texte : pour gérer le label + date */
  .step .text-content {
    display: flex;
    flex-direction: column;
    justify-content: center;   /* centre verticalement les 2 lignes */
    gap: 10px;                 /* ⬅️ espace entre label et date */
  }

  .label {
    font-size: 0.9rem;
    font-weight: 500;
    text-align: left;
    line-height: 1.2;
  }

  .date {
    font-size: 0.8rem;
    color: #6c757d;
    text-align: left;
    line-height: 1.2;
  }

  /* Ligne verticale dynamique */
  .step:not(:last-child)::after {
    content: '';
    position: absolute;
    left: 21px;                        /* alignée avec le centre du cercle */
    top: calc(42px + 2px);             /* commence sous le cercle */
    width: 4px;
    height: calc(100% - 42px);         /* s’adapte à la hauteur du contenu */
    background-color: #dee2e6;
    z-index: 1;
  }

  .step.completed:not(:last-child)::after {
    background-color: #198754;
  }
}

/* === TRANSITIONS FLUIDES === */
.tracker, .step, .circle {
  transition: all 0.3s ease-in-out;
}




.outline-btn {
  border: 1px solid var(--custom-color);
  color: var(--custom-color);
  background-color: transparent;
  transition: all 0.2s ease-in-out;
}

.outline-btn:hover {
  background-color: var(--custom-color);
  color: #fff;
}


/* Tri visuel des colonnes */
th.asc::after {
  content: " ▲";
  color: #007bff;
  font-size: 0.8em;
}
th.desc::after {
  content: " ▼";
  color: #007bff;
  font-size: 0.8em;
}
th {
  transition: color 0.2s ease;
}
th:hover {
  color: #007bff;
}
