.impersonation-account-trigger {
    display: inline-flex;
    align-items: center;
    padding: 0;
    border: 0;
    background: transparent;
    color: #fff;
    font: bold 12px Candara, Helvetica, sans-serif;
    text-decoration: none;
}
button.impersonation-account-trigger { cursor: pointer; }
button.impersonation-account-trigger:hover { color: #fff; text-decoration: underline; }
button.impersonation-account-trigger:focus-visible { outline: 2px solid #fff; outline-offset: 3px; }

#impersonation-banner {
    position: sticky;
    top: 0;
    z-index: 10900;
    padding: 10px 16px;
    background: #fff3cd;
    color: #664d03;
    border-bottom: 1px solid #e5c879;
    box-shadow: 0 2px 6px rgba(66, 48, 0, .12);
    font-size: 13px;
    line-height: 1.5;
}
#impersonation-banner .impersonation-return {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    padding: 7px 12px;
    border: 1px solid #b89443;
    border-radius: 6px;
    background: #fff;
    color: #664d03;
    font-size: 12px;
    font-weight: 600;
    text-decoration: none;
}
#impersonation-banner .impersonation-return:hover { background: #fff8e5; border-color: #806017; }
#impersonation-banner .impersonation-return:focus-visible { outline: 2px solid #806017; outline-offset: 3px; }

/* Account access: staff selection and a named, reviewable target list. */
.impersonation-account-trigger:focus-visible { outline: 2px solid #66d9ef !important; outline-offset: 3px !important; }
.imp-access { display: grid; grid-template-columns: 250px minmax(0, 1fr); border: 1px solid var(--border, #dbe2ea); border-radius: 10px; background: var(--bg-card, #fff); color: var(--text-body, #344054); overflow: hidden; }
.imp-access-staff { border-inline-end: 1px solid var(--border, #dbe2ea); background: var(--bg-input, #f8fafc); }
.imp-access-heading, .imp-access-search { padding: 16px; }
.imp-access-heading { padding-bottom: 0; }
.imp-access h5, .imp-access h6 { margin: 0; font-weight: 600; color: var(--text-primary, #253858); }
.imp-access p { margin: 5px 0 0; }
.imp-access-heading p, .imp-person-heading p, .imp-access small, .imp-access-empty p { font-size: 12px; opacity: .8; }
.imp-staff-list { max-height: 650px; overflow-y: auto; padding: 0 8px 12px; }
.imp-staff-row { display: flex; align-items: center; gap: 10px; width: 100%; text-align: start; padding: 12px 10px; border: 1px solid transparent; border-radius: 7px; background: transparent; color: inherit; }
.imp-staff-row > span:last-child, .imp-target-row > span:nth-child(2) { min-width: 0; flex: 1; }
.imp-staff-row strong, .imp-target-row strong { display: block; font-size: 13px; overflow-wrap: anywhere; }
.imp-staff-row small, .imp-target-row small { display: block; overflow-wrap: anywhere; }
.imp-staff-row:hover, .imp-target-row:hover { background: rgba(41, 128, 185, .06); }
.imp-staff-row.is-selected { background: rgba(41, 128, 185, .12); border-color: rgba(41, 128, 185, .3); }
.imp-avatar { width: 34px; height: 34px; display: inline-flex; align-items: center; justify-content: center; border-radius: 50%; flex-shrink: 0; background: rgba(41, 128, 185, .12); color: var(--text-primary, #253858); font-weight: 600; }
.imp-access-detail { min-width: 0; }
.imp-person-heading { display: flex; align-items: center; gap: 12px; padding: 18px 22px; border-bottom: 1px solid var(--border, #dbe2ea); }
.imp-access-body { padding: 20px 22px; }
.imp-access-options { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; margin-bottom: 24px; }
.imp-access-option { display: flex; align-items: center; justify-content: space-between; gap: 12px; border: 1px solid var(--border, #dbe2ea); border-radius: 8px; padding: 14px; cursor: pointer; }
.imp-access-option strong { font-size: 13px; display: block; }
.imp-access-option small { display: block; margin-top: 4px; font-weight: normal; }
.imp-access-option .form-check { flex-shrink: 0; margin: 0; }
.imp-target-heading, .imp-bulk-bar, .imp-save-bar { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.imp-count, .imp-portal-badge { border-radius: 20px; background: rgba(41, 128, 185, .09); color: inherit; padding: 3px 9px; font-size: 11px; white-space: nowrap; }
.imp-target-tabs { display: flex; gap: 20px; border-bottom: 1px solid var(--border, #dbe2ea); margin: 12px 0 16px; }
.imp-target-tabs button { border: 0; border-bottom: 2px solid transparent; background: transparent; color: inherit; padding: 10px 0; font-size: 13px; }
.imp-target-tabs button.is-selected { border-bottom-color: #2980b9; color: var(--text-primary, #236a9a); font-weight: 600; }
.imp-portal-tabs { display: flex; gap: 6px; margin-bottom: 12px; }
.imp-target-filters { display: grid; grid-template-columns: minmax(0, 1fr) minmax(180px, .65fr); align-items: end; gap: 12px; }
.imp-filter-label { display: block; font-size: 11px; margin-bottom: 4px; }
.imp-bulk-bar { padding: 12px 0; }
.imp-bulk-bar .btn { flex-shrink: 0; }
.imp-target-list { max-height: 340px; min-height: 120px; overflow-y: auto; border: 1px solid var(--border, #dbe2ea); border-radius: 8px; }
.imp-target-row { display: flex; align-items: center; gap: 12px; padding: 12px 14px; border-bottom: 1px solid var(--border, #edf0f4); margin: 0; cursor: pointer; }
.imp-target-row:last-child { border-bottom: 0; }
.imp-target-row.is-selected { background: rgba(41, 128, 185, .06); }
.imp-target-row .form-check-input { flex-shrink: 0; margin: 0; }
.imp-group-row { position: sticky; top: 0; z-index: 1; display: flex; align-items: center; gap: 12px; padding: 9px 14px; margin: 0; cursor: pointer;
    background: var(--bg-secondary, #eef2f6); border-bottom: 1px solid var(--border, #dbe2ea); font-size: 12px; font-weight: 600; text-transform: uppercase; letter-spacing: .02em; }
.imp-group-row .form-check-input { flex-shrink: 0; margin: 0; }
.imp-group-row > span:nth-child(2) { flex: 1; min-width: 0; overflow-wrap: anywhere; }
.imp-group-row.is-partial .form-check-input { background-color: rgba(41, 128, 185, .35); border-color: #2980b9; }
.imp-group-count { flex-shrink: 0; padding: 1px 8px; border-radius: 999px; background: rgba(0, 0, 0, .08); font-size: 11px; font-weight: 600; }
.imp-target-row.is-grouped { padding-left: 28px; }
.imp-empty-list { padding: 30px 16px; text-align: center; font-size: 13px; }
.imp-save-bar { padding: 14px 22px; border-top: 1px solid var(--border, #dbe2ea); background: var(--bg-input, #f8fafc); font-size: 12px; }
.imp-access-empty { display: flex; min-height: 430px; padding: 40px; text-align: center; align-items: center; justify-content: center; flex-direction: column; gap: 12px; }
.imp-access-empty > i { font-size: 36px; color: #2980b9; opacity: .6; }
.imp-unsaved { padding: 16px 22px; background: #fff3cd; color: #664d03; }
.imp-unsaved p { margin: 0 0 10px; }
@media (max-width: 900px) { .imp-access { grid-template-columns: 210px minmax(0, 1fr); } .imp-access-options { grid-template-columns: 1fr; } }
@media (max-width: 640px) {
    .imp-access { grid-template-columns: minmax(0, 1fr); }
    .imp-access-staff { border-inline-end: 0; border-bottom: 1px solid var(--border, #dbe2ea); }
    .imp-staff-list { max-height: 180px; }
    .imp-access-body, .imp-person-heading, .imp-save-bar { padding: 14px; }
    .imp-target-filters { grid-template-columns: 1fr; }
    .imp-bulk-bar { align-items: flex-start; flex-direction: column; }
    .imp-access-empty { min-height: 220px; padding: 24px; }
}
