.nav-tab.loading, .subtab.loading {
  cursor: wait;
  opacity: .7;
}

.content.loading .callout-retry {
  pointer-events: none;
  opacity: .5;
}

.tab-loading {
  display: flex;
  flex-direction: column;
  gap: .75rem;
  padding: 2rem 0;
  max-width: 400px;
}

@keyframes shimmer {
  0% { background-position: 200% 0; }
  100% { background-position: -200% 0; }
}

.skeleton > * {
  background: linear-gradient(
    90deg,
    var(--panel-bg) 25%,
    var(--panel-bg-sunken) 50%,
    var(--panel-bg) 75%);
  background-size: 200% 100%;
  animation: shimmer 1.5s infinite;
  border-radius: .25rem;
}

.skeleton-heading {
  width: 40%;
  height: .8rem;
}

.skeleton-line {
  width: 100%;
  height: .6rem;
}

.skeleton-line-short {
  width: 75%;
  height: .6rem;
}
