.guest-auth-dialog {
  box-sizing: border-box;
  width: min(calc(100% - 40px),380px);
  max-height: calc(100dvh - 40px);
  overflow: auto;
  margin: auto;
  padding: 30px 26px 20px;
  border: 1px solid #eee5df;
  border-radius: 16px;
  background: #fffdf9;
  color: #302c30;
  font: 14px/1.8 var(--sans, sans-serif);
  text-align: left;
}
.guest-auth-dialog::backdrop { background: #241b1b8a; }
.guest-auth-dialog.is-fallback { position: fixed; inset: 0; z-index: 10000; box-shadow: 0 0 0 100vmax #241b1b8a; }
.guest-auth-mark { display: block; margin-bottom: 18px; color: #bc302b; font: 28px/1 serif; }
.guest-auth-dialog h2 { margin: 0 0 12px; font: 650 23px/1.4 var(--sans, sans-serif); }
.guest-auth-copy { margin: 0 0 12px; }
.guest-auth-purpose { margin: 0 0 18px; color: #766c68; font-size: 12px; }
.guest-auth-status { min-height: 40px; margin: 0 0 18px; color: #766c68; font-size: 12px; }
.guest-auth-dialog button { display: block; width: 100%; min-height: 44px; padding: 10px 14px; border-radius: 8px; font: 600 14px/1.5 var(--sans, sans-serif); cursor: pointer; }
.guest-auth-login { border: 1px solid #b92d27; background: #b92d27; color: #fff; }
.guest-auth-retry { border: 1px solid #d8ccc5; background: transparent; color: #302c30; }
.guest-auth-cancel { margin-top: 8px; border: 0; background: transparent; color: #766c68; }
.guest-auth-dialog button:disabled { cursor: default; opacity: .55; }
.guest-auth-dialog button:focus-visible { outline: 2px solid #b92d27; outline-offset: 3px; }
.guest-auth-dialog [hidden] { display: none !important; }
