@import url(fonts.css);
header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  background-color: #f7a85f;
  color: white;
  margin: 0;
  padding: 20px 30px;
  padding-bottom: 0;
  border-bottom: 5px solid #e5740b; }
  @media (min-width: 1250px) {
    header {
      margin-bottom: -60px;
      padding-left: 80px;
      padding-right: 80px; } }
  @media (max-width: 700px) {
    header {
      flex-direction: column;
      padding: 5px; } }
  header #head_main_infos {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    font-size: 28pt;
    font-family: "Kalam"; }
    @media (min-width: 1250px) {
      header #head_main_infos {
        flex-direction: row;
        margin-bottom: 60px; } }
    @media (max-width: 700px) {
      header #head_main_infos {
        flex-direction: row;
        font-size: 12pt;
        flex-wrap: wrap;
        justify-content: center; } }
    header #head_main_infos div {
      padding: 0 0.125em; }
  header .head_logo {
    padding: 10px; }
    header .head_logo a {
      display: block; }
    header .head_logo img {
      height: 125px;
      max-width: 300px; }
      @media (max-width: 700px) {
        header .head_logo img {
          height: 62.5px; } }

nav {
  display: flex;
  justify-content: center;
  background-color: #f7a85f;
  color: white;
  margin: 0;
  padding: 0 30px;
  border-bottom: 5px solid #e5740b; }
  @media (min-width: 1250px) {
    nav {
      justify-content: flex-end;
      background-color: transparent;
      padding: 0;
      margin-left: 400px;
      margin-right: 80px; } }
  @media (max-width: 900px) {
    nav {
      flex-wrap: wrap;
      padding: 0; } }
  @media (max-width: 475px) {
    nav {
      flex-direction: column; } }
  nav #mobile_nav_trigger {
    padding-left: 15px;
    text-align: center; }
    @media (min-width: 476px) {
      nav #mobile_nav_trigger {
        display: none; } }
  @media (max-width: 475px) {
    nav a {
      display: none; } }
  nav a, nav div {
    margin: 0;
    padding: 10px 20px;
    height: 55px;
    color: white;
    font-size: 18pt;
    text-decoration: none; }
    nav a:hover, nav div:hover {
      background-color: #f58e2e; }
    nav a.current, nav div.current {
      background-color: #e5740b; }
    nav a:focus, nav div:focus {
      background-color: #f58e2e;
      box-shadow: none; }
    @media (min-width: 1250px) {
      nav a, nav div {
        border-radius: 10px 10px 0 0; } }
    @media (max-width: 900px) {
      nav a, nav div {
        height: auto;
        padding: 10px 15px;
        font-size: 12pt; } }
    @media (max-width: 475px) {
      nav a, nav div {
        padding-left: 35px; } }

form {
  display: flex;
  align-items: stretch;
  flex-direction: column; }
  form .errorlist {
    list-style-type: none;
    margin: 0;
    padding: 0;
    font-size: 0.7em; }
    form .errorlist li {
      border-radius: 10px;
      padding: 10px;
      border: 1px solid #ff7979;
      background-color: #ffdfdf;
      color: #000000dd;
      margin-bottom: 10px; }
  form p {
    margin: 5px 0;
    width: 100%; }

.helptext {
  font-size: 0.7em;
  color: rgba(0, 0, 0, 0.65); }

input {
  display: block;
  width: 100%;
  font: inherit;
  font-size: 0.9em;
  color: black; }

input[type="text"],
input[type="email"],
input[type="password"] {
  background-color: white;
  border: solid 1px rgba(0, 0, 0, 0.65);
  padding: 5px 10px;
  border-radius: 3px;
  box-shadow: none; }
  input[type="text"]:optional,
  input[type="email"]:optional,
  input[type="password"]:optional {
    border-color: rgba(0, 0, 0, 0.4); }
  input[type="text"]:focus,
  input[type="email"]:focus,
  input[type="password"]:focus {
    border-color: #f7a85f;
    box-shadow: 0 0 1.5px 1px #f7a85f; }
  input[type="text"]:-moz-ui-invalid,
  input[type="email"]:-moz-ui-invalid,
  input[type="password"]:-moz-ui-invalid {
    border-color: #ff7979;
    box-shadow: 0 0 1.5px 1px #ff7979; }

input[type="checkbox"],
input[type="radio"] {
  width: auto;
  margin: 5px 10px; }

input[type="submit"] {
  display: block;
  text-decoration: none;
  text-align: center;
  font-size: 100%;
  border-radius: 10px;
  padding: 10px;
  border: 1px solid #e5740b;
  background-color: #fcddc0;
  color: #000000dd; }
  input[type="submit"]:hover {
    background-color: #f9c290; }
  input[type="submit"]:focus {
    background-color: #f7a85f;
    box-shadow: 0 0 1.5px 1px #f7a85f; }

select {
  -webkit-appearance: none;
  appearance: none;
  display: block;
  text-decoration: none;
  text-align: center;
  font-size: 100%;
  border-radius: 10px;
  padding: 10px;
  border: 1px solid #e5740b;
  background-color: #fcddc0;
  color: #000000dd;
  width: 100%;
  font-size: 0.9em;
  margin: 0;
  padding: 5px 25px 5px 10px;
  text-align: left;
  background-image: url("/static/img/select_arrow.svg");
  background-repeat: no-repeat;
  background-position: right .7em top 50%, 0 0;
  background-size: .65em auto, 100%; }
  select:hover {
    background-color: #f9c290; }
  select:focus {
    background-color: #f7a85f;
    box-shadow: 0 0 1.5px 1px #f7a85f; }
  select:-moz-focusring {
    color: transparent;
    text-shadow: 0 0 0 #000; }

.formfield {
  padding: 5px;
  margin: 10px 0; }

.error_field {
  border-radius: 10px;
  background-color: rgba(255, 223, 223, 0.4); }

.checkbox_input {
  display: flex;
  justify-content: space-evenly;
  align-items: center; }
  .checkbox_input .label_line {
    order: 1;
    flex: 1 1 500px; }
  .checkbox_input input {
    flex: 0 1 50px; }

.fieldgroup {
  margin: 15px 0; }

.public-transport-info {
  display: grid;
  line-height: 48px;
  grid-auto-flow: row dense; }
  @media (max-width: 580px) {
    .public-transport-info {
      line-height: 32px; } }
  .public-transport-info .icon {
    margin: 5px;
    justify-self: end;
    grid-column: 1; }
    @media (min-width: 600px) {
      .public-transport-info .icon.bus {
        grid-column: 3; } }
  .public-transport-info .stop {
    margin: 5px;
    justify-self: left;
    grid-column: 2; }
    @media (min-width: 600px) {
      .public-transport-info .stop.bus {
        grid-column: 4; } }
  .public-transport-info img {
    width: 48px;
    height: 48px;
    margin: 0 5px 0 0;
    vertical-align: bottom; }
    @media (max-width: 580px) {
      .public-transport-info img {
        width: 32px;
        height: 32px; } }
    @media (max-width: 380px) {
      .public-transport-info img {
        display: block; } }

.team_composition .contestant .name {
  font-size: 0.9em; }

.team_composition .contestant .mail {
  font-size: 0.65em; }

.team_composition ul {
  padding-left: 0;
  list-style: none; }

.team_composition li {
  margin: 3px 0; }

.team_composition td:nth-child(1) .school {
  border-radius: 1em;
  padding: 0 7px;
  margin: 3px;
  font-size: 0.7em;
  background-color: #3dca39; }
  .team_composition td:nth-child(1) .school.school_psl {
    background-color: #2bb4ca; }

.team_composition td:nth-child(1) .warnings {
  display: inline-flex; }
  .team_composition td:nth-child(1) .warnings span {
    display: block;
    border-radius: 1em;
    padding: 0 7px;
    margin: 3px;
    font-size: 0.7em;
    background-color: #ffe829; }
    .team_composition td:nth-child(1) .warnings span.repas {
      background-color: #f22a46; }
    .team_composition td:nth-child(1) .warnings span.email {
      background-color: #f533f1; }

.team_composition td:nth-child(2) {
  width: 20%; }
  .team_composition td:nth-child(2) .team_warnings {
    display: flex;
    flex-direction: column;
    align-content: center;
    justify-content: center; }
  .team_composition td:nth-child(2) .team_warning {
    background-color: #ffe829;
    border-radius: 1em;
    padding: 0 7px;
    margin: 3px;
    font-size: 0.7em; }

.team_composition .warn_team {
  background-color: #ffbc3b; }

/* Metrics */
.metrics_box {
  border-radius: 10px;
  padding: 10px;
  border: 1px solid #e5740b;
  background-color: #fef7f1;
  color: #000000dd;
  margin: 20px 0; }
  .metrics_box dl {
    display: grid;
    grid-template-columns: auto 50px;
    grid-gap: 10px; }
    .metrics_box dl dt {
      grid-column-start: 1;
      justify-self: start;
      align-self: center;
      margin: 0;
      padding: 0; }
    .metrics_box dl dt::after {
      content: ' :'; }
    .metrics_box dl dd {
      grid-column-start: 2;
      justify-self: end;
      align-self: center;
      margin: 0;
      padding: 0;
      padding-right: 30px; }

.meals_recap {
  margin: 20px 0; }
  .meals_recap th {
    text-align: center;
    font-size: 10pt; }
  .meals_recap td:nth-child(1), .meals_recap th:nth-child(1) {
    width: 30%; }
  .meals_recap td:nth-child(2), .meals_recap td:nth-child(3), .meals_recap td:nth-child(4), .meals_recap td:nth-child(5), .meals_recap th:nth-child(2), .meals_recap th:nth-child(3), .meals_recap th:nth-child(4), .meals_recap th:nth-child(5) {
    width: 10%; }
  .meals_recap td:nth-child(6), .meals_recap td:nth-child(7), .meals_recap th:nth-child(6), .meals_recap th:nth-child(7) {
    width: 15%; }
  .meals_recap td {
    text-align: right; }
    .meals_recap td:first-child {
      text-align: left;
      font-size: 10pt;
      font-weight: bold; }
  .meals_recap tr:last-child {
    font-weight: bold; }
    .meals_recap tr:last-child td:first-child {
      font-size: 12pt; }

html {
  box-sizing: border-box; }

*, *:before, *:after {
  box-sizing: inherit; }

body {
  background-color: white;
  font-size: 16pt;
  font-family: "Open Sans";
  color: #000000dd;
  margin: 0;
  display: flex;
  flex-direction: column;
  min-height: 100vh;
  width: 100%; }
  @media (max-width: 700px) {
    body {
      font-size: 12pt; } }

main {
  display: flex;
  justify-content: center;
  flex: 1 0 auto; }

#main_content {
  width: 800px;
  padding: 20px;
  margin-bottom: 50px;
  text-align: justify; }

#main_minimal {
  width: 500px;
  padding: 20px;
  text-align: justify; }
  #main_minimal h1 {
    font-size: 25pt; }
  #main_minimal p {
    font-size: 14pt; }

footer {
  margin-top: auto;
  background-color: #f7a85f;
  border-top: 5px solid #e5740b;
  font-size: 12pt; }
  footer #footer_content {
    display: flex;
    justify-content: space-between;
    align-items: center;
    width: 100%;
    padding: 15px 70px;
    margin: 0 auto; }
    @media (min-width: 1040px) {
      footer #footer_content {
        width: 1040px;
        padding: 15px; } }
    @media (max-width: 650px) {
      footer #footer_content {
        width: 100%;
        padding: 15px 20px; } }
  footer #sponsors {
    display: flex;
    align-items: center; }
    @media (max-width: 400px) {
      footer #sponsors {
        flex-direction: column; } }
    footer #sponsors img {
      margin: 0;
      height: 40px;
      margin-right: 20px; }
      @media (min-width: 560px) {
        footer #sponsors img {
          height: 50px;
          margin-right: 40px; } }
      @media (max-width: 400px) {
        footer #sponsors img {
          margin-bottom: 10px;
          margin-right: 10px; }
          footer #sponsors img:last-child {
            margin-bottom: 0; } }
      footer #sponsors img:last-child {
        margin-right: 0; }
  footer #footer_links {
    list-style-type: none;
    padding: 0;
    margin: 0 10px; }
    footer #footer_links a {
      color: #60230cde; }
      footer #footer_links a:hover {
        color: rgba(51, 18, 6, 0.870588); }

@media (min-width: 700px) {
  .help_bubble {
    font-size: 0.7em;
    position: relative;
    bottom: 0.3ex;
    left: 0.2ex; } }

a {
  text-decoration: underline;
  color: #c6491add;
  border-radius: 3px; }
  a:hover {
    color: rgba(108, 40, 14, 0.866667); }

:focus {
  outline: none;
  box-shadow: 0 0 1.5px 1px #c6491add; }

::-moz-focus-inner {
  border: none; }

em {
  font-style: italic;
  font-weight: normal; }

hr {
  border: 1px solid #fcddc0;
  margin: 30px 60px; }

.btn_row {
  display: flex;
  align-items: stretch;
  justify-content: space-evenly;
  flex-direction: column; }

button, .btn_row a {
  display: block;
  text-decoration: none;
  text-align: center;
  font-size: 100%;
  border-radius: 10px;
  padding: 10px;
  border: 1px solid #e5740b;
  background-color: #fcddc0;
  color: #000000dd;
  margin: 10px 5px; }
  button:hover, .btn_row a:hover {
    background-color: #f9c290; }
  button:focus, .btn_row a:focus {
    background-color: #f7a85f;
    box-shadow: 0 0 1.5px 1px #f7a85f; }
  button p, .btn_row a p {
    margin: 0; }

.messages {
  list-style-type: none;
  margin: 10px 0;
  padding: 0;
  font-size: 0.8em; }
  .messages li {
    margin: 8px 0; }

.error {
  border-radius: 10px;
  padding: 10px;
  border: 1px solid #ff7979;
  background-color: #ffdfdf;
  color: #000000dd; }

.info {
  border-radius: 10px;
  padding: 10px;
  border: 1px solid #6562ff;
  background-color: #c9c8ff;
  color: #000000dd; }

.warning {
  border-radius: 10px;
  padding: 10px;
  border: 1px solid #ffb406;
  background-color: #ffd36c;
  color: #000000dd; }

.success {
  border-radius: 10px;
  padding: 10px;
  border: 1px solid #7af733;
  background-color: #bafb95;
  color: #000000dd; }

.tooltip {
  position: relative;
  display: inline-block;
  opacity: 0.75;
  border-radius: 3px; }
  .tooltip .tooltiptext {
    visibility: hidden;
    display: block;
    background-color: black;
    color: rgba(255, 255, 255, 0.8);
    text-align: justify;
    padding: 10px;
    border-radius: 6px;
    font-size: 0.8em;
    width: 250px;
    /* Position the tooltip text - see examples below! */
    position: absolute;
    left: -75px;
    z-index: 1; }
    @media (max-width: 400px) {
      .tooltip .tooltiptext {
        width: 150px;
        position: absolute;
        left: -75px; } }
    .tooltip .tooltiptext ul {
      margin: 0;
      padding-left: 15px;
      color: inherit; }
  .tooltip:hover, .tooltip:focus {
    opacity: 1; }
    .tooltip:hover .tooltiptext, .tooltip:focus .tooltiptext {
      visibility: visible; }

.antispam {
  unicode-bidi: bidi-override;
  direction: rtl; }

.team_infos {
  margin: 25px 0;
  padding: 0; }
  .team_infos p, .team_infos ul {
    margin: 10px; }

.invite_link {
  display: flex; }
  .invite_link input {
    flex: 1 0 200px;
    margin: 10px 5px; }
  .invite_link button {
    min-width: 45px;
    font-size: 12pt; }

table {
  border-collapse: collapse;
  width: 100%;
  border: 2px solid #e5740b; }
  table td, table th {
    border: 1px solid #e5740b;
    padding: 5px;
    text-align: left; }
  table th {
    border-bottom-width: 2px; }

iframe {
  width: 100%;
  height: 400px;
  border: 2px solid #e5740b; }

.indexbar {
  width: 100%;
  display: flex;
  justify-content: center;
  align-items: stretch; }
  .indexbar a {
    text-align: center;
    flex: 1 1 0;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: stretch;
    color: rgba(130, 48, 17, 0.866667);
    text-decoration: none;
    border-radius: 0; }
    .indexbar a span {
      margin: auto 5px; }
    .indexbar a:first-child {
      border-radius: 1ex 0 0 1ex; }
    .indexbar a:nth-child(odd) {
      background-color: rgba(247, 168, 95, 0.75); }
    .indexbar a:nth-child(even) {
      background-color: rgba(247, 168, 95, 0.6); }
    .indexbar a:last-child {
      border-radius: 0 1ex 1ex 0; }

.fa-slow-spin {
  animation: fa-spin 15s infinite linear; }
