* {
  font-family: Arial, Helvetica, sans-serif;
  box-sizing: border-box;
}


*::-webkit-scrollbar {
  width: 10px;
}

*::-webkit-scrollbar-thumb {
  background: var(--main-red);
  border-radius: 5px;
}

*::-webkit-scrollbar-thumb:hover {
  background: var(--dark-red);
}

*::-webkit-scrollbar-button {
  display: none;
}


:root {
  --main-red: #CC0000;
  --dark-red: #AA0000;
  --pale-red: #FFDDDD;
}

html, body {
  width: 100%;
  height: 100%;
  margin: 0;
  padding: 0;
  overflow: hidden;
}


#log_in_icon, #log_out_icon {
  width: 50px;
  height: 50px;
  padding: 5px;
  margin: 10px;

  position: absolute;
  top: 0;
  right: 0;

  border-radius: 10px;
}

#log_in_icon:hover, #log_out_icon:hover {
  background-color: #FFEEEE;
}

#log_in_icon:active, #log_out_icon:active {
  background-color: #FFDDDD;
}


#function_button {
  width: 50px;
  height: 50px;
  padding: 5px;
  margin: 10px;

  position: absolute;
  top: 0;
  left: 0;

  border-radius: 10px;
}

#function_button:hover {
  background-color: #FFEEEE;
}

#function_button:active {
  background-color: #FFDDDD;
}


.page {
  width: 100%;
  height: 100%;

  display: grid;
}

.page.hidden, #log_in_icon.hidden, #log_out_icon.hidden {
  display: none !important;
}



.header {
  height: fit-content;
  max-width: calc(100% - 100px);
  margin: 10px auto;
  font-size: 70px;
  text-align: center;
  color: var(--main-red);
}

.subheader {
  height: fit-content;
  margin: 10px 0;
  font-size: 50px;
  text-align: center;
  color: var(--dark-red);
}


button {
  justify-self: center;
  align-self: center;

  background-color: white;

  border: 0;
  outline: 0;
  box-shadow: 0 5.5px 17px 0 rgba(0, 0, 0, .2);
}

button:hover {
  background-color: #eee;
}

button:active {
  background-color: #d5d5d5;
}



input[type=text], input[type=password] {
  justify-self: center;
  align-self: center;

  width: 90%;
  height: 60px;
  border-radius: 40px;
  border: 3px solid var(--main-red);
  font-size: 40px;
  text-align: center;
  outline: none;
}

textarea {
  justify-self: center;
  align-self: center;

  width: 90%;
  padding: 20px;
  height: 240px;
  border-radius: 40px;
  border: 3px solid var(--main-red);
  font-size: 40px;
  outline: none;
}

[list]::-webkit-calendar-picker-indicator {
  display: none !important;
}

input:focus::placeholder {
  color: transparent;
}

textarea:focus::placeholder {
  color: transparent;
}


.buttons_div {
  height: fit-content;
  margin: 30px 0;
  display: grid;
  grid-auto-columns: 1fr;
  grid-template-rows: auto;
  grid-auto-flow: column;
}

.buttons_div button {
  width: 70%;
  height: 60px;
  font-size: 40px;
  border-radius: 30px;
}

.back_button {
  background-color: var(--pale-red);
}

.back_button:hover {
  background-color: #FFCCCC;
}

.back_button:active {
  background-color: #FFBBBB;
}

.next_button {
  background-color: #DDFFDD;
}

.next_button:hover {
  background-color: #CCFFCC;
}

.next_button:active {
  background-color: #BBFFBB;
}

button:disabled {
  color: #777;
  background-color: #eee !important;
}







#page_1 {
  grid-template-columns: repeat(2, 1fr);
  grid-template-rows: auto 1fr 1fr;
  grid-auto-flow: column;
}

#page_1 .header {
  grid-area: 1 / 1 / span 1 / span 2;
  font-size: 4.5vw;
}

#page_1 button {
  width: 70%;
  height: 90%;

  border-radius: 50px;

  font-size: 4vw;
}





#page_14 {
  grid-template-columns: repeat(2, 1fr);
  grid-template-rows: auto auto 1fr auto;
}

#page_14 .header {
  grid-area: 1 / 1 / span 1 / span 2;
}

#page_14 .subheader {
  grid-area: 2 / 1 / span 1 / span 2;
}

#page_14 button.main_button {
  width: 80%;
  height: 80%;

  border-radius: 50px;

  font-size: 50px;
}

#page_14 .buttons_div {
  grid-area: 4 / 1 / span 1 / span 2;
}



#page_2 {
  grid-template-columns: repeat(2, 1fr);
  grid-template-rows: auto auto 1fr auto 1fr auto;
}

#page_2 .header {
  grid-area: 1 / 1 / span 1 / span 2;
}

#page_2 .subheader {
  grid-area: 2 / 1 / span 1 / span 2;
}

#page_2 input {
  grid-area: 4 / 1 / span 1 / span 2;
}

#page_2 .buttons_div {
  grid-area: 6 / 1 / span 1 / span 2;
}



#page_3 {
  grid-template-columns: repeat(2, 1fr);
  grid-template-rows: auto auto 1fr auto;
}

#page_3 .header {
  grid-area: 1 / 1 / span 1 / span 2;
}

#page_3 .subheader {
  grid-area: 2 / 1 / span 1 / span 2;
}

#page_3 .dropdown_multiple, #page_3 textarea {
  grid-row: 3 / span 1;
  height: 90%;
  margin: 5%;
  align-self: center;
}

#page_2 input {
  grid-row: 4 / span 1;
}

#page_2 textarea {
  grid-row: 5 / span 1;
}

#page_3 .buttons_div {
  grid-area: 7 / 1 / span 1 / span 2;
}



#page_4 .header:first-child {
  align-self: center;
}





#page_5 .header:first-child {
  align-self: center;
}


#page_9, #page_10, #page_11, #page_12, #page_18, #page_19 {
  grid-template-columns: 1fr;
  grid-template-rows: auto auto 1fr;
}


#page_20 {
  grid-template-columns: repeat(3, 1fr);
  grid-template-rows: auto auto 1fr;
}


#page_20 .header, #page_20 .table_tabs {
  grid-column: 1 / span 3;
}


#page_13 {
  grid-template-columns: 1fr;
  grid-template-rows: auto auto 1fr auto 1fr auto;
}

#page_13 p, #page_13 ul {
  width: 65%;
  font-size: 28px;
  justify-self: center;
}

#page_13 p {
  text-align: center;
}

#page_13 span {
  color: var(--dark-red);
  font-weight: bolder;
}




.table_tabs {
  width: 100%;
  height: 80px;

  display: grid;
  grid-template-columns: repeat(7, 1fr);
  grid-template-rows: 1fr;
}

.table_tabs button {
  width: 100%;
  height: 60px;

  font-size: 25px;
  /* box-shadow: none; */
  border-radius: 20px 20px 0 0;
}

.table_tabs button:hover {
  background-color: #FFEEEE;
}

.table_tabs button:active {
  background-color: #FFDDDD;
}

.current_button {
  z-index: 6;
}

.visitor_button {
  z-index: 5;
}

.staff_button {
  z-index: 4;
}

.admin_button {
  z-index: 3;
}

.pupil_late_in_button {
  z-index: 2;
}

.pupil_early_out_button {
  z-index: 1;
}

.table_tabs button.active_tab {
  background-color: #FFCCCC;
  z-index: 7 !important;
}

.log_table_div {
  max-height: 100%;
  overflow-y: auto;
  margin: 20px 5%;
}

.log_table {
  width: 100%;
  height: fit-content;
  border-collapse: collapse;
  max-height: 70vh;
}

.log_table tr:first-child {
  position: sticky;
  top: 0;
  background-color: white;
  z-index: 2;
}

.log_table tr, .log_table th, .log_table td {
  height: 50px;
  text-align: center;
}

.log_table tr {
  position: sticky;
  top: 0;
}

.log_table th {
  background-color: #FFCCCC;
}

.log_table tr td:first-child, .log_table tr th:first-child {
  border-top-left-radius: 25px;
  border-bottom-left-radius: 25px;
}

.log_table tr td:last-child, .log_table tr th:last-child {
  border-top-right-radius: 25px;
  border-bottom-right-radius: 25px;
}

.log_table tr:nth-child(odd) {
  background-color: #FFEEEE;
}

.log_table button {
  width: 40px-content;
  height: 40px;
  aspect-ratio: 1 / 1;
  border-radius: 20px;
  background-color: rgb(170,0,0,0);
  box-shadow: none;
  font-size: 22px;
  padding: 10px;
  color: var(--dark-red);
  line-height: 20px;
}

.log_table button:hover {
  background-color: rgb(170,0,0,0.2);
}

.log_table button:active {
  background-color: rgb(170,0,0,0.4);
}

.visitor_div {
  max-width: 300px;
  max-height: 90px;
  margin: 5px;
  overflow-y: auto;
  overflow-x: hidden;
  justify-self: center;
}






.dropdown_multiple {
  overflow-y: scroll;
  display: grid;
  grid-template-columns: 1fr;
  grid-auto-rows: 50px;

  border: 3px solid var(--dark-red);
  border-radius: 10px;
}

.dropdown_multiple_entry {
  position: sticky;
  top: 0;
}

.dropdown_multiple label {
  width: 100%;
  text-align: center;
  font-size: 30px;
  height: 50px;
  border-radius: 25px;
  padding: 8px 0;
}

.dropdown_multiple label.hidden {
  display: none;
}

.dropdown_multiple input:checked + label {
  background-color: #007700;
  color: white;
}

.dropdown_multiple input:not(:checked) + label:not(.spacing_label):hover {
  background-color: #e6f1e6;
}

.dropdown_multiple input[type=radio] {
  display: none;
}

.dropdown_multiple input[type=text] {
  width: 100%;
  border: none;
  border-bottom: 2px solid var(--dark-red);
  height: 50px;
  border-radius: 10px 10px 0 0;
}

.spacing_label {
  height: 1fr;
}





#page_15, #page_16 {
  grid-template-columns: repeat(2, 1fr);
  grid-template-rows: auto auto 1fr auto;
}

#page_15 .header, #page_16 .header {
  grid-area: 1 / 1 / span 1 / span 2;
}

#page_15 .dropdown_multiple, #page_16 .dropdown_multiple {
  grid-area: 2 / 1 / span 2 / span 1;
  width: 90%;
  justify-self: center;
}

#page_15 textarea, #page_16 textarea {
  width: 90%;
  height: 95%;
  justify-self: center;
  align-self: end;
}

#page_15 .buttons_div, #page_16 .buttons_div {
  grid-area: 4 / 1 / span 1 / span 2;
}