/* Anim sur roster manager (only car ciblé, a voir plus tard pour ouvrir au reste) */

/* --- Structure de base --- */
.roster-container {
  position: relative;
  /* overflow: hidden; */
  height: calc(100vh - 90px);
  width: 100%;
}

/* ============================================
   VUE ANIMÉE - BASE
   ============================================ */
.view-animate {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    transform: translateX(0);
    opacity: 1;
}

/* Public view - désactiver quand vide pour ne pas bloquer les interactions */
.public-view:empty {
    display: none;
    pointer-events: none;
}

/* ============================================
   ÉTATS DES VUES (géré par la directive)
   ============================================ */

/* Vue active : visible et centrée */
.view-animate.view-active {
    transform: translateX(0);
    opacity: 1;
    z-index: 5;
}

/* Vue entrante : cachée par défaut */
.view-animate.view-entering {
    opacity: 0;
    z-index: 10;
}

/* Vue sortante : commence visible */
.view-animate.view-leaving {
    z-index: 15;
}

/* ============================================
   SLIDE LEFT (List → Add)
   ============================================ */

/* Vue SORTANTE : list glisse vers la gauche */
.roster-container.slide-left .view-animate.view-leaving {
    animation: slideOutToLeft 0.4s ease-in-out forwards;
}

/* Vue ENTRANTE : add commence à droite, puis glisse au centre */
.roster-container.slide-left .view-animate.view-entering {
    transform: translateX(100%);
    opacity: 1;
    animation: slideInFromRight 0.4s ease-in-out 0.4s forwards;
}

@keyframes slideOutToLeft {
    0% {
        transform: translateX(0);
        opacity: 1;
    }
    100% {
        transform: translateX(-100%);
        opacity: 0;
    }
}

@keyframes slideInFromRight {
    0% {
        transform: translateX(100%);
        opacity: 1;
    }
    100% {
        transform: translateX(0);
        opacity: 1;
    }
}

/* ============================================
   SLIDE RIGHT (Add → List)
   ============================================ */

/* Vue SORTANTE : add glisse vers la droite */
.roster-container.slide-right .view-animate.view-leaving {
    animation: slideOutToRight 0.4s ease-in-out forwards;
}

/* Vue ENTRANTE : list commence à gauche, puis glisse au centre */
.roster-container.slide-right .view-animate.view-entering {
    transform: translateX(-100%);
    opacity: 1;
    animation: slideInFromLeft 0.4s ease-in-out 0.4s forwards;
}

@keyframes slideOutToRight {
    0% {
        transform: translateX(0);
        opacity: 1;
    }
    100% {
        transform: translateX(100%);
        opacity: 0;
    }
}

@keyframes slideInFromLeft {
    0% {
        transform: translateX(-100%);
        opacity: 1;
    }
    100% {
        transform: translateX(0);
        opacity: 1;
    }
}

/* ============================================
   FADE IN (Par défaut)
   ============================================ */

.roster-container.fade-in .view-animate.view-leaving {
    animation: fadeOut 0.3s ease-in forwards;
}

.roster-container.fade-in .view-animate.view-entering {
    opacity: 0;
    animation: fadeIn 0.3s ease-out 0.3s forwards;
}

@keyframes fadeOut {
    0% {
        opacity: 1;
    }
    100% {
        opacity: 0;
    }
}

@keyframes fadeIn {
    0% {
        opacity: 0;
    }
    100% {
        opacity: 1;
    }
}

/* ------------- card-left-to-right ------------ */
/* .inscription-steps-container.card-left-to-right.ng-enter {
    animation: slideInFromRight 0.4s ease-out both;
}

.inscription-steps-container.card-left-to-right.ng-leave {
    animation: slideOutToLeft 0.4s ease-in both;
} */

/* Tu peux faire aussi card-right-to-left etc. */
/* @keyframes slideInFromRight {
    from { transform: translateX(100%); opacity: 0; }
    to   { transform: translateX(0);    opacity: 1; }
}

@keyframes slideOutToLeft {
    from { transform: translateX(0);    opacity: 1; }
    to   { transform: translateX(-100%); opacity: 0; }
} */
/* --------------- Animation de sortie de la carte --------------- */
/* Lorsqu'on ajoute la classe "card-exit", la carte s'efface et se translate */


/* --------------- Animation d'entrée de la carte --------------- */
/* Angular Animate ajoute ng-enter et ng-enter-active lors de l'insertion */




.form-login-disappear{
    transform: translate(0,-100vh);
    opacity: 0;
    transition: all 0.2s ease-in-out;
}

.loading-message{
    margin-top: 3rem;
/*     opacity: 1 !important;
    transition: opacity 0.5s ease-in-out ; */
}

.loading-message.ng-hide {
  opacity: 0;
}

.loading-message.ng-hide-remove {
  opacity: 0;
}

.loading-message.ng-hide-remove-active {
  opacity: 1;
  transition: opacity 0.5s ease-in-out;
}

.loading-message.ng-hide-add {
  opacity: 1;
}

.loading-message.ng-hide-add-active {
  opacity: 0;
  transition: opacity 0.5s ease-in-out;
}