/* Shared by the pre-React bootstrap, routes, sections and local operations. */
:root { --dv-loading-delay: 150ms; --dv-loading-exit: 100ms; --dv-loading-accent: #ff5a00; }
.dv-loading { font-family: Manrope, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; }
.dv-loading__content { display: flex; flex-direction: column; align-items: center; gap: 12px; }
.dv-loading__content > img { width: 150px; height: auto; margin-bottom: 16px; }
.dv-loading__track { width: min(240px, 72vw); height: 3px; overflow: hidden; border-radius: 999px; background: color-mix(in srgb, currentColor 12%, transparent); }
.dv-loading__progress { height: 100%; border-radius: inherit; background: var(--dv-loading-accent); }
.dv-loading__label { margin: 0; font-size: 14px; font-weight: 500; line-height: 1.5; color: inherit; }
.dv-loading--screen { position: fixed; inset: 0; z-index: 100; display: grid; place-items: center; padding: 24px; background: #ffffeb; color: #1a1a1a; }
.dv-loading--section { padding: 24px; min-height: 160px; display: grid; place-items: center; color: inherit; }
.dv-loading--inline { padding: 12px; color: inherit; }
.dv-loading--inline .dv-loading__track { width: min(160px, 60vw); }
.dv-loading > .dv-loading__content { animation: dv-loading-reveal 0s var(--dv-loading-delay) both; }
.dv-bootstrap-loader { font-family: Manrope, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; }
html.dv-bootstrap-pending .dv-bootstrap-loader__progress,
html.dv-public-auth-transition .dv-bootstrap-loader__progress,
.dv-loading__progress {
  width: 38%; transform-origin: center; box-shadow: none;
  animation: dv-loading-travel 1.2s ease-in-out infinite;
  background: var(--dv-loading-accent);
}
html.dv-public-transition-deferred .dv-bootstrap-loader { visibility: hidden; }
html.dv-public-auth-transition #root { cursor: progress; }
.dv-loading-update { position: absolute; inset: 0 0 auto; z-index: 20; height: 3px; overflow: hidden; pointer-events: none; }
@keyframes dv-loading-travel { from { transform: translateX(-110%); } to { transform: translateX(365%); } }
@keyframes dv-loading-reveal { from { visibility: hidden; } to { visibility: visible; } }
@media (prefers-reduced-motion: reduce) {
  html.dv-bootstrap-pending .dv-bootstrap-loader__progress,
  html.dv-public-auth-transition .dv-bootstrap-loader__progress,
  .dv-loading__progress { animation: none; width: 38%; transform: none; }
}
