.vto-availability-dialog { box-sizing: border-box; width: min(440px, calc(100% - 32px)); padding: 28px; border: 0; border-radius: 12px; color: #222; background: #fff; box-shadow: 0 12px 48px #0004; }
.vto-availability-dialog::backdrop { background: #0008; }
.vto-availability-dialog h2 { margin: 0 0 16px; font-size: 18px; line-height: 1.3; }
.vto-availability-dialog p { margin: 0 0 24px; line-height: 1.6; }
.vto-availability-dialog button { padding: 11px 16px; border: 1px solid #ccc; border-radius: 6px; background: #fff; color: #222; font: inherit; cursor: pointer; }
.vto-availability-dialog button { display: block; margin-left: auto; }
.vto-availability-dialog button:focus-visible { outline: 3px solid #222; outline-offset: 3px; }
.vto-ticket-checking { position: relative !important; min-width: 115px; cursor: wait !important; }
.vto-ticket-checking > :not(.vto-ticket-loading-label) { visibility: hidden !important; }
.vto-ticket-checking::before { visibility: hidden !important; }
.vto-ticket-checking > .vto-ticket-loading-label { position: absolute; inset: 0; display: flex !important; align-items: center; justify-content: center; gap: 7px; font-size: 12px; white-space: nowrap; }
.vto-ticket-loading-label::before { content: ''; width: 13px; height: 13px; box-sizing: border-box; border: 2px solid currentColor; border-right-color: transparent; border-radius: 50%; animation: vto-ticket-spin .7s linear infinite; }
@keyframes vto-ticket-spin { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) { .vto-ticket-loading-label::before { animation: none; } }
