/* spec-viewer-white-label-loading — NO AUTODESK BRANDING IN ANY BIMERGE VIEWER.
 *
 * The Viewer SDK (LMV 7.x) builds a loading spinner into EVERY Viewer3D it
 * constructs — headless ones included — inside `.adsk-viewing-viewer`:
 *
 *   `.forge-spinner`   the blue wheel (an <svg>) + the "Powered by AUTODESK"
 *                      image (`res/ui/powered-by-autodesk-blk-rgb.png`), the
 *                      default;
 *   `.spinner`         the bouncing-dots spinner LMV uses when
 *                      `DISABLE_FORGE_LOGO` is set (three `.bounceN` divs);
 *   `.loading-spinner` the themed variant the SDK's stylesheet paints.
 *
 * EVERYWHERE: the wheel, the logo and the dots are hidden. The spinner
 * ELEMENT itself stays where LMV puts it — LMV owns when it shows and goes
 * (inline `display` / `opacity`) — and draws a neutral ring in the app's own
 * colours instead, so a big model load (Project Home's NWD, the Explorer, the
 * dashboards, the legacy viewer) still says it is loading.
 *
 * REALITY CAPTURE: the loader is hidden outright in its three viewers — the
 * 3D pane, the 2D plan (which has its own "Loading <level>…" pill) and the
 * hilite twin. `!important` beats LMV's inline `display`.
 *
 * Linked right after the SDK's own `style.min.css` on every page that loads
 * LMV. Out of scope: the ViewCube, the toolbar and the rest of Autodesk's
 * chrome.
 */
.adsk-viewing-viewer .forge-spinner svg,
.adsk-viewing-viewer .forge-spinner img,
.adsk-viewing-viewer .spinner > *,
.adsk-viewing-viewer .loading-spinner > * {
  display: none !important;
}

.adsk-viewing-viewer .forge-spinner::after,
.adsk-viewing-viewer .spinner::after,
.adsk-viewing-viewer .loading-spinner::after {
  content: "";
  display: block;
  box-sizing: border-box;
  border-radius: 50%;
  border: 4px solid var(--muted, #e9eef0);
  border-top-color: var(--primary, #1a2f3a);
  animation: bimerge-lmv-loading-turn 0.9s linear infinite;
}

/* The forge spinner is scaled by LMV (inline `scale(0.5)`), so its ring is
 * drawn at twice the size it shows at: 72px → 36px on screen. */
.adsk-viewing-viewer .forge-spinner::after {
  width: 72px;
  height: 72px;
  border-width: 8px;
}

.adsk-viewing-viewer .spinner::after,
.adsk-viewing-viewer .loading-spinner::after {
  width: 36px;
  height: 36px;
  margin: 0 auto;
}

@keyframes bimerge-lmv-loading-turn {
  to {
    transform: rotate(360deg);
  }
}

@media (prefers-reduced-motion: reduce) {
  .adsk-viewing-viewer .forge-spinner::after,
  .adsk-viewing-viewer .spinner::after,
  .adsk-viewing-viewer .loading-spinner::after {
    animation: none;
  }
}

/* Reality Capture: no loader at all in its viewers. */
#rc-viewer .forge-spinner,
#rc-viewer .spinner,
#rc-viewer .loading-spinner,
#rc-plan-viewer .forge-spinner,
#rc-plan-viewer .spinner,
#rc-plan-viewer .loading-spinner,
#rc-twin .forge-spinner,
#rc-twin .spinner,
#rc-twin .loading-spinner {
  display: none !important;
  visibility: hidden !important;
}
