:root {
	--UNK:  #ccc;
	--TOSS: #fbc140;
	--DEM:  #1e76f7;
	--LDEM: #92d4fc;
	--REP:  #f93a49;
	--LREP: #ff9d99;
	--IND:  #a4a;
	--LIND: #d9d;
	--GRN:  #4a4;
	--LGRN: #9d9;
	--LIB:  #a50; /* #d60 */
	--LLIB: #d70; /* #f80 */
	--CON:  #666;
	--LCON: #999;
}

body {
	font-size: min(1.25vh, 0.83vw);
	overflow: hidden;
}

#sources {
	background-color: #fff;
	border-radius: 0.5em;
	font-size: 1.15em;
	padding: 0.25em 0.5em;
	position: absolute;
	right: 2em;
	top: 36em;
}
#sources input {display: none;}
#sources label {
	background-color: #bbb;
	border: 1px solid transparent;
	border-radius: 1em;
	color: #fff;
	cursor: pointer;
	display: block;
	margin: 0.25em 0;
	padding: 0.1em 1em;
}
#sources label:hover {
	border-color: #666;
	color: #666;
}
#sources input:checked + label {
	background-color: #be0;
	color: #000;
}


#score {
	display: none;
	padding: 0.75em;
	right: 25.5%;
	width: 20%;
}
#score * {cursor: default;}
#score > div {
	background-color: #ccc;
	border-radius: 0.25em;
	color: #fff;
	margin: 0.25em;
	padding: 0.15em 0.5em;
}
#score .D {background-color: var(--DEM);}
#score .R {background-color: var(--REP);}
#score .T {background-color: var(--TOSS); color: #000;}
#score .winner {border: 2px dashed #000;}

#score span {
	display: inline-block;
	text-align: right;
}
#score span:first-child {
	padding-right: 0.5em;
	width: calc(100% - 2.5em);
}
#score span:first-child::after {content: ':';}
#score span:nth-child(2) {width: 2em;}
#score div div {
	font-size: 75%;
	font-style: italic;
	text-align: right;
}


#ec_bar {
	cursor: default;
	position: absolute;
	left: 16.6%;
	text-align: center;
	top: 5em;
	white-space: nowrap;
	width: 66.6%;
}
#ec_bar .center {
	color: #000;
	font-size: 150%;
	margin: 0;
	position: absolute;
	left: calc(50% - 0.5em);
	top: -0.95em;
}
#ec_bar .center span {
	display: block;
	margin: 0;
	position: absolute;
	transform: scale(1, 0.66);
	text-align: center;
}
#ec_bar .center span.tp {top: 0.12em;}
#ec_bar .center span.ct {
	border-left: 2px solid #fff;
	height: 0.8em;
	left: calc(0.5em - 1px);
	transform: unset;
	top: 1em;
}
#ec_bar .center span.bt {top: 1.5em;}
#ec_bar p {
	background-color: transparent;
	display: inline-block;
	margin: 0;
	position: absolute;
}
#ec_bar p.name {top: -1.6em;}
#ec_bar p.progress {
	border-bottom: 2px solid #000;
	top: -0.35em;
}
#ec_bar p.DEM {
	border-color: var(--DEM);
	color: var(--DEM);
	left: 0;
	text-align: left;
}
#ec_bar p.REP {
	border-color: var(--REP);
	color: var(--REP);
	right: 1px;
	text-align: right;
}
#ec_bar p span {font-family: sans;}
#ec_bar p .score {
	font-size: 133%;
	font-weight: bold;
	line-height: 0.75em;
}
#ec_bar p .candidate {margin: 0 0.5em;}
#ec_bar p .towin {color: #666;}
#ec_bar p.winner .towin::after {
	content: '***WINNER***';
	margin: 0 2em;
}
#ec_bar .bar span {
	border-right: 1px solid #fff;
	display: inline-block;
	overflow: hidden;
	padding-top: 0.1em;
	text-align: center;
}
#ec_bar .last_update {
	background-color: #666;
	border-radius: 0.75em;
	color: #fc0;
	display: inline-block;
	font-size: 110%;
	font-weight: bold;
	margin-top: 1.15em;
	padding: 0.25em 0.75em;
	text-align: center;
}
#ec_bar .count {
	color: #666;
	font-size: 90%;
	top: 1.4em;
}
#ec_bar p.countDEM {left: 0;}
#ec_bar p.countREP {right: 1px;}

.cmm-usa {
	cursor: default;
	display: none;
	margin: 0 auto;
	position: relative;
	padding: 10px
}

.cmm-usa svg {
	width: 100%;
	z-index: 99
}
.cmm-usa svg a {font-size: 0.7em;}

.cmm-usa svg line {
	pointer-events: none;
	stroke: #000;
}

.cmm-usa svg path {
	stroke-linecap: round;
	stroke-linejoin: round;
	stroke-miterlimit: 10
}
.cmm-usa svg .UNK path {fill: #ddd;}
.cmm-usa svg .district path {
	stroke: #fff;
	stroke-width: 0.25px;
	transform-origin: center center;
}
.cmm-usa .cmm-usa-state-me .district path {transform: rotate(-6deg);}
.cmm-usa .cmm-usa-state-ne .district path {transform: rotate(-2deg);}
.cmm-usa svg .district:nth-child(4) path {stroke-width: 0.75px;}

#score,
.cmm-usa-hover-state-info {
	background: #fff;
	border: 1px solid #ccc;
	border-radius: 10px;
	box-shadow: 5px 5px 5px #999;
	box-sizing: border-box;
	color: #000;
	font-size: 1.25em;
	position: absolute;
	top: 47em;
}
.cmm-usa-hover-state-info {
	display: none;
	left: 52%;
	min-width: 25%;
	z-index: 100
}
.cmm-usa-hover-state-info > div {white-space: nowrap;}
.cmm-usa-hover-state-info > div > div {margin: 0 0.5em 0.25em;}

.cmm-usa-hover-state-info .close,
.cmm-usa-hover-state-info .date {
	color: #666;
	font-size: 0.9em;
	font-style: italic;
	font-size: 90%;
	font-style: italic;
	text-align: center;
}
.cmm-usa-hover-state-info .close {font-weight: bold;}
.cmm-usa-hover-state-info .date {}

.cmm-usa-hover-state-info .count,
.cmm-usa-hover-state-info .total {
	color: #666;
	font-style: italic;
	font-size: 0.9em;
}

.cmm-usa-hover-state-info .title {
	background-color: #000;
	border-radius: 0.66em;
	color: #fff;
	font-family: sans-serif;
	font-weight: bold;
	margin: 0.5em 2%;
	text-align: center;
	width: 96%;
}
.cmm-usa-hover-state-info .title.swingState {
	background-color: #509;
	background-image: radial-gradient(#000, #90f);
}

.cmm-usa-hover-state-info .info :last-child {
	border-bottom: 1px solid #ccc;
	padding-bottom: 0.25em;
}
.cmm-usa-hover-state-info .results > div {
	display: grid;
	column-gap: 0.75em;
	grid-template-columns: 35% 35% 20%;
}
.cmm-usa-hover-state-info .results > div:first-child {font-weight: bold;}
.cmm-usa-hover-state-info .results .DEM {color: var(--DEM);}
.cmm-usa-hover-state-info .results .REP {color: var(--REP);}
.cmm-usa-hover-state-info .results .IND {color: var(--IND);}
.cmm-usa-hover-state-info .results .GRN {color: var(--GRN);}
.cmm-usa-hover-state-info .results .LIB {color: var(--LIB);}
.cmm-usa-hover-state-info .results .CON {color: var(--CON);}

.cmm-usa-hover-state-info .results span {
	background-color: transparent;
	color: #000;
	text-align: right;
	white-space: nowrap;
}
.cmm-usa-hover-state-info .results .diff {margin-bottom: 0.5em;}
.cmm-usa-hover-state-info .results .diff span {
	color: #666;
	font-size: 90%;
	font-style: italic;
}

.cmm-usa-listview {
	width: 100%;
	text-align: center;
	margin: 1em 0
}

.cmm-usa-listview ul {
	vertical-align: top;
	list-style: none;
	display: inline-block;
	text-align: left;
	margin: 0;
	padding: 0
}

.cmm-usa-listview ul li {
	padding: 0;
	margin: 0
}

.cmm-usa-listview ul li span {
	display: inline-block;
	position: relative;
	height: 12px;
	width: 12px;
	border-radius: 12px;
	color: black;
	text-align: center;
	line-height: 12px;
	font-weight: bold;
	border: 1px solid #999;
	opacity: 1.0;
	margin-right: .5em
}

.cmm-usa-listview ul li span::after {
	content: "\2B9E";
	position: relative;
	color: #333;
	font-size: 12px
}

.cmm-usa-listview ul li a {
	display: inline-block;
	margin: .5em 1em .5em 0;
	color: #ccc;
	text-decoration: none
}

.cmm-usa-listview ul li a.cmm-usa-live-link {
	color: #000;
	text-decoration: underline;
	cursor: pointer
}

.cmm-usa-title {
	font-size: 250%;
	font-weight: bold;
	margin-bottom: 0.5em;
	text-align: center;
	width: 100%;
}

.cmm-usa-credit-link {
	text-align: center
}

.cmm-usa-states .district circle {
	stroke: #fff;
	stroke-width: 0.25px;
}

.cmm-usa-states text {
	fill: #fff;
	font-family: Arial;
	stroke: none;
}
/*.cmm-usa svg .district text:nth-child(2) {font-size: 0;}*/
.cmm-usa svg .district text:nth-child(3) {font-size: 100%;}
.cmm-usa-states g text {font-size: 82%;}
.cmm-usa-states g:nth-child(5) text {font-size: 82%;}
.cmm-usa-states text:nth-child(5) {font-size: 82%;}
.cmm-usa-states text:nth-child(7) {font-size: 82%;}
.cmm-usa-state-me text:nth-child(7) {fill: #fff !important;}
.cmm-usa-state-ne text:nth-child(7) {fill: #fff !important;}
/*.cmm-usa-states g text:nth-child(3) {font-size: 40%;}*/
/*.cmm-usa-states g g text {font-size: 40%;}*/
.cmm-usa-states g:last-child text:first-child {font-size: 100%;}

.cmm-usa-states .cmm-usa-outer-label {fill: #000;}

.cmm-usa .UNK  {background-color:var(--UNK); fill: var(--UNK);}
.cmm-usa .district.UNK path {fill: transparent;}
.cmm-usa .TOSS {background-color:var(--TOSS); fill: var(--TOSS);}
.cmm-usa .TOSS.LDEM {fill: var(--LDEM);}
.cmm-usa .TOSS.LREP {fill: var(--LREP);}

.cmm-usa .DEM  {background-color:var(--DEM); color: #fff; fill: var(--DEM);}
.cmm-usa .LDEM {background-color:var(--LDEM); fill: var(--LDEM);}
.cmm-usa .REP  {background-color:var(--REP); color: #fff; fill: var(--REP);}
.cmm-usa .LREP {background-color:var(--LREP); fill: var(--LREP);}
.cmm-usa .IND  {background-color:var(--IND); color: #fff; fill: var(--IND);}
.cmm-usa .LIND {background-color:var(--LIND); fill: var(--LIND);}
.cmm-usa .GRN  {background-color:var(--GRN); color: #fff; fill: var(--GRN);}
.cmm-usa .LGRN  {background-color:var(--LGRN); fill: var(--LGRN);}
.cmm-usa .LIB  {background-color:var(--LIB); color: #fff; fill: var(--LIB);}
.cmm-usa .LLIB {background-color:var(--LLIB); fill: var(--LLIB);}
.cmm-usa .CON  {background-color:var(--CON); color: #fff; fill: var(--CON);}
.cmm-usa .LCON {background-color:var(--LCON); fill: var(--LCON);}


/*.cmm-usa-states g:nth-child(5) g text {font-size: 60%;}*/
.cmm-usa g text.total_ec {
/*	fill: #444;*/
	font-size: 60%;
}

.cmm-usa-states .swingState path {stroke: #90f !important;}
