.sfdn-busy { position: fixed; left: 50%; top: 50%; transform: translate(-50%, -50%); width: max-content; max-width: calc(100vw - 32px); z-index: 30000; display: flex; align-items: center; gap: 16px; padding: 24px 32px; border: 1px solid #cbd5df; border-radius: 10px; background: #fff; color: #183b59; box-shadow: 0 8px 32px #0003, 0 0 0 100vmax #10182044; font: 600 14px var(--sfdn-font, Arial, sans-serif); pointer-events: none; }
.sfdn-busy[hidden] { display: none; }
.sfdn-spinner, .sfdn-button-busy::before { width: 20px; height: 20px; box-sizing: border-box; border: 3px solid #b8cad8; border-top-color: #183b59; border-radius: 50%; animation: sfdn-spin .8s linear infinite; flex-shrink: 0; }
.sfdn-button-busy { cursor: wait !important; }
.sfdn-button-busy::before { content: ''; display: inline-block; width: 14px; height: 14px; margin-right: 8px; vertical-align: middle; border-color: currentColor; border-right-color: transparent; }
@keyframes sfdn-spin { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) { .sfdn-spinner, .sfdn-button-busy::before { animation-duration: 2s; } }
.sfdn-busy .sfdn-spinner { width: 32px; height: 32px; border-width: 4px; }
