body, html{
	width:100%;
	height:100%;
	padding:0px;
	margin:0px;

	font-family: 'Fira Sans', sans-serif;
	font-size:20px;
	line-height: 1.2;
	color: #000;
}

h1, h2, h3, h4, h5, h6{
	font-weight: 800;
	margin:0px;
	padding:0px;
}

h3, h4, h5, h6 {
	font-weight: 600;
}

textarea {
	font-family: inherit;
}

span.errormessage {
	color: #c00;
	padding: 10px 0px;
	font-size: 0.8rem;
}

#login-help {
	margin: 0px;
	padding: 10px 0px;
}

div#container {
	position:relative;
	min-height:100%;
}

div.loginbar {
	height:36px;
	background-color:#11111a;
	padding:0px 10px;
	line-height:36px;
	font-size: 0.75rem;
	border-bottom:1px solid #000;
	color:#fff;
}

div.loginbar .roletag {
	margin: 4px;
	height: 20px;
	line-height: 20px;
	padding: 3px 10px;
	display: inline-block;
	border: 1px solid rgba(255, 255, 255, 0.4);
	background-color: rgba(255, 255, 255, 0.2);
	border-radius: 5px;
	display: none; /* Not really all that useful, TODO: Remove in future */
}

div.loginbar a {
	display:block;
	padding:6px 10px;
	height:24px;
	line-height:24px;
	float:right;
	color:#aaa;
	text-decoration:none;
}

div.loginbar a:hover {
	background-color:#444;
	color:#fff;
	text-decoration:underline;
}

div.header {
	background-color:#333;
	padding:20px;
	color:#fff;
	border-top:1px solid #444;
	border-bottom:4px solid #6ac;
}

div.content {
}

div.page {
	padding:0px 20px 20px;
}

div.message {
	padding-bottom:5px;
}

div.footercontainer {
	position:absolute;
	bottom:0px;
	width:100%;
	height:100px;
}

div.footercontainer div.footer {
	border-top:4px solid #6ac;
	background-color:#333;
	padding:20px;
	color:#fff;
	height:56px;
}

div#results {
	position: absolute;
	z-index: 1;
	left: 0;
	right: 0;
	background-color: #fff;
}

div.selected.candidate::before {
	position: absolute;
	left: 10px;
	top: -11px;
	height: 20px;
	padding: 0px 5px;
	line-height: 20px;
	background-color: #fff;
	content: 'Selected Candidate';
	font-size: 0.6rem;
	color: rgba(0,0,0,0.6);
	display: block;
	text-align: center;
}

div.selected.candidate.proxy::before { content: 'Selected Proxy'; }
div.selected.candidate.voter::before { content: 'Selected Voter'; }

.form-row:nth-child(2n+1) div.selected.candidate::before {
	background-color: #eee;
}

div.selected.candidate {
	border: 1px solid rgba(0, 0, 0, .2);
	position: relative;
	margin-top: 20px;
	padding: 10px 10px 0px 10px;
	border-radius: 10px;
}

div.selected.candidate span.placeholder {
	font-size: 0.6rem;
	color: rgba(0, 0, 0, .8);
}

.candidate {
	border: 0px solid rgba(0,0,0,.2);
	border-top-width: 1px;
	border-bottom-width: 1px;
	display: flex;
}

#results ul {
	margin: 0;
	padding: 0;
}

li.candidate {
	list-style-type: none;
	padding: 20px;
	cursor: pointer;
}

.candidate > div.profile-icon {
	padding: 2px;
	margin-right: 20px;
}

.candidate > div.profile-icon img {
	border-radius: 100%;
	border: 2px solid #fff;
	box-shadow: 0px 0px 0px 2px #000;
}

.candidate > div.profile {
	flex-grow: 1;
}

.candidate .profile-id::before {
	content: 'ID: ';
}

form, form input, form button, form textarea, form select {
	font-size: 1rem;
}

form label {
	display: block;
}

form div.selector {
	display: flex;
}

form div.selector label {
	margin: 0px 10px;
	flex-grow: 1;
}

form label.radio input, form input[type=radio] {
	display: none;
}

form label.radio .radio-button-label {
	text-decoration: none;
	color: #000;
	text-align: center;
	display: block;
	padding: 10px;
	border: 2px solid rgba(0,0,0,.2);
	border-radius: 10px;
}

form label.radio input:checked+.radio-button-label, form input:checked+label.radio .radio-button-label {
	background-color: #000;
	color: #fff;
	border: 2px solid #fff;
	box-shadow: 0px 0px 0px 2px #000;
}

form label.radio {
	position: relative;
}

form label.radio div.hover-tooltip {
	position: absolute;
	pointer-events: none;
	opacity: 0;
	z-index: 2;
	transition: opacity 300ms ease-in-out;
	margin-top: 5px;
	padding: 10px;
	border-radius: 10px;
	background-color: #fff;
	border: 2px solid rgba(0, 0, 0, .2);
}

form label.radio div.hover-tooltip::before {
	position:absolute;
	content: ' ';
	background-color: #fff;
	top: -10px;
	left: 20px;
	width: 16px;
	height: 16px;
	transform: rotate(45deg);
	border: 2px solid rgba(0, 0, 0, .2);
	border-bottom-color: transparent;
	border-right-color: transparent;
}

form label.radio:hover div.hover-tooltip {
	position: absolute;
	opacity: 1;
}

.form-row {
	padding: 10px 20px;
	margin: 0px -20px;
}

.form-row:nth-child(2n+1 of .form-row) {
	background-color: #eee;
}

.form-section > .form-row, .form-section > section > .form-row {
	border-left: 4px solid #6ac;
}

.form-section {
	margin-bottom: 20px;
}

.form-section h3 {
	background-color: #6ac;
	color: #fff;
	margin: 0px -20px;
	padding: 10px;
	padding-left: 16px;
	border-left: 4px solid #6ac;
}

/*
.form-section:before, .form-section:after {
	content: '';
	display: block;
	border: 0px solid #6ac;
	width: 10px;
	margin-left: -20px;
}

.form-section:before { border-width: 4px 0 0 0; }
.form-section:after { border-width: 0 0 4px 0; }
*/

form input, form button, form textarea {
	box-sizing: border-box;
	width: 100%;
	display:block;
	padding: 10px;
}

form input[type=checkbox].regular {
	width: auto;
	display: inline-block;
}

form textarea {
	min-height: 5rem;
}

form .split-button {
	display: flex;
	flex-direction: row;
	align-content: stretch;
	gap: 20px;
	flex-wrap: wrap;
}

form .split-button > input, form .split-button > button {
	flex-grow: 1;
	width: min-content;
}

input[type="submit"], button[type="submit"] {
	background: linear-gradient(#eee,#e7e7e7);
	border: 1px solid rgba(0,0,0,.2);
	border-radius: 3px;
}


input[type=submit].danger, button[type="submit"].danger {
	background: linear-gradient(#900, #800);
	color: #fff;
	font-weight: bold;
}

input[type=submit]:hover, button[type="submit"]:hover { background: linear-gradient(#ddd,#d7d7d7); }
input[type=submit].danger:hover, button[type="submit"].danger:hover { background: linear-gradient(#800,#700); }

.defaultHide { display: none; }

/* Early Voting - profiles and personal statements */
section#statements .statement {
	white-space: pre-wrap;
}

section#statements .candidate {
	border: 0px;
	margin: 1rem 0px;
}

section#ranking {
	display: grid;
	grid-template-columns: 1fr repeat(5, max-content);
	margin-top: 0.3rem;
}

section#ranking .form-row.ranking {
	display: grid;
	grid-template-columns: subgrid;
	grid-column: 1 / -1;
	grid-row: auto;
}

section#ranking .rank-header {
	text-align: center;
	font-weight: bold;
}

section#ranking .rank-header .name-column {
	text-align: left;
}

form .form-section.proxy-election input#proxy-default:checked~.form-row label[for="proxy-default"] .radio-button-label,
form .form-section.proxy-election input#proxy-named:checked~.form-row label[for="proxy-named"] .radio-button-label {
	background-color: #000;
	color: #fff;
	border: 2px solid #fff;
	box-shadow: 0px 0px 0px 2px #000;
}

form .form-section.proxy-election .form-row.conditional { display: none; }
form .form-section.proxy-election input#proxy-default:checked~.form-row.proxy-default { display: block; }
form .form-section.proxy-election input#proxy-named:checked~.form-row.proxy-named { display: block; }

/* latin */
@font-face {
	font-family: 'Fira Sans';
	font-style: normal;
	font-weight: 400;
	font-display: swap;
	src: url(/styles/firasans-v17-latin-400.woff2) format('woff2');
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* latin */
@font-face {
	font-family: 'Fira Sans';
	font-style: normal;
	font-weight: 600;
	font-display: swap;
	src: url(/styles/firasans-v17-latin-600.woff2) format('woff2');
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* latin */
@font-face {
	font-family: 'Fira Sans';
	font-style: normal;
	font-weight: 800;
	font-display: swap;
	src: url(/styles/firasans-v17-latin-800.woff2) format('woff2');
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
