.admin-assistance-active { --admin-assistance-height: 82px; }
.admin-assistance-active body { padding-top: var(--admin-assistance-height); }
.admin-assistance-banner { position: fixed; inset: 0 0 auto; z-index: 2147483646; display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 12px max(16px, env(safe-area-inset-right)) 12px max(16px, env(safe-area-inset-left)); background: #432940; color: #fffdf8; border-bottom: 3px solid #e7b888; font: 14px/1.4 system-ui, sans-serif; }
.admin-assistance-banner strong { display: block; overflow-wrap: anywhere; }
.admin-assistance-note { font-size: 12px; margin-top: 3px; }
.admin-assistance-banner button { flex-shrink: 0; min-height: 44px; border: 1px solid currentColor; border-radius: 8px; padding: 10px 14px; background: transparent; color: inherit; font: inherit; cursor: pointer; }
.admin-assistance-banner button:focus-visible { outline: 3px solid #e7b888; outline-offset: 3px; }
.admin-assistance-cover { position: fixed; inset: var(--admin-assistance-height) 0 0; z-index: 2147483645; display: grid; place-items: center; padding: 24px; background: #f7f0e2; color: #2b1f2d; font: 16px/1.5 system-ui, sans-serif; }
.admin-assistance-cover > div { max-width: 560px; }
.admin-assistance-cover[hidden] { display: none; }
.admin-assistance-confined body > :not(.admin-assistance-banner):not(.admin-assistance-cover) { display: none !important; }
.admin-assistance-authback { position: fixed; inset: 0; z-index: 2147483647; display: grid; place-items: center; padding: 18px; background: #21142199; }
.admin-assistance-auth { width: min(100%, 420px); box-sizing: border-box; max-height: 90svh; overflow: auto; padding: 24px; background: var(--card, #fffdf8); color: var(--ink, #2b1f2d); border-radius: 14px; font: 16px/1.5 system-ui, sans-serif; }
.admin-assistance-auth h2 { font-size: 21px; margin: 0 0 12px; }
.admin-assistance-auth input { display: block; box-sizing: border-box; width: 100%; margin: 8px 0; padding: 12px; font: 24px/1.2 monospace; }
.admin-assistance-auth button { min-height: 44px; padding: 10px 16px; font: inherit; cursor: pointer; }
.admin-assistance-active .modalBack { top: var(--admin-assistance-height); }
.admin-assistance-active .modal { max-height: calc(100svh - var(--admin-assistance-height) - 36px); }
.admin-assistance-active .bellPanel.nFixed { top: calc(var(--admin-assistance-height) + 12px); max-height: calc(100svh - var(--admin-assistance-height) - 24px); }
@media (min-width: 901px) { .admin-assistance-active .detail { top: calc(var(--admin-assistance-height) + 14px); } .admin-assistance-active .notifBack { top: calc(var(--admin-assistance-height) + 12px); } }
/* Mobile booking sheets must leave their close/header controls below the measured
   assistance banner, including when its restaurant/account text wraps. */
@media (max-width: 900px) {
  .admin-assistance-active .detail-wrap:has(.bookingDetail) { top: var(--admin-assistance-height); height: calc(var(--vvh, 100dvh) - var(--admin-assistance-height)); }
  .admin-assistance-active .addDlg { max-height: calc(var(--vvh, 100dvh) - var(--admin-assistance-height) - 24px); }
  .admin-assistance-active #addDlg { top: var(--admin-assistance-height); height: calc(var(--vvh, 100dvh) - var(--admin-assistance-height)); max-height: calc(var(--vvh, 100dvh) - var(--admin-assistance-height)); }
}
@media (min-width: 521px) and (max-width: 900px) {
  .admin-assistance-active .addDlg:not(#addDlg) { top: calc((var(--vvh, 100dvh) + var(--admin-assistance-height)) / 2); }
}
@media (max-width: 560px) { .admin-assistance-banner { align-items: flex-start; gap: 10px; font-size: 13px; } .admin-assistance-banner button { max-width: 100px; } }
