.progress-circle-bar {
    font-size: 10px;
    margin: 0px;
    position: relative;
    /* so that children can be absolutely positioned */
    padding: 0;
    width: 5em;
    height: 5em;
    background-color: #F2E9E1;
    border-radius: 50%;
    line-height: 5em;
}

.progress-circle-bar:after {
    border: none;
    position: absolute;
    top: 0.35em;
    left: 0.35em;
    text-align: center;
    display: block;
    border-radius: 50%;
    width: 4.3em;
    height: 4.3em;
    background-color: white;
    content: " ";
}

.progress-circle-bar span {
    position: absolute;
    line-height: 2em;
    width: 2em;
    text-align: center;
    display: block;
    color: #777;
    z-index: 2;
    font-size: 16px;
    margin: 9px 0px 0px 9px;
    font-weight: bold;
}

.left-half-clipper {
    /* a round circle */
    border-radius: 50%;
    width: 5em;
    height: 5em;
    position: absolute;
    clip: rect(0, 5em, 5em, 2.5em);
}

.progress-circle-bar.over50 .left-half-clipper {
    clip: rect(auto, auto, auto, auto);
}

.value-bar {
    position: absolute;
    clip: rect(0, 2.5em, 5em, 0);
    width: 5em;
    height: 5em;
    border-radius: 50%;
    border: 0.45em solid #EF3340;
    /*The border is 0.35 but making it larger removes visual artifacts */
    /*background-color: #4D642D;*/
    /* for debug */
    box-sizing: border-box;
}
.value-bar.sct {
    border: 0.45em solid #6EA743;
}
.value-bar.sat {
    border: 0.45em solid #F68121;
}


/* Progress bar filling the whole right half for values above 50% */

.progress-circle-bar.over50 .first50-bar {
    /*Progress bar for the first 50%, filling the whole right half*/
    position: absolute;
    /*needed for clipping*/
    clip: rect(0, 5em, 5em, 2.5em);
    background-color: #EF3340;
    border-radius: 50%;
    width: 5em;
    height: 5em;
}

.progress-circle-bar:not(.over50) .first50-bar {
    display: none;
}


/* Progress bar rotation position */

.progress-circle-bar.p0 .value-bar {
    display: none;
}

.progress-circle-bar.p1 .value-bar {
    transform: rotate(4deg);
}

.progress-circle-bar.p2 .value-bar {
    transform: rotate(7deg);
}

.progress-circle-bar.p3 .value-bar {
    transform: rotate(11deg);
}

.progress-circle-bar.p4 .value-bar {
    transform: rotate(14deg);
}

.progress-circle-bar.p5 .value-bar {
    transform: rotate(18deg);
}

.progress-circle-bar.p6 .value-bar {
    transform: rotate(22deg);
}

.progress-circle-bar.p7 .value-bar {
    transform: rotate(25deg);
}

.progress-circle-bar.p8 .value-bar {
    transform: rotate(29deg);
}

.progress-circle-bar.p9 .value-bar {
    transform: rotate(32deg);
}

.progress-circle-bar.p10 .value-bar {
    transform: rotate(36deg);
}

.progress-circle-bar.p11 .value-bar {
    transform: rotate(40deg);
}

.progress-circle-bar.p12 .value-bar {
    transform: rotate(43deg);
}

.progress-circle-bar.p13 .value-bar {
    transform: rotate(47deg);
}

.progress-circle-bar.p14 .value-bar {
    transform: rotate(50deg);
}

.progress-circle-bar.p15 .value-bar {
    transform: rotate(54deg);
}

.progress-circle-bar.p16 .value-bar {
    transform: rotate(58deg);
}

.progress-circle-bar.p17 .value-bar {
    transform: rotate(61deg);
}

.progress-circle-bar.p18 .value-bar {
    transform: rotate(65deg);
}

.progress-circle-bar.p19 .value-bar {
    transform: rotate(68deg);
}

.progress-circle-bar.p20 .value-bar {
    transform: rotate(72deg);
}

.progress-circle-bar.p21 .value-bar {
    transform: rotate(76deg);
}

.progress-circle-bar.p22 .value-bar {
    transform: rotate(79deg);
}

.progress-circle-bar.p23 .value-bar {
    transform: rotate(83deg);
}

.progress-circle-bar.p24 .value-bar {
    transform: rotate(86deg);
}

.progress-circle-bar.p25 .value-bar {
    transform: rotate(90deg);
}

.progress-circle-bar.p26 .value-bar {
    transform: rotate(94deg);
}

.progress-circle-bar.p27 .value-bar {
    transform: rotate(97deg);
}

.progress-circle-bar.p28 .value-bar {
    transform: rotate(101deg);
}

.progress-circle-bar.p29 .value-bar {
    transform: rotate(104deg);
}

.progress-circle-bar.p30 .value-bar {
    transform: rotate(108deg);
}

.progress-circle-bar.p31 .value-bar {
    transform: rotate(112deg);
}

.progress-circle-bar.p32 .value-bar {
    transform: rotate(115deg);
}

.progress-circle-bar.p33 .value-bar {
    transform: rotate(119deg);
}

.progress-circle-bar.p34 .value-bar {
    transform: rotate(122deg);
}

.progress-circle-bar.p35 .value-bar {
    transform: rotate(126deg);
}

.progress-circle-bar.p36 .value-bar {
    transform: rotate(130deg);
}

.progress-circle-bar.p37 .value-bar {
    transform: rotate(133deg);
}

.progress-circle-bar.p38 .value-bar {
    transform: rotate(137deg);
}

.progress-circle-bar.p39 .value-bar {
    transform: rotate(140deg);
}

.progress-circle-bar.p40 .value-bar {
    transform: rotate(144deg);
}

.progress-circle-bar.p41 .value-bar {
    transform: rotate(148deg);
}

.progress-circle-bar.p42 .value-bar {
    transform: rotate(151deg);
}

.progress-circle-bar.p43 .value-bar {
    transform: rotate(155deg);
}

.progress-circle-bar.p44 .value-bar {
    transform: rotate(158deg);
}

.progress-circle-bar.p45 .value-bar {
    transform: rotate(162deg);
}

.progress-circle-bar.p46 .value-bar {
    transform: rotate(166deg);
}

.progress-circle-bar.p47 .value-bar {
    transform: rotate(169deg);
}

.progress-circle-bar.p48 .value-bar {
    transform: rotate(173deg);
}

.progress-circle-bar.p49 .value-bar {
    transform: rotate(176deg);
}

.progress-circle-bar.p50 .value-bar {
    transform: rotate(180deg);
}

.progress-circle-bar.p51 .value-bar {
    transform: rotate(184deg);
}

.progress-circle-bar.p52 .value-bar {
    transform: rotate(187deg);
}

.progress-circle-bar.p53 .value-bar {
    transform: rotate(191deg);
}

.progress-circle-bar.p54 .value-bar {
    transform: rotate(194deg);
}

.progress-circle-bar.p55 .value-bar {
    transform: rotate(198deg);
}

.progress-circle-bar.p56 .value-bar {
    transform: rotate(202deg);
}

.progress-circle-bar.p57 .value-bar {
    transform: rotate(205deg);
}

.progress-circle-bar.p58 .value-bar {
    transform: rotate(209deg);
}

.progress-circle-bar.p59 .value-bar {
    transform: rotate(212deg);
}

.progress-circle-bar.p60 .value-bar {
    transform: rotate(216deg);
}

.progress-circle-bar.p61 .value-bar {
    transform: rotate(220deg);
}

.progress-circle-bar.p62 .value-bar {
    transform: rotate(223deg);
}

.progress-circle-bar.p63 .value-bar {
    transform: rotate(227deg);
}

.progress-circle-bar.p64 .value-bar {
    transform: rotate(230deg);
}

.progress-circle-bar.p65 .value-bar {
    transform: rotate(234deg);
}

.progress-circle-bar.p66 .value-bar {
    transform: rotate(238deg);
}

.progress-circle-bar.p67 .value-bar {
    transform: rotate(241deg);
}

.progress-circle-bar.p68 .value-bar {
    transform: rotate(245deg);
}

.progress-circle-bar.p69 .value-bar {
    transform: rotate(248deg);
}

.progress-circle-bar.p70 .value-bar {
    transform: rotate(252deg);
}

.progress-circle-bar.p71 .value-bar {
    transform: rotate(256deg);
}

.progress-circle-bar.p72 .value-bar {
    transform: rotate(259deg);
}

.progress-circle-bar.p73 .value-bar {
    transform: rotate(263deg);
}

.progress-circle-bar.p74 .value-bar {
    transform: rotate(266deg);
}

.progress-circle-bar.p75 .value-bar {
    transform: rotate(270deg);
}

.progress-circle-bar.p76 .value-bar {
    transform: rotate(274deg);
}

.progress-circle-bar.p77 .value-bar {
    transform: rotate(277deg);
}

.progress-circle-bar.p78 .value-bar {
    transform: rotate(281deg);
}

.progress-circle-bar.p79 .value-bar {
    transform: rotate(284deg);
}

.progress-circle-bar.p80 .value-bar {
    transform: rotate(288deg);
}

.progress-circle-bar.p81 .value-bar {
    transform: rotate(292deg);
}

.progress-circle-bar.p82 .value-bar {
    transform: rotate(295deg);
}

.progress-circle-bar.p83 .value-bar {
    transform: rotate(299deg);
}

.progress-circle-bar.p84 .value-bar {
    transform: rotate(302deg);
}

.progress-circle-bar.p85 .value-bar {
    transform: rotate(306deg);
}

.progress-circle-bar.p86 .value-bar {
    transform: rotate(310deg);
}

.progress-circle-bar.p87 .value-bar {
    transform: rotate(313deg);
}

.progress-circle-bar.p88 .value-bar {
    transform: rotate(317deg);
}

.progress-circle-bar.p89 .value-bar {
    transform: rotate(320deg);
}

.progress-circle-bar.p90 .value-bar {
    transform: rotate(324deg);
}

.progress-circle-bar.p91 .value-bar {
    transform: rotate(328deg);
}

.progress-circle-bar.p92 .value-bar {
    transform: rotate(331deg);
}

.progress-circle-bar.p93 .value-bar {
    transform: rotate(335deg);
}

.progress-circle-bar.p94 .value-bar {
    transform: rotate(338deg);
}

.progress-circle-bar.p95 .value-bar {
    transform: rotate(342deg);
}

.progress-circle-bar.p96 .value-bar {
    transform: rotate(346deg);
}

.progress-circle-bar.p97 .value-bar {
    transform: rotate(349deg);
}

.progress-circle-bar.p98 .value-bar {
    transform: rotate(353deg);
}

.progress-circle-bar.p99 .value-bar {
    transform: rotate(356deg);
}

.progress-circle-bar.p100 .value-bar {
    transform: rotate(360deg);
}