body {
	font-family: Verdana, Arial, Helvetica, sans-serif;
	text-rendering: optimizeLegibility;
	background-color: #ccffcc;
}
h1 {
	font-size: 1.6em;
	margin: 0.5em;
}
h2 {
	font-size: 1.3em;
}
.container-fluid {
	margin-top: 7rem;
	margin-bottom: 4rem;
}
header, footer, .container-fluid>section {
	background-color: white;
	padding: 0.5em;
	position: relative;
}
header {
	position: fixed;
	top: 0;
	width: 100%;
	z-index: 100;
	border-bottom: 1px solid gold;
}
footer {
	position: fixed;
	bottom: 0;
	width: 100%;
	z-index: 100;
	border-top: 1px solid gold;
}
header img.logo {
	height: 3em;
}
header .profileLink {
	position: absolute;
	right: 1em;
	top: 1em;
	display: inline-block;
}
header .profileLink img {
	height: 4em;
	border-radius: 50%;
}
@media screen and ( max-width: 500px ) {
	body { font-size: 0.8em !important; }
}
@media screen and ( max-width: 400px ) {
	body { font-size: 0.7em !important; }
}
@media screen and ( max-width: 320px ) {
	header { font-size: 0.85em !important; }
}

p {
	margin: 0.3em 0;
}
.btn-slim {
	padding: 0 0.2rem;
	line-height: inherit;
	font-size: 0.8rem;
	margin: 0 0.1rem;
}
.editHTMLLink {
	font-size: 0.6em;
	position: absolute;
	background-color: rgba(0,0,0,0.1);
	padding: 0.5em;
}
.editHTMLLink > a {
	color: orange;
}

/* Form */
form label {
	width: 12em;
	display: inline-block;
	vertical-align: top;
	text-align: right;
	margin-right: 0.5em;
}
button, a.post-button {
	font-size: 1.5em;
	font-weight: bold;
	border: 2px solid #568929;
	color: white;
	background-color: #568929;
	border-radius: 0.5em;
	cursor: pointer;
	padding: 2px 7px;
}
input {
	background-color: beige;
	border: 1px solid green;
}
textarea {
	width: 70%;
	height: 10em;
}
form p.submit {
	text-align: right;
	padding-right: 1em;
}

/* Login */
.login {
	margin-bottom: 2em;
}

/* Options */
.optionsLink>a{
	right: 0;
	display: inline;
	position: absolute;
	border: 0;
	padding: 0 0.4em 0.2em 0.4em;
	bottom: 0;
	color: black;
	background: rgba(255,255,255,0.5);
	font-weight: bold;
}
.optionsLink>a:hover, .options {
	color: white;
	background: gray;
}
.options {
	display: none;
}
.options>a, .options button {
	display: block;
	text-decoration: none;
	padding: 0.2em 0.4em;
	color: white;
	font-size: 0.8em;
	font-weight: normal;
	background-color: gray;
	border: none;
}
.optionsLink:hover .options {
	display: inherit;
	position: absolute;
	bottom: 0;
	right: 0;
}
form.delete {
	display: none;
}
form.delete button {
	background-color: red;
}
form.report textarea {
	width: 100%;
	height: 10em;
}

/* Add a route */
.routeNew {
	margin: 1em;
}
.routeNew p {
	width: 28em;
	text-align: right;
}
.routeNew p button {
	width: 5em;
}
#stravaRoutes p {
	width: 100%;
	text-align: left;
}
.post-button.importStravaRoute {
	font-size: 0.7em;
	text-decoration: none;
}
#stravaRoutes .success {
	color: green;
	font-weight: bold;
	margin-left: 1em;
}
#stravaRoutes .error {
	color: red;
	font-weight: bold;
	margin-left: 1em;
}
/* Region, route and package summaries */
.region, .route, .package {
	height: 200px;
	width: 200px;
	box-sizing: border-box;
	display: inline-flex;
	position: relative;
	vertical-align: top;
	margin: 1em;
	padding: 1em;
	background-repeat: no-repeat;
	background-size: cover;
	background-color: #f0f0f0;
	border: 1px solid black;
}
.region>a:first-child, .route>a:first-child, .package>a:first-child {
	color: white;
	text-decoration: none;
	text-align: center;
	width: 100%;
	display: inline-block;
	height: 100%;
	padding: 0.5em;
	background-color: rgba(0,0,0,0.2);
}
.region a:hover, .route a:hover, .package a:hover {
	background-color: rgba(0,255,0,0.1);
}
.region a:hover > *, .route a:hover > *, .package a:hover > * {
	color: green;
	text-shadow: white 1px 0 10px;
}
.region a > *, .route a > *, .package a > * {
	padding: 0.2em;
	width: 100%;
	display: inline-block;
	font-size: 0.9em;
	font-weight: bold;
	margin: 0;
}

/* Package management */
.packageManage span {
	display: inline-block;
	border: 1px solid blue;
	padding: 0.5em;
}
.packageCheckbox {
	width: 2em;
	transform: scale(2);
}

/* Route detail */
.factoid {
	display: inline-block;
	margin: 0.5em 2em;
}
.bignumber {
	font-size: 2em;
}

/* Inline #14 | http://cycling.routes.sandbox/routes/a2c2bc561307842c9668163b24ebfd50 */
.surface .factoid, .traffic .factoid {
	margin: 0;
	line-height: 2em;
}
.surface, .traffic {
	margin: 0;
}

header img {
    font-size: 1em;
    height: 2em;
}

/* Resources */
ul.resources {
	list-style: none;
	padding: 0;
}
ul.resources>li {
	display: inline-block;
	vertical-align: top;
	width: 15rem;
	max-width: 48%;
	margin: 0.1em;
	border: 8px solid rgba(200,250,200,0.2);
	overflow-y: auto;
	height: 17rem;
}
.resources>li>.image {
	height: 6rem;
	text-align: center;
}
.resources>li>.image>img {
	height: 100%;
}
.resources>li>.image>img.icon {
	max-width: 70%;
	max-height: 90%;
	margin-top: 5%;
}
.resources>li>span {
	display: block;
	font-size: 0.8em;
	margin: 0.2em 1em 0 1em;
}
.resources>li>.caption {
	font-weight: bold;
}

/* Resource infowindow */
.infoWindow img {
	max-height: 140px;
	max-width: 100px;
}
.infoWindow .subject {
	text-transform: capitalize;
}

/* Route card */
ul.routeCard {
	border: 1px solid black;
	width: 14em;
	overflow: hidden;
	padding: 0;
	margin: 0 0 0 2em;;
}
.routeCard li:first-child {
	text-align: center;
	overflow: hidden;
}
.routeCard li {
	list-style: none;
	height: 3.4em;
	clear: both;
}
.routeCard img {
	width: 40px;
	float: left;
}
.routeCard input[type="checkbox"] {
	margin-left: -4em;
	background-color: black;
	position: absolute;
	margin-top: 1em;
	color: blue;
}
.routeCard p {
	margin: 0 0 0 44px;
	white-space: nowrap;
	line-height: 1em;
}
.routeCard .caption {
	font-weight: bold;
	font-size: 0.8em;
}
.routeCard .subject {
	font-size: 0.7em;
}
.routeCard .altitude {
	font-size: 0.7em;
}
#routeCardModal label[for="includeRouteMap"] {
	text-align: left;
	margin-left: 0.5em;
	font-weight: bold;
}
#includeRouteMap {
	font-weight: bold;
	font-size: 2em;
}

/* Route card on its own page */
.routeCardWrapper>* {
	display: inline-block;
	vertical-align: top;
}
.routeCardWrapper>.routeMap>img {
	width: 600px;
	height: auto;
}
.routeCardWrapper {
	#display: flex;
}
.routeCardWrapper .elevationChart {
	visibility: hidden;
	position: absolute;
	width: var(--widget-size);
	height: var(--widget-size);
	margin: 10px 0 0 0;
	padding: 0;
}
.routeCardWrapper .elevationChart .lineChart {
	position: relative;
	list-style: none;
	margin: 0;
	padding: 0;
}
.routeCardWrapper .elevationChart .lineChart li {
	display: flex;
	align-items: stretch;
}
.routeCardWrapper .elevationChart .lineSegment {
	background-color: darkgrey;
	top: var(--y);
	height: 2px;
	left: var(--x);
	position: absolute;
	transform: rotate(calc(var(--angle) * 1deg));
	transform-origin: left bottom;
	width: calc(var(--hypotenuse) * 1px);
}

/* Dotwatch */
.paymentLinks {
}
.paymentLinksPending {
	display: none;
}
.subscribed {
	display: inline-block;
	width:1rem;
	margin-right: 1em;
}