.access-workspace{margin:0 auto;max-width:1120px;padding:32px 24px}.access-workspace header{display:flex;justify-content:space-between;align-items:start;gap:24px}.access-workspace form{display:flex;flex-wrap:wrap;gap:16px;align-items:end}.access-workspace label{display:flex;flex-direction:column;gap:6px;min-width:180px;flex:1}.access-workspace input,.access-workspace select{width:100%;min-height:42px}.access-workspace .panel{margin:20px 0;padding:24px}.access-workspace details{margin-top:20px}.access-workspace summary{cursor:pointer;padding:12px 0;font-weight:600}.access-workspace article{padding:16px 0;border-bottom:1px solid #cbd5e1}.access-workspace article h3{margin:0 0 8px}.access-workspace #notice{min-height:24px}.access-workspace [hidden]{display:none!important}.access-workspace button:focus-visible,.access-workspace input:focus-visible,.access-workspace select:focus-visible,.access-workspace summary:focus-visible{outline:3px solid #1768b2;outline-offset:3px}.access-workspace button{min-height:42px}.access-workspace .muted{color:#526277;font-size:.9rem}@media(max-width:640px){.access-workspace{padding:16px}.access-workspace .panel{padding:16px}.access-workspace form{display:grid;grid-template-columns:1fr}.access-workspace header{flex-wrap:wrap}}
/* Hall-node administration keeps target details beside their action. */
.access-workspace #node-form{display:block;max-width:680px}.access-workspace #node-form label{margin:16px 0}.access-workspace #node-form input[type=checkbox]{width:auto;min-height:0;align-self:flex-start}.access-workspace #nodes p{overflow-wrap:anywhere}.access-workspace #node-form [name=tokenHash]{overflow-wrap:anywhere}

/* Invitations are a distinct employee-onboarding task, scoped to the access page. */
.access-workspace #invitation-admin h2{margin-top:0}.access-workspace #invitation-admin>p{max-width:76ch;line-height:1.55}.access-workspace #invitation-admin [role=status]{color:#234e85;min-height:24px;overflow-wrap:anywhere}.access-workspace #invitation-admin .invitation-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;align-items:end}.access-workspace #invitation-admin label{min-width:0;font-size:14px}.access-workspace #invitation-admin .invitation-form button{justify-self:start}.access-workspace .invitation-secret{background:#edf4fc;border-left:3px solid #2c568c;padding:20px;margin:24px 0}.access-workspace .invitation-secret input{font-size:13px;min-width:0;overflow-wrap:anywhere}.access-workspace .invitation-secret button{margin:12px 8px 0 0}.access-workspace .invitation-secret p{font-size:13px;line-height:1.6;max-width:76ch;margin-bottom:0}.access-workspace #invitation-admin h3{margin-top:28px}.access-workspace #invitation-admin h4{margin:0 0 8px;font-size:16px}.access-workspace #invitation-admin article p{overflow-wrap:anywhere}.access-workspace #invitation-admin article form{max-width:680px}.access-workspace #invitation-admin button:disabled{cursor:not-allowed}@media(max-width:640px){.access-workspace #invitation-admin .invitation-form{grid-template-columns:1fr}.access-workspace .invitation-secret{padding:16px}.access-workspace #invitation-admin .invitation-form button{width:100%}}

.access-workspace #invitation-admin input,.access-workspace #invitation-admin select{border-color:var(--entry-line,#8492a4)}.access-workspace #invitation-admin [role=status]{color:var(--blue,#234e85)}.access-workspace #invitation-admin .invitation-secret{background:var(--soft,#edf4fc);color:var(--ink,#182d48);border-color:var(--blue,#2c568c)}

.access-workspace #invitation-admin .invitation-pager{display:flex;align-items:center;flex-wrap:wrap;gap:12px;margin-top:20px}.access-workspace #invitation-admin .invitation-pager span{font-size:14px}

/* Second factor: setup with a QR, recovery codes shown once, the roles that must use it. */
.access-workspace #two-factor form{display:flex;flex-direction:column;align-items:flex-start;gap:10px;max-width:520px}
.access-workspace #two-factor svg{width:200px;height:200px;border:8px solid #fff;border-radius:6px}
.access-workspace .two-factor-secret{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.06em;word-break:break-all}
.access-workspace .recovery-codes{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:16px;line-height:1.7;padding:12px 16px;border:1px dashed var(--line,#c8d0da);border-radius:8px;max-width:260px}
.access-workspace .two-factor-admin{margin-top:18px;padding-top:14px;border-top:1px solid var(--line,#d9dee5)}
.access-workspace .two-factor-roles{display:flex;flex-wrap:wrap;gap:6px 18px}
.access-workspace .two-factor-roles label{display:flex;align-items:center;gap:6px;font-weight:400}
.access-workspace .two-factor-people{list-style:none;padding:0;margin:12px 0 0;display:flex;flex-direction:column;gap:6px}
.access-workspace .two-factor-people li{display:flex;flex-wrap:wrap;align-items:center;gap:10px}
.entry-form-heading .lang-switch{display:inline-flex;gap:2px;padding:2px;border:1px solid var(--entry-line,#d6dde6);border-radius:8px;margin-top:10px}
.entry-form-heading .lang-switch button{min-height:0;padding:4px 10px;font-size:13px;border:0;border-radius:6px;background:transparent;color:var(--entry-muted,#5b6878);cursor:pointer}
.entry-form-heading .lang-switch button[aria-pressed="true"]{background:var(--entry-surface,#fff);color:var(--entry-ink,#16202c);font-weight:650}

/* Wide tables scroll inside their own box on narrow screens. */
.table-wrap{overflow-x:auto}
