/* Spirit 45 – Connexion unique (charte : bleu marine #1D2346, jaune #FDBF00, brique #9C422C) */
.s45-sso { display: inline-flex; align-items: center; position: relative; font: inherit; line-height: 1.2; }
.s45-sso-item { display: flex; align-items: center; }
.s45-sso__login {
  display: inline-flex; align-items: center; min-height: 36px; padding: 0 16px; border-radius: 999px;
  background: #FDBF00; color: #1D2346 !important; font-weight: 700; text-decoration: none !important; white-space: nowrap;
}
.s45-sso__login:hover, .s45-sso__login:focus-visible { background: #ffd34d; }
.s45-sso__box { position: relative; }
.s45-sso__me {
  list-style: none; display: inline-flex; align-items: center; gap: 8px; cursor: pointer; min-height: 36px;
  padding: 3px 12px 3px 3px; border-radius: 999px; background: rgba(255, 255, 255, .12); color: inherit; user-select: none;
}
.s45-sso__me::-webkit-details-marker { display: none; }
.s45-sso__me:focus-visible { outline: 2px solid #FDBF00; outline-offset: 2px; }
.s45-sso__av { border-radius: 50%; object-fit: cover; flex: none; display: inline-flex; align-items: center; justify-content: center; color: #fff; font-weight: 700; font-size: 12px; }
.s45-sso__name { font-weight: 600; max-width: 140px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.s45-sso__badge { min-width: 18px; height: 18px; padding: 0 5px; border-radius: 9px; background: #9C422C; color: #fff; font-size: 11px; font-weight: 700; display: inline-flex; align-items: center; justify-content: center; }
.s45-sso__menu {
  position: absolute; right: 0; top: calc(100% + 8px); z-index: 99999; width: min(280px, calc(100vw - 32px));
  background: #fff; color: #1D2346; border-radius: 14px; box-shadow: 0 12px 32px rgba(29, 35, 70, .22); overflow: hidden; text-align: left;
}
.s45-sso__head { display: flex; gap: 12px; align-items: center; padding: 14px 16px; background: #1D2346; color: #fff; }
.s45-sso__who { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.s45-sso__who strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.s45-sso__rank { font-size: 12px; opacity: .8; }
.s45-sso__vip { align-self: flex-start; font-size: 11px; font-weight: 700; padding: 2px 8px; border-radius: 999px; background: #FDBF00; color: #1D2346; }
.s45-sso__links { display: flex; flex-direction: column; padding: 6px 0; }
.s45-sso .s45-sso__links a { display: block; padding: 10px 16px !important; margin: 0 !important; color: #1D2346 !important; text-decoration: none !important; font-size: 15px; line-height: 1.3; border: 0; background: none; }
.s45-sso .s45-sso__links a:hover, .s45-sso .s45-sso__links a:focus-visible { background: #F6F1E7; }
.s45-sso .s45-sso__links .s45-sso__cta { color: #9C422C !important; font-weight: 700; }
.s45-sso .s45-sso__links .s45-sso__out { border-top: 1px solid #ECE6DA; margin-top: 4px; color: #6b6f86 !important; }
.s45-sso-locked { padding: 14px 16px; border-radius: 12px; background: #F6F1E7; color: #1D2346; }
@media (max-width: 600px) {
  .s45-sso__name { display: none; }
  .s45-sso__me { padding: 3px; }
  .s45-sso--menu .s45-sso__menu { position: fixed; top: 64px; right: 16px; }
}
