/* GENERATED — DO NOT EDIT.
   Source: scripts/shared_frontend/account_menu.css
   Regenerate: python3 scripts/sync_shared_frontend_assets.py

   Mandat UX-006 (2026-08-28) -- menu de compte partagé. Utilise UNIQUEMENT
   des variables --ds-nav-* -- jamais une couleur en dur -- pour rendre
   identiquement dans les deux projets, la vraie couleur étant mappée une
   fois par chaque projet (voir styles.css, :root). Visibilité pilotée
   EXCLUSIVEMENT par [data-nav-state] -- jamais l'attribut hidden natif sur
   .ds-nav-board/.ds-account-btn (réservé au popover lui-même, dont l'état
   ouvert/fermé est indépendant de guest/loading/authenticated). */

.ds-account-nav { position: relative; display: inline-flex; align-items: center; gap: 12px; }

/* guest (état par défaut du HTML statique -- repli sans JavaScript) */
.ds-nav-signin { display: inline-flex; align-items: center; min-height: 44px; color: inherit; text-decoration: none; }
.ds-nav-board, .ds-account-btn { display: none; }

/* loading -- le lien guest reste dans le DOM, seulement masqué
   visuellement, jamais retiré (aucune commande morte, aucun bouton sans
   nom accessible). */
.ds-account-skeleton { display: none; width: 88px; height: 16px; border-radius: 6px; background: var(--ds-nav-skeleton, rgba(255,255,255,.08)); }
.ds-account-nav[data-nav-state="loading"] .ds-nav-signin { visibility: hidden; position: absolute; }
.ds-account-nav[data-nav-state="loading"] .ds-account-skeleton { display: inline-block; }

/* authenticated -- gratuit/Premium/Ambassadeur/propriétaire, tous pareils
   à ce niveau (l'entitlement ne gouverne que les entrées conditionnelles
   du menu, jamais cet état). */
.ds-account-nav[data-nav-state="authenticated"] .ds-nav-signin,
.ds-account-nav[data-nav-state="authenticated"] .ds-account-skeleton { display: none; }
.ds-account-nav[data-nav-state="authenticated"] .ds-nav-board { display: inline-flex; align-items: center; min-height: 44px; color: inherit; text-decoration: none; }
.ds-account-nav[data-nav-state="authenticated"] .ds-account-btn { display: inline-flex; }

.ds-account-btn {
  align-items: center; gap: 6px; min-height: 44px; min-width: 44px; padding: 0 10px;
  border: 1px solid var(--ds-nav-border, transparent); border-radius: 999px; background: transparent;
  color: inherit; font: inherit; cursor: pointer;
}
.ds-account-btn:hover { border-color: var(--ds-nav-border-hover, currentColor); }
.ds-account-btn:focus-visible { outline: 2px solid var(--ds-nav-focus, currentColor); outline-offset: 2px; }
.ds-account-btn-chevron { width: 10px; height: 10px; transition: transform .15s ease; }
.ds-account-btn[aria-expanded="true"] .ds-account-btn-chevron { transform: rotate(180deg); }

.ds-account-menu {
  position: absolute; top: calc(100% + 8px); right: 0; z-index: 40; min-width: 200px;
  display: flex; flex-direction: column; padding: 6px; border-radius: 12px;
  background: var(--ds-nav-menu-bg, #111); border: 1px solid var(--ds-nav-border, rgba(255,255,255,.12));
  box-shadow: 0 12px 32px rgba(0,0,0,.4);
}
.ds-account-menu a, .ds-account-menu button {
  display: flex; align-items: center; min-height: 44px; padding: 0 12px; border-radius: 8px;
  border: 0; background: transparent; color: inherit; text-decoration: none; font: inherit; text-align: left; cursor: pointer;
}
.ds-account-menu a:hover, .ds-account-menu button:hover { background: var(--ds-nav-menu-hover, rgba(255,255,255,.06)); }
.ds-account-menu a[aria-current="page"] { font-weight: 700; }
.ds-account-menu-sep { border: 0; border-top: 1px solid var(--ds-nav-border, rgba(255,255,255,.12)); margin: 4px 6px; }
/* Statut (Premium/Ambassadeur/propriétaire) -- texte informatif, jamais
   une destination cliquable. */
.ds-account-status { min-height: auto; padding: 8px 12px 4px; font-size: .72rem; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; opacity: .7; cursor: default; }
.ds-account-status:hover { background: transparent; }
