.access-locked .shell, .access-locked > .modal-backdrop { display: none !important; }
[data-access-denied] { display: none !important; }
#authGate { min-height: 100vh; display: grid; place-items: center; padding: 24px; }
#authGate.hidden { display: none; }
.access-login { width: min(100%, 470px); background: white; padding: 28px; border: 1px solid #d5dfec; box-shadow: 0 12px 40px #132d4914; }
.access-login h2 { margin-top: 0; }
.access-login label { display: block; margin: 14px 0; }
.access-login .hidden { display: none; }
.access-login input { width: 100%; }
.access-help { color: #60748b; font-size: 13px; line-height: 1.7; overflow-wrap: anywhere; }
.access-error { color: #9e3438; white-space: pre-wrap; }
.access-account-bar { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
#accessManagement { margin-bottom: 18px; }
#accessUserForm { width: min(980px, 100%); max-height: calc(100vh - 48px); overflow-y: auto; }
#accessActivationCodeDialog .modal-panel { width: min(540px, 100%); }
#accessActivationCodeValue { width: 100%; font-family: Consolas, monospace; font-size: 18px; }
.access-user-fields { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.access-check { display: inline-flex !important; align-items: center; gap: 6px; margin: 5px 12px 5px 0; }
.access-check input { width: auto !important; margin: 0; }
.access-company { border: 1px solid #d5dfec; background: #f5f9fc; padding: 12px; margin: 10px 0; }
.access-company summary { cursor: pointer; font-weight: 600; }
.access-permissions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.access-permissions fieldset { min-width: 0; background: white; border: 1px solid #d5dfec; padding: 8px; }
.access-copy { display: flex; gap: 8px; margin: 8px 0; }
#accessAudit { max-height: 260px; overflow: auto; white-space: pre-wrap; }
@media (max-width: 720px) { .access-permissions, .access-user-fields { grid-template-columns: 1fr; } }
body[data-account-role="salesperson"] .salesperson-private-hidden { display: none !important; }
