/* ---- Zugänge (access.js, #page-access) und QR-Dialog ---- */
.access-card { display: flex; flex-direction: column; gap: 10px; }
.access-team { border-left: 4px solid var(--rc); }
.access-buttons { display: flex; flex-direction: column; gap: 8px; }
.access-buttons:empty { display: none; }
.access-team-name { font-weight: 700; font-size: 15px; }
.access-revoke, .access-signout { --md-outlined-button-outline-color: var(--red-btn); --md-outlined-button-label-text-color: var(--red-btn);
                                  --md-outlined-button-icon-color: var(--red-btn); }
.access-hint { margin: 4px 4px 16px; }
.access-team-flash { animation: accessFlash 1.6s ease-out; }
@keyframes accessFlash { 0%, 40% { box-shadow: 0 0 0 3px var(--md-sys-color-primary); } 100% { box-shadow: none; } }
.leader-row { display: flex; align-items: center; gap: 6px; padding: 8px 0;
              border-bottom: 1px solid var(--md-sys-color-outline-variant); }
.leader-info { flex: 1; min-width: 0; }
.leader-name { font-weight: 600; }
.qr-content { display: flex; flex-direction: column; align-items: center; gap: 10px; min-width: 260px; }
.qr-actions { display: flex; gap: 8px; flex-wrap: wrap; justify-content: center; }
.qr-image { width: min(260px, 70vw); aspect-ratio: 1; border-radius: 8px; background: #fff; }
.qr-image.qr-done { opacity: .15; }
.qr-status { font-size: 14px; font-weight: 500; text-align: center; color: var(--md-sys-color-on-surface-variant); }
.qr-status.is-connected { color: var(--md-sys-color-primary); }
.qr-status.is-error, .qr-status.is-urgent { color: var(--md-sys-color-error); }
.qr-status .msym { vertical-align: -3px; }
.qr-link { font-size: 11px; color: var(--md-sys-color-on-surface-variant); word-break: break-all; text-align: center; max-width: 260px; }
#noAccessExpired { color: var(--md-sys-color-error); margin: 0 0 12px; }
