/* .nav */
/* Conteneur principal de la barre de navigation (fond, largeur, z-index). */
.nav {
  top: 0;
  z-index: 1000;
  background: var(--primary-600);
  color: var(--card);
  box-shadow: 0 2px 10px rgba(0,0,0,.08);
  width: 100%;
}

/* .no-nav / body.no-nav */
/* Permet de masquer totalement la nav dans certains écrans/pages. */
.no-nav .nav,
body.no-nav .nav {
  display: none;
}
 

/*===============
NAV — STRUCTURE
================*/

/* .nav__inner */
/* Grille interne (conteneur centré + espaces). */
.nav__inner {
  max-width: 1200px;
  margin: 0 auto;
  padding: .6rem 1rem;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: .75rem;
}
/* Tablette (501–820) : limite la largeur utile. */
@media (min-width: 501px) and (max-width: 820px){
  .nav__inner { max-width: 820px; }
}
/* Mobile (≤500) : passe en colonne et centre. */
@media (max-width: 500px){
  .nav__inner{
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: .5rem;
  }
}

/* .nav__brand */
/* Zone logo + titre. */
.nav__brand {
  display: flex;
  align-items: center;
  gap: .75rem;
}
/* Mobile (≤500) : empile et centre. */
@media (max-width: 500px){
  .nav__brand{
    width: 100%;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: .5rem;
  }
}

/* .nav__logo */
/* Lien logo : inline-flex + poids fort. */
.nav__logo {
  display: inline-flex;
  align-items: center;
  gap: .5rem;
  color: inherit;
  text-decoration: none;
  font-weight: 700;
}
/* Focus visible : halo sur l’image de marque. */
.nav__logo:focus-visible .nav__brandimg{
  box-shadow: 0 0 0 3px var(--ring, #b9a9ff);
}

/* .nav__title */
/* Titre de la marque/produit. */
.nav__title {
  font-size: 1.05rem;
  letter-spacing: .2px;
  font-weight: 600;
  line-height: 1;
  white-space: nowrap;
}

/* .nav__brandimg */
/* Pastille circulaire derrière le logo + transitions. */
.nav__brandimg {
  width: 75px;
  height: 75px;
  display: block;
  background-color: var(--transp);
  border-radius: 90%;
  padding: 0px;
  margin-right: -15px;
  box-sizing: content-box;
  backface-visibility: hidden;
  transform: translateZ(0);
  transition:
    background-color .50s ease,
    transform .25s ease-out,
    box-shadow .40s ease;
}
/* Hover/active : feedback visuel. */
.nav__brandimg:hover {
  background-color: var(--transp);
  transform: translateY(-1px) scale(1.06);
  box-shadow: 0 6px 16px rgba(0, 0, 0, 0);
}
.nav__brandimg:active{
  background-color: var(--warn);
  transform: scale(.98);
  transition-duration: .05s;
}
/* Mobile (≤500) : logo un peu plus grand et centré. */
@media (max-width: 500px){
  .nav__brandimg {
    width: 60px;
    height: 60px;
    display: flex;
    margin: auto;
    justify-content: center;
  }
}



/*===============
NAV — INTERACTIONS (BURGER, MENU, LISTE, LIENS, ICÔNES)
================*/

/* .nav__burger */
/* Bouton burger : caché en desktop, visible en mobile. */
.nav__burger {
  appearance: none;
  background: transparent;
  color: var(--card);
  border: 1px solid rgba(255,255,255,.28);
  border-radius: .6rem;
  padding: .4rem;
  cursor: pointer;
  display: none; /* Desktop ≥821 : caché */
  max-width: 40px;
}
/* Focus visible : anneau d’accessibilité. */
.nav__burger:focus-visible {
  outline: 3px solid var(--ring, #b9a9ff);
  outline-offset: 2px;
  text-decoration: none;
}
/* Mobile (≤500) : visible + léger décalage. */
@media (max-width: 500px){
  .nav__burger{
    display: inline-flex;
    margin-top: .25rem;
    margin-left: -10px;
  }

}

/* .nav__menu */
/* Bloc menu : visible en desktop, replié en mobile. */
.nav__menu{
  position: static;
  display: flex;
  align-items: center;
  gap:2rem;
  background: transparent;
  border: 0;
}
/* Tablette (501–820) : idem desktop. */
@media (min-width: 501px) and (max-width: 820px){
  .nav__menu{
    position: static;
    display: flex;
    align-items: center;
    gap: 2rem;
    background: transparent;
    border: 0;
  }
}
/* Mobile (≤500) : menu fermé par défaut, fond primaire, plein large. */
@media (max-width: 500px){
  .nav__menu{
    position: static;          /* pas d’absolu pour éviter le recouvrement */
    display: none;             /* fermé par défaut */
    width: 100%;
    background: var(--primary-600);
    border: 0;
    border: 0;
  }
  .nav__menu.is-open{ display: block; }
}

/* .nav__list */
/* Liste des entrées de menu. */
.nav__list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;               /* Desktop : en ligne */
  gap: .25rem;
}
/* Tablette (501–820) : en ligne. */
@media (min-width: 501px) and (max-width: 820px){
  .nav__list{
    display: flex;
    gap: .25rem;
    padding: 0;

  }
}
/* Mobile (≤500) : grille centrée. */
@media (max-width: 500px){
  .nav__list{
    display: grid;
    justify-items: center;
    gap: .5rem;
    padding: .5rem 0 0;
  }
}

/* .nav__link */
/* Lien de navigation (base desktop : icône à gauche du texte). */
.nav__link {
  display: inline-flex;
  align-items: center;
  gap: .5rem;
  padding: .55rem .7rem;
  border-radius: .5rem;
  text-decoration: none;
  white-space: nowrap;
  max-width: 100%;
  color: inherit;
}
/* :hover (desktop/tablette) : léger fond + texte blanc. */
.nav__link:hover {
  background: rgba(255,255,255,.10);
  color: #ffffff;
}
/* .is-active : fond violet + typo renforcée. */
.nav__link.is-active {
  background: #9866EC;
  color: var(--danger);
  text-decoration: none;
  font-weight: 600;
}
/* :focus-visible : anneau d’accessibilité + teinte. */
.nav__link:focus-visible {
  outline: 3px solid var(--ring, #b9a9ff);
  outline-offset: 2px;
  color: var(--danger);
}
/* Gestion des spans internes (couleurs dynamiques). */
.nav__link span {
  color: var(--bg);
  overflow: hidden;
  text-overflow: ellipsis;
  transition: color .50s ease;
}
.nav__link:hover span {
  color: var(--warn);
  transition-duration: .25s;
}
.nav__link.is-active span {
  color: var(--bg2);
  transition-duration: .25s;
}
/* Tablette (501–820) : icône au-dessus du libellé. */
@media (min-width: 501px) and (max-width: 820px){
  .nav__link{
    display: inline-flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: .35rem;
    text-align: center;
    padding: .5rem .75rem;
    line-height: 1.1;
  }
  .nav__link > span:last-child{
    font-size: .9rem;
    white-space: normal;
    max-width: 20ch; 
  }

}
/* Mobile (≤500) : centrage + pas d’effet hover intrusif. */
@media (max-width: 500px){
  .nav__link{
    justify-content: center;
    width: max-content;
    max-width: 100%;
  }
  .nav__link:hover{
    background: transparent !important;
    color: inherit !important;
  }
  .nav__link.is-active { background: #9866EC; }
  .nav__link.is-active span { color: var(--bg2); }
}

/* .nav__icon */
/* Icône monochrome recolorable via currentColor. */
.nav__icon{
  width: 20px;
  height: 20px;
  display: inline-block;
  background-color: currentColor;          /* suit la couleur du texte */
  -webkit-mask: no-repeat center / contain;
  mask: no-repeat center / contain;
  transition: background-color .30s ease;
}
/* Icône suit les états du lien (hover/active). */
.nav__link:hover .nav__icon,
.nav__link.is-active .nav__icon{
  background-color: currentColor;
  text-decoration: none;
}
/* Tablette (501–820) : icône légèrement plus grande (stack). */
@media (min-width: 501px) and (max-width: 820px){
  .nav__icon{
    display: block;
    width: 22px;
    height: 22px;
    flex: 0 0 auto;
  }
}

/* Mapping des SVG -> classes variantes. */
/* .nav__icon--burger */
/* Pictogramme burger. */
.nav__icon--burger{
  -webkit-mask-image: url("/static/images/burger.svg");
  mask-image: url("/static/images/burger.svg");
  margin: auto;
}
/* .nav__icon--home */
/* Pictogramme Accueil. */
.nav__icon--home{
  -webkit-mask-image: url("/static/images/Home.svg");
  mask-image: url("/static/images/Home.svg");
}
/* .nav__icon--catalogue */
/* Pictogramme Catalogue. */
.nav__icon--catalogue{
  -webkit-mask-image: url("/static/images/catalogue.svg");
  mask-image: url("/static/images/catalogue.svg");
}
/* .nav__icon--liste */
/* Pictogramme Liste. */
.nav__icon--liste{
  -webkit-mask-image: url("/static/images/liste.svg");
  mask-image: url("/static/images/liste.svg");
}
/* .nav__icon--account */
/* Pictogramme Compte/Pharmacie. */
.nav__icon--account{
  -webkit-mask-image: url("/static/images/pharmacie.svg");
  mask-image: url("/static/images/pharmacie.svg");
}
/* .nav__icon--dashboard */
/* Pictogramme Dashboard. */
.nav__icon--dashboard{
  -webkit-mask-image: url("/static/images/dashboard.svg");
  mask-image: url("/static/images/dashboard.svg");
}
/* .nav__icon--clients */
/* Pictogramme Clients. */
.nav__icon--clients{
  -webkit-mask-image: url("/static/images/account.svg");
  mask-image: url("/static/images/account.svg");
}

/* .nav__icon--personnalisation */
/* Pictogramme Personnalisation. */
.nav__icon--personnalisation{
  -webkit-mask-image: url("/static/images/personnalise.svg");
  mask-image: url("/static/images/personnalise.svg");
}

/* .nav__icon--parametres */
/* Pictogramme Paramètres. */
.nav__icon--parametres{
  -webkit-mask-image: url("/static/images/parametre.svg");
  mask-image: url("/static/images/parametre.svg");
}


/*===============
NAVBAR — ACTIONS & BOUTONS
================*/

/* .nav__actions */
/* Zone de boutons (déconnexion, etc.). */
.nav__actions {
  margin-left: auto;
  display: flex;
  align-items: center;
  gap: .5rem;
  padding: .5rem 0;
}
.nav__actions:empty { display: none; }
.nav__actions span {
  color: var(--primary-600);
  transition: color .50s ease;
}
.nav__actions:hover .icon{
  background-color: var(--bg);
}
.nav__actions:hover span{
  color: var(--bg);
}
.nav__actions:active span{
  color: var(--danger);
  transition-duration: .05s
}
.nav__actions .btn:active .icon{
  background-color: var(--danger);
  transition-duration: .05s;
}

/* .icon */
/* Icône générique (hors nav__icon). */
.icon{
  width:20px;
  height:20px;
  display:inline-block;
  background-color: var(--primary-600);
  -webkit-mask:no-repeat center/contain;
  mask:no-repeat center/contain;
  transition: background-color .50s ease;
}
.icon:active{
  background-color: var(--danger);
}

/* .icon-logout */
/* Pictogramme déconnexion. */
.icon-logout{
  -webkit-mask-image:url("/static/images/deconnect.svg");
  mask-image:url("/static/images/deconnect.svg");
  transition: background-color .50s ease;
}

/* .btn */
/* Bouton générique. */
.btn {
  display: inline-flex;
  align-items: center;
  gap: .5rem;
  padding: .55rem .9rem;
  border-radius: .6rem;
  text-decoration: none;
}
.btn:focus-visible {
  outline: 3px solid var(--ring, #b9a9ff);
  outline-offset: 2px;
}

/* .btn--ghost */
/* Bouton style ghost. */
.btn--ghost {
  border: 1px solid rgba(255,255,255,.28);
  background-color: var(--bg);
  transition: background-color .50s ease;
}
.btn--ghost:active {
  background: var(--danger);
}


/*===============
ACCESSIBILITÉ — PRÉFÉRENCE RÉDUCTION DES MOUVEMENTS
================*/

/* @media (prefers-reduced-motion: reduce) */
/* Supprime transitions/animations si l’utilisateur préfère moins d’animations. */
@media (prefers-reduced-motion: reduce) {
  * {
    transition: none !important;
    animation: none !important;
  }
}
