/* Layout only: shared fields, buttons, fonts and semantic colors. */
.access-root,.access-preview {min-width:0}
.access-preview {min-height:100vh;overflow:auto}
.access-lab {padding:20px 32px;border-bottom:1px solid var(--border);display:flex;gap:24px;align-items:center;justify-content:space-between}
.access-lab p {margin:6px 0 0}
.access-lab nav,.access-actions {display:flex;gap:12px;flex-wrap:wrap}
.access-shell {max-width:1050px;margin:auto;padding:32px}
.access-brand {display:inline-flex;align-items:center;gap:10px;color:var(--text);text-decoration:none;margin-bottom:40px}
.access-sheet {max-width:440px;margin:0 auto 48px}
.access-sheet h1,.access-admin h1 {font-size:var(--text-xl);line-height:1.25;margin:0 0 12px;letter-spacing:-.025em}
.access-sheet form {margin-top:28px}
.access-fields {padding:0;border:0;margin:0 0 20px;display:grid;gap:20px;min-width:0}
.access-field {display:grid;gap:8px;font-size:var(--text-sm);font-weight:500;min-width:0}
.access-field .row-meta {font-weight:400;line-height:1.5}
.access-check {display:flex;gap:10px;align-items:flex-start;font-size:var(--text-sm);line-height:1.5;font-weight:400}
.access-check input {margin-top:4px;flex-shrink:0;accent-color:var(--accent)}
.access-sheet .field,.access-admin .field {width:100%;min-width:0}
.access-sheet form>.button {width:100%}
.access-help {display:block;margin-top:24px;font-size:var(--text-sm);line-height:1.6}
.access-help summary {cursor:pointer;color:var(--text-secondary)}
.access-error {color:var(--negative);font-size:var(--text-sm);line-height:1.5;margin:0 0 16px}
.access-notice {color:var(--positive);font-size:var(--text-sm);line-height:1.5;margin:16px 0}
.access-invite-form {display:grid;grid-template-columns:180px minmax(180px,1fr) 160px;gap:20px;align-items:start;margin:32px 0}
.access-invite-form>.button,.access-reset-options,.access-invite-form>.access-error {grid-column:1/-1;justify-self:start}
.access-reset-options {display:grid;gap:14px;max-width:600px;width:100%}
.access-issued {padding:24px;border:1px solid var(--accent-border);background:var(--accent-subtle);margin:24px 0}
.access-issued h3 {margin:0 0 8px;font-size:var(--text-base)}
.access-issued .access-actions {margin-top:16px}
.access-invite-list {margin-top:16px;border-top:1px solid var(--border)}
.access-invite-row {display:grid;grid-template-columns:minmax(0,1fr) 130px 100px;gap:20px;padding:20px 0;border-bottom:1px solid var(--border);align-items:center}
.access-invite-row strong {overflow-wrap:anywhere;font-size:var(--text-base);font-weight:500}
.access-invite-row .row-meta {margin:6px 0 0}
.access-invite-state {font-size:var(--text-sm);color:var(--text-secondary)}
.access-admin h2 {font-size:var(--text-lg);margin:32px 0 8px}
.access-skip {position:absolute;left:12px;top:-100px;padding:12px;background:var(--surface);z-index:10}
.access-skip:focus {top:12px}
.access-preview [hidden] {display:none!important}
@media(max-width:760px) {
  .access-lab {padding:16px 20px;align-items:flex-start;flex-direction:column;gap:14px}
  .access-shell {padding:24px 20px}
  .access-brand {margin-bottom:32px}
  .access-invite-form {grid-template-columns:1fr}
  .access-invite-row {grid-template-columns:minmax(0,1fr) auto;gap:12px}
  .access-invite-row>.button {grid-column:1/-1;justify-self:start}
  .access-issued {padding:16px}
}
