body {
    background-color: white;
    box-sizing: border-box;
    color: black;
    margin: 0;
    padding: 1.5em;
  }
  body,table,th,td,div,p,span,input,select,textarea,header,article,section,footer,h1,h2,h3,h4,h5,h6,nav,ul,ol,li { font-family:'Droid Sans', Trebuchet MS,Arial,Helvetica,sans-serif;font-size:1em;line-height:1.2em;box-sizing: border-box; }
  h1,h2,h3,h4,h5,h6 { margin:0;padding:0;font-weight:normal; }
  h1 { font-size:3em; }
  h2 { font-size:2.5em; }
  h3 { font-size:2em;padding: 0 0 0.7em; }
  h4 { font-size:1.5em; }
  h5 { font-size:1em; }
  h6 { font-size:0.5em; }
  p { margin:0;padding:0.5em 0 0 0; }
  a:link,a:visited,a:hover,a:active { color: #59a2c8; text-decoration: none; border-bottom: 1px dotted #59a2c8; }
  a:hover { font-weight: 600; }
  input::-webkit-outer-spin-button,
  input::-webkit-inner-spin-button {
    -webkit-appearance: none;
    margin: 0;
  }
  
  body.processing form{
      font-style: italic;
      position:relative;
  }
  
  body.processing form::before{
      background: white url(/images/ajax-loader.gif) center center no-repeat;
      content: " ";
      height: 100%;
      left: 0;
      opacity: 0.4;
      position:absolute;
      top: 0;
      width: 100%;
      z-index: 100;
  }
  /* header */
  
  header {
    background-color: black;
    color: white;
    height: 3em;
    line-height: 3em;
    padding: 0 1.5em;
    position: fixed;
    left: 0;
    top: 0;
    width: 100%;
    z-index: 10000;
  }
  header > h3 {
      background-color: black;
      line-height: 48px;
      padding: 0;
      position: relative;
      z-index: 10;
  }
  header a {
      border-bottom: 0 none !important;
      color: inherit !important;
      font-weight: normal !important;
  }
  header > i.fa {
      cursor: pointer;
      font-size: 2em;
      position: absolute;
      right: 1em;
      top: 0.3em;
      z-index: 10;
  }
  
/* navigation */

header nav {
	background-color: black;
	box-sizing: border-box;
	display: block;
	left: 0;
	line-height: 2.2em;
	padding: 2em;
	position: absolute;
	text-align: right;
	top: -400%;
	transition: 0.7s all;
	width: 100%;
}
header nav.open {
	top: 100%;
}
header nav > a {
	clear: right;
	float: right;
}
header > i.fa {
	cursor: pointer;
	font-size: 2em;
	position: absolute;
	right: 1em;
	top: 0.3em;
	z-index: 10;
}

/* alerts */

div.alert {
    background-color:crimson;
    color: white;
    display: none;
    font-size: 90%;
    margin: 20px 0;
    padding: 5px;
    position: relative;
    text-align: center;
}
div.alert a{
    border-bottom-color: white;
    color: white;
}
div.alert a.fa {
    border-bottom: 0 none;
    color: white;
	   position: absolute;
	   right: 8px;
}
div#stravaStatus{
    background-color: #fc4c02;
}

/* forms */

form > label, form > div {
	display: block;
	line-height: 35px;
	margin: 8px 0;
	position: relative;
}
form > div.submit {
 clear:both;
 margin: 0;
 padding: 20px;
 text-align: center;
}
form > label .fa {
	position: absolute;
	right: 8px;
}
form > label > input[type="text"], input[type="file"], form > label > select, form > label > textarea {
	height: 35px;
	width: 100%;
}
form > label > textarea {
	height: 250px;
}
form span.date {
	display: inline-block;
	margin-right: 8px;
}
form span.date::before {
	color: black;
	content: "\f073";
	font-family: "fontawesome";
	font-size: 20px;
	line-height: 35px;
	margin-left: 5px;
	position: absolute;
	z-index: 10;
}
form span.date > input {
	padding-left: 25px;
}

/* info bubbles */

span.info {
	cursor: pointer;
	margin-left: 0.5em;
	position: absolute;
	top: 0.5em;
}
span.info > span {
	background-color: aliceblue;
	border: 1px solid;
	top: -2.5em;
	display: none;
	font-size: 80%;
	right: calc( 100% + 1.5em );
	padding: 0.3em 0.6em;
	position: absolute;
	text-align: center;
	z-index: 100;
	width: 300px;
}
span.info > span span.info > span {
 width: 240px;
}
span.info:hover > span, span.info.open > span {
	display: block;
}
span.info > span::before {
	border: 15px solid;
	border-bottom-color: transparent;
	border-right-color: transparent;
	border-top-color: transparent;
	bottom: -31px;
	content: " ";
	height: 0;
	position: absolute;
	width: 0;
	right: -30px;
	top: 2em;
}
span.info > span::after {
	border: 15px solid aliceblue;
	border-bottom-color: transparent;
	border-right-color: transparent;
	border-top-color: transparent;
	top: 2em;
	content: " ";
	height: 0;
	right: -29px;
	position: absolute;
	width: 0;
}
span.info table {
	margin: 1em;
	width: calc( 100% - 2em );
}
span.info table th.available, span.info table td.available {
	text-align: right;
}
span.info table tfoot tr.subtotal td {
	padding-left: 0;
}
span.info table tfoot td.total {
	padding-right: 0.5em;
}

/* footnotes */

p.footnote {
    clear: both;
    font-size: 90%;
    font-style: italic;
    opacity: 0.7;
    padding-top: 0.8em;
    position: relative;
}

/* tables */

table th, table td {
    text-align: left;
    padding: 0.3em 0.7em 0.3em 0;
}
  
/* section tables */
  
section > table {
    margin-left: -1.5em;
    margin-top: 2.5em;
    padding: 1.5em;
    width: calc( 100% + 3em );
}
  section > table:first-of-type, section > table.active {
    margin-top: 0;
}
  section > table > thead > tr:first-child > th {
    font-size: 1.2em;
}

/* sections */

section {
	clear: both;
	padding-top: 2em;
    position: relative;
	text-align: left;
}
section::before, section::after {
	content: " ";
	clear: both;
	display: block;
}