@charset "UTF-8";
@import url("reset.css");
@import url("fonts.css");

:root {
	--kleurA: #fff;
	--kleurB: #eee;
	--kleurC: #ccc;
	--kleurD: #888;
	--kleurE: #444;
	--contentBreedte: min(100vw - 2rem, 1000px);
	--contentBreedteKlein: min(100vw - 2rem, 400px);
	--stoelhoogte: 15px;
}

* {
	font-size: 1rem;
	box-sizing: border-box;
}

html,
body {
	width: 100%;
	height: 100%;
	min-height: 100%;
	background: var(--kleurA);
	font-family: 'Roboto';
	line-height: 2rem;
	color: var(--kleurE);
	font-size: 16px;
}

.container {
	height: 100%;
}

.scancontainer {
    display: grid;
    grid-template-rows: auto 1fr 5rem;
	height: 100%;
    background: #eee;
    background-image: url(/img/background.jpg);
	background-position: 50% 50%;
    background-repeat: no-repeat;
    background-size: cover;
}

.topbar {
	display: grid;
    grid-template-areas: "loguit label menu";
	grid-template-columns: 3rem 1fr 3rem;
    background: #ddd;
    height: 3rem;
    box-shadow: 0px 0px 3px #0008;
}

.topbar .label {
	grid-area: label;
	display: grid;
    place-content: center;
    color: #444;
    font-size: 1.25rem;
    padding: 0.5rem;
    /* border-left: 1px solid #fff; */
    /* border-right: 1px solid #aaa; */
}

.topbar .loguitknop {
	position: relative;
	grid-area: loguit;
    display: grid;
    place-content: center;
    transform: rotateZ(180deg);
    border-left: 1px solid #aaa;
	cursor: pointer;
}

.topbar .menuknop {
	position: relative;
	grid-area: menu;
    display: grid;
    place-content: center;
    border-left: 1px solid #fff;
}

.topbar .loguitknop:after,
.topbar .menuknop:after {
	position: absolute;
	content: '';
	display: block;
	width: 1px;
	height: 100%;
	top: 0px;
	left: -2px;
}

.topbar .loguitknop:after {
	background: #fff;
}
	
.topbar .menuknop:after {
	background: #aaa;
}

.topbar .loguitknop:active,
.topbar .menuknop:active {
	background: #0002;
    border-left: 1px solid #aaa;
}
.topbar .loguitknop:active i {
	margin-top: -2px;
}

.topbar .menuknop:active i {
	margin-top: 2px;
}

.scanvenster {
	width: 100%;
    height: 100%;
	background: #fff4;
}

.footer {
	box-shadow: 0px -1px 3px #0008;
	display: grid;
	place-items: center;
}

.footer img {
	max-width: 50%;
	height: 4rem;
}

video {
	/* background: red; */
	width: 100%;
    height: 100%;
}


.sleutelvenster {
    position: fixed;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
    border-radius: 0.5rem;
    padding: 1rem;
    background: #eee;
    box-shadow: 0px 1px 3px #0008;
}

.sleutelcode {
    width: fit-content;
    padding: 1rem;
    margin: 1rem auto;
    background: #000;
    border-radius: 5px;
}

.sleutelcodecijfer {
    padding: 0 0.75rem;
    color: #fff;
}

.sleutelcodecijfer i {
    color: #fff;
}

.sleutelknoppen {
    display: grid;
    grid-template-columns: 4rem 4rem 4rem;
    gap: 1rem;
}

.sleutelknop {
    display: grid;
    place-content: center;
    height: 4rem;
    border-radius: 3rem;
    box-shadow: 0px 2px 3px #0008;
    background: #fff;
	cursor: pointer;
	transition: 50ms transform, 50ms box-shadow, 50ms background;
	-webkit-tap-highlight-color: transparent;
}

.sleutelknop:active {
	transform: translateY(2px);
    box-shadow: 0px 0px 3px #0008;
    background: #eee;
}



.toast {
    position: fixed;
    z-index: 100;
    top: -4rem;
    left: 50%;
	width: fit-content;
    max-width: calc(100% - 6rem);
    transform: translateX(-50%);
    background: #444;
	filter: drop-shadow(-1px 1px 0px #fff) drop-shadow(1px 1px 0px #fff) drop-shadow(0px 0px 2px #000);
	transition: 500ms top ease-in-out;
}


.toastcontent {
	position: relative;
    color: #fff;
    background: #444;
    padding: 0.5rem 0rem;
	text-align: center;
    font-weight: 600;
	z-index: 101;
}

.toastcontent i {
	padding-right: 0.5rem;
	color: #fff;
}

.toastcontent:before,
.toastcontent:after {
    content: '';
    position: absolute;
    width: 2rem;
    height: 200%;
    background: #444;
    top: -100%;
    border-radius: 100%;
    z-index: -1;
}

.toastcontent:before {
    left: -1rem;
}
.toastcontent:after {
    right: -1rem;
}

.toastcontent.ok,
.toastcontent.ok:before,
.toastcontent.ok:after {
	background: #080;
}

.toastcontent.fout,
.toastcontent.fout:before,
.toastcontent.fout:after {
	background: #c00;
}


.statuswacht,
.statusok,
.statusfout {
    position: absolute;
    background: #eee;
    top: 50%;
    left: 50%;
    width: 80%;
    height: 50%;
    transform: translate(-50%, -50%);
    display: none;
    place-content: center;
	border-radius: 1rem;
}

.statuswacht .knop,
.statusok .knop {
	display: none;
}
/* .statuswacht .melding, */
/* .statusok .melding { */
	/* display: none; */
/* } */

.statusfout .knop {
	display: block;
    text-align: center;
    border-radius: 2rem;
    font-size: 1.25rem;
    padding: 0.5rem 2rem;
    background: linear-gradient(0deg, #ccc, #eee);
    box-shadow: 0px 1px 3px #0008;
	user-select: none;
	width: max-content;
    margin: 0 auto;
}

.melding {
    margin-bottom: 2rem;
	text-align: center;
}

.statusok .knop:active,
.statusfout .knop:active {
    background: linear-gradient(0deg, #eee, #ccc);
}

.circle-loader {
  margin: 0 auto 2em auto;
  border: 3px solid rgba(0, 0, 0, 0.1);
  border-left-color: #888;
  animation: loader-spin 1.2s infinite linear;
  position: relative;
  display: inline-block;
  vertical-align: top;
  border-radius: 50%;
  width: 7em;
  height: 7em;
}


.load-complete {
  -webkit-animation: none;
  animation: none;
  border-color: #5cb85c;
  transition: border 500ms ease-out;
  border: 1px solid rgba(0, 0, 0, 0.1);
}

.statusfout .load-complete {
	background: #f00;
}

.statusok .icon {
  display: none;
}
.statusok .icon.draw:after {
  animation-duration: 800ms;
  animation-timing-function: ease;
  animation-name: checkmark;
  transform: scaleX(-1) rotate(135deg);
}

.statusfout .icon.draw:before {
  animation-duration: 500ms;
  animation-timing-function: ease;
  animation-name: crossA;
}

.statusfout .icon.draw:after {
  animation-duration:1000ms;
  animation-timing-function: ease;
  animation-name: crossB;
}

.statusok .icon:after {
  opacity: 1;
  height: 3.5em;
  width: 1.75em;
  transform-origin: left top;
  /* border-right: 3px solid #5cb85c; */
  /* border-top: 3px solid #5cb85c; */
  border-right: 5px solid #080;
    border-top: 5px solid #080;
  content: "";
  left: 1.25em;
  top: 3.5em;
  position: absolute;
}

.statusfout .icon:before {
  opacity: 1;
  height: 3.5em;
  width: 1.75em;
  transform-origin: top left;
  border-right: 3px solid #fff;
  content: "";
  left: 0.9em;
  top: 3.4em;
  position: absolute;
  transform: rotate(-45deg);
}
.statusfout .icon:after {
  opacity: 1;
  height: 3.5em;
  width: 1.75em;
  transform-origin: top right;
  border-right: 3px solid #fff;
  content: "";
  left: 2.75em;
  top: 2.25em;
  position: absolute;
  transform: rotate(45deg);
}

@keyframes loader-spin {
  0% {
    transform: rotate(0deg);
  }
  100% {
    transform: rotate(360deg);
  }
}
@keyframes checkmark {
  0% {
    height: 0;
    width: 0;
    opacity: 1;
  }
  20% {
    height: 0;
    width: 1.75em;
    opacity: 1;
  }
  40% {
    height: 3.5em;
    width: 1.75em;
    opacity: 1;
  }
  100% {
    height: 3.5em;
    width: 1.75em;
    opacity: 1;
  }
}
@keyframes crossA {
  0% {
    height: 0;
    width: 0;
    opacity: 1;
  }
  20% {
    height: 0;
    width: 1.75em;
    opacity: 1;
  }
  100% {
    height: 3.5em;
    width: 1.75em;
    opacity: 1;
  }
}
@keyframes crossB {
  0% {
    height: 0;
    width: 0;
    opacity: 1;
  }
  60% {
    height: 0;
    width: 1.75em;
    opacity: 1;
  }
  100% {
    height: 3.5em;
    width: 1.75em;
    opacity: 1;
  }
}