/* DivGraphic 相关的样式 */

.mirage2d-colorPoint {
  background: #ff6a00;
  border: #eee 2px solid;
  width: 15px;
  height: 15px;
  border-radius: 50%;
  box-shadow: 2px 0 4px rgba(0, 0, 0, 0.2);
}

/**************** 一个黑色面板，指向左下角黄色连线 ****************/
.mirageBlackPanel {
 
  min-width: 90px;
  min-height: 35px;
  position: absolute;
  left: 16px;
  bottom: 31px;
  cursor: default;
  border-radius: 4px;
  opacity: 0.96;
  border: 1px solid #14171c;
  box-shadow: 0px 2px 21px 0px rgba(33, 34, 39, 0.55);
  border-radius: 4px;
  box-sizing: border-box;
  background: linear-gradient(0deg, #1e202a 0%, #0d1013 100%);

  
}

.mirageBlackPanel::before {
  content: "";
  width: calc(100% + 22px);
  height: 39px;
  position: absolute;
  bottom: -39px;
  left: -22px;
  background: url("../image/marker/popupLbl.png") 0px 0px no-repeat;
  background-position: 0px 0px;
}
 
.mirageBlackPanel-text {
  width: 100%;
  height: 100%;
  min-height: 33px;
  text-align: center;
  padding: 5px 5px 0 5px;
  margin: 0;
  font-size: 14px;
  font-weight: 400;
  color: #ffffff;
  border: 1px solid #ffffff4f;
  -webkit-box-sizing: border-box;
  box-sizing: border-box;
  white-space: nowrap;
}

.mirageBlackPanel-highlight {
  border: 2px solid yellow;
}

/**************** 一个渐变的文本面板,中间竖直连线 ****************/
.mirageBlueGradientPnl {
  text-align: center;
  padding: 5px 30px;
  margin: 0;
  color: #fff;
  background: linear-gradient(rgb(7 10 203 / 75%), rgb(16 238 220));
  -webkit-border-radius: 5px;
  -moz-border-radius: 5px;
  border-radius: 5px;
  max-height: 130px;
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
  white-space: nowrap;
}

.mirageBlueGradientPnl:after {
  content: "";
  position: absolute;
  bottom: -60px;
  left: calc(50% - 3px);
  display: block;
  width: 3px;
  height: 60px;
  border-right: 3px solid #2bcdbb;
}

.mirageBlueGradientPnl-highlight {
  border: 2px solid yellow;
}

.mirageBlueGradientPnl-highlight:after {
  border-right: 3px solid yellow;
}

/**************** 一个简洁文本面板,中间竖直连线 ****************/
.mirageGreenGradientPnl {
  width: 100px;
  text-align: center;
  background-image: linear-gradient(to right, #565d39, #00ffc3);
  position: absolute;
  left: -50px;
  bottom: 30px;
  cursor: default;
  padding: 5px;
  border: 1px solid #9c9944e8;
}

.mirageGreenGradientPnl:hover {
  border: 1px solid rgb(9, 255, 0);
}

.mirageGreenGradientPnl::before {
  position: absolute;
  content: "";
  left: 50%;
  bottom: -30px;
  height: 30px;
  border-left: 2px dashed #c5e22770;
}

.mirageGreenGradientPnl-highlight {
  border: 2px solid yellow;
}

.mirageGreenGradientPnl-highlight::before {
  border-left: 2px dashed yellow !important;
}

/********** 面板：倾斜指向左下角的div1.png图片面板样式 ***********/

.mirageImgPanel1 {
  position: relative;
  width: 200px;
  height: 134px;
  background: rgba(42, 42, 42, 0.8);
  border-radius: 4px;

  background: url("../image/marker/div1.png");
  background-size: 100%;
  -webkit-background-size: cover;
  -moz-background-size: cover;
  -o-background-size: cover;

  -webkit-animation: mymove 5s infinite;
  animation: mymove 5s infinite;
  animation-duration: 5s;
  animation-timing-function: ease;
  animation-delay: 0s;
  animation-iteration-count: infinite;
  animation-direction: normal;
  animation-fill-mode: none;
  animation-play-state: running;
  animation-name: mymove;
}

.mirageImgPanel1 .title {
  position: relative;
  top: 20px;
  left: 70px;
  font-size: 15px;
  text-align: left;
  color: rgba(255, 255, 255, 1);
  text-shadow: 0px 0px 9px rgba(0, 0, 0, 0.75);
}

/********** 面板：倾斜指向左下角的div2.png图片面板样式 ***********/
.mirageImgPanel2 {
  position: relative;
  width: 200px;
  height: 157px;
  background: rgba(42, 42, 42, 0.8);
  border-radius: 4px;
  background: url("../image/marker/div2.png");
  background-size: 100%;
  -webkit-background-size: cover;
  -moz-background-size: cover;
  -o-background-size: cover;

  -webkit-animation: mymove 5s infinite;
  animation: mymove 5s infinite;
  animation-duration: 5s;
  animation-timing-function: ease;
  animation-delay: 0s;
  animation-iteration-count: infinite;
  animation-direction: normal;
  animation-fill-mode: none;
  animation-play-state: running;
  animation-name: mymove;
}

.mirageImgPanel2 .title {
  position: inherit;
  top: 22px;
  left: 70px;
  font-size: 14px;
  text-align: left;

  color: rgba(255, 255, 255, 1);
  text-shadow: 0px 0px 9px rgba(0, 0, 0, 0.75);
}

.mirageImgPanel2 .content {
  position: inherit;
  font-size: 14px;
  top: 30px;
  left: 50px;
  width: 140px;
  height: auto;
  text-align: left;
  color: rgba(255, 255, 255, 1);
  overflow: hidden;
}

/********** 面板：倾斜指向左下角的面板样式 ***********/
.mirageTiltPanel {
  width: 400px;
}

.mirageTiltPanel-wrap {
  position: relative;
  padding: 30px;
  overflow: hidden;
}

.mirageTiltPanel .area {
  position: relative;
  min-width: 180px;
}

.mirageTiltPanel .b-t {
  position: absolute;
  top: 0;
  left: 44px;
  right: 0;
  height: 1px;
  z-index: 10;
}

.mirageTiltPanel .b-r {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 44px;
  width: 1px;
  z-index: 10;
}

.mirageTiltPanel .b-b {
  position: absolute;
  left: 0;
  right: 44px;
  bottom: 0;
  height: 1px;
  z-index: 10;
}

.mirageTiltPanel .b-l {
  position: absolute;
  top: 44px;
  left: 0;
  bottom: 0;
  width: 1px;
  z-index: 10;
}

.mirageTiltPanel .b-t-l {
  position: absolute;
  top: 0;
  left: 0;
  width: 1px;
  height: 62px;
  transform: rotate(45deg) translate(52px, -22px);
  z-index: 10;
}

.mirageTiltPanel .b-b-r {
  position: absolute;
  bottom: 0;
  right: 0;
  width: 1px;
  height: 62px;
  transform: rotate(45deg) translate(-52px, 22px);
  z-index: 10;
}

.mirageTiltPanel .label-wrap {
  padding-left: 12px;
  color: #fff;
  font-size: 16px;
  white-space: nowrap;
  overflow: hidden;
}

.mirageTiltPanel .title {
  margin-top: 20px;
  padding: 0 12px 0 30px;
  height: 36px;
  line-height: 36px;
  position: relative;
}

.mirageTiltPanel .title::before {
  content: "";
  position: absolute;
  bottom: -4px;
  left: 0;
  right: 0;
  z-index: 10;
  height: 2px;
}

.mirageTiltPanel .label-content {
  padding: 15px 0;
}

.mirageTiltPanel .data-li {
  padding: 4px 45px 4px 0;
}

.mirageTiltPanel .data-label,
.data-value {
  display: inline-block;
}

.mirageTiltPanel .data-value {
  font-size: 14px;
}

.mirageTiltPanel .label-num {
  margin-right: 3px;
  color: #f09e28;
  font-weight: 600;
}

.mirageTiltPanel .label-tag {
  display: inline-block;
  position: relative;
  margin-right: 6px;
  padding: 0 6px;
  font-weight: 600;
  cursor: pointer;
  background-color: #909399;
  border-radius: 4px;
}

.mirageTiltPanel .label-tag::after {
  content: attr(alt);
  display: inline-block;
  position: absolute;
  bottom: -22px;
  right: -35px;
  z-index: -1;
  padding: 2px 4px;
  color: #fff;
  font-size: 14px;
  background-color: #333;
  border-radius: 3px;
  opacity: 0;
  transition: all 0.3s ease-in;
}

.mirageTiltPanel .label-tag:hover::after {
  opacity: 1;
  z-index: 11;
}

.mirageTiltPanel .data-value-status-0 {
  background-color: #f0285c;
}

.mirageTiltPanel .data-value-status-1 {
  background-color: #35b15b;
}

.mirageTiltPanel .data-value-status-2 {
  background-color: #f09e28;
}

.mirageTiltPanel .arrow {
  position: absolute;
  bottom: 0;
  left: 0;
  width: 45px;
  height: 2px;
  transform: rotate(-45deg) translate(5px, -15px);
}

/* 蓝色主题 */

.mirageTiltPanel-theme-blue .b-t,
.mirageTiltPanel-theme-blue .b-r,
.mirageTiltPanel-theme-blue .b-b,
.mirageTiltPanel-theme-blue .b-l,
.mirageTiltPanel-theme-blue .b-t-l,
.mirageTiltPanel-theme-blue .b-b-r {
  background-color: #29baf1;
  box-shadow: 0 0 10px 2px #29baf1;
}

.mirageTiltPanel-theme-blue .area {
  background-image: linear-gradient(135deg, transparent 30px, #28bbf06c 30px, #28bbf06c 50%, transparent 50%),
    linear-gradient(-45deg, transparent 30px, #28bbf06c 30px, #28bbf06c 50.1%, transparent 50%);
}

.mirageTiltPanel-theme-blue .title {
  background-image: linear-gradient(135deg, transparent 25px, #29baf1 25px);
}

.mirageTiltPanel-theme-blue .arrow,
.mirageTiltPanel-theme-blue .title::before {
  background-color: #28bbf0;
}

/* 绿色主题 */

.mirageTiltPanel-theme-green .b-t,
.mirageTiltPanel-theme-green .b-r,
.mirageTiltPanel-theme-green .b-b,
.mirageTiltPanel-theme-green .b-l,
.mirageTiltPanel-theme-green .b-t-l,
.mirageTiltPanel-theme-green .b-b-r {
  background-color: #06e34a;
  box-shadow: 0 0 10px 2px #06e34a;
}

.mirageTiltPanel-theme-green .area {
  background-image: linear-gradient(135deg, transparent 30px, #06e3486c 30px, #06e3486c 50%, transparent 50%),
    linear-gradient(-45deg, transparent 30px, #06e3486c 30px, #06e3486c 50.1%, transparent 50%);
}

.mirageTiltPanel-theme-green .title {
  background-image: linear-gradient(135deg, transparent 25px, #06e34a 25px);
}

.mirageTiltPanel-theme-green .arrow,
.mirageTiltPanel-theme-green .title::before {
  background-color: #06e34a;
}

/* 红色主题 */
.mirageTiltPanel-theme-red .b-t,
.mirageTiltPanel-theme-red .b-r,
.mirageTiltPanel-theme-red .b-b,
.mirageTiltPanel-theme-red .b-l,
.mirageTiltPanel-theme-red .b-t-l,
.mirageTiltPanel-theme-red .b-b-r {
  background-color: #e3064f;
  box-shadow: 0 0 10px 2px #e3064f;
}

.mirageTiltPanel-theme-red .area {
  background-image: linear-gradient(134deg, transparent 30px, #e306506c 30px, #e306506c 50%, transparent 50%),
    linear-gradient(-46deg, transparent 30px, #e306506c 30px, #e306506c 50%, transparent 50%);
}

.mirageTiltPanel-theme-red .title {
  background-image: linear-gradient(135deg, transparent 25px, #e3064f 25px);
}

.mirageTiltPanel-theme-red .arrow,
.mirageTiltPanel-theme-red .title::before {
  background-color: #e3064f;
}

/* 黄色主题 */

.mirageTiltPanel-theme-e9b709 .b-t,
.mirageTiltPanel-theme-e9b709 .b-r,
.mirageTiltPanel-theme-e9b709 .b-b,
.mirageTiltPanel-theme-e9b709 .b-l,
.mirageTiltPanel-theme-e9b709 .b-t-l,
.mirageTiltPanel-theme-e9b709 .b-b-r {
  background-color: #e9b709;
  box-shadow: 0 0 10px 2px #e9b709;
}

.mirageTiltPanel-theme-e9b709 .area {
  background-image: linear-gradient(135deg, transparent 30px, #e9b9096c 30px, #e9b9096c 50%, transparent 50%),
    linear-gradient(-45deg, transparent 30px, #e9b9096c 30px, #e9b9096c 50%, transparent 50%);
}

.mirageTiltPanel-theme-e9b709 .title {
  background-image: linear-gradient(135deg, transparent 25px, #e9b709 25px);
}

.mirageTiltPanel-theme-e9b709 .arrow,
.mirageTiltPanel-theme-e9b709 .title::before {
  background-color: #e9b709;
}

/**************** 部分公共样式，如选中样式、动画等 ****************/

.animation-spaceInDown {
  animation-duration: 1s;
  animation-fill-mode: both;
  animation-name: spaceInDown;
}

@keyframes spaceInDown {
  0% {
    opacity: 0;
    transform-origin: 0% 100%;
    transform: scale(0.2) translate(0, 200%);
  }

  100% {
    opacity: 1;
    transform-origin: 0% 100%;
    transform: scale(1) translate(0, 0);
  }
}

/**内置的DivGraphic通用样式【文本动态边框】*/
.mirage2d-divBoderLabel {
  position: absolute;
  left: 0px;
  bottom: 0px;
  cursor: pointer;
  --animation-name: mirage2d-divBoderLabel-animate;
  --text-left-position: -75px;
}
@keyframes mirage2d-divBoderLabel-animate {
  0%,
  100% {
    clip: rect(0px, var(--clip-width-1), 2px, 0px);
  }
  25% {
    clip: rect(0px, 2px, var(--clip-height-1), 0px);
  }
  50% {
    clip: rect(var(--clip-height-2), var(--clip-width-1), var(--clip-width-1), 0px);
  }
  75% {
    clip: rect(0px, var(--clip-width-1), var(--clip-height-1), var(--clip-width-2));
  }
}
.mirage2d-divBoderLabel {
  --text-font-size: 15px;
  --boder-width: 170px;
  --clip-width-1: 177px;
  --clip-width-2: 175px;
  --boder-height: 30px;
  --clip-height-1: 40px;
  --clip-height-2: 38px;
  --text-color: #ccc;
  --border-color: #15d1f2;
  --box-shadow-color: rgba(21, 209, 242, 0.56);
}

.mirage2d-divBoderLabel-boder {
  width: var(--boder-width);
  height: var(--boder-height);
  margin: auto;
  color: var(--border-color);
  box-shadow: inset 0 0 0 1px var(--box-shadow-color);
}

.mirage2d-divBoderLabel-text {
  color: var(--text-color);
  font-size: var(--text-font-size);
  display: flex;
  width: 100%;
  height: 100%;
  align-items: center;
  justify-content: center;
  font-weight: bolder;
  user-select: none;
  cursor: pointer;
}

.mirage2d-divBoderLabel-boder,
.mirage2d-divBoderLabel-boder::before,
.mirage2d-divBoderLabel-boder::after {
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
}

.mirage2d-divBoderLabel-boder::before,
.mirage2d-divBoderLabel-boder::after {
  content: "";
  margin: -5%;
  box-shadow: inset 0 0 0 2px;
  animation: var(--animation-name) 8s linear infinite;
}
.mirage2d-divBoderLabel-boder::before {
  animation-delay: -4s;
}

/**内置的DivGraphic通用样式【动画点】*/
.mirage2d-animation-point,
.mirage2d-animation-point:after,
.mirage2d-animation-point:before,
.mirage2d-animation-point p,
.mirage2d-animation-point p:after,
.mirage2d-animation-point p:before {
  margin: 0;
  padding: 0;
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  -o-box-sizing: border-box;
  -ms-box-sizing: border-box;
  box-sizing: border-box;
}
.mirage2d-animation-point {
  width: 10px;
  height: 10px;
  border-radius: 50%;
  border: 1px solid hsla(0, 0%, 100%, 0.5);
  cursor: pointer;
  color: #0ff;
  background: currentColor;
  z-index: 3;
  left: 50%;
  top: 50%;
  -webkit-transform: translate(-50%, -50%);
  -moz-transform: translate(-50%, -50%);
  -o-transform: translate(-50%, -50%);
  -ms-transform: translate(-50%, -50%);
  transform: translate(-50%, -50%);
  box-shadow: 0 0 2em currentColor, 0 0 0.5em currentColor;
  position: absolute;
}
.mirage2d-animation-point p {
  position: absolute;
  left: 50%;
  top: 50%;
  width: 0;
  height: 0;
  border-radius: 50%;
  -webkit-transform: translate(-50%, -50%);
  -moz-transform: translate(-50%, -50%);
  -o-transform: translate(-50%, -50%);
  -ms-transform: translate(-50%, -50%);
  transform: translate(-50%, -50%);
  -webkit-animation: mirage2d-animation-point-mapAni 2s ease infinite;
  -moz-animation: mirage2d-animation-point-mapAni 2s ease infinite;
  -o-animation: mirage2d-animation-point-mapAni 2s ease infinite;
  -ms-animation: mirage2d-animation-point-mapAni 2s ease infinite;
  animation: mirage2d-animation-point-mapAni 2s ease infinite;
}
.mirage2d-animation-point .mapError {
  color: red;
}
.mirage2d-animation-point .mapWarn {
  color: #b5a603;
}
.mirage2d-animation-point .mapSuccess {
  color: #239233;
}
.mirage2d-animation-point .mapOrange {
  color: #8c4d34;
}
.mirage2d-animation-point:after,
.mirage2d-animation-point:before,
.mirage2d-animation-point p:after,
.mirage2d-animation-point p:before {
  content: "";
  position: absolute;
  width: 100%;
  height: 100%;
  left: 50%;
  top: 50%;
  border-radius: 50%;
  -webkit-transform: translate(-50%, -50%);
  -moz-transform: translate(-50%, -50%);
  -o-transform: translate(-50%, -50%);
  -ms-transform: translate(-50%, -50%);
  transform: translate(-50%, -50%);
}
.mirage2d-animation-point:after,
.mirage2d-animation-point:before {
  border: 1px solid;
  -webkit-animation: mirage2d-animation-point-mapAni 1s ease infinite;
  -moz-animation: mirage2d-animation-point-mapAni 1s ease infinite;
  -o-animation: mirage2d-animation-point-mapAni 1s ease infinite;
  -ms-animation: mirage2d-animation-point-mapAni 1s ease infinite;
  animation: mirage2d-animation-point-mapAni 1s ease infinite;
}
.mirage2d-animation-point p:before {
  border: 1px solid;
}
@-webkit-keyframes mirage2d-animation-point-mapAni {
  0% {
    width: 0;
    height: 0;
    opacity: 1;
    filter: alpha(opacity=1);
  }
  25% {
    width: 12px;
    height: 12px;
    opacity: 0.7;
    filter: alpha(opacity=70);
  }
  50% {
    width: 20px;
    height: 20px;
    opacity: 0.5;
    filter: alpha(opacity=50);
  }
  75% {
    width: 30px;
    height: 30px;
    opacity: 0.2;
    filter: alpha(opacity=20);
  }
  to {
    width: 40px;
    height: 40px;
    opacity: 0;
    filter: alpha(opacity=0);
  }
}
@-moz-keyframes mirage2d-animation-point-mapAni {
  0% {
    width: 0;
    height: 0;
    opacity: 1;
    filter: alpha(opacity=1);
  }
  25% {
    width: 12px;
    height: 12px;
    opacity: 0.7;
    filter: alpha(opacity=70);
  }
  50% {
    width: 20px;
    height: 20px;
    opacity: 0.5;
    filter: alpha(opacity=50);
  }
  75% {
    width: 30px;
    height: 30px;
    opacity: 0.2;
    filter: alpha(opacity=20);
  }
  to {
    width: 40px;
    height: 40px;
    opacity: 0;
    filter: alpha(opacity=0);
  }
}
@-o-keyframes mirage2d-animation-point-mapAni {
  0% {
    width: 0;
    height: 0;
    opacity: 1;
    filter: alpha(opacity=1);
  }
  25% {
    width: 12px;
    height: 12px;
    opacity: 0.7;
    filter: alpha(opacity=70);
  }
  50% {
    width: 20px;
    height: 20px;
    opacity: 0.5;
    filter: alpha(opacity=50);
  }
  75% {
    width: 30px;
    height: 30px;
    opacity: 0.2;
    filter: alpha(opacity=20);
  }
  to {
    width: 40px;
    height: 40px;
    opacity: 0;
    filter: alpha(opacity=0);
  }
}
@-ms-keyframes mirage2d-animation-point-mapAni {
  0% {
    width: 0;
    height: 0;
    opacity: 1;
    filter: alpha(opacity=1);
  }
  25% {
    width: 12px;
    height: 12px;
    opacity: 0.7;
    filter: alpha(opacity=70);
  }
  50% {
    width: 20px;
    height: 20px;
    opacity: 0.5;
    filter: alpha(opacity=50);
  }
  75% {
    width: 30px;
    height: 30px;
    opacity: 0.2;
    filter: alpha(opacity=20);
  }
  to {
    width: 40px;
    height: 40px;
    opacity: 0;
    filter: alpha(opacity=0);
  }
}
@keyframes mirage2d-animation-point-mapAni {
  0% {
    width: 0;
    height: 0;
    opacity: 1;
    filter: alpha(opacity=1);
  }
  25% {
    width: 12px;
    height: 12px;
    opacity: 0.7;
    filter: alpha(opacity=70);
  }
  50% {
    width: 20px;
    height: 20px;
    opacity: 0.5;
    filter: alpha(opacity=50);
  }
  75% {
    width: 30px;
    height: 30px;
    opacity: 0.2;
    filter: alpha(opacity=20);
  }
  to {
    width: 40px;
    height: 40px;
    opacity: 0;
    filter: alpha(opacity=0);
  }
}

/**内置的DivGraphic通用样式【竖直文本】*/
.mirage2d-divUpLabel {
  text-align: center;
  background: transparent;
  color: white;
  display: block;
  box-sizing: border-box;
  animation-duration: 1s;
  animation-fill-mode: both;
  animation-name: mirage2d-divUpLabel-tinUpIn;
}
.mirage2d-divUpLabel-text {
  writing-mode: vertical-lr;
  font-size: 16px;
  letter-spacing: 4px;
}
.mirage2d-divUpLabel-line {
  display: block;
  height: 100px;
  width: 1.5px;
  margin-left: calc(50% - 1px);
  margin-top: 3px;
  background-color: white;
}
@keyframes mirage2d-divUpLabel-tinUpIn {
  0% {
    opacity: 0;
    transform: scale(1, 1) translateY(-900%);
  }
  50%,
  70%,
  90% {
    opacity: 1;
    transform: scale(1.1, 1.1) translateY(0);
  }
  100%,
  60%,
  80% {
    opacity: 1;
    transform: scale(1, 1) translateY(0);
  }
}

.mirage2d-label-graphic {
  color: #fc0000;
  white-space: nowrap;
}
.mirage2d-label-graphic-measure {
  font-size: 14px;
  color: #fff;
  background: rgba(0, 0, 0, 0.4);
  border: 1px solid transparent;
  -webkit-border-radius: 2px;
  border-radius: 4px;
  padding: 1px 2px;
  white-space: nowrap;
  pointer-events: none;
}
.mirage2d-widgetbar {
  margin: 0 auto;
  position: absolute;
  bottom: 30px;
  left: 20%;
  width: 60%;
  height: auto;
  z-index: 1987;
}
.mirage2d-widgetbar .fa {
  margin-right: 5px;
}