.access-dialog{border:1px solid #dce3ed;border-radius:22px;padding:30px;width:min(520px,calc(100vw - 32px));max-height:88vh;overflow:auto;color:#192b42;background:#fff;box-shadow:0 24px 80px #0b234533;font:inherit}
.access-dialog::backdrop{background:#10213b99;backdrop-filter:blur(3px)}
.access-dialog [hidden]{display:none!important}
.access-dialog [role=tab][aria-selected=true]{background:#17366f;color:#fff;border-color:#17366f}
.access-dialog-wide{width:min(800px,calc(100vw - 32px))}
.access-dialog h2{margin:12px 32px 12px 0}.access-dialog p{line-height:1.5;overflow-wrap:anywhere}
.access-dialog label{display:grid;gap:7px;margin:16px 0;font-weight:600}.access-dialog input,.access-dialog textarea{width:100%;box-sizing:border-box;border:1px solid #bac9dc;border-radius:10px;padding:12px;font:inherit;background:#fff;color:#192b42}.access-dialog textarea{resize:vertical}
.access-dialog input:focus,.access-dialog textarea:focus{outline:3px solid #9ecbfa;outline-offset:1px}
.access-close{position:absolute;right:16px;top:12px;border:0;background:transparent;font-size:30px;cursor:pointer;color:inherit}
.access-note{font-size:.85rem;color:#53657a}.access-actions{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin-top:16px}
.access-request-card{border:1px solid #dce3ed;border-radius:14px;padding:18px;margin:16px 0;background:#f8fafc}.access-request-card h3{margin:0 0 8px}.access-request-card p{margin:8px 0;white-space:pre-wrap}.access-badge{display:inline-block;background:#e6edf8;border-radius:8px;padding:5px 9px;font-weight:600;font-size:.85rem}
.access-honeypot{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
.access-dialog [role=status]:empty{display:none}.access-dialog [role=status]{padding:12px;border-radius:10px;background:#edf3fa}.access-dialog [role=status][data-error=true]{background:#fff0f0;color:#982727}
.access-dialog .btn.primary{
  background:linear-gradient(135deg,#ff5f72,#ff835f);
  color:#fff;
  border:1px solid transparent;
  box-shadow:0 10px 24px rgba(239,83,101,.2);
}
.access-dialog .btn.primary:hover,
.access-dialog .btn.primary:focus-visible{
  background:linear-gradient(135deg,#f74f65,#ff744f);
  color:#fff;
  outline:3px solid rgba(255,95,114,.22);
  outline-offset:2px;
}
.access-dialog .btn.secondary{
  background:#eef2ff;
  color:#17366f;
  border:1px solid #b9c9eb;
  box-shadow:0 8px 18px rgba(30,58,138,.1);
}
.access-dialog .btn.secondary:hover,
.access-dialog .btn.secondary:focus-visible{
  background:#dfeaff;
  border-color:#6f96e8;
  color:#102b62;
  outline:3px solid rgba(79,112,201,.18);
  outline-offset:2px;
}
.access-dialog .btn.danger{
  background:#b42335;
  color:#fff;
  border:1px solid #941c2c;
  box-shadow:0 8px 18px rgba(148,28,44,.18);
}
.access-dialog .btn.danger:hover,
.access-dialog .btn.danger:focus-visible{
  background:#961c2c;
  color:#fff;
  outline:3px solid rgba(180,35,53,.2);
  outline-offset:2px;
}
.access-dialog button:disabled{
  opacity:.58;
  cursor:not-allowed;
  box-shadow:none;
}
@media(max-width:540px){.access-dialog{padding:22px}.access-actions .btn{flex:1}.access-dialog .btn{white-space:normal}}

/* Le bouton vit dans la modale claire de connexion : les boutons secondaires
   globaux sont conçus pour l'en-tête sombre et auraient sinon un texte blanc. */
#loginModal #requestAccessBtn{
  background:#eef2ff;
  color:#17366f;
  border:1px solid #b9c9eb;
  box-shadow:0 10px 24px rgba(30,58,138,.12);
}
#loginModal #requestAccessBtn:hover,
#loginModal #requestAccessBtn:focus-visible{
  background:#dfeaff;
  border-color:#6f96e8;
  color:#102b62;
}
#loginModal .admin-auth-actions>p{grid-column:1/-1;margin:4px 0 0}
