:root {
  --ms-motion-fast: 160ms;
  --ms-motion-medium: 260ms;
  --ms-motion-slow: 480ms;
  --ms-motion-ease: cubic-bezier(0.22, 1, 0.36, 1);
  --ms-motion-lift: 0 16px 40px rgba(15, 23, 42, 0.12);
}

html {
  scroll-behavior: smooth;
}

.motion-ready [data-ms-reveal] {
  opacity: 0;
  transform: translate3d(0, 18px, 0);
  transition:
    opacity var(--ms-motion-slow) var(--ms-motion-ease),
    transform var(--ms-motion-slow) var(--ms-motion-ease);
  transition-delay: var(--ms-reveal-delay, 0ms);
}

.motion-ready [data-ms-reveal].is-visible {
  opacity: 1;
  transform: translate3d(0, 0, 0);
}

.motion-ready [data-ms-reveal="fade"] {
  transform: none;
}

.motion-ready [data-ms-reveal="left"] {
  transform: translate3d(-18px, 0, 0);
}

.motion-ready [data-ms-reveal="right"] {
  transform: translate3d(18px, 0, 0);
}

.motion-ready [data-ms-reveal="scale"] {
  transform: scale(0.98);
}

.motion-ready [data-ms-reveal].is-visible {
  transform: translate3d(0, 0, 0) scale(1);
}

.themeMain .ms-card,
.themeMain .promo-bar,
.themeMain .spec-item,
.themeMain .count-cards,
.themeMain .physician-tabs .nav-link,
.themeMain .ms-choice,
.themeMain .card,
.themeMain .btn,
.themeMain .btn-primary-custom,
.themeMain .btn-ghost-light,
.tenant-dashboard .card,
.tenant-dashboard .btn,
.admin-dashboard .card,
.admin-dashboard .btn {
  transition:
    transform var(--ms-motion-medium) var(--ms-motion-ease),
    box-shadow var(--ms-motion-medium) var(--ms-motion-ease),
    border-color var(--ms-motion-medium) var(--ms-motion-ease),
    background-color var(--ms-motion-medium) var(--ms-motion-ease),
    color var(--ms-motion-fast) ease;
}

.themeMain .ms-card:hover,
.themeMain .promo-bar:hover,
.themeMain .spec-item:hover,
.themeMain .count-cards:hover,
.themeMain .ms-choice:hover,
.tenant-dashboard .card:hover,
.admin-dashboard .card:hover {
  transform: translate3d(0, -3px, 0);
  box-shadow: var(--ms-motion-lift);
}

.themeMain .btn:hover,
.themeMain .btn-primary-custom:hover,
.themeMain .btn-ghost-light:hover,
.tenant-dashboard .btn:hover,
.admin-dashboard .btn:hover {
  transform: translate3d(0, -1px, 0);
}

.themeMain .wait-time-badge {
  position: relative;
  isolation: isolate;
}

.themeMain .wait-time-badge::after {
  position: absolute;
  inset: -4px;
  z-index: -1;
  border-radius: inherit;
  background: currentColor;
  content: "";
  opacity: 0.12;
  transform: scale(0.94);
  animation: ms-wait-pulse 2.8s ease-in-out infinite;
}

.themeMain .scheduler-tab_mini,
.themeMain .scheduler-card,
.themeMain .tab-pane,
.themeMain .dropdown-menu {
  animation: ms-soft-enter var(--ms-motion-medium) var(--ms-motion-ease);
}

.tenant-dashboard .card,
.admin-dashboard .card,
.tenant-dashboard .table-responsive,
.admin-dashboard .table-responsive {
  animation: ms-soft-enter var(--ms-motion-medium) var(--ms-motion-ease);
}

@keyframes ms-soft-enter {
  from {
    opacity: 0;
    transform: translate3d(0, 8px, 0);
  }

  to {
    opacity: 1;
    transform: translate3d(0, 0, 0);
  }
}

@keyframes ms-wait-pulse {
  0%,
  100% {
    opacity: 0.1;
    transform: scale(0.94);
  }

  50% {
    opacity: 0.22;
    transform: scale(1.08);
  }
}

@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }

  *,
  *::before,
  *::after {
    animation-duration: 0.001ms !important;
    animation-iteration-count: 1 !important;
    scroll-behavior: auto !important;
    transition-duration: 0.001ms !important;
  }

  .motion-ready [data-ms-reveal] {
    opacity: 1;
    transform: none;
  }
}
