
body {
	font-family: 'Linux Libertine', Palatino, 'Palatino Linotype', 'Book Antiqua', Georgia, 'Times New Roman', serif;
	margin: 0;
	margin-bottom: 25px;
	padding: 0;
	color: #222;
	background-color: #eee;
}

body.crsb_active {
	overflow: hidden;
}

body.crsb_active form {
	filter: blur(3px);
}

input, select {
	width: 100%;
}

input[type=submit], input[type=button], input[type=checkbox] {
	width: auto;
}

input[type=color] {
	width: 5em;
	height: 1.5em;
}

#index {
	margin: 1em;
	text-align: center;
	column-width: 33em;
	-moz-column-width: 33em;
	-webkit-column-width: 33em;
}

.step {
	width: 30em;
	/*display: block;
	margin: 1em auto;*/
	display: inline-block;
	margin: 1em;
	border: 1px #004628 dotted;
	padding: 0.5em 1em;
	background-color: rgba(0,0,0,0.1);
	background-position: right center;
	background-repeat: no-repeat;
	text-align: left;
}

.step.success  {
	background-image: url('../images/success.png');
}

.step.error {
	background-image: url('../images/error.png');
}

.step > .title {
	background-color: #004628;
	color: white;
	text-align: center;
	margin: -0.5em -1em 0.5em -1em;
	margin: -moz-calc(-0.5em - 1px) -moz-calc(-1em - 1px) 0.5em -moz-calc(-1em - 1px);
}

.actions {
	background-color: rgba(0,0,0,0.2);
	text-align: center;
	margin: -0.5em -1em 0.5em -1em;
	margin: -moz-calc(-0.5em - 1px) -moz-calc(-1em - 1px) 0.5em -moz-calc(-1em - 1px);
	padding: 0.2em 1.3em;
	text-align: right;
}

.header {
	padding: 0.5em 0 1em 0;
	margin-bottom: 0em;
	overflow-x: auto;
}

.elements {
	display: table;
	width: 100%;
	border-collapse: separate; 
	border-spacing: 0.3em;
}

.element {
	display: table-row;
}

.element > * {
	display: table-cell;
}

.element > .title {
	font-weight: bold;
	width: 10em;
	text-align: right;
	border-right: 1px #004628 dotted;
	padding-right: 0.3em;
}

.element > .color {
	width: 5em;
	text-align: right;
	vertical-align: center;
}

.element .details {
	margin-top: 0.5em;
	font-size: 0.8em;
}

.element .details ul {
	margin: 0.3em 0;
}

.foot_warning {
	font-size: 0.8em;
	font-weight: bold;
	background-color: #faa;
	padding: 0 0.3em;
}

#crsb_background {
	position: fixed;
	left: 0;
	top: 0;
	width: 100%;
	height: 100%;
	background: rgba(0, 0, 0, 0.5);
}

#crsb_container {
	position: absolute;
	left: 0;
	top: 0;
	right: 0;
	bottom: 0;
	width: 80%;
	height: 80%;
	margin: auto;
	background: white;
	font-family: monospace;
	padding: 0.5em;
	overflow: auto;
	display: flex;
	flex-direction: column;
}

#crsb_container #crsb_content {
	flex-grow: 1;
	display: flex;
	flex-direction: column;
}

#crsb_container .loader {
	margin: 0.5em 0;
	border: 0.7em solid #ddd;
	border-left: 0.7em solid #555;
	border-radius: 50%;
	width: 1em;
	height: 1em;
	animation: spin 1.5s linear infinite;
}

@keyframes spin {
	0% { transform: rotate(0deg); }
	100% { transform: rotate(360deg); }
}

#crsb_container .close {
	position: absolute;
	top: 0;
	right: 0;
	display: block;
	width: 2rem;
	height: 2rem;
	font-size: 0;
}

#crsb_container .close::before, #crsb_container .close::after {
	position: absolute;
	top: 50%;
	left: 50%;
	width: 0.1rem;
	height: 1rem;
	background-color: #ccc;
	transform: rotate(45deg) translate(-50%, -50%);
	transform-origin: top left;
	content: '';
}

#crsb_container .close::after {
	transform: rotate(-45deg) translate(-50%, -50%);
}

#crsb_container .close:hover::before, #crsb_container .close:hover::after {
	background-color: #aaa;
}

#crsb_container .reset {
	position: absolute;
	top: 0;
	right: 2.5rem;
	display: block;
	width: 2rem;
	height: 2rem;
	font-size: 0;
}

#crsb_container .reset::before {
	content: '';
	position: absolute;
	top: 25%;
	left: calc(25% - 0.1rem);
	width: 50%;
	height: 50%;
	
	border: 0.1rem solid #bbb;
	border-radius: 50%;
	border-right-color: transparent;
	border-bottom-color: transparent;
	border-left-color: transparent;
	transform: translate(0, 25%);
}

#crsb_container .reset::after {
	content: '';
	position: absolute;

	border: 0.3rem solid #ffffff;
	top: 42%; 
	left: 25%;

	border-bottom-color: #bbb;
	border-top-width: 0;
	border-left-width: 0;
	border-right-color: transparent;
}

#crsb_container .reset:hover::before {
	border-top-color: #999;
}

#crsb_container .reset:hover::after {
	border-bottom-color: #999;
}

#crsb_container .reset:hover {
	color: #aaa;
}

#crsb_container .session {
	margin-bottom: 0.3em;
}

#crsb_container .success {
	color: green;
	font-weight: bold;
	margin-top: 0.5em;
	margin-bottom: 1.5em;
}

#crsb_container .log.info {
	color: gray;
}

#crsb_container .log.warning {
	color: orange;
	font-weight: bold;
}

#crsb_container .log.error {
	color: red;
	font-weight: bold;
}

#crsb_container .file_upload, #crsb_container .geoid_select {
	margin: 0.5em 0;
	padding: 3em 1em;
	font-family: sans-serif;
	font-size: 1.5em;
	color: #aaa;
}

#crsb_container .file_upload {
	border: 5px dashed #ccc;
}

#crsb_container .geoid_select {
	border: 5px solid #ddd;
}

#crsb_container .file_upload.dragging_good {
	border-color: #377452;
}

#crsb_container .file_upload.dragging_bad {
	border-color: red;
}

#crsb_container .file_upload.dragging_bad::after {
	position: relative;
	left: 0;
	top: 0;
	content: 'Single file required!';
	font-weight: bold;
	color: red;
}

#crsb_container .geoid_select input {
	display: block;
	width: 25em;
}

#crsb_container .geoid_select input:first-child {
	margin-top: 2em;
}

#crsb_container .file_upload .details, #crsb_container .geoid_select .details {
	margin-top: 2em;
	font-size: 0.5em;
}

#crsb_container input {
	margin: 0.5em 0;
}

#crsb_container .map {
	margin-top: 2em;
	height: 100px;
	background: #eee;
	flex-grow: 1;
}

#crsb_container .map .tooltip {
	position: relative;
	padding: 3px 10px;
	background: rgba(0, 0, 0, 0.8);
	color: white;
	opacity: 0.7;
	white-space: nowrap;
}

#crsb_container .map .tooltip .id {
	font-size: 1.1em;
	font-weight: bold;
}
