.impersonation-action { display: grid; justify-items: start; gap: .3rem; max-width: 18rem; margin: 0; }
.impersonation-action small { color: var(--muted); font-size: .72rem; line-height: 1.4; }
.impersonation-banner { position: sticky; top: 0; z-index: 65; display: flex; align-items: center; justify-content: space-between; gap: .75rem 1.5rem; padding: .7rem clamp(1rem, 2.6vw, 2rem); border-bottom: 2px solid #99700d; background: #fff3cf; color: #4c3600; }
.impersonation-banner-copy { min-width: 0; overflow-wrap: anywhere; }
.impersonation-banner-copy strong { display: block; font-size: .95rem; }
.impersonation-banner-copy p { margin: .15rem 0; font-size: .82rem; }
.impersonation-banner-copy small { display: block; font-size: .72rem; }
.impersonation-banner form { flex-shrink: 0; margin: 0; }
.impersonation-banner .button { min-height: 44px; }
.impersonation-account-note { margin: 0; padding: .65rem .8rem; color: var(--muted); font-size: .8rem; }
.impersonation-form-notice { margin: .6rem 0; grid-column: 1 / -1; font-size: .82rem; color: var(--ink); }
[data-impersonating] .topbar { position: relative; z-index: 60; }
[data-impersonating] [data-impersonation-blocked] { cursor: not-allowed; opacity: .75; }
body[data-impersonating]:not(.nav-open) { overflow-x: clip; }
html:has(body[data-impersonating]) { scroll-padding-top: calc(var(--impersonation-banner-height, 125px) + 1rem); }
@media (min-width: 1101px) {
    [data-impersonating] .app-sidebar { top: var(--impersonation-banner-height, 125px); height: calc(100vh - var(--impersonation-banner-height, 125px)); }
}
@media (max-width: 600px) {
    .impersonation-banner { align-items: stretch; flex-direction: column; gap: .55rem; }
    .impersonation-banner .button { width: 100%; }
    .impersonation-action { max-width: 100%; }
}
html[data-theme="dark"] .impersonation-banner { background: #3a3018; border-color: #b9923c; color: #ffedb3; }
@media print { .impersonation-banner { position: static; } .impersonation-banner form { display: none; } }
