




.amap_label_size_large
{
	font-size: 17px;
}

.temap-style-state {
	margin-top: 9px;
	margin-bottom: 9px;
}

.temap-region {
	/*fill: #D3D3D3;*/
	stroke-width: 0.4;
	stroke: #FFFFFF;
	cursor: pointer;
	stroke-linejoin: round;
} /* orig stroke width: 1.0 */

.temap-region-box {
	fill: #D3D3D3;
	stroke-width: 1.2;
	stroke: #FFFFFF;
	cursor: pointer;
} /* orig stroke width: 1.8 */

/* for national maps */
.temap-shadow {
  -webkit-filter: drop-shadow( 3px 3px 2px rgba(0, 0, 0, .7));
  filter: drop-shadow( 3px 3px 2px rgba(0, 0, 0, .7));
}

/* for state maps - a smaller shadow */
.temap-state-shadow {
	-webkit-filter: drop-shadow( 0.3px 0.3px 0.8px rgba(0, 0, 0, .7));
	filter: drop-shadow( 0.3px 0.3px 0.8px rgba(0, 0, 0, .7));
}

/* Shadow border has to be thick or else the shadows between borders looks less desirable */
.temap-shadow-border {
	stroke-width: 1.0;
}

/* Regular thick borders in isolation is fine, but will be adjusted up if map shadows are enabled (below) */
path.temap-thick-border {
	stroke-width: 0.9;
}

/* Paths when map has both thick border, shadow border and black borders enabled */
path.temap-thick-border.temap-shadow-border.temap-black-border {
	stroke-width: 1.3;
}


/* Paths when map has both thick border, shadow border and white borders enabled */
path.temap-thick-border.temap-shadow-border {
	stroke-width: 1.3;
}

/*
 Other vote bubbles with thicker borders should have it more pronounced when possible. Bubbles will not genreally have
 the temap-thick-border class as the bubble already has a thick border by default
*/
circle.temap-region-box.temap-thick-border.temap-black-border {
	stroke-width: 1.5;
}

rect.temap-thick-border {
	stroke-width: 1.9;
}

.temap-black-border {
	stroke: #040404;
}



.temap-no-border {
	stroke-width: 0;
}

.temap-region-label
{
	font-weight: bold;
	font-family: Verdana, Arial;
	font-size: 15px;
	color: white;
	fill: white;
	cursor: pointer;
	/*
		Note: text-align needed otherwise text alignment is screwed up if map is placed in differently-aligned elements. The
			  proper way to do it would be to use <text> instead of <foreignObject>, but that would require
			  re-positioning the text and thus all new coordinates. At some point, may be better to do this!
	*/
	text-align: left;
	-webkit-touch-callout: none;
	-webkit-user-select: none;
	-ms-user-select: none;
	user-select: none;
}

.temap-region-label > tspan {
	/* Fix clipping issue for label text */
	padding-left: 1px;
}

.temap-region-label-black {
	color: rgb(55, 55, 55);
	fill: rgb(55, 55, 55);
}

.temap-region-box-side-label {
	font-size: 16px;
	font-family: Verdana;
	color: rgb(206, 206, 206);
	fill: rgb(206, 206, 206);
	cursor: default;
}

.temap-hidden {
	display: none;
}

.temap-cong-district {
	stroke-width: 1;
}

.temap-senate-special {
	stroke-width: 1.3;
}

.temap-seceded {

}

.temap-reconstruction {
	
}

.temap-ineligible {
	cursor: default;
}

.temap-container {
	padding: 1px;
	padding-top: 4px;
	padding-bottom: 4px;
	text-align: center; /* mainly for state-level maps */
}

.temap-legend {
	font-size: 11px;
	font-family: verdana, arial, helvetica, serif;
	text-align: center;
	width: 89%; /*515px;*/
	padding: 4px;
	margin-left: 14px;
	background-color: rgb(249, 249, 249);
	border: 1px solid darkgrey; /* for bold theme: rgb(38, 38, 38) */
}

.temap-legend-no-container {
	font-size: 12px !important;
	border: 0px !important;
	background-color: transparent !important;
}

.temap-legend-label {
	display: inline-block;
	padding-top: 3px;
	padding-bottom: 3px;
	padding-right: 9px;
	cursor: default;
}

.temap-legend-name-label {
	display: inline-block;
}

.temap-legend-results-label {
	display: inline-block;
	padding-left: 8px !important;
	cursor: default;
	font-weight: bold;
	font-size: 11px;
}

.temap-legend-results-label-large-modifier {
	font-size: 14px;
}

.temap-legend-label:only-child {
	padding-right: 0px;
}

.temap-legend-label-bubble {
	display: inline-block;
	padding: 7px 7px;
	margin-left: 5px;
	margin-right: 5px;
	margin-top: 7px;
	border: 1px solid;
	border-radius: 4px;
	font-size: 11px;
	line-height: 1.26;
	text-decoration: none;
	cursor: default;
}

.temap-legend-label-bubble-large-modifier {
	display: inline-block;
	padding: 4px 6px;
	font-size: 13px;
}

.temap-info-bar {
	font-size: 11px;
	font-family: verdana, arial, helvetica, serif;
	padding-bottom: 4px;
	padding-top: 6px;
	border: 0;
	width: 90%;
	margin-left: 14px;
	height: 20px;
}

.temap-info-bar > span {
	cursor: default;
}

a.temap-edit-link {
	color: darkgrey;
}

a.temap-edit-link:hover {
	color: black;
	cursor: pointer;
}

.temap-evbar-candidate-name-left {
	font-family: Verdana, Arial, Helvetica, Serif;
	font-size: 13px;
	cursor: default;
}

.temap-evbar-candidate-name-right {
	font-family: Verdana, Arial, Helvetica, Serif;
	font-size: 13px;
	cursor: default;
	text-anchor: end; /* Right-to-left expansion */
}

.temap-evbar-candidate-votes-large-left {
	font-family: Helvetica, Arial, Verdana; /*Verdana, Arial, Helvetica, Serif;*/
	font-size: 17px; /*30px;*/
	font-weight: bold;
	cursor: default;
}

.temap-evbar-candidate-votes-large-right {
	font-family: Helvetica, Arial, Verdana; /*Verdana, Arial, Helvetica, Serif;*/
	font-size: 17px; /*30px;*/
	font-weight: bold;
	cursor: default;
	text-anchor: end; /* Right-to-left expansion */
}

.temap-evbar-candidate-popular-vote-left {
	font-family: Helvetica, Arial, Verdana;
	font-size: 12px;
	fill: darkgray;
	cursor: default;
}

.temap-evbar-candidate-popular-vote-right {
	font-family: Helvetica, Arial, Verdana;
	font-size: 12px;
	fill: darkgray;
	cursor: default;
	text-anchor: end;
}



.temap-legend-shadow {
	box-shadow: 1px 1px 0.5px rgba(0, 0, 0, .7);
}

.temap-territory {
	
}

.temap-unknown {
	cursor: default;
	stroke-width: 0.01
}

.temap-noelection {
	cursor: default !important;
}


/* Light scheme */
/*
.ob_color_blue_30 { fill: rgb(191, 213, 255); color: rgb(191, 213, 255); }
.ob_color_blue_40 { fill: rgb(166, 194, 255); color: rgb(166, 194, 255); }
.ob_color_blue_50 { fill: rgb(130, 158, 217); color: rgb(130, 158, 217); }
.ob_color_blue_60 { fill: rgb(75, 116, 201); color: rgb(75, 116, 201); }
.ob_color_blue_70 { fill: rgb(37, 80, 167); color: rgb(37, 80, 167); }
.ob_color_blue_80 { fill: rgb(32, 68, 145); color: rgb(32, 68, 145); }
.ob_color_blue_90 { fill: rgb(27, 56, 118); color: rgb(27, 56, 118); }

.ob_color_red_30 { fill: rgb(255, 198, 203); color: rgb(255, 198, 203); }
.ob_color_red_40 { fill: rgb(255, 174, 183); color: rgb(255, 174, 183); }
.ob_color_red_50 { fill: rgb(255, 113, 126); color: rgb(255, 113, 126); }
.ob_color_red_60 { fill: rgb(255, 60, 79); color: rgb(255, 60, 79); }
.ob_color_red_70 { fill: rgb(234, 0, 23); color: rgb(234, 0, 23); }
.ob_color_red_80 { fill: rgb(198, 0, 20); color: rgb(198, 0, 20); }
.ob_color_red_90 { fill: rgb(168, 0, 17); color: rgb(168, 0, 17); }

.ob_color_yellow_30 { fill: rgb(255, 237, 183); color: rgb(255, 237, 183); }
.ob_color_yellow_40 { fill: rgb(255, 234, 170); color: rgb(255, 234, 170); }
.ob_color_yellow_50 { fill: rgb(255, 225, 136); color: rgb(255, 225, 136); }
.ob_color_yellow_60 { fill: rgb(253, 190, 0); color: rgb(253, 190, 0); }
.ob_color_yellow_70 { fill: rgb(213, 159, 0); color: rgb(213, 159, 0); }
.ob_color_yellow_80 { fill: rgb(198, 149, 0); color: rgb(198, 149, 0); }
.ob_color_yellow_90 { fill: rgb(176, 133, 0); color: rgb(176, 133, 0); }

.ob_color_green_30 { fill: rgb(197, 235, 197); color: rgb(197, 235, 197); }
.ob_color_green_40 { fill: rgb(183, 230, 183); color: rgb(183, 230, 183); }
.ob_color_green_50 { fill: rgb(138, 215, 138); color: rgb(138, 215, 138); }
.ob_color_green_60 { fill: rgb(71, 192, 71); color: rgb(71, 192, 71); }
.ob_color_green_70 { fill: rgb(50, 146, 50); color: rgb(50, 146, 50); }
.ob_color_green_80 { fill: rgb(47, 136, 47); color: rgb(47, 136, 47); }
.ob_color_green_90 { fill: rgb(40, 117, 40); color: rgb(40, 117, 40); }

.ob_color_purple_30 { fill: rgb(240, 210, 255); color: rgb(240, 210, 255); }
.ob_color_purple_40 { fill: rgb(235, 191, 255); color: rgb(235, 191, 255); }
.ob_color_purple_50 { fill: rgb(222, 155, 255); color: rgb(222, 155, 255); }
.ob_color_purple_60 { fill: rgb(199, 83, 255); color: rgb(199, 83, 255); }
.ob_color_purple_70 { fill: rgb(149, 0, 221); color: rgb(149, 0, 221); }
.ob_color_purple_80 { fill: rgb(130, 0, 191); color: rgb(130, 0, 191); }
.ob_color_purple_90 { fill: rgb(102, 0, 151); color: rgb(102, 0, 151); }
*/

:root {
	/* blue */
	--color-blue-0:   rgb(210, 226, 255);
	--color-blue-30:  rgb(166, 194, 255);
	--color-blue-40:  rgb(130, 158, 217);
	--color-blue-50:  rgb(75, 116, 201);
	--color-blue-60:  rgb(37, 80, 167);
	--color-blue-70:  rgb(32, 68, 145);
	--color-blue-80:  rgb(27, 56, 118);
	--color-blue-90:  rgb(20, 43, 90);
	--color-blue-100: rgb(13, 30, 63);

	/* red */
	--color-red-0:   rgb(255, 223, 225);
	--color-red-30:  rgb(255, 174, 183);
	--color-red-40:  rgb(255, 113, 126);
	--color-red-50:  rgb(255, 60, 79);
	--color-red-60:  rgb(234, 0, 23); 
	--color-red-70:  rgb(198, 0, 20);
	--color-red-80:  rgb(168, 0, 17);
	--color-red-90:  rgb(138, 0, 14);
	--color-red-100: rgb(102, 0, 10);

	/* yellow */
	--color-yellow-0:  rgb(255, 243, 206);
	--color-yellow-30: rgb(255, 234, 170);
	--color-yellow-40: rgb(255, 225, 136);
	--color-yellow-50: rgb(253, 190, 0);
	--color-yellow-60: rgb(213, 159, 0);
	--color-yellow-70: rgb(198, 149, 0);
	--color-yellow-80: rgb(176, 133, 0);
	--color-yellow-90: rgb(149, 112, 0);
	--color-yellow-100: rgb(102, 77, 0);

	/* green */
	--color-green-0:  rgb(138, 215, 138);
	--color-green-30: rgb(183, 230, 183);
	--color-green-40: rgb(138, 215, 138);
	--color-green-50: rgb(71, 192, 71);
	--color-green-60: rgb(50, 146, 50);
	--color-green-70: rgb(47, 136, 47);
	--color-green-80: rgb(40, 117, 40);
	--color-green-90: rgb(32, 96, 32);
	--color-green-100: rgb(19, 58, 19);

	/* purple */
	--color-purple-0:  rgb(222, 155, 255);
	--color-purple-30: rgb(235, 191, 255);
	--color-purple-40: rgb(222, 155, 255);
	--color-purple-50: rgb(199, 83, 255);
	--color-purple-60: rgb(149, 0, 221);
	--color-purple-70: rgb(130, 0, 191);
	--color-purple-80: rgb(102, 0, 151);
	--color-purple-90: rgb(85, 0, 125);
	--color-purple-100: rgb(52, 0, 77);

	/* orange */
	--color-orange-0:  rgb(255, 192, 130);
	--color-orange-30: rgb(255, 219, 183);
	--color-orange-40: rgb(255, 192, 130);
	--color-orange-50: rgb(255, 167, 79);
	--color-orange-60: rgb(251, 125, 0);
	--color-orange-70: rgb(232, 116, 0);
	--color-orange-80: rgb(196, 98, 0);
	--color-orange-90: rgb(147, 73, 0);
	--color-orange-100: rgb(102, 51, 0);

	--color-gray:       rgb(177, 177, 177);
	--color-gray-dark:  rgb(143, 143, 143);
	--color-gray-none:  rgb(211, 211, 211);
}

.ob_color_blue_0  				{ fill: var(--color-blue-40); color: var(--color-blue-40); }/*{ fill: var(--color-blue-0); color: var(--color-blue-0); }*/
.ob_color_blue_30 				{ fill: var(--color-blue-30); color: var(--color-blue-30); }
.ob_color_blue_40 				{ fill: var(--color-blue-40); color: var(--color-blue-40); }
.ob_color_blue_50 				{ fill: var(--color-blue-50); color: var(--color-blue-50); }
.ob_color_blue_60 				{ fill: var(--color-blue-60); color: var(--color-blue-60); }
.ob_color_blue_70 				{ fill: var(--color-blue-70); color: var(--color-blue-70); }
.ob_color_blue_80 				{ fill: var(--color-blue-80); color: var(--color-blue-80); }
.ob_color_blue_90 				{ fill: var(--color-blue-90); color: var(--color-blue-90); }
.ob_color_blue_100 				{ fill: var(--color-blue-100); color: var(--color-blue-100); }

.ob_color_red_0  				{ fill: var(--color-red-40); color: var(--color-red-40); }/*{ fill: rgb(255, 223, 225); color: rgb(255, 223, 225); }*/
.ob_color_red_30 				{ fill: var(--color-red-30); color: var(--color-red-30); }
.ob_color_red_40 				{ fill: var(--color-red-40); color: var(--color-red-40); }
.ob_color_red_50 				{ fill: var(--color-red-50); color: var(--color-red-50); }
.ob_color_red_60 				{ fill: var(--color-red-60); color: var(--color-red-60); }
.ob_color_red_70 				{ fill: var(--color-red-70); color: var(--color-red-70); }
.ob_color_red_80 				{ fill: var(--color-red-80); color: var(--color-red-80); }
.ob_color_red_90 				{ fill: var(--color-red-90); color: var(--color-red-90); }
.ob_color_red_100 				{ fill: var(--color-red-100); color: var(--color-red-100); }

.ob_color_yellow_0  			{ fill: rgb(255, 225, 136); color: rgb(255, 225, 136); }/*{ fill: rgb(255, 243, 206); color: rgb(255, 243, 206); }*/
.ob_color_yellow_30 			{ fill: rgb(255, 234, 170); color: rgb(255, 234, 170); }
.ob_color_yellow_40 			{ fill: rgb(255, 225, 136); color: rgb(255, 225, 136); }
.ob_color_yellow_50 			{ fill: rgb(253, 190, 0); color: rgb(253, 190, 0); }
.ob_color_yellow_60 			{ fill: rgb(213, 159, 0); color: rgb(213, 159, 0); }
.ob_color_yellow_70 			{ fill: rgb(198, 149, 0); color: rgb(198, 149, 0); }
.ob_color_yellow_80 			{ fill: rgb(176, 133, 0); color: rgb(176, 133, 0); }
.ob_color_yellow_90 			{ fill: rgb(149, 112, 0); color: rgb(149, 112, 0); }
.ob_color_yellow_100 			{ fill: rgb(102, 77, 0); color: rgb(102, 77, 0); }

.ob_color_green_0  				{ fill: rgb(138, 215, 138); color: rgb(138, 215, 138); }/*{ fill: rgb(213, 240, 213); color: rgb(213, 240, 213); }*/
.ob_color_green_30 				{ fill: rgb(183, 230, 183); color: rgb(183, 230, 183); }
.ob_color_green_40 				{ fill: rgb(138, 215, 138); color: rgb(138, 215, 138); }
.ob_color_green_50 				{ fill: rgb(71, 192, 71); color: rgb(71, 192, 71); }
.ob_color_green_60 				{ fill: rgb(50, 146, 50); color: rgb(50, 146, 50); }
.ob_color_green_70 				{ fill: rgb(47, 136, 47); color: rgb(47, 136, 47); }
.ob_color_green_80 				{ fill: rgb(40, 117, 40); color: rgb(40, 117, 40); }
.ob_color_green_90 				{ fill: rgb(32, 96, 32); color: rgb(32, 96, 32); }
.ob_color_green_100 			{ fill: rgb(19, 58, 19); color: rgb(19, 58, 19); }

.ob_color_purple_0  			{ fill: rgb(222, 155, 255); color: rgb(222, 155, 255); }/*{ fill: rgb(244, 223, 255); color: rgb(244, 223, 255); }*/
.ob_color_purple_30 			{ fill: rgb(235, 191, 255); color: rgb(235, 191, 255); }
.ob_color_purple_40 			{ fill: rgb(222, 155, 255); color: rgb(222, 155, 255); }
.ob_color_purple_50 			{ fill: rgb(199, 83, 255); color: rgb(199, 83, 255); }
.ob_color_purple_60 			{ fill: rgb(149, 0, 221); color: rgb(149, 0, 221); }
.ob_color_purple_70 			{ fill: rgb(130, 0, 191); color: rgb(130, 0, 191); }
.ob_color_purple_80 			{ fill: rgb(102, 0, 151); color: rgb(102, 0, 151); }
.ob_color_purple_90 			{ fill: rgb(85, 0, 125); color: rgb(85, 0, 125); }
.ob_color_purple_100 			{ fill: rgb(52, 0, 77); color: rgb(52, 0, 77); }

/* orange */
.ob_color_orange_0  			{ fill: rgb(255, 192, 130); color: rgb(255, 192, 130); }/*{ fill: rgb(255, 228, 202); color: rgb(255, 228, 202); }*/
.ob_color_orange_30 			{ fill: rgb(255, 219, 183); color: rgb(255, 219, 183); }
.ob_color_orange_40 			{ fill: rgb(255, 192, 130); color: rgb(255, 192, 130); }
.ob_color_orange_50 			{ fill: rgb(255, 167, 79); color: rgb(255, 167, 79); }
.ob_color_orange_60 			{ fill: rgb(251, 125, 0); color: rgb(251, 125, 0); }
.ob_color_orange_70 			{ fill: rgb(232, 116, 0); color: rgb(232, 116, 0); }
.ob_color_orange_80 			{ fill: rgb(196, 98, 0); color: rgb(196, 98, 0); }
.ob_color_orange_90 			{ fill: rgb(147, 73, 0); color: rgb(147, 73, 0); }
.ob_color_orange_100 			{ fill: rgb(102, 51, 0); color: rgb(102, 51, 0); }

.ob_color_blue      			{ fill: rgb(37, 80, 167); color: rgb(37, 80, 167); }
.ob_color_red       			{ fill: rgb(234, 0, 23); color: rgb(234, 0, 23); }
.ob_color_yellow    			{ fill: rgb(253, 190, 0); color: rgb(253, 190, 0); }
.ob_color_green     			{ fill: rgb(50, 146, 50); color: rgb(50, 146, 50); }
.ob_color_purple    			{ fill: rgb(149, 0, 221); color: rgb(149, 0, 221); }
.ob_color_orange    			{ fill: rgb(251, 125, 0); color: rgb(251, 125, 0); }
.ob_color_others            	{ fill: rgb(0, 204, 204); color: rgb(0, 204, 204); } /*{ fill: rgb(51, 187, 255); color: rgb(51, 187, 255); }*/
.ob_color_gray      			{ fill: var(--color-gray); color: var(--color-gray); }
.ob_color_gray_unused		 	{ fill: rgb(212, 212, 212); color: rgb(212, 212, 212); }
.ob_color_gray_none 			{ fill: var(--color-gray-none); color: var(--color-gray-none); }
.ob_color_seceded				{ fill: rgb(128, 64, 0); }
.ob_color_territory 			{ fill: var(--color-gray-dark); }
.ob_color_disputed  			{ fill: var(--color-gray-none); }
.ob_color_ineligible			{ fill: rgb(53, 53, 53); }

.ob_color_blue_label    		{ fill: rgb(130, 158, 217); background-color: rgb(130, 158, 217); } /* equivalent: ob_color_blue_60 */
.ob_color_red_label     		{ fill: rgb(255, 113, 126); background-color: rgb(255, 113, 126); } /* equivalent: ob_color_red_40 */
.ob_color_yellow_label 			{ fill: rgb(255, 225, 136); background-color: rgb(255, 225, 136); } /* equivalent: ob_color_yellow_40 */
.ob_color_green_label   		{ fill: rgb(138, 215, 138); background-color: rgb(138, 215, 138); } /* equivalent: ob_color_green_40 */
.ob_color_purple_label  		{ fill: rgb(222, 155, 255); background-color: rgb(222, 155, 255); } /* equivalent: ob_color_purple_40 */
.ob_color_orange_label  		{ fill: rgb(255, 167, 79); background-color: rgb(255, 167, 79); } /* equivalent: ob_color_orange_50 */
.ob_color_gray_label    		{ fill: rgb(177, 177, 177); background-color: rgb(177, 177, 177); }
.ob_color_gray_unused_label    	{ fill: rgb(177, 177, 177); background-color: rgb(177, 177, 177); }
.ob_color_others_label    		{ fill: rgb(0, 204, 204); background-color: rgb(0, 204, 204); }

.ob_color_blue_progress     	{ fill: rgb(75, 116, 201); background-color: rgb(75, 116, 201); }
.ob_color_red_progress      	{ fill: rgb(255, 60, 79); background-color: rgb(255, 60, 79); }
.ob_color_yellow_progress   	{ fill: rgb(253, 190, 0); background-color: rgb(253, 190, 0); }
.ob_color_green_progress    	{ fill: rgb(138, 215, 138); background-color: rgb(138, 215, 138); }
.ob_color_purple_progress   	{ fill: rgb(222, 155, 255); background-color: rgb(222, 155, 255); }
.ob_color_orange_progress   	{ fill: rgb(251, 125, 0); background-color: rgb(251, 125, 0); }
.ob_color_gray_progress     	{ fill: rgb(177, 177, 177); background-color: rgb(177, 177, 177); }
.ob_color_gray_unused_progress  { fill: rgb(212, 212, 212); background-color: rgb(212, 212, 212); } /* Lighter shade of gray */
.ob_color_others_progress		{ fill: rgb(0, 204, 204); background-color: rgb(0, 204, 204); } /* Teal shade */

.ob_color_blue_vote_label     	{ fill: rgb(37, 80, 167); }
.ob_color_red_vote_label      	{ fill: rgb(234, 0, 23); }
.ob_color_yellow_vote_label   	{ fill: rgb(213, 159, 0); }
.ob_color_green_vote_label    	{ fill: rgb(50, 146, 50); }
.ob_color_purple_vote_label   	{ fill: rgb(149, 0, 221); }
.ob_color_orange_vote_label   	{ fill: rgb(232, 116, 0); }
.ob_color_gray_vote_label     	{ fill: rgb(143, 143, 143); }
.ob_color_others_vote_label		{ fill: rgb(0, 128, 128); } /* Teal shade */

.ob_color_blue_bubble     				{ fill: var(--color-blue-40); background-color: var(--color-blue-40); }
.ob_color_red_bubble      				{ fill: rgb(255, 60, 79); background-color: rgb(255, 60, 79); }
.ob_color_yellow_bubble   				{ fill: rgb(253, 190, 0); background-color: rgb(253, 190, 0); }
.ob_color_green_bubble    				{ fill: rgb(138, 215, 138); background-color: rgb(138, 215, 138); }
.ob_color_purple_bubble   				{ fill: rgb(222, 155, 255); background-color: rgb(222, 155, 255); }
.ob_color_orange_bubble   				{ fill: rgb(251, 125, 0); background-color: rgb(251, 125, 0); }
.ob_color_gray_bubble     				{ fill: rgb(177, 177, 177); background-color: rgb(177, 177, 177); }
.ob_color_gray_unused_bubble  			{ fill: rgb(212, 212, 212); background-color: rgb(212, 212, 212); } /* Lighter shade of gray */
.ob_color_others_bubble					{ fill: rgb(0, 204, 204); background-color: rgb(0, 204, 204); } /* Teal shade */

.ob_color_blue_candidate_bubble     	{ fill: var(--color-blue-30); background-color: var(--color-blue-30); }
.ob_color_red_candidate_bubble      	{ fill: var(--color-red-30); background-color: var(--color-red-30); }
.ob_color_yellow_candidate_bubble   	{ fill: var(--color-yellow-30); background-color: var(--color-yellow-30); }
.ob_color_green_candidate_bubble    	{ fill: var(--color-green-30); background-color: var(--color-green-30); }
.ob_color_purple_candidate_bubble   	{ fill: var(--color-purple-30); background-color: var(--color-purple-30); }
.ob_color_orange_candidate_bubble   	{ fill: var(--color-orange-30); background-color: var(--color-orange-30); }
.ob_color_gray_candidate_bubble     	{ fill: rgb(177, 177, 177); background-color: rgb(177, 177, 177); }
.ob_color_others_candidate_bubble		{ fill: rgb(0, 204, 204); background-color: rgb(0, 204, 204); }

/* Actual fills depend on dynamic IDs, so these just exist for internal use */
.ob_color_flip_red {
	background: repeating-linear-gradient(
	  45deg,
	  var(--color-red-70),
	  var(--color-red-70) 2px,
	  rgb(255, 174, 183) 2px,
	  rgb(255, 174, 183) 4px
	);
}
.ob_color_flip_blue {
	background: repeating-linear-gradient(
	  45deg,
	  rgb(0, 61, 121),
	  rgb(0, 61, 121) 2px,
	  rgb(86, 183, 254) 2px,
	  rgb(86, 183, 254) 4px
	);
}
.ob_color_flip_yellow {
	background: repeating-linear-gradient(
	  45deg,
	  var(--color-yellow-70),
	  var(--color-yellow-70) 2px,
	  rgb(255, 238, 185) 2px,
	  rgb(255, 238, 185) 4px
	);
}
.ob_color_flip_green {
	background: repeating-linear-gradient(
	  45deg,
	  var(--color-green-70),
	  var(--color-green-70) 2px,
	  rgb(190, 233, 190) 2px,
	  rgb(190, 233, 190) 4px
	);
}
.ob_color_flip_purple {
	background: repeating-linear-gradient(
	  45deg,
	  var(--color-purple-70),
	  var(--color-purple-70) 2px,
	  rgb(238, 202, 255) 2px,
	  rgb(238, 202, 255) 4px
	);
}
.ob_color_flip_orange {
	background: repeating-linear-gradient(
	  45deg,
	  var(--color-orange-70),
	  var(--color-orange-70) 2px,
	  rgb(255, 219, 183) 2px,
	  rgb(255, 219, 183) 4px
	);
}

/* gray bg needs even thicker borders when drop shadow is used */
.temap-shadow > .ob_color_gray_none.temap-thick-border {
	stroke-width: 1.3px;
}



.map-evbar-container { }

.temap-evbar-party {
	shape-rendering: crispEdges;
}

.temap-evbar-majority-divider-arrow {
	font-family: verdana, arial, helvetica, serif;
	font-size: 13px;
	font-stretch: ultra-expanded;
	cursor: default;
	fill: rgb(55, 55, 55);
	text-anchor: middle; /* Center text */
	shape-rendering: geometricPrecision;
}

.temap-evbar-vote-label {
	color: rgb(42, 42, 42);
	font-weight: bold;
	font-size: 11px;
	font-family: verdana, arial, helvetica, serif;
	cursor: default;
	text-anchor: middle; /* Center text */
}

.temap-evbar {
	display: flex;
	height: 100%;
}

.temap-candidate-is-incumbent {
	color: rgb(44, 44, 44);
	font-weight: bold;
	font-size: 12px;
}

.temap-evbar-no-opponent {
	font-style: italic;
	color: darkgray;
}


/* tooltips */

/* Actual tip max-width should be adjusted in default tippy properties in te_map.js. Currently set at 420px */
.tetip-container {
	max-width: 410px;
	max-height: 320px; /*260px;*/ /* adjusted height to accomodate more candidates in Other Candidates evbar/legend tooltip */
	font-family: verdana, arial, helvetica, serif;
	font-size: 11px;
	text-align: left;
}

.tetip-body {
	min-width: 275px; /* Accomodate long region names */
	width: 100%;
	height: 100%;
}

.tetip-body-minimal {
	width: 100%;
	height: 100%;
}

.tetip-state-label {
	padding-left: 7px;
	font-weight: bold;
}

.tetip-generic-label {
	font-weight: bold;
}

.tetip-district-label {
	padding-right: 10px;
}

.tetip-candidate-label {
	font-weight: bold;
	max-width: 260px;
	padding-right: 15px;
	position: relative;
	top: 1px;
}

.tetip-candidate-regions-label {
	display: inline-block;
	color: darkgray;
	font-size: 11px;
	max-width: 200px;
}

.tetip-other-candidate-container {
	max-width: 275px;
	padding-bottom: 10px;
}

.tetip-unused-vote-container {
	max-width: 200px;
	padding-bottom: 3px;
}

.tetip-candidates-subheader {
	font-weight: bold;
	font-size: 10px;
	text-align: left;
	padding-top: 15px;
}

.tetip-candidate-name-tip {
	font-weight: bold;
	padding-bottom: 3px;
}

.tetip-region-won-entry-container {
	width: 250px;
}

.tetip-region-won-label {
	display: inline-block;
	width: 95px;
}

.tetip-region-won-data-label {
	display: inline-block;
	padding-left: 10px;
	font-weight: bold;
	width: 29px;
}

.tetip-region-won-data-pct-label {
	display: inline-block;
	padding-left: 5px;
	width: 30px;
}

.tetip-prediction-entry-container {
	width: 250px;
}

.tetip-prediction-label {
	display: inline-block;
	width: 45px;
}

.tetip-prediction-data-label {
	display: inline-block;
	padding-left: 10px;
	font-weight: bold;
	width: 29px;
}

.tetip-prediction-data-pct-label {
	display: inline-block;
	padding-left: 5px;
	width: 155px;
}

.tetip-divider {
	height: 1px;
	border: 0;
	color: #333;
	background-color: rgb(232, 232, 232);
	width: 100%;
}

.tetip-body-bottom {
	display: block;
	text-align: right;
}

.tetip-light-text {
	font-weight: default;
	color: darkgrey;
}

.tetip-progress-group {
	display: inline-block;
	vertical-align: top;
	float: right;
	width: 190px;
}

.tetip-progress-container {
	display: inline-block;
	width: 150px;
}

.tetip-progress-mini-container {
	display: inline-block;
	width: 25px;
}

.tetip-progress-bar {
	position: relative;
	top: 3px;
	display: inline-block;
	max-width: 180px;
	height: 13px;
	line-height: 12px;
	text-align: center;
	overflow-x: visible;
	white-space: nowrap; /* Allow text overflow in progress bar just in case it is too small to fit */
	font-weight: bold;
	font-size: 10px;
}

.temap-has-ctx-menu {}

.temap-ctx-menu-container .context-menu-item {
	font-size: 12px;
	font-family: Verdana;
}

.temap-ctx-menu-shade-label-container {
	display: inline-block;
	padding-top: 5px;
}

.temap-ctx-menu-shade-label-container > span {
	position: relative;
	top: -1px;
	padding-left: 5px;
}

.temap-ctx-menu-shade-box {
	display: inline-block;
	border: 1px solid black;
	height: 10px;
	width: 15px;
}

.temap-ctx-menu-header-container {
	display: flex;
	align-items: center;
}
.temap-ctx-menu-header-region {
	display: inline-block;
	text-align: left;
	width: 85%;
	font-weight: bold;
}
.temap-ctx-menu-header-year {
	display: inline-block;
	text-align: right;
	width: 15%;
	color: darkgray;
}

.temap-overlay-image {
	pointer-events: none; /* Foreground images overlapping on map need this set or else the map regions won't receive mouse events */
}

.bg-flag-AK, .bg-flag-AL, .bg-flag-AR, .bg-flag-AZ, .bg-flag-CA, .bg-flag-CO, .bg-flag-CT, .bg-flag-DC, .bg-flag-DE, .bg-flag-FL, .bg-flag-GA, .bg-flag-HI, .bg-flag-IA, .bg-flag-ID, .bg-flag-IL, .bg-flag-IN, .bg-flag-KS, .bg-flag-KY, .bg-flag-LA, .bg-flag-MA, .bg-flag-MD, .bg-flag-ME, .bg-flag-ME1, .bg-flag-ME2, .bg-flag-MI, .bg-flag-MN, .bg-flag-MO, .bg-flag-MS, .bg-flag-MS-OLD, .bg-flag-MT, .bg-flag-NC, .bg-flag-ND, .bg-flag-NE, .bg-flag-NE1, .bg-flag-NE2, .bg-flag-NE3, .bg-flag-NH, .bg-flag-NJ, .bg-flag-NM, .bg-flag-NV, .bg-flag-NY, .bg-flag-OH, .bg-flag-OK, .bg-flag-OR, .bg-flag-PA, .bg-flag-PR, .bg-flag-RI, .bg-flag-SC, .bg-flag-SD, .bg-flag-TN, .bg-flag-TX, .bg-flag-UT, .bg-flag-VA, .bg-flag-VI, .bg-flag-VT, .bg-flag-WA, .bg-flag-WI, .bg-flag-WV, .bg-flag-WY {
	background: url('../../IMG/state_flag_sprites.png?2') no-repeat !important;
}

/*
.bg-flag-AK1, .bg-flag-AL1, .bg-flag-AR1, .bg-flag-AZ1, .bg-flag-CA1, .bg-flag-CO1, .bg-flag-CT1, .bg-flag-DE1, .bg-flag-FL1, .bg-flag-GA1, .bg-flag-HI1, .bg-flag-IA1, .bg-flag-ID1, .bg-flag-IL1, .bg-flag-IN1, .bg-flag-KS1, .bg-flag-KY1, .bg-flag-LA1, .bg-flag-MA1, .bg-flag-MD1, .bg-flag-MI1, .bg-flag-MN1, .bg-flag-MO1, .bg-flag-MS1, .bg-flag-MS-OLD, .bg-flag-MT1, .bg-flag-NC1, .bg-flag-ND1, .bg-flag-NH1, .bg-flag-NJ1, .bg-flag-NM1, .bg-flag-NV1, .bg-flag-NY1, .bg-flag-OH1, .bg-flag-OK1, .bg-flag-OR1, .bg-flag-PA1, .bg-flag-PR1, .bg-flag-RI1, .bg-flag-SC1, .bg-flag-SD1, .bg-flag-TN1, .bg-flag-TX1, .bg-flag-UT1, .bg-flag-VA1, .bg-flag-VI1, .bg-flag-VT1, .bg-flag-WA1, .bg-flag-WI1, .bg-flag-WV1, .bg-flag-WY1 {
	background: url('../../IMG/state_flag_sprites.png?2') no-repeat;
}
*/

.bg-flag-AK {
    width: 26px !important; height: 16px !important;
    background-position: -0 -0 !important;
}

.bg-flag-AL {
    width: 26px !important; height: 16px !important;
    background-position: -0 -16px !important;
}

.bg-flag-AR {
    width: 26px !important; height: 16px !important;
    background-position: -0 -32px !important;
}

.bg-flag-AZ {
    width: 26px !important; height: 16px !important;
    background-position: -0 -48px !important;
}

.bg-flag-CA {
    width: 26px !important; height: 16px !important;
    background-position: -0 -64px !important;
}

.bg-flag-CO {
    width: 26px !important; height: 16px !important;
    background-position: -0 -80px !important;
}

.bg-flag-CT {
    width: 26px !important; height: 16px !important;
    background-position: -0 -96px !important;
}

.bg-flag-DC {
    width: 26px !important; height: 16px !important;
    background-position: -0 -112px !important;
}

.bg-flag-DE {
    width: 26px !important; height: 16px !important;
    background-position: -0 -128px !important;
}

.bg-flag-FL {
    width: 26px !important; height: 16px !important;
    background-position: -0 -144px !important;
}

.bg-flag-GA {
    width: 26px !important; height: 16px !important;
    background-position: -0 -160px !important;
}

.bg-flag-HI {
    width: 26px !important; height: 16px !important;
    background-position: -0 -176px !important;
}

.bg-flag-IA {
    width: 26px !important; height: 16px !important;
    background-position: -0 -192px !important;
}

.bg-flag-ID {
    width: 26px !important; height: 16px !important;
    background-position: -0 -208px !important;
}

.bg-flag-IL {
    width: 26px !important; height: 16px !important;
    background-position: -0 -224px !important;
}

.bg-flag-IN {
    width: 26px !important; height: 16px !important;
    background-position: -0 -240px !important;
}

.bg-flag-KS {
    width: 26px !important; height: 16px !important;
    background-position: -0 -256px !important;
}

.bg-flag-KY {
    width: 26px !important; height: 16px !important;
    background-position: -0 -272px !important;
}

.bg-flag-LA {
    width: 26px !important; height: 16px !important;
    background-position: -0 -288px !important;
}

.bg-flag-MA {
    width: 26px !important; height: 16px !important;
    background-position: -0 -304px !important;
}

.bg-flag-MD {
    width: 26px !important; height: 16px !important;
    background-position: -0 -320px !important;
}

.bg-flag-ME {
    width: 26px !important; height: 16px !important;
    background-position: -0 -336px !important;
}

.bg-flag-ME1 {
    width: 26px !important; height: 16px !important;
    background-position: -0 -336px !important;
}

.bg-flag-ME2 {
    width: 26px !important; height: 16px !important;
    background-position: -0 -336px !important;
}

.bg-flag-MI {
    width: 26px !important; height: 16px !important;
    background-position: -0 -352px !important;
}

.bg-flag-MN {
    width: 26px !important; height: 15px !important;
    background-position: -0 -369px !important;
}

.bg-flag-MO {
    width: 26px !important; height: 15px !important;
    background-position: -0 -385px !important;
}

.bg-flag-MS {
    width: 26px !important; height: 15px !important;
    background-position: -0 -401px !important;
}

.bg-flag-MS-OLD {
    width: 26px !important; height: 16px !important;
    background-position: -0 -416px !important;
}

.bg-flag-MT {
    width: 26px !important; height: 16px !important;
    background-position: -0 -432px !important;
}

.bg-flag-NC {
    width: 26px !important; height: 16px !important;
    background-position: -0 -448px !important;
}

.bg-flag-ND {
    width: 26px !important; height: 16px !important;
    background-position: -0 -464px !important;
}

.bg-flag-NE {
    width: 26px !important; height: 16px !important;
    background-position: -0 -480px !important;
}

.bg-flag-NE1 {
    width: 26px !important; height: 16px !important;
    background-position: -0 -480px !important;
}

.bg-flag-NE2 {
    width: 26px !important; height: 16px !important;
    background-position: -0 -480px !important;
}

.bg-flag-NE3 {
    width: 26px !important; height: 16px !important;
    background-position: -0 -480px !important;
}

.bg-flag-NH {
    width: 26px !important; height: 16px !important;
    background-position: -0 -496px !important;
}

.bg-flag-NJ {
    width: 26px !important; height: 16px !important;
    background-position: -0 -512px !important;
}

.bg-flag-NM {
    width: 26px !important; height: 16px !important;
    background-position: -0 -528px !important;
}

.bg-flag-NV {
    width: 26px !important; height: 16px !important;
    background-position: -0 -544px !important;
}

.bg-flag-NY {
    width: 26px !important; height: 16px !important;
    background-position: -0 -560px !important;
}

.bg-flag-OH {
    width: 26px !important; height: 16px !important;
    background-position: -0 -576px !important;
}

.bg-flag-OK {
    width: 26px !important; height: 16px !important;
    background-position: -0 -592px !important;
}

.bg-flag-OR {
    width: 26px !important; height: 16px !important;
    background-position: -0 -608px !important;
}

.bg-flag-PA {
    width: 26px !important; height: 16px !important;
    background-position: -0 -624px !important;
}

.bg-flag-PR {
    width: 26px !important; height: 16px !important;
    background-position: -0 -640px !important;
}

.bg-flag-RI {
    width: 26px !important; height: 16px !important;
    background-position: -0 -656px !important;
}

.bg-flag-SC {
    width: 26px !important; height: 16px !important;
    background-position: -0 -672px !important;
}

.bg-flag-SD {
    width: 26px !important; height: 16px !important;
    background-position: -0 -688px !important;
}

.bg-flag-TN {
    width: 26px !important; height: 16px !important;
    background-position: -0 -704px !important;
}

.bg-flag-TX {
    width: 26px !important; height: 16px !important;
    background-position: -0 -720px !important;
}

.bg-flag-UT {
    width: 26px !important; height: 16px !important;
    background-position: -0 -736px !important;
}

.bg-flag-VA {
    width: 26px !important; height: 16px !important;
    background-position: -0 -752px !important;
}

.bg-flag-VI {
    width: 26px !important; height: 16px !important;
    background-position: -0 -768px !important;
}

.bg-flag-VT {
    width: 26px !important; height: 16px !important;
    background-position: -0 -784px !important;
}

.bg-flag-WA {
    width: 26px !important; height: 16px !important;
    background-position: -0 -800px !important;
}

.bg-flag-WI {
    width: 26px !important; height: 16px !important;
    background-position: -0 -816px !important;
}

.bg-flag-WV {
    width: 26px !important; height: 16px !important;
    background-position: -0 -832px !important;
}

.bg-flag-WY {
    width: 26px !important; height: 16px !important;
    background-position: -0 -848px !important;
}