/* Pass dialog. Colours come from CSS variables so an app can theme it; the defaults meet 4.5:1 contrast on their backgrounds. */
.bu-dialog {
  --bu-bg: #1c222c; --bu-text: #eef1f4; --bu-muted: #b8c2cc; --bu-border: #6d7886; --bu-accent: #8ab4f8; --bu-accent-text: #0b1220;
  --bu-error: #ffb4a8; --bu-focus: #ffb86b;
  background: var(--bu-bg); color: var(--bu-text); border: 1px solid var(--bu-border); border-radius: 6px;
  padding: 18px 22px; max-width: min(460px, calc(100vw - 24px)); width: 100%; font: 14px/1.45 system-ui, sans-serif;
}
.bu-dialog::backdrop { background: rgba(0, 0, 0, .6); }
.bu-form { position: relative; display: block; margin: 0; }
.bu-form h2 { margin: 0 28px 6px 0; font-size: 18px; }
.bu-close { position: absolute; top: -4px; right: -8px; min-width: 44px; min-height: 44px; background: transparent; color: var(--bu-text); border: 0; font-size: 22px; cursor: pointer; }
.bu-reason { margin: 0 0 10px; color: var(--bu-muted); min-height: 1.2em; }
.bu-passes { border: 0; padding: 0; margin: 0 0 8px; }
.bu-passes legend { padding: 0; margin-bottom: 4px; color: var(--bu-muted); }
.bu-pass { display: flex; align-items: center; gap: 10px; padding: 10px; min-height: 44px; border: 1px solid var(--bu-border); border-radius: 4px; margin-bottom: 6px; cursor: pointer; }
.bu-pass:has(input:checked) { border-color: var(--bu-accent); }
.bu-pass input { width: 20px; height: 20px; accent-color: var(--bu-accent); }
.bu-name { flex: 1; }
.bu-price { font-weight: 700; }
.bu-save { font-size: 12px; color: var(--bu-accent); }
.bu-hint { color: var(--bu-muted); font-size: 12px; margin: 6px 0; }
.bu-agree { display: block; margin: 10px 0; }
.bu-agree a { color: var(--bu-accent); }
.bu-error { color: var(--bu-error); min-height: 1.2em; margin: 4px 0; }
.bu-btn { min-height: 44px; padding: 8px 16px; border-radius: 4px; font: inherit; cursor: pointer; }
.bu-primary { background: var(--bu-accent); color: var(--bu-accent-text); border: 0; font-weight: 700; width: 100%; }
.bu-primary:disabled { opacity: .6; cursor: wait; }
.bu-dialog :focus-visible { outline: 3px solid var(--bu-focus); outline-offset: 2px; }
@media (prefers-reduced-motion: reduce) { .bu-dialog * { transition: none !important; } }
