/* Web staff management extends the approved desktop admin design system. */
.staff-heading .primary{min-height:44px}
.staff-tabs{display:flex;gap:24px;margin:0 0 20px;border-bottom:1px solid var(--bd-line)}
.staff-tabs button{min-height:44px;padding:8px 2px;border-bottom:2px solid transparent;font-size:13px;color:var(--bd-muted)}
.staff-tabs button[aria-pressed=true]{border-bottom-color:var(--bd-brand);color:var(--bd-brand);font-weight:600}
.staff-tabs span{margin-left:4px;font-variant-numeric:tabular-nums}
.staff-workspace{background:var(--bd-surface);border:1px solid var(--bd-line);border-radius:12px;overflow:hidden}
.staff-toolbar{display:flex;align-items:center;flex-wrap:wrap;gap:12px;padding:16px 20px}
.staff-toolbar>p{margin:0;color:var(--bd-muted);font-size:12px}
.staff-search{display:flex;align-items:center;gap:10px;font-size:11px;color:var(--bd-muted)}
.staff-search input{width:220px;min-height:40px;padding:8px 11px;border:1px solid var(--bd-border-strong);border-radius:8px;background:var(--bd-surface);color:var(--bd-ink);font-size:13px}
.staff-filters{display:flex;align-items:center;flex-wrap:wrap;gap:6px}
.staff-filters button{min-height:32px;padding:4px 12px;border:1px solid var(--bd-line);border-radius:8px;color:var(--bd-muted);font-size:12px}
.staff-filters button[aria-pressed=true]{border-color:var(--bd-brand);background:var(--bd-brand-soft);color:var(--bd-brand)}
.staff-refresh{margin-left:auto}
.staff-table-wrap{overflow:auto}
.staff-table{width:100%;border-collapse:collapse;text-align:left;font-size:12px}
.staff-table th{padding:12px 20px;background:var(--bd-sunken);color:var(--bd-muted);font-size:11px;font-weight:400;white-space:nowrap}
.staff-table td{padding:16px 20px;border-top:1px solid var(--bd-line);vertical-align:middle}
.staff-table tr:hover td{background:var(--bd-rail)}
.staff-table small{display:block;margin-top:4px;color:var(--bd-muted);font-size:10px;line-height:1.8}
.staff-name{font-size:13px;font-weight:600}
.staff-time{color:var(--bd-muted);font-size:11px;white-space:nowrap;font-variant-numeric:tabular-nums}
.staff-chip{display:inline-block;padding:1px 6px;border-radius:4px;background:var(--bd-neutral-bg);color:var(--bd-neutral-ink);font-size:11px;white-space:nowrap}
.staff-chip.is-active{background:var(--bd-brand-soft);color:var(--bd-brand)}
.staff-table .staff-code-pending{color:var(--bd-pending-ink)}
.staff-row-actions{display:flex;flex-wrap:wrap;gap:4px 14px;min-width:220px}
.staff-row-actions button,.staff-inline-reload{min-height:32px;padding:4px 0;color:var(--bd-brand);font-size:12px;text-align:left;white-space:nowrap}
.staff-row-actions button:hover:not(:disabled),.staff-inline-reload:hover{color:var(--bd-brand-deep);text-decoration:underline;text-underline-offset:4px}
.staff-row-actions .staff-danger{color:var(--bd-danger)}
.admin-body .staff-row-actions button:disabled{padding-inline:6px;border-radius:4px;background:var(--bd-disabled-bg);color:var(--bd-disabled-ink)}
.staff-feedback{margin:0 0 20px;padding:14px 18px;border:1px solid var(--bd-line);border-radius:8px;background:var(--bd-sunken);color:var(--bd-ink);font-size:12px;line-height:1.8}
.staff-feedback p{margin:0}
.staff-feedback strong+p{margin-top:4px}
.staff-feedback .secondary{margin-top:12px}
.staff-feedback.is-notice{border-color:var(--bd-notice-line);background:var(--bd-notice-bg);color:var(--bd-notice-ink)}
.staff-feedback.is-error{border-color:var(--bd-message-ink);background:var(--bd-message-bg);color:var(--bd-message-ink)}
.staff-workspace .staff-feedback{margin:16px 20px}
.staff-loading,.staff-empty{padding:48px 24px;text-align:center;color:var(--bd-muted);font-size:12px}
.staff-empty strong{display:block;font-size:15px;color:var(--bd-ink)}
.staff-empty p{margin:6px 0 16px}
.staff-note{margin:16px 0 0;color:var(--bd-muted);font-size:11px;line-height:1.8}
.admin-body .modal.staff-modal{max-width:540px;padding:26px}
.staff-modal .modal-heading h2{font-size:22px}
.staff-roles{padding:0;margin:0 0 16px;border:0}
.staff-roles legend{padding:0;margin-bottom:8px;font-size:12px}
.staff-roles label{display:flex;align-items:flex-start;gap:10px;padding:12px 0;border-bottom:1px solid var(--bd-line);cursor:pointer}
.staff-roles input{width:18px;height:18px;margin:2px 0 0;accent-color:var(--bd-brand);flex-shrink:0}
.staff-roles strong{display:block;font-size:13px;font-weight:600}
.staff-roles small{display:block;margin-top:3px;color:var(--bd-muted);font-size:11px;line-height:1.8}
.staff-dialog-person{display:flex;align-items:center;gap:12px;margin:0 0 16px}
.staff-dialog-person strong{font-size:16px}
.staff-dialog-person span{color:var(--bd-muted);font-size:12px}
.staff-dialog-actions{display:flex;justify-content:flex-end;align-items:center;gap:12px;margin-top:24px}
.staff-dialog-actions .primary{min-height:48px;padding:12px 24px}
.staff-bind-code{display:block;margin:20px 0 8px;padding:20px 12px;border:1px solid var(--bd-border-strong);border-radius:8px;background:var(--bd-surface);color:var(--bd-brand);font-family:var(--bd-mono);font-size:32px;font-weight:600;letter-spacing:3px;line-height:1.5;text-align:center;user-select:all}
.staff-bind-code.is-expired{color:var(--bd-muted);font-family:inherit;font-size:22px;letter-spacing:0;user-select:none}
.staff-bind-expiry{margin:0 0 20px;text-align:center;color:var(--bd-muted);font-size:11px;font-variant-numeric:tabular-nums}
.staff-modal .form-error{margin-top:12px}
@media(max-width:1200px){.staff-table th,.staff-table td{padding-inline:12px}.staff-row-actions{gap:4px 10px}.staff-search input{width:180px}}
@media print{.staff-tabs,.staff-toolbar,.staff-row-actions,.staff-heading .primary{display:none!important}}

.staff-auth-notice p+p{margin-top:8px}
