[class^="cp-"],
[class^="cp-"]::before,
[class^="cp-"]::after {
  font-family: arial, tahoma, sans-serif;
  box-sizing: border-box;
}

.text-success {
  color: #66BB6A;
}

@font-face {
  font-family: "cp-iconfont";
  src: url(data:font/ttf;base64,AAEAAAALAIAAAwAwT1MvMg8SBYAAAAC8AAAAYGNtYXAXVtKIAAABHAAAAFRnYXNwAAAAEAAAAXAAAAAIZ2x5ZvuBALkAAAF4AAAA/GhlYWQWntETAAACdAAAADZoaGVhB6cDxwAAAqwAAAAkaG10eA4AAPoAAALQAAAAGGxvY2EApgBMAAAC6AAAAA5tYXhwAAoALgAAAvgAAAAgbmFtZZlKCfsAAAMYAAABhnBvc3QAAwAAAAAEoAAAACAAAwNVAZAABQAAApkCzAAAAI8CmQLMAAAB6wAzAQkAAAAAAAAAAAAAAAAAAAABEAAAAAAAAAAAAAAAAAAAAABAAADpAQPA/8AAQAPAAEAAAAABAAAAAAAAAAAAAAAgAAAAAAADAAAAAwAAABwAAQADAAAAHAADAAEAAAAcAAQAOAAAAAoACAACAAIAAQAg6QH//f//AAAAAAAg6QD//f//AAH/4xcEAAMAAQAAAAAAAAAAAAAAAQAB//8ADwABAAAAAAAAAAAAAgAANzkBAAAAAAEAAAAAAAAAAAACAAA3OQEAAAAAAQAAAAAAAAAAAAIAADc5AQAAAAABANUAlQMrAusACwAAAScHJwcXBxc3FzcnAys97u497+897u497wKuPe/vPe7uPe/vPe4AAwAl/+UD5QOlABsAIwArAAABIgcOAQcGFRQXHgEXFjMyNz4BNzY1NCcuAScmAyc3FTMVIxUFNSM1MzUXBwIFY1hXgiYmJiaCV1hjZFdXgyUmJiWDV1fyz8/p6QEg8PDPzwOlJiWDV1dkY1hXgiYmJiaCV1hjZFdXgyUm/fl8fUB8PatEdEJ9fQAAAAABAAAAAAAAbdypMV8PPPUACwQAAAAAANnNxkYAAAAA2c3GRgAA/+UD5QOlAAAACAACAAAAAAAAAAEAAAPA/8AAAAQAAAAAAAPlAAEAAAAAAAAAAAAAAAAAAAAGBAAAAAAAAAAAAAAAAgAAAAQAANUEAAAlAAAAAAAKABQAHgA4AH4AAAABAAAABgAsAAMAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAADgCuAAEAAAAAAAEABwAAAAEAAAAAAAIABwBgAAEAAAAAAAMABwA2AAEAAAAAAAQABwB1AAEAAAAAAAUACwAVAAEAAAAAAAYABwBLAAEAAAAAAAoAGgCKAAMAAQQJAAEADgAHAAMAAQQJAAIADgBnAAMAAQQJAAMADgA9AAMAAQQJAAQADgB8AAMAAQQJAAUAFgAgAAMAAQQJAAYADgBSAAMAAQQJAAoANACkaWNvbW9vbgBpAGMAbwBtAG8AbwBuVmVyc2lvbiAxLjAAVgBlAHIAcwBpAG8AbgAgADEALgAwaWNvbW9vbgBpAGMAbwBtAG8AbwBuaWNvbW9vbgBpAGMAbwBtAG8AbwBuUmVndWxhcgBSAGUAZwB1AGwAYQByaWNvbW9vbgBpAGMAbwBtAG8AbwBuRm9udCBnZW5lcmF0ZWQgYnkgSWNvTW9vbi4ARgBvAG4AdAAgAGcAZQBuAGUAcgBhAHQAZQBkACAAYgB5ACAASQBjAG8ATQBvAG8AbgAuAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==) format("truetype");
}

.cp-icon {
  font-family: "cp-iconfont";
  font-style: normal;
  font-variant: normal;
  font-weight: normal;
  /* speak: none; only necessary if not using the private unicode range (firstGlyph option) */
  text-decoration: none;
  text-transform: none;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

.cp-icon::before {
  font-family: "cp-iconfont";
}

.cp-icon-clear::before {
  content: "\e900";
}

.cp-icon-switch::before {
  content: "\e901";
}

.cp-icon {
  flex: 0 0 auto;
  display: inline-flex;
  position: relative;
  font-size: 27px;
  line-height: 1;
}

.cp-icon--lg {
  font-size: 40px;
}

.cp-wrap {
  position: fixed;
  left: 0;
  top: 0;
  right: 0;
  bottom: 0;
  z-index: 9999;
  display: flex;
  justify-content: center;
  align-items: center;
  pointer-events: none;
}

.cp-wrap--low {
  z-index: 1;
}

@keyframes cp-loading-circle {
  from {
    transform: rotate(0);
  }
  to {
    transform: rotate(360deg);
  }
}

.cp-loading-circle {
  display: inline-block;
  width: 72px;
  height: 72px;
  border-radius: 50%;
  border: 8px solid #ccc;
  border-bottom-color: currentColor;
  animation: cp-loading-circle 1s linear infinite;
}

@keyframes cp-loading-dots {
  0% {
    transform: scale(1);
    opacity: 1;
  }
  100% {
    transform: scale(0.3);
    opacity: .2;
  }
}

.cp-loading-dots {
  position: relative;
  display: inline-block;
}

.cp-loading-dots span {
  display: inline-block;
  margin-right: 2px;
  width: 8px;
  height: 8px;
  background-color: currentColor;
  border-radius: 100%;
  animation: cp-loading-dots 1s infinite normal;
}

.cp-loading-dots span:nth-child(1) {
  animation-delay: -.75s;
}

.cp-loading-dots span:nth-child(2) {
  animation-delay: -.60s;
}

.cp-loading-dots span:nth-child(3) {
  animation-delay: -.45s;
}

.cp-loader {
  display: none;
  padding: 0 10px;
  text-align: center;
}

.cp-loader[data-show="true"] {
  display: block;
}

.cp-loader__title {
  margin-top: 10px;
  font-size: 18px;
  font-weight: bold;
}

.cp-loader-success {
  color: #919191;
}

.cp-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 8px 16px;
  color: currentColor;
  text-decoration: none;
  background-color: transparent;
  border: 1px solid;
  border-color: transparent;
  border-radius: 4px;
  outline: none;
  cursor: pointer;
  -webkit-user-select: none;
     -moz-user-select: none;
          user-select: none;
  touch-action: manipulation;
}

.cp-btn + .cp-btn {
  margin-left: 8px;
}

.cp-btn-icon {
  padding: 4px;
}

.cp-btn-success {
  color: #66BB6A;
  border-color: #66BB6A;
}

.cp-btn-success:hover {
  color: #66BB6A;
  background-color: #f3f3f3;
}

.cp-btn-success .cp-light {
  margin-left: 10px;
  width: 8px;
  height: 8px;
  background-color: #66BB6A;
  border-radius: 100%;
}

.cp-msg {
  position: relative;
  padding: 16px 20px;
  width: calc(100% - 20px);
  font-size: 14px;
  line-height: 1.4;
  color: rgba(0, 0, 0, 0.87);
  background-color: #fff;
  border-radius: 4px;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.24);
  opacity: 0;
  visibility: hidden;
  transition: all 0.2s ease;
}

.cp-msg[data-show="true"] {
  opacity: 1;
  visibility: visible;
  pointer-events: visible;
}

@media (min-width: 768px) {
  .cp-msg {
    width: auto;
    max-width: 90%;
  }
}

.cp-msg__close {
  position: absolute;
  right: 4px;
  top: 4px;
}

.cp-msg__body {
  display: flex;
}

@media (min-width: 768px) {
  .cp-msg__body {
    align-items: center;
  }
}

.cp-msg__content {
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding-right: 20px;
}

.cp-icon + .cp-msg__content {
  margin-left: 16px;
}

.cp-msg__title {
  font-size: 18px;
  line-height: 1.2;
}

.cp-msg__title + .cp-msg__text {
  margin-top: 6px;
}

.cp-msg__title .cp-loading-dots {
  margin-left: 4px;
}

.cp-msg__footer {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  margin-top: 12px;
  width: 100%;
}

@media (min-width: 768px) {
  .cp-msg__footer {
    justify-content: flex-end;
  }
}

.cp-msg__footer .cp-btn {
  margin-top: 8px;
  min-width: 140px;
}

.cp-msg-success {
  color: #fff;
  background-color: #66BB6A;
}

.cp-msg-secondary {
  color: #fff;
  background-color: #7F7F7F;
}

.cp-msg--top {
  position: absolute;
  align-self: flex-start;
  transform: translateY(calc(-100% - 3px));
}

.cp-msg--top[data-show="true"] {
  transform: translateY(3px);
}

.cp-msg--small {
  padding: 8px 20px;
}
