.sui-prj-map-interaction {
  position: relative;
  height: 100%;
  border: $sui-size-border solid $sui-color-border;
  overflow: hidden;
  border-radius: $sui-border-radius-md;

  &.as--dragging {
    cursor: grabbing;
  }

  &.as--animated &__board {
    transition: transform 1s !important;
  }

  &-controls {
    position: absolute;
    right: 2rem;
    bottom: 2rem;
    display: flex;
    justify-content: flex-end;
    text-align: center;
    z-index: 10;
    font-family: $sui-font-family-code;
    font-size: $sui-font-size-ms;

    &__zoom {
      display: flex;
      justify-content: space-between;
      align-items: center;
      background: $sui-color-brand-denim-100;
      border-radius: $sui-border-radius-md;
      box-shadow: $sui-shadow-300;
      width: rem(136);
      margin-left: $sui-space-lg;
      user-select: none;
      overflow: hidden;

      &.as--secondary {
        width: auto;
        font-size: $sui-font-size-sm;
      }
    }

    &__button {
      padding: $sui-space-sm $sui-space-md;
      font-size: $sui-font-size-ms;
      cursor: pointer;
      user-select: none;

      &:hover {
        background: $sui-color-brand-denim-200;
      }

      &:disabled {
        opacity: 0.4;
        cursor: default;
      }
    }
  }

  &__field {
    min-height: rem(248);
    height: 100%;
    width: 100%;
    position: relative;
  }

  &__board {
    position: absolute;
    width: inherit;
    height: inherit;
    transform-origin: 0 0;
    will-change: transform;
  }

  &__layer {
    position: absolute;
    z-index: 10;
  }

  &__background {
    position: absolute;
    z-index: 9;
    background-color: lighten($sui-color-brand-denim, 73%);
    background-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI2NCIgaGVpZ2h0PSI2NCIgdmlld0JveD0iMCAwIDY0IDY0Ij4gIDxnIGZpbGw9Im5vbmUiIGZpbGwtcnVsZT0iZXZlbm9kZCI+ICAgIDxyZWN0IHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHg9IjE1LjUiIHk9IjE1LjUiIGZpbGw9IiNCOUM0RDIiLz4gICAgPHJlY3Qgd2lkdGg9IjEiIGhlaWdodD0iMSIgeD0iMTUuNSIgeT0iLS41IiBmaWxsPSIjQjlDNEQyIi8+ICAgIDxyZWN0IHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHg9Ii0uNSIgeT0iMTUuNSIgZmlsbD0iI0I5QzREMiIvPiAgICA8cmVjdCB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4PSIzMS41IiB5PSIxNS41IiBmaWxsPSIjQjlDNEQyIi8+ICAgIDxyZWN0IHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHg9IjE1LjUiIHk9IjMxLjUiIGZpbGw9IiNCOUM0RDIiLz4gICAgPHJlY3Qgd2lkdGg9IjEiIGhlaWdodD0iMSIgeD0iNDcuNSIgeT0iMTUuNSIgZmlsbD0iI0I5QzREMiIvPiAgICA8cmVjdCB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4PSI0Ny41IiB5PSItLjUiIGZpbGw9IiNCOUM0RDIiLz4gICAgPHJlY3Qgd2lkdGg9IjEiIGhlaWdodD0iMSIgeD0iNjMuNSIgeT0iMTUuNSIgZmlsbD0iI0I5QzREMiIvPiAgICA8cmVjdCB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4PSI0Ny41IiB5PSIzMS41IiBmaWxsPSIjQjlDNEQyIi8+ICAgIDxyZWN0IHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHg9IjE1LjUiIHk9IjQ3LjUiIGZpbGw9IiNCOUM0RDIiLz4gICAgPHJlY3Qgd2lkdGg9IjEiIGhlaWdodD0iMSIgeD0iLS41IiB5PSI0Ny41IiBmaWxsPSIjQjlDNEQyIi8+ICAgIDxyZWN0IHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHg9IjMxLjUiIHk9IjQ3LjUiIGZpbGw9IiNCOUM0RDIiLz4gICAgPHJlY3Qgd2lkdGg9IjEiIGhlaWdodD0iMSIgeD0iMTUuNSIgeT0iNjMuNSIgZmlsbD0iI0I5QzREMiIvPiAgICA8cmVjdCB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4PSI0Ny41IiB5PSI0Ny41IiBmaWxsPSIjQjlDNEQyIi8+ICAgIDxyZWN0IHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHg9IjYzLjUiIHk9IjQ3LjUiIGZpbGw9IiNCOUM0RDIiLz4gICAgPHJlY3Qgd2lkdGg9IjEiIGhlaWdodD0iMSIgeD0iNDcuNSIgeT0iNjMuNSIgZmlsbD0iI0I5QzREMiIvPiAgICA8cmVjdCB3aWR0aD0iMiIgaGVpZ2h0PSIyIiB4PSIzMSIgeT0iLTEiIGZpbGw9IiNENEUwRUUiIHJ4PSIxIi8+ICAgIDxyZWN0IHdpZHRoPSIyIiBoZWlnaHQ9IjIiIHg9Ii0xIiB5PSItMSIgZmlsbD0iI0Q0RTBFRSIgcng9IjEiLz4gICAgPHJlY3Qgd2lkdGg9IjIiIGhlaWdodD0iMiIgeD0iLTEiIHk9IjMxIiBmaWxsPSIjRDRFMEVFIiByeD0iMSIvPiAgICA8cmVjdCB3aWR0aD0iMiIgaGVpZ2h0PSIyIiB4PSIzMSIgeT0iMzEiIGZpbGw9IiNENEUwRUUiIHJ4PSIxIi8+ICAgIDxyZWN0IHdpZHRoPSIyIiBoZWlnaHQ9IjIiIHg9IjYzIiB5PSIzMSIgZmlsbD0iI0Q0RTBFRSIgcng9IjEiLz4gICAgPHJlY3Qgd2lkdGg9IjIiIGhlaWdodD0iMiIgeD0iNjMiIHk9Ii0xIiBmaWxsPSIjRDRFMEVFIiByeD0iMSIvPiAgICA8cmVjdCB3aWR0aD0iMiIgaGVpZ2h0PSIyIiB4PSItMSIgeT0iNjMiIGZpbGw9IiNENEUwRUUiIHJ4PSIxIi8+ICAgIDxyZWN0IHdpZHRoPSIyIiBoZWlnaHQ9IjIiIHg9IjMxIiB5PSI2MyIgZmlsbD0iI0Q0RTBFRSIgcng9IjEiLz4gICAgPHJlY3Qgd2lkdGg9IjIiIGhlaWdodD0iMiIgeD0iNjMiIHk9IjYzIiBmaWxsPSIjRDRFMEVFIiByeD0iMSIvPiAgPC9nPjwvc3ZnPg==);
    background-repeat: repeat;
    width: rem(40224);
    height: rem(40224);
    transform: translate(rem(-20112), rem(-20112));
    cursor: grab;

    &:active,
    &.as--dragging {
      cursor: grabbing;
    }
  }
}
