/** body: **/

body {
  background-color: #484848;
  margin: 0;
  padding: 0;
}

/** auto margin: **/

.margin_auto {
  margin: auto;
}

/** paragraph: **/

p {
  padding: 0.2em;
  margin-top: 0.2em;
  margin-bottom: 0.2em;
}

/** horizontal rule: **/

.content_hr {
  width: 99%;
  background-color: #00578e;
  height: 1px;
  border: 0px solid #00578e;
  text-align: center;
  margin-left: auto;
  margin-right: auto;
}

/** images: **/

.img_left {
  float: left;
}

.img_right {
  float: right;
}

/** video: **/

video {
  outline: none;
  padding: 5px;
}

/** flex classes: **/

.flex_row,
.flex_row_wrap,
.flex_column,
.flex_column_wrap {
  display: flex;
  flex: 1 1 auto;
}

.flex_row {
  flex-flow: row nowrap;
}

.flex_row_wrap {
  flex-flow: row wrap;
}

.flex_column {
  flex-flow: column nowrap;
}

.flex_column_wrap {
  flex-flow: column wrap;
}

.flex_center {
  justify-content: center;
}

.flex_start {
  justify-content: flex-start;
}

.flex_end {
  justify-content: flex-end;
}

.flex_justify {
  justify-content: space-around;
}

.flex_grow {
  flex: 1 1 auto;
}

.flex_no_grow {
  flex: 0 1 auto;
}

.flex_third {
  flex-basis: 26%;
}

.flex_half {
  flex-basis: 34%;
}

.flex_full {
  flex-basis: 67%;
}

.flex_400 {
  flex-basis: 400px;
}

/** general site styles: **/

body {
  font-family: sans-serif, "Arial", "Helvetica";
  font-size: 1em;
  color: #000;
}

h1 {
  color: #163317;
  font-size: 1.3em;
}

h2 {
  color: #163317;
  font-size: 1.2em;
  margin-bottom: 16px;
}

h3 {
  color: #163317;
  font-size: 1.1em;
  margin-top: 1em;
  margin-bottom: 0.75em;
}

h4 {
  color: #163317;
  font-weight: 600;
  font-style: italic;
  margin-bottom: 0.3em;
}

a {
  color: #393939;
  outline: 0;
}

a:active,
a:focus {
  outline: 0;
}

a:visited {
  color: #696969;
  outline: 0;
}

a img {
  border: none;
  padding: 0;
  margin: 0;
  outline: 0;
}

a img:active,
a img:focus {
  outline: 0;
}

button {
  font-size: medium;
  color: #ffffff;
  background-color: #1260cc;
  border: 1px solid #1260cc;
  border-radius: 0.25em;
  padding: 0.5em;
  margin: 0.25em 0em 0.25em 0em;
  cursor: pointer;
}

button:focus,
button:active,
button:hover {
  background-color: #3a9bdc;
  border: 1px solid #29c5f6;
}

/* remove outlines from active buttons: */
button, button:focus, button:active {
  outline: 0;
}
:focus {outline:none;}
::-moz-focus-inner {border:0;}

ul {
  margin: 0.1em;
  padding-left: 0.5em;
  padding-right: 0.5em;
  padding-top: 0.2em;
  padding-bottom: 0em;
}

li {
  margin: 0.1em;
  padding: 0.1em;
}

/** main container: **/

.container {
  min-height: 100vh;
  max-width: 1850px;
  margin: auto;
}

/** header: **/

.header_logo_img {
  max-height: 80px;
  padding: 5px;
}

.header {
  background-color: #ffffff;
  height: 90px;
}

.header_text {
  color: #0e1c3f;
  font-size: 1.6em;
  margin-left: 0.5em;
  margin-top: 1.8em;
}

/** navigation: **/

.navigation {
  color: #ffffff;
  background-color: #0e1c3f;
}

.navigation a {
  color: #ffffff;
  text-decoration: none;
  outline: none;
  padding-left: 0.7em;
  padding-right: 0.7em;
}

.navigation a:hover {
  background-color: #00376e;
  box-shadow: 0em 0em 0em 0.7em #00376e;
}

.navigation_item,
.navigation_menu {
  padding: 0.7em;
}

.navigation_item {
  display: inline-block;
  border-right: 1px solid #00578e;
}

.navigation_item_current {
  background-color: #00376e;
}

.navigation_menu,
.navigation_menu_img {
  display: none;
}

@media only screen and (max-width: 725px) {
  .navigation_menu,
  .navigation_menu_img {
    display: -webkit-box;
    display: -moz-box;
    display: -ms-flexbox;
    display: -webkit-flex;
    display: flex;
    cursor: pointer;
    outline: none;
  }
  .navigation_text {
    display: none;
    width: 100%;
    overflow: hidden;
    margin: 0em;
    padding: 0em;
    position: absolute;
    left: 0em;
    top: calc(90px + 30px + 1.4em);
    z-index: 9999;
    background-color: #0e1c3f;
  }
  .navigation_item {
    width: 100%;
    padding: 0em;
    padding-left: 0.7em;
    border-right: none;
    border-top: 1px solid #00578e;
  }
  .navigation_item a {
    display: inline-block;
    padding: 0.7em;
    width: 100%;
  }
  .navigation_item a:hover {
    text-decoration: none;
    box-shadow: 0em 0em 0em 0em #00376e;
  }
  .navigation_item:hover {
    background-color: #00376e;
  }
  .navigation_item_current {
    background-color: #00376e;
  }
}

/** content: **/

.content {
  color: #000000;
  background-color: #ffffff;
}

/** user information: **/

.content_user_info {
  margin: 0.5em;
}

.content_user_info label {
  font-weight: bold;
  color: #0e1c3f;
}

/** content header image: **/

.content_header {
  position: relative;
  max-height: 400px;
  overflow: hidden;
}

.content_header_img {
  width: 100%;
}

.content_header_image_text {
  position: absolute;
  bottom: 0.6em;
  right: 0.6em;
  font-size: 0.7em;
  color: #999999;
}

@media only screen and (max-width: 500px) {
  .content_header_image_text {
    display: none;
  }
}

.content_image {
  max-width: 100%;
  max-height: 300px;
  margin: 1em;
}

/** main content title: **/

.content_title {
  padding: 5px;
}

/** text: **/

.content_text {
  margin-left: 1em;
  margin-right: 1em;
}

.content_text_bold {
  font-weight: bold;
}

.content_text_center,
.content_text_center_bold {
  text-align: center;
}

.content_text_center_bold {
  font-weight: bold;
}

.content_overview_heading {
  margin-top: 1em;
  margin-bottom: 0.5em;
  padding-left: 0.5em;
  padding-right: 1em;
  padding-top: 0.5em;
  padding-bottom: 0.5em;
  color: #ffffff;
  font-size: 1.1em;
  background-color: #0e1c3f;
}

.group_name_heading {
  margin-top: 1em;
  margin-bottom: 0.5em;
  padding-left: 0.5em;
  padding-right: 1em;
  padding-top: 0.5em;
  padding-bottom: 0.5em;
  color: #ffffff;
  font-size: 1em;
  background-color: #0e1c3f;
  cursor: pointer;
}

.date_heading {
  margin-top: 0.1em;
  margin-bottom: 0em;
  padding-left: 0.5em;
  padding-right: 1em;
  padding-top: 0.1em;
  padding-bottom: 0em;
  color: #0e1c3f;
  font-size: 1.1em;
  background-color: #ffffff;
}

.content_overview {
  margin-top: 0em;
  margin-bottom: 0.5em;
  padding: 0.5em;
}

/** vertical space: **/

.content_vertical_space_1 {
  height: 1em;
}

.content_vertical_space_2 {
  height: 2em;
}

/** footer: **/

.footer {
  color: #ffffff;
  background-color: #272727;
  min-height: 1em;
}

.footer a {
  color: #ffffff;
  text-decoration: none;
  outline: none;
  padding-left: 5px;
  padding-right: 5px;
}

.footer_text {
  text-align: center;
  padding-left: 1.5em;
  padding-right: 1.5em;
  color: #dddddd;
  background-color: #272727;
}

.footer_text a {
  color: #ffffff;
  outline: none;
}

.footer_item {
  display: inline-block;
}

@media only screen and (max-width: 350px) {
  .footer_item_hide {
    display: none;
  }
}

.footer_logo {
  filter: grayscale(100%);
  max-height: 4em;
  max-width: 270px;
  margin: 0.5em;
}

/* messages: */

.messages {
  position: fixed;
  z-index: 99999;
  right:0.1em;
  top: 0.1em;
}

/* info messages: */

.info_msg_div {
  margin: 0.5em;
  padding: 0.5em;
  border: 1px solid #73e573;
  border-radius: 0.25em;
  background-color: #cdffd2;
}

.info_msg_msg {
  color: #3f704d;
}

.info_msg_close {
  display: inline-block;
  position: relative;
  z-index: 999999;
  right: -0.25em;
  top: -0.25em;
  color: #3f704d;
}

.info_msg_close:hover,
.info_msg_close:focus {
  text-decoration: none;
  cursor: pointer;
}

/* error messages: */

.err_msg_div {
  margin: 0.5em;
  padding: 0.5em;
  border: 1px solid #e57373;
  border-radius: 0.25em;
  background-color: #ffcdd2;
}

.err_msg_msg {
  color: #b71c1c;
}

.err_msg_close {
  display: inline-block;
  position: relative;
  z-index: 999999;
  right: -0.25em;
  top: -0.25em;
  color: #b71c1c;
}

.err_msg_close:hover,
.err_msg_close:focus {
  text-decoration: none;
  cursor: pointer;
}

/* full screen images: */

.fs_img {
  cursor: pointer;
}

span.fs_img {
  text-decoration: underline;
  color: #00275e;
}

.fs_img_div {
  display: none;
  position: fixed;
  z-index: 9999;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  overflow: auto;
  background-color: #292929;
}

.fs_img_img {
  position: absolute;
  z-index: 99999;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  max-width: 80%;
  height: 90%;
  object-fit: contain;
}

.fs_img_close {
  display: inline-block;
  position: absolute;
  z-index: 999999;
  right: 15px;
  top: 15px;
  color: white;
  font-size: xx-large;
  font-weight: bold;
  padding: 5px;
  width: calc(1em + 10px);
  height: calc(1em + 10px);
  text-align: center;
}

.fs_img_close:hover,
.fs_img_close:focus {
  color: #999999;
  text-decoration: none;
  cursor: pointer;
}

/* labels: */

label {
  font-weight: bold;
}

.group_name_label {
  color: #0e1c3f;
  background-color: #b5cae9;
  font-size: 1.1em;
  margin-top: 0.5em;
  margin-bottom: 0.5em;
  padding: 0.25em;
  padding-left: 0.5em;
}

.daily_score_label {
  color: #0e1c3f;
  background-color: #e4f0f6;
  font-size: 1em;
  margin-top: 0.5em;
  margin-bottom: 0.5em;
  padding: 0.25em;
  padding-left: 0.5em;
}

.total_score_label {
  color: #0e1c3f;
  background-color: #99edc3;
  font-size: 1em;
  margin-top: 0.5em;
  margin-bottom: 0.5em;
  padding: 0.25em;
  padding-left: 0.5em;
}

/* form inputs: */

input {
  padding: 0.25em;
}

.value_input {
  width: 9em;
}

.login_password {
  margin: 1em;
}

input[type=submit] {
  font-size: medium;
  color: #ffffff;
  background-color: #1260cc;
  border: 1px solid #1260cc;
  border-radius: 0.25em;
  padding: 0.5em;
  margin: 0.25em 0em 0.25em 0em;
  cursor: pointer;
}

input[type=submit]:focus,
input[type=submit]:active,
input[type=submit]:hover {
  background-color: #3a9bdc;
  border: 1px solid #29c5f6;
}

/* tables: */

table {
  border-collapse: collapse;
  margin-top: 0.5em;
  margin-bottom: 1em;
}

th {
  text-align: left;
}

.table_striped tr:nth-child(even) {
  background-color: #f2f2f2;
}

th, td {
  padding: 0.1em;
  padding-top: 0.2em;
  padding-left: 0.5em;
  padding-right: 0.5em;
}

.td_submit {
  background-color: #ffffff;
  padding-right: 0em;
}

.td_result_label {
  min-width: 15em;
}

.td_results_label {
  min-width: 25em;
}

/* results table / plots: */

.scores_table {
  max-width: 90%;
}

.bar_plot_container {
  min-width: 95%;
  max-width: 95%;
  margin: auto;
}

.bar_plot {
  min-width: 100%;
  max-width: 100%;
  min-height: 40em;
}
