canonrs-server 0.1.0

CanonRS server-side rendering support
/* ═══════════════════════════════════════════════════════════════
   LOADING OVERLAY — Family E Feedback tokens compliant
   ═══════════════════════════════════════════════════════════════ */

[data-rs-overlay-container] {
  position: relative;
  isolation: isolate;
}

[data-rs-overlay-content] {
  width: 100%;
  transition: opacity var(--loading-overlay-transition-duration) var(--loading-overlay-transition-ease);
}

[data-rs-loading-overlay] {
  position: absolute;
  inset: 0;
  z-index: var(--loading-overlay-z-index);
  opacity: 0;
  pointer-events: none;
  transition: opacity var(--loading-overlay-transition-duration) var(--loading-overlay-transition-ease);
}

[data-rs-overlay-container][data-rs-state~="idle"] [data-rs-loading-overlay] {
  display: none;
}

[data-rs-overlay-container][data-rs-state~="loading"] [data-rs-loading-overlay] {
  display: block;
  opacity: 1;
  pointer-events: all;
}

[data-rs-overlay-container][data-rs-state~="loading"] [data-rs-overlay-content] {
  opacity: 0.5;
  pointer-events: none;
  user-select: none;
}

[data-rs-overlay-container][data-rs-overlay-mode="blocking"] [data-rs-loading-overlay] {
  background: var(--loading-overlay-bg);
}

[data-rs-overlay-container][data-rs-overlay-mode="subtle"] [data-rs-loading-overlay] {
  background: transparent;
  pointer-events: none;
}

[data-rs-overlay-container][data-rs-overlay-mode="skeleton"] [data-rs-loading-overlay] {
  background: transparent;
}

[data-rs-loading-overlay-spinner] {
  position: absolute;
  top: 50%;
  right: var(--space-md);
  transform: translateY(-50%);
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--theme-surface-fg);
}

[data-rs-loading-overlay-spinner] svg {
  width: var(--loading-overlay-spinner-size);
  height: var(--loading-overlay-spinner-size);
  display: block;
  transform-origin: center;
  transform-box: fill-box;
  animation: overlay-spin var(--loading-overlay-spin-duration) linear infinite;
}

@keyframes overlay-spin {
  from { transform: rotate(0deg); }
  to   { transform: rotate(360deg); }
}