body.camera {
	background: black;
	margin: 0;
	padding: 0;
}
body.camera img.camera {
	cursor: pointer;
	float: left;
	object-fit: cover;
	transition: 500ms;
	width: 100%;
}
body {
	font-family: system-ui, -apple-system, "Segoe UI", Roboto, Ubuntu, Cantarell, "Noto Sans", sans-serif;
}
body.devices {
	background: url(/background.jpg) fixed center center;
	background-size: cover;
	color: #CCC;
	min-height: 100vh;
	padding: 10px 20px;
	margin: 0;
}
body.devices h2 {
	margin: 6px 0;
	text-shadow: 2px 2px 1px black;
}
body.devices a {
	color: #CCC;
}
body.devices div.devices {
	display: grid;
	grid-gap: 16px;
	grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
}
body.devices div.devices .device {
	background-color: rgba(0, 0, 0, .5);
	backdrop-filter: blur(3px);
	border-radius: 6px;
	line-height: 160%;
	padding: 10px;
	position: relative;
}
body.devices div.devices .device div {
	white-space: nowrap;
}
body.devices div.devices .device header {
	border-bottom: 1px solid gray;
	font-weight: bold;
	margin-bottom: 4px;
	padding-bottom: 4px;
}
body.devices div.devices .device b {
	display: inline-block;
	font-size: 80%;
	margin: 0 10px 0 0;
	width: 40%;
}
body.devices div.devices .device.active {
	background-color: rgba(0, 128, 0, .75);
	color: white;
}
body.devices div.devices .device .camera {
	border-radius: 6px;
	object-fit: cover;
	width: 100%;
	max-height: 150px;
}
body.devices div.devices .device select {
	border: 0;
	background-color: transparent;
	color: inherit;
	font: inherit;
	max-width: 116px;
}
body.devices div.devices .device select option {
	color: black;
}
body.devices div.devices .device:has(.actions) {
	padding-bottom: 50px;
}
body.devices div.devices .device .actions {
	bottom: 3px;
	display: flex;
	flex-wrap: wrap-reverse;
	left: 3px;
	position: absolute;
	right: 3px;
}
body.devices div.devices .device .actions > * {
	flex: 1;
	margin: 1px;
	min-width: 20%;
	padding: 4px 0;
}
body.devices div.devices .device .actions button {
	background-color: #222;
	border: 0;
	border-radius: 3px;
	color: white;
	cursor: pointer;
}
body.devices div.devices .device .actions button[data-action="switch"] {
	background-color: green;
}
body.devices div.devices .device .actions button.active {
	background-color: #A7223C;
}
body.devices div.devices .device .actions input.helderheid {
	min-width: 100px;
}
input[type="range"] {
	-webkit-appearance: none;
	background-color: transparent;
}
input[type="range"]::-webkit-slider-runnable-track {
	background: linear-gradient(90deg, black, yellow);
	border: 1px solid #000;
	border-radius: 5px;
	cursor: pointer;
	width: 100%;
	height: 10px;
}
input[type="range"]::-webkit-slider-thumb {
	-webkit-appearance: none;
	background-color: white;
	border: 1px solid black;
	border-radius: 5px;
	cursor: pointer;
	margin-top: -9px;
	width: 12px;
	height: 20px;
}
body.devices .views {
	background-color: #222;
	border-radius: 6px;
	bottom: 0;
	padding: 6px;
	position: fixed;
	right: 10px;
	text-align: center;
}
body.devices .views a {
	border-radius: 6px;
	padding: 6px;
}
body.devices .views a:hover {
	background-color: red;
	text-decoration: none;
}
body.devices div.devices .device.shake {
	animation: shake 600ms 1;
}
body.scan.log {
	background-color: black;
	color: white;
	display: grid;
	font-size: 12px;
	grid-gap: 8px;
	grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
	margin: 0;
	padding: 10px;
}
body.scan.log .scanrow {
	padding: 2px;
}
body.scan.log .scanrow img {
	aspect-ratio: 16 / 9;
	border-radius: 4px;
	display: block;
	width: 100%;
}
body.scan.log .scanrow.high {
	background-color: red;
}
body.scan.log .scanrow.medium {
	background-color: maroon;
}
@media screen and (orientation: landscape){
	body.camera img.camera:not(.small) {
		height: 100vh;
	}
	body.camera img.camera.small {
		border: 1px solid white;
		left: 3px;
		position: fixed;
		top: 3px;
		width: 20%;
		z-index: 2;
	}
	body.camera img.camera.small.right {
		left: auto;
		right: 3px;
	}
}
@keyframes shake{
	0% {
		transform: translate(1px, 1px) rotate(0deg);
	}
	10% {
		transform: translate(-1px, -2px) rotate(-1deg);
	}
	20% {
		transform: translate(-3px, 0px) rotate(1deg);
	}
	30% {
		transform: translate(3px, 2px) rotate(0deg);
	}
	40% {
		transform: translate(1px, -1px) rotate(1deg);
	}
	50% {
		transform: translate(-1px, 2px) rotate(-1deg);
	}
	60% {
		transform: translate(-3px, 1px) rotate(0deg);
	}
	70% {
		transform: translate(3px, 1px) rotate(-1deg);
	}
	80% {
		transform: translate(-1px, -1px) rotate(1deg);
	}
	90% {
		transform: translate(1px, 2px) rotate(0deg);
	}
	100% {
		transform: translate(1px, -2px) rotate(-1deg);
	}
}
@media screen and (max-width: 600px){
	body.devices div.devices {
		grid-template-columns: repeat(auto-fill, minmax(140px, 1fr));
	}
}
