/* the main css file, used by all the pages
 * contains the sheared body classes, css varaibles, and components
 */

@charset "UTF-8";
body{
  width:100%;
  height:100%;
  top:0;
  left:0;
  position:absolute;

  margin:0;
  background-color: #FCFCFC;
  /* background-image: url("../resources/noise1.png"); */
  font-family: "Roboto", sans-serif;
  color: black;
  /* #06162f */
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
html{
  scroll-behavior: smooth;
}



/* --------------------------------- */
/* --------  DEFAULT RESETS   ------ */
/* --------------------------------- */
button{
  border: none;
  margin: 0;
  padding: 0;
  width: auto;
  overflow: visible;
  cursor:pointer;

  background: transparent;

  /* inherit font & color from ancestor */
  color: inherit;
  font: inherit;

  /* Normalize `line-height`. Cannot be changed from `normal` in Firefox 4+. */
  line-height: normal;

  /* Corrects font smoothing for webkit */
  -webkit-font-smoothing: inherit;
  -moz-osx-font-smoothing: inherit;

  /* Corrects inability to style clickable `input` types in iOS */
  -webkit-appearance: none;
}

/* Remove excess padding and border in Firefox 4+ */
button::-moz-focus-inner {
    border: 0;
    padding: 0;
}
/* custom div button component */
.div-button{
  cursor:pointer;
}
/* focus style, for users tabbing around the page. to deactivate this with mouse users: */
/* https://stackoverflow.com/a/51093815 */
:focus {
  outline: 1px solid rgba(0,0,0,0.3);
  box-shadow: 0 8px 6px -6px rgba(0,0,0,0.3);
}
body.using-mouse :focus {
  outline: none;
  box-shadow: none;
}
body.using-mouse .div-button:focus {
  outline: none;
}

button:active, .div-button:active{
  -webkit-tap-highlight-color: transparent;
  outline: 1px solid rgba(0,0,0,0.1)!important;
  box-shadow: 0 8px 6px -6px rgba(0,0,0,0.3)!important;
}
/* custom link button component */
a{
  cursor: pointer;
  color: #146385;
  text-decoration: none;
}
a:active{
  color: #339ecc;
}

/* --------------------------------- */
/* ---------  CARD TEMPLATE   ------ */
/* --------------------------------- */
.card{
  margin: 10px;
  box-shadow: 0 8px 6px -6px rgba(0,0,0,0.2);
  box-shadow: 0 1px 3px rgba(0,0,0,0.12), 0 1px 2px rgba(0,0,0,0.24);
  box-shadow: 0 3px 6px rgba(0,0,0,0.16), 0 3px 6px rgba(0,0,0,0.23);
  border-radius: 4px 4px 0 0;
}
.card .top-bar{
  height: 60px;
  border-radius: 4px 4px 0 0;
  border-bottom: 1px solid rgba(0,0,0,0.1);
  display:flex;
  justify-content: space-between;
  align-items: center;
  padding: 0 5px 0 5px;
  overflow:hidden;
}
.card .top-bar h2{
  margin-left: 10px;
  font-family: Roboto;
  /* font-weight: 300; */
}
.card .top-bar div{
  flex-shrink: 0;
}
.card .top-bar button {
  height: 60px;
  padding-right: 10px;
}
.card .top-bar button:disabled,
.card .top-bar button[disabled]{
  opacity: .1;
}
.card .top-bar button i{
  margin-left: 10px;
  margin-right: 5px;
}

/* other utils */
.hidden-container{
  width:0;
  height:0;
  overflow:hidden;
}


/* --------------------------------- */
/* ---------     HEADER    --------- */
/* --------------------------------- */
header{
  width:100%;
  height: 64px;
  /* border-bottom: 2px solid #EEE; */
  box-shadow: 0 8px 6px -6px rgba(0,0,0,0.2);
  display: flex;
  justify-content:space-between;
  /* background-color: rgba(255, 82, 82,0.3); */
  box-shadow: 0 3px 6px rgba(0,0,0,0.16), 0 3px 6px rgba(0,0,0,0.23);
}

/* pc view - default view */
header .menu-container{
  height:100%;
  flex-shrink: 1;
  display: flex;
}
header .menu-container a{
  text-decoration: none;
  color: black;
  margin: 0 10px 0 10px;
}
header .menu-container a:hover{
  color: gray;
}
header .menu-container div{
  height:100%;
  display:flex;
  justify-content: center;
  align-items:center;
  margin: 0 0px 0 20px;
}
header .menu-container .burger a{
  color: gray;
}
header .menu-container .burger span{
  display: none;
}
header .menu-container div.menu a{
  margin-right: 30px;
}
@media only screen and (max-width: 600px) {
  header .menu-container{
    display: block;
  }
  header .menu-container a:hover{
    color: grey;
  }
  /* on mobile */
  header .menu-container .burger{
    cursor: pointer;
  }
  header .menu-container .burger span{
    display: inline-block;
  }
  header .menu-container div.menu{
    overflow: hidden;
    visibility: hidden;
    display: none;
    opacity: 0;

    position: absolute;
    transition: all 0.2s ease;
    left: -20px;
    box-sizing: border-box;
    background-color: white;
    width: 100%;
    display: flex;
    height: auto;
    flex-direction: column;
    align-items: flex-start;
    box-shadow: 0 8px 6px -6px rgba(0,0,0,0.2);
  }
  header .menu-container div.menu a{
    margin: 30px;
    margin-left: 20px;
  }
  header .menu-container:hover > .menu,
  header .menu-container:focus-within > .menu,
  header .menu-container .menu:hover{
    visibility: visible;
    opacity: 1;
    display: flex;
  }
}

header .class-info{
  height:100%;
  font-family: Roboto;
  flex-shrink: 3;
  margin-right: 5px;
  display: flex;
  min-width: 100px;
  align-items:center;
  overflow:hidden;
  text-overflow:ellipsis;
}

header .user{
  height:100%;
  display: flex;
  align-items:center;
  min-width: 100px;
  flex-shrink: 2;
}
header .user p.name{
  margin-right: 3px;
  max-width: 100px;
  overflow:hidden;
  text-overflow:ellipsis;
}
header .user p.status-badge{
  margin: 5px;
  margin-left: 0;
  padding: 3px;
  border-radius: 3px;
  background-color: #9CC0E7;
  background-color: #ff5252;
  color: #FCFCFC;
  display: flex;
  align-items:center;
  flex-basis:auto;
}
header .user i{
  margin: 6px;
  margin-right: 20px;
}


.hidden-container .app-menu, .hidden-container .user-menu{
  position:absolute;
  margin:0;
  padding:0;
  top: 0;
  left:0;
  background-color: #fcfcfc;
  width:100%;
  height:auto;
  text-align:center;
  list-style-type:none;
  border: 1px solid rgba(0,0,0,0.1);
  box-shadow: 0 8px 6px -6px rgba(0,0,0,0.2);
  padding: 10px;

  /* display: none; */
}
.hidden-container .app-menu li, .hidden-container .user-menu li{
  padding: 10px 0 10px 0;
  cursor:pointer;
}

/* @media (min-width: 420px){ */
@media (min-width: 0){
  .hidden-container .app-menu, .hidden-container .user-menu{
    position:absolute;
    top: 64px;
    width:auto;
    min-width: 150px;
    height:auto;
    text-align: initial;
    padding: 10px 0 10px 0;
  }
  .hidden-container .app-menu li, .hidden-container .user-menu li{
    padding:10px;
  }
  .hidden-container .app-menu li:hover, .hidden-container .user-menu li:hover{
    background-color: #9CC0E7;
  }
  .hidden-container .app-menu{
    left: 20px;
  }
  .hidden-container .user-menu{
    right:20px;
    left: initial;
  }
}


/* --------------------------------- */
/* ----------  UI ELEMENTS  -------- */
/* --------------------------------- */


/* input box */ 
/* https://codepen.io/chrisoncode/pen/IdGKH */
.input-group {
  position:relative;
  width: 300px;
  margin-bottom:35px;
  margin-top:35px;
}
.scalable .input-group{
  width: auto;
  max-width: 300px;
}
.input-group.full-width{
  width: 100%;
}
.input-group.centered{
  margin: 0 auto;
  margin-bottom:35px;
  margin-top:35px;
}
.input-group input {
  font-size:18px;
  box-shadow: 3px 3px 4px 2px rgba(0,0,0,0.1);
  padding:10px 10px 10px 5px;
  display:block;
  width:300px;
  width: 100%;
  border:none;
  border-bottom:1px solid #757575;
  box-sizing: border-box;
}

/* LABEL ======================================= */
label:not(.checkbox-label){
  color:#999; 
  font-size:18px;
  font-weight:normal;
  position:absolute;
  pointer-events:none;
  left:5px;
  top:10px;
  transition:0.2s ease all; 
  -moz-transition:0.2s ease all; 
  -webkit-transition:0.2s ease all;
}

/* active state */
.input-group input:focus ~ label, .input-group input:valid ~ label {
  top:-20px;
  font-size:14px;
  color:#5264AE;
}

/* BOTTOM BARS ================================= */
.bar  { 
  position:relative;
  display:block;
  width: 100%;
}
.bar:before, .bar:after {
  content:'';
  height:2px; 
  width:0;
  bottom:1px; 
  position:absolute;
  background:#5264AE; 
  transition:0.2s ease all; 
  -moz-transition:0.2s ease all; 
  -webkit-transition:0.2s ease all;
}
.bar:before {
  left:50%;
}
.bar:after {
  right:50%;
}

/* active state */
.input-group input:focus ~ .bar:before, .input-group input:focus ~ .bar:after {
  width:50%;
}
/* active state */
.input-group input:focus ~ .highlight {
  -webkit-animation:inputHighlighter 0.3s ease;
  -moz-animation:inputHighlighter 0.3s ease;
  animation:inputHighlighter 0.3s ease;
}

/* ANIMATIONS ================ */
@-webkit-keyframes inputHighlighter {
  from { background:#5264AE; }
  to  { width:0; background:transparent; }
}
@-moz-keyframes inputHighlighter {
  from { background:#5264AE; }
  to  { width:0; background:transparent; }
}
@keyframes inputHighlighter {
  from { background:#5264AE; }
  to  { width:0; background:transparent; }
}

/* generic use buttons */
.btn{
  margin: 5px;
  border: 1px solid rgba(0,0,0,0.2);
  padding: 10px;
  min-width: 150px;
  box-shadow: 3px 3px 4px 2px rgba(0,0,0,0.1);
}


.btn-4 {
  overflow: hidden;
  position: relative;
}
.btn-4::after {
  background: rgba(0,0,0,0.4);
  content: "";
  height: 155px;
  left: -75px;
  opacity: .2;
  position: absolute;
  top: -50px;
  -webkit-transform: rotate(35deg);
          transform: rotate(35deg);
  transition: all 550ms cubic-bezier(0.19, 1, 0.22, 1);
  width: 50px;
  z-index: -10;
}

.btn-4:hover::after {
  left: 120%;
  transition: all 550ms cubic-bezier(0.19, 1, 0.22, 1);
}


/* --------------------------------- */
/* ---------  LOADING BAR  --------- */
/* --------------------------------- */
.loading-bar{
  position:fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 0;
  background-color: red;
  overflow: hidden;
  transition: height 0.5s;
  /* for a good time */
  z-index: 3279762342;
}
.loading-bar.active{
  height: 5px;
}

/* https://codepen.io/ruffiem/pen/yDoBu */
.loading-bar ul {
  position: relative;
  width: 200%;
  height: 20px;
  margin: 0;
  padding: 0;
  list-style: none;
  z-index: -1;
}

/*** set li:first-child as our background  ***/

.loading-bar ul li:first-child {
   position: absolute;
   width: 100%;
   height: 100%;
   background-color: #aaaaaa;
   background-color: #ff793f;
   transform: none;
   -moz-transform: none;
   -webkit-transform: none;
}

/*** set other li's as loading bars ***/

.loading-bar ul li:nth-child(n+2) {
   position: relative;
   width: 7%;
   height: 100%;
   transform: skewX(-45deg);
   -moz-transform: skewX(-45deg);
   -webkit-transform: skewX(-45deg);
   background-color: #888;
   background-color: #ffb142;
   margin-right: 5%;
   display: inline-block;
   animation: loading 0.5s infinite linear;
   -moz-animation: loading 0.5s infinite linear;
   -webkit-animation: loading 0.5s infinite linear;
   -o-animation: loading 0.5s infinite linear;
}

/*** setup our animation ***/

@keyframes loading {
from {left:-10%;}
to {left:3%;}
}

@-moz-keyframes loading {
from {left:-10%;}
to {left:3%;}
}

@-webkit-keyframes loading {
from {left:-10%;}
to {left:3%;}
}

@-o-keyframes loading {
from {left:-10%;}
to {left:3%;}
}


/* --------------------------------- */
/* ----------  AUTH MODAL  --------- */
/* --------------------------------- */


.auth-modal-wrapper{
  background-color: rgba(0,0,0,0.4);
  width: 100%;
  height: 100%;
  position: fixed;
  top: 0px;
  left: 0px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  /* align-items: center; */
  animation: 1s ease-out show;
  overflow-y: auto;
}
.auth-modal{
  padding: 10px 30px 10px 30px;
  transition: all 2s;
  background-color: white;
  text-align:center;
  animation: 0.5s ease-out 0s 1 slideIn;
  /* min-width: 300px; */
  max-width: 600px;
  margin: 0px auto;
  box-shadow: 10px 10px 0px 0px rgba(0,0,0,0.3);
  border-radius: 3px;
}

@keyframes show{
  0%{
    background-color: rgba(0,0,0,0.1);
  }
  100%{
    background-color: rgba(0,0,0,0.4);
  }
}
@keyframes slideIn{
  0% {
    transform: translateY(-100px);
  }
  100% {
    transform: translateY(0);
  }
}

.error-message{
  background-color: rgba(200,0,0,0.1);
  background-color: #dd4b39;
  background-color: salmon;
  color: white;
  border-radius: 3px;
  text-align: left;
  display: flex;
  align-items: center;
  padding-left: 5px;
  animation: 2s ease-out decollapse;
}
.error-message p{
  margin: 8px;
  margin-left: 16px;
}

@keyframes decollapse{
  0%{
    max-height: 0;
  }
  100%{
    max-height: 200px;
  }
}
.disappearing-placeholder{
  animation: 0.3s ease-out xcollapse forwards;
  overflow: hidden;
}
.disappearing-placeholder p{
  color: transparent;
}
@keyframes xcollapse{
  0%{
    max-height: 60px;
  }
  100%{
    max-height: 0;
  }
}


.lds-ring {
  display: inline-block;
  position: relative;
  width: 51px;
  height: 51px;
}
.lds-ring div {
  box-sizing: border-box;
  display: block;
  position: absolute;
  width: 35px;
  height: 35px;
  margin: 8px;
  border: 4px solid #fff;
  border-radius: 50%;
  animation: lds-ring 1.2s cubic-bezier(0.5, 0, 0.5, 1) infinite;
  border-color: #5264ae transparent transparent transparent;
}
.lds-ring div:nth-child(1) {
  animation-delay: -0.45s;
}
.lds-ring div:nth-child(2) {
  animation-delay: -0.3s;
}
.lds-ring div:nth-child(3) {
  animation-delay: -0.15s;
}
@keyframes lds-ring {
  0% {
    transform: rotate(0deg);
  }
  100% {
    transform: rotate(360deg);
  }
}


/* --------------------------------- */
/* ---------  COLLAPSIBLE  --------- */
/* --------------------------------- */
.collapsible-container{
  /* transition: all 0.2s; */
  /* animation: 1s ease-out large-decollapse; */
}
@keyframes large-decollapse{
  0%{
    max-height: 0;
  }
  100%{
    max-height: 800px;
    max-height: attr(data-maxheight px);
  }
}
.collapsible-container .div-button{
  display: flex;
  justify-content: center;
  align-items: center;
}
.collapsible-container .collapsible{
  max-height: 800px;
  max-height: attr(data-maxheight px);
  /* transition: all 0.5s; */
  overflow: hidden;
  display: flex;
}
.collapsible-container .collapsible.collapsed{
  max-height: 0;
  display: none;
}

/* checkbox */

.checkbox-group{
  margin-top: 10px;
  margin-bottom: 30px;
  display: flex;
  /* align-items: center; */
}
.checkbox-group.centered{
  /* margin: 0 auto; */
  display: block;
}

.styled-checkbox {
  position: absolute;
  opacity: 0;
}
.styled-checkbox + label {
  position: relative;
  cursor: pointer;
  padding: 0;
}
.styled-checkbox + label:before {
  content: "";
  margin-right: 10px;
  display: inline-block;
  vertical-align: text-top;
  width: 20px;
  height: 20px;
  background: white;
  box-shadow: 0 0 0 3px rgba(0, 0, 0, 0.22);
}
.styled-checkbox:focus + label:before {
  outline: 1px solid rgba(0,0,0,0.3);
  box-shadow: 0 8px 6px -6px rgba(0,0,0,0.3);
}
.styled-checkbox:checked + label:before {
  background: #5264ae;
}
.styled-checkbox:disabled + label {
  color: #b8b8b8;
  cursor: auto;
}
.styled-checkbox:disabled + label:before {
  box-shadow: none;
  background: #ddd;
}
.styled-checkbox:checked + label:after {
  content: "";
  position: absolute;
  left: 4px;
  top: 9px;
  background: white;
  /* width: 2px; */
  /* height: 2px; */
  /* box-shadow: 2px 0 0 white, 4px 0 0 white, 4px -2px 0 white, 4px -4px 0 white, 4px -6px 0 white, 4px -8px 0 white; */
  width: 4px;
  height: 4px;
  box-shadow: 2px 0 0 white, 4px 0 0 white, 4px -2px 0 white, 4px -4px 0 white, 4px -6px 0 white, 4px -8px 0 white;
  -webkit-transform: rotate(45deg);
          transform: rotate(45deg);
}
