/* Form error banner (operator 2026-11-02): hangs from the bottom of the sticky header, out of the page flow, so it moves
   nothing and travels with the header. Built by errorSummary() in assets/js/custom.js. Its own file because custom.css
   holds another session's unapproved header work; fold it in later. */
.zde-top > .zde-errbar {
  position: absolute; top: 100%; left: 0; right: 0; z-index: 1; margin: 0;
  padding: 12px 56px 14px 16px;
  background: var(--zde-raised);
  border: 1px solid var(--zde-line-strong); border-top: 0; border-bottom: 2px solid var(--zde-error);
  max-height: calc(100dvh - var(--zde-header-h) - 16px); overflow-y: auto;
}
/* Focus only lands here so a screen reader starts at the message; the buttons inside carry the visible focus. */
.zde-top > .zde-errbar:focus { outline: none; }
.zde-errbar .zde-notice__title { color: var(--zde-text); }
.zde-errbar .zde-errbar__list { display: flex; flex-wrap: wrap; gap: 8px; margin: 10px 0 0; padding: 0; list-style: none; }
.zde-errbar__list li { margin: 0; padding: 0; }
.zde-errbar__list li::before, .zde-errbar__list li::marker { content: none; }
.zde-errbar__go {
  min-height: 44px; padding: 0 16px; border: 1px solid var(--zde-text); border-radius: 0; background: transparent;
  color: var(--zde-text); font: 600 .875rem/1.2 var(--zde-sans); cursor: pointer;
  transition: background-color var(--zde-dur) var(--zde-ease), color var(--zde-dur) var(--zde-ease);
}
.zde-errbar__go:hover { background: var(--zde-text); color: var(--zde-ground); }
.zde-errbar__go:active { background: var(--zde-lead); border-color: var(--zde-lead); color: var(--zde-ground); }
.zde-errbar__go:focus-visible, .zde-errbar__close:focus-visible { outline: 2px solid var(--zde-focus); outline-offset: 2px; }
.zde-errbar__close {
  position: absolute; top: 6px; right: 6px; width: 44px; height: 44px; padding: 0; border: 0; border-radius: 0;
  background: transparent; color: var(--zde-text); font: 400 26px/1 var(--zde-sans); cursor: pointer;
}
.zde-errbar__close:hover { background: #2E2E32; }
@media (max-width: 700px) {
  .zde-top > .zde-errbar { padding: 10px 48px 12px 12px; }
  .zde-errbar .zde-errbar__list { gap: 6px; margin-top: 8px; margin-left: -28px; }
  .zde-errbar__go { min-height: 40px; padding: 0 12px; font-size: .8125rem; }
}
@media (prefers-reduced-motion: reduce) { .zde-errbar__go { transition: none; } }
