/* DoMySocial - Sécurité / MFA / Annuaire / Liaison DoMyDesk */
.dms-security-page{max-width:70rem;margin:0 auto;display:grid;gap:1rem}
.dms-security-head{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;flex-wrap:wrap}
.dms-security-head h2,.dms-security-card h3{margin:0}
.dms-security-card{padding:1rem;display:grid;gap:.85rem}
.dms-security-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem}
.dms-security-grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}
.dms-security-field{display:grid;gap:.3rem;min-width:0}
.dms-security-field.wide{grid-column:1/-1}
.dms-security-field input,.dms-security-field select{width:100%;min-width:0}
.dms-security-check{display:flex;align-items:flex-start;gap:.55rem;padding:.65rem .75rem;border:1px solid var(--dms-border-soft);border-radius:.75rem;background:var(--dms-input-bg)}
.dms-security-check input{margin-top:.15rem}
.dms-security-actions{display:flex;gap:.55rem;flex-wrap:wrap;align-items:center}
.dms-security-status{display:flex;gap:.45rem;align-items:center;flex-wrap:wrap}
.dms-security-chip{display:inline-flex;align-items:center;gap:.3rem;min-height:1.65rem;padding:0 .55rem;border:1px solid var(--dms-border-soft);border-radius:999px;background:var(--dms-input-bg);font-size:.72rem;font-weight:850}
.dms-security-chip.ok{border-color:color-mix(in srgb,#22c55e 55%,var(--dms-border-soft))}
.dms-security-chip.bad{border-color:color-mix(in srgb,#ef4444 55%,var(--dms-border-soft))}
.dms-security-note{padding:.75rem;border:1px dashed var(--dms-border-soft);border-radius:.75rem;color:var(--dms-muted);line-height:1.45}
.dms-security-message{padding:.75rem .85rem;border-radius:.75rem;border:1px solid var(--dms-border-soft)}
.dms-security-message.ok{border-color:color-mix(in srgb,#22c55e 55%,var(--dms-border-soft))}
.dms-security-message.err{border-color:color-mix(in srgb,#ef4444 55%,var(--dms-border-soft))}
.dms-security-table-wrap{overflow:auto;border:1px solid var(--dms-border-soft);border-radius:.8rem}
.dms-security-table{width:100%;border-collapse:collapse;min-width:760px}
.dms-security-table th,.dms-security-table td{padding:.6rem .7rem;border-bottom:1px solid var(--dms-border-soft);vertical-align:middle;text-align:left}
.dms-security-table th{font-size:.72rem;color:var(--dms-muted);text-transform:uppercase;letter-spacing:.03em}
.dms-security-table tr:last-child td{border-bottom:0}
.dms-security-table input[type="email"]{width:100%;min-width:13rem}
.dms-security-code{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;overflow-wrap:anywhere}
.dms-mfa-page{min-height:100vh;display:grid;place-items:center;padding:1rem}
.dms-mfa-card{width:min(42rem,100%);padding:1.1rem;display:grid;gap:1rem}
.dms-mfa-brand{display:flex;gap:.7rem;align-items:center}.dms-mfa-brand img{width:3rem;height:3rem;object-fit:contain}
.dms-mfa-grid{display:grid;grid-template-columns:1fr 1fr;gap:.75rem}
.dms-mfa-qr{display:block;width:min(18rem,100%);aspect-ratio:1;background:#fff;padding:.65rem;border-radius:.8rem;margin:auto}
.dms-mfa-secret{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;word-break:break-all;padding:.65rem;border:1px solid var(--dms-border-soft);border-radius:.6rem;background:var(--dms-input-bg)}
.dms-mfa-recovery{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.4rem;font-family:ui-monospace,SFMono-Regular,Consolas,monospace}
.dms-mfa-recovery span{padding:.45rem;border:1px solid var(--dms-border-soft);border-radius:.5rem;text-align:center;background:var(--dms-input-bg)}
@media(max-width:760px){.dms-security-grid,.dms-security-grid.three,.dms-mfa-grid{grid-template-columns:1fr}.dms-mfa-recovery{grid-template-columns:1fr}.dms-security-field.wide{grid-column:auto}}

/* Refus d'accès Sécurité : popup thématique, jamais de page PHP brute. */
.dms-security-denied-page{min-height:12rem}
.dms-security-denied-backdrop{
  position:fixed;
  inset:0;
  z-index:30000;
  display:grid;
  place-items:center;
  padding:1rem;
  background:color-mix(in srgb,var(--dms-bg) 78%,transparent);
  backdrop-filter:blur(.35rem);
}
.dms-security-denied-modal{
  width:min(31rem,100%);
  padding:1.15rem;
  display:grid;
  grid-template-columns:auto minmax(0,1fr);
  gap:1rem;
  align-items:start;
  border-color:color-mix(in srgb,var(--dms-danger) 55%,var(--dms-border-soft));
  box-shadow:0 1.5rem 5rem color-mix(in srgb,var(--dms-bg) 70%,transparent);
}
.dms-security-denied-icon{
  width:3.2rem;
  height:3.2rem;
  display:grid;
  place-items:center;
  border:1px solid color-mix(in srgb,var(--dms-danger) 48%,var(--dms-border-soft));
  border-radius:1rem;
  background:color-mix(in srgb,var(--dms-danger) 12%,var(--dms-card));
  font-size:1.45rem;
}
.dms-security-denied-copy{min-width:0}
.dms-security-denied-copy h2{margin:0;color:var(--dms-danger)}
.dms-security-denied-copy p{margin:.45rem 0 0;line-height:1.5}
.dms-security-denied-note{
  margin-top:.75rem;
  padding:.65rem .75rem;
  border:1px dashed var(--dms-border-soft);
  border-radius:.7rem;
  color:var(--dms-muted);
  background:var(--dms-input-bg);
  font-size:.8rem;
}
.dms-security-denied-actions{
  grid-column:1/-1;
  display:flex;
  justify-content:flex-end;
  gap:.55rem;
  flex-wrap:wrap;
  padding-top:.2rem;
}
@media(max-width:560px){
  .dms-security-denied-modal{grid-template-columns:1fr;text-align:center}
  .dms-security-denied-icon{margin:0 auto}
  .dms-security-denied-actions{justify-content:stretch}
  .dms-security-denied-actions .btn,.dms-security-denied-actions .dms-btn{flex:1 1 100%;justify-content:center}
}

/* Identité AD / MFA : badges communs aux Membres, profils et administration. */
.dms-member-auth-badges{display:inline-flex;align-items:center;gap:.28rem;flex-wrap:wrap}
.dms-auth-badge{display:inline-flex;align-items:center;justify-content:center;min-height:1.35rem;padding:0 .42rem;border:1px solid var(--dms-border-soft);border-radius:999px;background:var(--dms-input-bg);font-size:.62rem;font-weight:950;letter-spacing:.025em;line-height:1}
.dms-auth-badge.ad{border-color:color-mix(in srgb,#f59e0b 55%,var(--dms-border-soft))}
.dms-auth-badge.mfa{border-color:color-mix(in srgb,#3b82f6 55%,var(--dms-border-soft))}

/* Compteur MFA cliquable + popup des comptes protégés. */
.dms-security-chip-button{font:inherit;color:inherit;cursor:pointer}
.dms-security-chip-button:hover{border-color:var(--dms-primary);background:var(--dms-card-strong)}
.dms-security-modal-backdrop{position:fixed;inset:0;z-index:32000;display:none;align-items:center;justify-content:center;padding:1rem;background:color-mix(in srgb,var(--dms-bg) 78%,transparent);backdrop-filter:blur(.35rem)}
.dms-security-modal-backdrop.open{display:flex}
.dms-security-modal{width:min(42rem,100%);max-height:82vh;overflow:auto;padding:1rem;display:grid;gap:.85rem}
.dms-security-modal-head{display:flex;align-items:flex-start;justify-content:space-between;gap:.75rem}
.dms-security-modal-head h3{margin:0}
.dms-security-mfa-users{display:grid;gap:.5rem}
.dms-security-mfa-user{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.7rem .8rem;border:1px solid var(--dms-border-soft);border-radius:.7rem;background:var(--dms-input-bg);color:inherit;text-decoration:none}
.dms-security-mfa-user:hover{border-color:var(--dms-primary);background:var(--dms-card-strong)}
.dms-security-mfa-user-meta{display:flex;align-items:center;justify-content:flex-end;gap:.35rem;flex-wrap:wrap;text-align:right}

/* Informations AD/MFA dans la fiche utilisateur. */
.dms-profile-security-card{display:grid;gap:.55rem;padding:.8rem;border:1px solid var(--dms-border-soft);border-radius:.75rem;background:var(--dms-input-bg)}
.dms-profile-security-card h3{margin:0;font-size:.82rem}
.dms-profile-security-row{display:grid;gap:.22rem;padding:.55rem 0;border-top:1px solid var(--dms-border-soft)}
.dms-profile-security-row:first-of-type{border-top:0;padding-top:0}

@media(max-width:640px){
  .dms-security-mfa-user{align-items:flex-start;flex-direction:column}
  .dms-security-mfa-user-meta{justify-content:flex-start;text-align:left}
}
