/* GSMVanta Instant Navigation
   Keeps the existing workspace shell visible while the next document is fetched.
   The progress cue appears only when a transition is slow enough to be noticed. */
html[data-app-area="admin"].is-instant-navigation-pending .app-topbar,
html[data-app-area="client"].is-instant-navigation-pending .app-topbar {
  position: relative;
}
html[data-app-area="admin"].is-instant-navigation-pending .app-topbar::after,
html[data-app-area="client"].is-instant-navigation-pending .app-topbar::after {
  content: "";
  position: absolute;
  inset-inline-start: 0;
  bottom: -1px;
  z-index: 40;
  width: 34%;
  height: 2px;
  border-radius: 999px;
  background: currentColor;
  opacity: .55;
  transform-origin: left center;
  animation: gsmvanta-instant-navigation-progress 1s ease-in-out infinite alternate;
  pointer-events: none;
}
@keyframes gsmvanta-instant-navigation-progress {
  from { transform: translateX(-15%) scaleX(.45); opacity: .3; }
  to { transform: translateX(190%) scaleX(1); opacity: .7; }
}
@media (prefers-reduced-motion: reduce) {
  html.is-instant-navigation-pending .app-topbar::after { animation: none; width: 100%; opacity: .35; }
}
