.sonny_progressbar {
  margin-bottom: 20px;
}
.sonny_progressbar p.title {
  margin-bottom: 15px;
}
.sonny_progressbar .bar-container {
  position: relative;
  height: 6px !important;
}
.sonny_progressbar .bar-container.shadow {
  -moz-box-shadow: 0px 5px 7px -3px rgba(0,0,0,.5);
  -webkit-box-shadow: 0px 5px 7px -3px rgba(0,0,0,.5);
  box-shadow: 0px 5px 7px -3px rgba(0,0,0,.5);
}
.sonny_progressbar .backgroundBar {
  position: absolute;
  bottom: 0;
  top: 0;
  left: 0;
  right: 0;
}
.sonny_progressbar .bar {
  border-radius: 3px;
  height: 100%;
  position: absolute;
  top: 0;
  left: 0;
}
.sonny_progressbar .targetBar {
  background-color: transparent !important;
  position: absolute;
  top: 0;
  left: 0;
  height: 100%;
  -webkit-animation: Animation 2s infinite ease-in-out;
  -moz-animation: Animation 2s infinite ease-in-out;
  animation: Animation 2s infinite ease-in-out;
}
.sonny_progressbar .targetBar.loader {
  -webkit-animation: AnimationB 4s infinite ease-in-out;
  -moz-animation: AnimationB 4s infinite ease-in-out;
  animation: AnimationB 4s infinite ease-in-out;
  background-image: url('animated-overlay.gif');
}
.sonny_progressbar .bar-container.border .bar, .sonny_progressbar .bar-container.border .targetBar, .sonny_progressbar .bar-container.border .backgroundBar {
  border-bottom: 3px solid rgba(0,0,0,.2);
}
.sonny_progressbar .progress-percent {
  font-size: 16px;
  position: absolute;
  right: 15px;
}
@keyframes Animation {
  0%   { opacity:.4; }
  50%   { opacity:1; }
  100% { opacity:.4; }
}
@-moz-keyframes Animation{
  0%   { opacity:.4; }
  50%   { opacity:1; }
  100% { opacity:.4; }
}
@-webkit-keyframes Animation{
  0%   { opacity:.4; }
  50%   { opacity:1; }
  100% { opacity:.4; }
}
@keyframes AnimationB {
  0%   { opacity:.01; }
  50%   { opacity:.1; }
  100% { opacity:.01; }
}
@-moz-keyframes AnimationB {
  0%   { opacity:.01; }
  50%   { opacity:.1; }
  100% { opacity:.01; }
}
@-webkit-keyframes AnimationB {
  0%   { opacity:.01; }
  50%   { opacity:.1; }
  100% { opacity:.01; }
}
/* DashBoard Chart */
/**
 * Inspiration for this project found at:
 * https://markus.oberlehner.net/blog/pure-css-animated-svg-circle-chart
 * 1. The `reverse` animation direction plays the animation backwards
 *    which makes it start at the stroke offset 100 which means displaying
 *    no stroke at all and animating it to the value defined in the SVG
 *    via the inline `stroke-dashoffset` attribute.
 * 2. Rotate by -90 degree to make the starting point of the
 *    stroke the top of the circle.
 * 3. Using CSS transforms on SVG elements is not supported by Internet Explorer
 *    and Edge, use the transform attribute directly on the SVG element as a
 * .  workaround.
 */

.circle-chart {
  margin-bottom: 35px;
  height: 150px;
  width: 150px;
}
.circle-chart__circle {
  stroke: #00acc1;
  stroke-width: 2;
  stroke-linecap: square;
  fill: none;
  animation: circle-chart-fill 2s reverse; /* 1 */ 
  transform: rotate(20deg); /* 2, 3 */
  transform-origin: center; /* 4 */
}
/**
 * 1. Rotate by -90 degree to make the starting point of the
 *    stroke the top of the circle.
 * 2. Scaling mirrors the circle to make the stroke move right
 *    to mark a positive chart value.
 * 3. Using CSS transforms on SVG elements is not supported by Internet Explorer
 *    and Edge, use the transform attribute directly on the SVG element as a
 * .  workaround.
 */
.circle-chart__circle--negative {
  transform: rotate(-90deg) scale(1,-1); /* 1, 2, 3 */
}
.circle-chart__background {
  stroke: #0e4cfb;
  stroke-width: 2;
  fill: none; 
}
.circle-chart__info {
  animation: circle-chart-appear 2s forwards;
  opacity: 0;
  transform: translateY(0.3em);
}
.circle-chart__percent {
  alignment-baseline: central;
  text-anchor: middle;
  font-size: 8px;
  display: none;
}
.circle-chart__subline {
  alignment-baseline: central;
  text-anchor: middle;
  font-size: 5px;
}
.success-stroke {
  stroke: #e94f85;
}
.warning-stroke {
  stroke: #ffbb33;
}
.danger-stroke {
  stroke: #ff4444;
}
@keyframes circle-chart-fill {
  to { stroke-dasharray: 0 100; }
}
@keyframes circle-chart-appear {
  to {
    opacity: 1;
    transform: translateY(0);
  }
}