@font-face {
  font-family: "Impact";
  src: url("/fonts/impact.ttf");
}

@font-face {
  font-family: "Lobster";
  src: url("/fonts/Lobster-Regular.ttf");
}


body, html {
	position:fixed;
	overflow:hidden !important;
	max-width:100vw;
	max-height:100vh;
	margin:0 !important; padding:0 !important;
}
.error {color:red;}
.warning {color:orange;}
.btn-light {
	color:#007bff;
	font-weight:600;
}
.full-center {
	position:absolute;
	left:0; top:0;
	width:100%; height:100%;
	display:flex;
	align-items:center;
	justify-content:center;
}
.naked-text {
	color:#fff;
}

.blink-me {animation: blinker 0.25s linear infinite;}
@keyframes blinker {50% {opacity:0;}}

#background {
	/*position:fixed;*/
	width:100vw; height:100vh;
	z-index:0;
	background: rgb(0,212,255);
	background: -moz-radial-gradient(circle, rgba(0,212,255,1) 0%, rgba(21,62,124,1) 50%, rgba(2,0,36,1) 100%);
	background: -webkit-radial-gradient(circle, rgba(0,212,255,1) 0%, rgba(21,62,124,1) 50%, rgba(2,0,36,1) 100%);
	background: radial-gradient(circle, rgba(0,212,255,1) 0%, rgba(21,62,124,1) 50%, rgba(2,0,36,1) 100%);
	filter: progid:DXImageTransform.Microsoft.gradient(startColorstr="#00d4ff",endColorstr="#020024",GradientType=1);
}
#body {
	position:fixed;
	overflow:hidden;
	display:flex;
	flex-direction:column;
	justify-content:center;
	align-items:center;
	position:fixed;
	left:0; top:0;
	width:100%;
	height:100%;
	padding:0 15px 15px 15px;
}
#top {
	width:100%; height:75px;
	display:flex;
	justify-content:space-between;
	align-items:center;
	color:#fff;
	padding:0;
}
#logo {
	width:150px;
	cursor:pointer;
	transition:0.25s ease-in-out;
}
#logo:hover {
	transform:scale(1.05);
}
#menu-button {
	font-size:1.5em;
	cursor:pointer;
	padding:15px 30px;
	margin-right:-20px;
}
#direct-message {
	width:calc(100% - 300px);
	margin-left:30px;
	color:#ffa636;
	font-size:1.4em;
}

#navbar {
	width:calc(100% - 200px);
	height:100%;
}
#navbar ul {
	width:100%; height:100%;
	margin:0; padding:0;
	list-style-type:none;
	display:flex;
	flex-direction:row;
	justify-content:flex-end;
	align-items:center;
	z-index:100;

}
#navbar ul li {
	display:block;
	position:relative;
	height:75px; line-height:75px;
	font-size:12pt;
	color:#ffff66;
	padding: 0 15px;
	cursor:pointer;
	-webkit-touch-callout: none; -webkit-user-select: none; user-select: none; -moz-user-select: none;
}
#navbar ul li a {
	display:inline-block;
	width:100%; height:100%;
	text-decoration:none;
	color:#ffa636;
	transition:0.1s ease-in-out;
}
#navbar ul li a:hover {
	text-decoration:none;
	color:#ffc83a;
	text-shadow:0 0 10px rgba(255,255,0,0.5);
}
#navbar ul.children {display:none;}
#navbar ul li a i {
	font-size:18pt;
	position:relative;
	top:4px;
}
#navbar > ul > li > a img {
	width:35px; height:35px;
	object-fit:cover;
	transition:0.25s ease-in-out;
	border:2px solid #fff;
	border-radius:100%;
	-webkit-border-radius:100%;
	-moz-border-radius:100%;	
}
#navbar > ul > li > a:hover img {
	transform:scale(120%);
}
#navbar ul ul {
	display:none;
	position:absolute;
	color:#fff;
	background-color:#122351;
	width:auto; height:auto;
	right:-15px;
	flex-direction:column;
	margin:20px 0 0 0; padding:15px 10px;
	border-radius:5px;
	-webkit-border-radius:5px;
	-moz-border-radius:5px;

}
#navbar ul ul:after {
	content: "";
	border-left: 10px solid transparent;
	border-right: 10px solid transparent;
	border-bottom: 15px solid #122351;
	position: absolute;
	height: 0;
	width: 0;
	top: -13px;
	right: 29px;
	z-index: 100;
}
#navbar ul ul li {
	display:block;
	width:100%; height:auto; line-height:normal;
	white-space:nowrap;
	margin:0; padding:5px 15px;
}
#navbar ul ul li {
	color:#fff;
}
#navbar ul ul li i {
	margin-right:15px;
	margin-left:-5px;
}
#navbar ul ul li:hover {color:#ffc83a;}
#main-menu-button {
	margin:0;
	padding:0 15px;
	position:relative;
	left:10px;
}
#main-menu-button i {
	color:#fff;
}

#navbar ul ul li i {
	width:20px;
}
#navbar ul ul li.main-menu-spacer {
	height:1px;
	background-color:rgba(255,255,255,0.2);
	padding:0;
	margin:10px 15px 10px 10px;
	width:calc(100% - 20px);
}

.custom-select {
	padding: 0;
	margin-bottom: 5px;
	border-width:1px;
	border-style:solid;
	border-color:#000;
	width: 100%;
	overflow: hidden;
	background-color: #fff;
	position:relative;
}
.custom-select:after {
	/* content:"▼"; */
	content:"\25BC";
	position:absolute;
	right:10px; top:5px;
	color:#ccc;
	pointer-events:none;
}
.custom-select select {
	font-size:13pt;
	padding: 5px 10px;
	width: 100%;
	border: none;
	box-shadow: none;
	background-color: transparent;
	background-image: none;
	-webkit-appearance: none;
	-moz-appearance: none;
	appearance: none;
}

#main {
	position:relative;
	display:flex;
	flex-direction:row;
	justify-content:space-between;
	align-items:flex-start;
	width:100%;
	height:100%;
	margin-bottom:10px;
	overflow-y:hidden;
}
#tabbar {
	position:absolute;
	top:0; left:0;
	width:calc(100% - 10px); height:40px;
	display:flex;
	flex-direction:row;
	flex-wrap:nowrap;
}
#tabbar .tab {
	width:100%; height:45px;
	line-height:40px;
	background-color:#eee;
	text-align:center;
	padding:0 15px;
	margin:0 5px;
	border-top-left-radius:5px;
	border-top-right-radius:5px;	
	opacity:0.5;
	cursor:pointer;
}
#tabbar .tab:first-child {margin-left:0;}
#tabbar .tab:only-child {width:50%; opacity:1; cursor:default;}
#tabbar .tab.selected {opacity:1; cursor:default;}
.panel {
	position:relative;
	top:40px;
	background-color:rgba(255,255,255,0.9);
	display:block;
	border-radius:5px;
	width:100%;
	height:calc(100vh - 175px);
	text-align:center;
	overflow-y:scroll;
}
.panel *:not(input), #logo, #quick-look-info, .modal-content *, #debug-panel {
	-webkit-touch-callout: none;
	-webkit-user-select: none;
	-khtml-user-select: none;
	-moz-user-select: none;
	-ms-user-select: none;
	user-select: none;
}
input {
	-webkit-touch-callout:auto !important;
	-webkit-user-select:auto !important;
	-khtml-user-select:auto !important;
	-moz-user-select:auto !important;
	-ms-user-select:auto !important;
	user-select:auto !important;
}
.panel .inner {
	position:absolute;
	margin:0; padding:0;
	top:10px;
}
input {
	user-select:text !important;
}


/* OVERRIDES TO TEMPORARILY REMOVE TABS ON JUDGING PAD: */

	.panel.grid-list-panel {
		height:calc(100vh - 175px);
		border-bottom-left-radius:0;
		border-bottom-right-radius:0;
		-ms-overflow-style: none;
		scrollbar-width: none;
	}
	.panel.grid-list-panel::-webkit-scrollbar {
		display: none;
	}

	.panel {
		top:0;
	}
	.grid-list-panel .inner {
		width:100%;
		height:100%;
		border:1px solid rgba(0,0,0,0); /* for some reason, the border causes it to render in full */
		border-bottom:15px solid rgba(0,0,0,0); /* hack so it doesn't sit flush on the bottom */
		flex-grow:grow;
	}
	#grid-panel .inner {
		display:block;
		align-items:center;
		justify-content:flex-start;
		flex-direction:row;
		flex-wrap:wrap;
		width:calc(100vw - 70px); /* gutter for scrolling */
	}
	#list-panel .inner {
		flex-direction:column;
	}
	
	#main.split-2 .grid-list-panel {
		display:flex;
		flex-direction:row;
	}
	#main.split-2 .grid-list-panel .inner {
		position:relative;
		width:50%; height:calc(100% - 210px);
	}
	#main.split-2 .grid-list-panel .inner:first-child {
		border-right:1px dashed #666;
	}
	
	#main.split-3 .grid-list-panel {
		display:flex;
		flex-direction:row;
		flex-wrap:wrap;
		height:calc(100vh - 120px);
		padding-bottom:60px;
	}
	#main.split-3 .grid-list-panel .inner {
		position:relative;
		width:50%; height:calc(40vh - 10px);
	}
	#main.split-3 .grid-list-panel .inner:first-child, #main.split-3 .grid-list-panel .inner:nth-child(2) {
		border-bottom:1px dashed #666;
	}
	#main.split-3 .grid-list-panel .inner:nth-child(odd) {
		border-right:1px dashed #666;
	}

	#main.split-5 .grid-list-panel {
		display:flex;
		flex-direction:row;
		flex-wrap:wrap;
		height:calc(100vh - 120px);
		padding-bottom:60px;
	}
	#main.split-5 .grid-list-panel .inner {
		position:relative;
		width:33%; height:calc(40vh - 10px);
	}
	#main.split-5 #grid-panel .inner {
		flex-direction:column;
		align-items:center;
	}
	#main.split-5 .grid-list-panel .inner:first-child,
	#main.split-5 .grid-list-panel .inner:nth-child(2),
	#main.split-5 .grid-list-panel .inner:nth-child(3) {
		border-bottom:1px dashed #666;
	}
	#main.split-5 .grid-list-panel .inner:nth-child(1),
	#main.split-5 .grid-list-panel .inner:nth-child(2),
	#main.split-5 .grid-list-panel .inner:nth-child(4),
	#main.split-5 .grid-list-panel .inner:nth-child(5) {
		border-right:1px dashed #666;
	}

	#main.split-7 .grid-list-panel {
		display:flex;
		flex-direction:row;
		flex-wrap:wrap;
		height:calc(100vh - 120px);
		padding-bottom:60px;
	}
	#main.split-7 .grid-list-panel .inner {
		position:relative;
		width:33%; height:calc(28vh - 10px);
	}
	#main.split-7 #grid-panel .inner {
		flex-direction:column;
		align-items:center;
		border-right:1px dashed #666;
		border-bottom:1px dashed #666;
	}
	#main.split-7 .grid-list-panel .inner:nth-child(3),
	#main.split-7 .grid-list-panel .inner:nth-child(6),
	#main.split-7 .grid-list-panel .inner:nth-child(9) {
		border-right:none !important;
	}
	#main.split-7 .grid-list-panel .inner:nth-child(7),
	#main.split-7 .grid-list-panel .inner:nth-child(8),
	#main.split-7 .grid-list-panel .inner:nth-child(9) {
		border-bottom:none !important;
	}

	
/* END OVERRIDE */


.team {
	display:inline-flex;
	flex-direction:column;
	justify-content:center;
	align-items:center;
	background-color:#fff;
	border:1px solid #aaa;
	box-shadow:0 0 15px rgba(0,0,0,0.1);
	cursor:pointer;
	overflow:hidden;
}
#grid-panel .inner .team {
	position:relative;
	width:calc(50vw - 40px);
	max-width:120px;
}
#grid-panel .inner .team.alternate:after, #grid-panel .inner .team.recalled:after {
	content:"";
	width:100%; height:100%;
	background-size:100% 100%;
	position:absolute;
	left:0; top:0;
	pointer-events:none;
}
#grid-panel .inner .team.recalled:after {
	background-image:url("/images/pen-circle.png");
}
#grid-panel .inner .team.alternate:after {
	background-image:url("/images/pen-circle-black.png");
	opacity:0.25;
}

#inspector:after {
	background-image:none !important;
}
#list-panel .team {
	position:relative;
	width:calc(100% - 15px);
	padding:15px 0;
	margin:5px 0;
}
.team-bg {
	position:absolute;
	width:100%; height:100%;
	z-index:0;
}
.team h1 {
	position:relative;
	font-size:2em;
	line-height:1em;
	margin:0 0 5px 0;
	padding:0;
	z-index:1;
}
.team h1 .team-role {
	font-size:15px;
	font-weight:bold;
	position:absolute;
	bottom:1px; left:-12.5px;
	width:10px; height:10px;
	line-height:0;
	opacity:0.33;
}
.team .inspector {display:none;}
.team .color-spot {
	position:absolute;
	right:-1.5em; bottom:-1.5em;
	width:3em; height:3em;
	border-radius:100%;
	border:1px solid rgba(0,0,0,0.25);
	background-color:#fff;
	box-shadow:inset 0 0 5px rgba(0,0,0,0.25);
	overflow:hidden;
}
.team .color-spot .spot-placement {
	position:absolute;
	left:0; top:50%;
	width:50%; height:50%;
	display:flex;
	flex-direction:row;
	align-items:center;
	justify-content:center;
	font-size:1em;
	padding-left:12%; padding-top:12%;
	transition:0.5s ease-in-out;
}
.team.moved .color-spot .spot-placement {
	top:0;
}

#grid-panel .flight-separator {
	position:relative;
	width:calc(100vw - 30px);
	height:0;
	border-bottom:1px dashed #aaa;
}

.ghost-team {
	height:50px;
	width:120px;
	visibility:hidden;
	pointer-events:none;
	z-index:0;
}

.team .team-alert-icon {
	display:none;
	position:absolute;
	left:4px; top:2px;
	pointer-events:none;
	font-size:16px;
	-webkit-animation:pulsate-fwd 0.75s ease-in-out infinite both;animation:pulsate-fwd 0.75s ease-in-out infinite both;
}
.team.duplicate-score {
	border-color:#000;
}
.team.duplicate-score .team-alert-icon {
	display:block;
}

.btn {
	padding:0 1rem;
	height:38px;
	outline:none !important;
	box-shadow:none !important;
}
.btn {
	border:none;
	color:#fff;
	line-height:30px;
	padding:0 10px;
	font-size:12pt;
	border-radius:5px;
	outline:none;
}
.btn:hover {
	color:#fff;
	text-shadow:0 0 5px rgba(255,255,255,0.75);
}

.btn-light {
	border:1px solid #ccc;
	color:#666;
	background-color:#fff;
}
.btn-light:hover {
	color:#666;
	background-color:#f6f6f6;
}
.btn-dark {
	background-color:#0f1e4b;
	color:rgba(255,255,255,0.85);
	border:none;
}
.btn-dark:hover {
	color:#fff;
	background-color:#0f1e4b;
}

.btn.btn-orange {background-color:#ff7e02;}
.btn.btn-orange:hover {background-color:#f76c00;}
.btn-blue {background-color:#0c479e;}

.btn.btn-outline {background:none;}
.btn.btn-outline-light {border:2px solid #fff; color:#fff;}
.btn.btn-outline-light:hover {background-color:rgba(255,255,255,0.1);}
.btn.btn-outline-dark {border:2px solid #0c479e; color:#0c479e;}
.btn.btn-outline-dark:hover {background-color:rgba(12,71,158,0.1);}


.btn-lg {
	padding:0 15px;
	font-size:15pt;
	text-transform:capitalize;
}



#action-buttons {
	position:relative;
	width:100%;
	padding-top:5px;
	display:flex;
	flex-direction:row;
	align-items:center;
	justify-content:space-between;
}
#quick-look {
	position:absolute;
	left:0; top:-60px;
	width:100%; height:50px;
	background-color:rgba(255,255,255,0.85);
	z-index:999;
	border-radius:0 0 5px 5px;
	display:flex;
	flex-direction:row;
	justify-content:space-between;
	align-items:center;
	padding:0 5px;
}
#quick-look-info {
	font-size:12pt;
	line-height:17pt;
	padding:5px 10px;
	display:flex;
	white-space:normal;
	cursor:pointer;
}
#quick-look .color-dot {
	display:inline-block;
	width:15px; height:15px;
	border-radius:100%;
	border:1px solid rgba(0,0,0,0.2);
	position:relative;
	top:2px;
}
#quick-look .team-number {
	display:inline-block;
	font-weight:bold;
	margin:0 10px;
}
#quick-look em {
	display:inline-block;
	font-size:13pt;
	font-weight:600;
	font-style:normal;
	text-align:center;
	margin:0 7.5px;
	padding:0 3px;
	background-color:#1D54A6;
	color:#fff;
	border-radius:4px;
	-webkit-border-radius:4px;
	-moz-border-radius:4px;
	height:24px; line-height:24px;
	min-width:24px;
}
#cleanup-button {
	white-space:nowrap;
	border:1px solid #ddd;
}
#cleanup-button span {
	display:inline-block;
	margin-left:5px;
}
.button-group {
	display:inline-flex;
	flex-direction:row;
}
.button-group button {
	display:inline;
	background:none;
	border:none;
	height:40px; line-height:40px;
	padding:0 1rem;
	background-color:rgba(0, 124, 255, 0.5);
	color:rgba(255,255,255,0.5);
	width:50%;
	font-size:1rem;
	outline:none !important;
	white-space:nowrap;
}
.button-group button.selected {
	background-color:#007bff;
	color:#fff;
}
.button-group button:first-child {
	border-top-left-radius: .25rem;
	border-bottom-left-radius: .25rem;
}
.button-group button:last-child {
	border-top-right-radius: .25rem;
	border-bottom-right-radius: .25rem;
}
#pre-submit-button {
	width:calc(100% - 200px);
}

#submit-button i.fa-paper-plane {
	display:inline-block;
}
#submit-button i.fa-spinner {
	display:none;
}
#submit-button.submit-in-progress {
	pointer-events:none;
}
#submit-button.submit-in-progress i.fa-paper-plane {
	display:none;
}
#submit-button.submit-in-progress i.fa-spinner {
	display:inline-block;
}


#action-buttons.method-callback .button-group, #action-buttons.method-callback #cleanup-button {display:none !important;}
#action-buttons.method-callback #submit-button {width:100%;}

#team-inspector {
	overflow:hidden;
}
#team-inspector .modal-content {
	background:none;
	position:relative;
	background-color:#fff;
}
#team-inspector .modal-background {
	position:absolute;
	left:0; top:0;
	width:100%; height:100%;
}
#team-inspector .close {
	right:-20px; top:15px;
}
#team-inspector h1 {
	text-align:center;
	font-size:3em;
	margin-bottom:-5px;
}
#team-inspector h1 .team-role {
	font-size:1.25rem;
	font-weight:bold;
	color:#aaa;
	width:10px;
	margin-left:-15px;
	margin-right:5px;
	position:relative;
	bottom:1px;
}
#team-inspector-participants {
	display:flex;
	display:none;
	flex-direction:row;
	justify-content:center;
}
#team-inspector-participants .participant {
	display:inline-block;
	font-size:1.2em;
}
#team-inspector-participants .participant:first-child:after {
	content:"•";
	display:inline-block;
	padding:0 10px;
}
#team-inspector-participants .participant:only-child:after {
	content:"";
	padding:0;
}

.team-badge {
	position:absolute;
	top:0; right:5px;
	color:#1D54A6;
	font-size:21px;
}

#team-inspector-options {
	display:flex;
	flex-direction:row;
	justify-content:center;
	flex-wrap:wrap;
	margin-top:30px;
	margin-bottom:-10px;
}
.team-inspector-options-pill {
	flex-basis:29%;
	padding:5px 0;
	text-align:center;
	font-weight:bold;
	border-radius:15px;
	border:1px solid #1D54A6;
	color:#1D54A6;
	cursor:pointer;
	margin:0 10px 10px 10px;
}
.team-inspector-options-pill.disabled {
	pointer-events:none;
	opacity:0.25;
}
.team-inspector-options-pill.selected {
	background-color:#1D54A6;
	color:#fff;
}

#team-inspector #team-color-picker {
	display:flex;
	flex-direction:row;
	justify-content:center;
	align-items:center;
	flex-wrap:wrap;
	margin-top:30px;
}
#team-inspector #team-color-picker button {
	position:relative;
	width:40px; height:40px;
	margin:5px;
	padding-left:0; padding-right:0;
	border:1px solid #aaa;
	border-radius:100%;
	box-shadow:none;
	outline:none;
	opacity:0.6;
	overflow:hidden;
}
#team-inspector #team-color-picker button.selected {
	border:2px solid #000;
	opacity:1;
}
#team-inspector #color-spot {display:none;}

#scoring-slider {
	width:100%;
    border: 1px solid #dddddd;
    background: #eeeeee;
    margin-top:45px;
}
.ui-slider-handle {
	background-color:#fff;
	highlight:none;
	-webkit-highlight:none;
	outline:none;
	border:1px solid #1D54A6;
	top:-12px !important;
	width:2em; height:2em;
	border:2px solid #666;
	padding:15px;

}
#scoring-slider-tooltip {
	position:absolute;
	left:-8px; top:-60px;
	background-color:#1D54A6;
	color:#fff;
	padding:5px 10px;
	font-weight:bold;
	font-size:18pt;
	border-radius:5px;
	-webkit-border-radius:5px;
	-moz-border-radius:5px;	
}
#scoring-slider-tooltip:after {
	content:"\25BE";
	color:#1D54A6;
	position:absolute;
	top:7px;
	font-size:36pt;
	left:14px;
}

#menu {
	position:fixed;
	left:100vw; top:0;
	width:50vw; height:100vh;
	color:#fff;
	background-color: rgba(0,0,0,0);
	padding:60px 30px 30px 30px;
}
#menu.menu-open {
	left:50vw;
}
#body.menu-open {
	left:-50vw;
}
#body, #menu {transition:0.3s ease-in-out;}
#menu-inner {
	position:relative;
	width:100%; height:100%;
	display:flex;
	flex-direction:column;
	align-items:center;
	justify-content:flex-start;
}
#menu-fullname {
	margin:15px 0;
	color:yellow;
}
#menu-thumbnail {
	width:25vw; height:25vw;
	object-fit:cover;
	border-radius:100%;
	-webkit-border-radius:100%;
	-moz-border-radius:100%;
}


#overlay-message {
	position:fixed;
	left:0; top:0;
	width:100vw; height:100vh;
	background-color:rgba(0,0,0,0.90);
	z-index:999;
	display:flex;
	justify-content:center;
	align-items:center;
}

#overlay-inner {
	display:flex;
	flex-direction:column;
	align-items:center;
	justify-content:center;
	width:90vw;
	height:90vh;
	max-width:600px;
	padding:60px;
	font-size:15pt;
	color:#fff;
	border-radius:5px;
	-webkit-border-radius:5px;
	-moz-border-radius:5px;
}
#overlay-inner h3 {
	margin:15px 0;
	color:#007bff;
}
#overlay-inner div {text-align:center;}
#overlay-judge-photo {
	width:50vw; height:50vw;
	max-width:150px; max-height:150px;
	margin-bottom:10px;
	border-radius:100%;
	-webkit-border-radius:100%;
	-moz-border-radius:100%;
	object-fit:cover;
}
#overlay-judge-info {margin-bottom:45px;}
#overlay-judge-name {font-size:16pt;}
#overlay-judge-info a {color:#666;}
#overlay-logo {
	width:100%;
	max-width:200px;
}
#overlay-inner .fa-spinner {
	color:#aaa;
	padding:30px;
}



.modal-content {
	margin:0 15px;
	width:calc(100% - 30px);
	/* max-width:600px; */
}
.modal .close {
	position:absolute;
	right:-15px; top:10px;
	cursor:pointer;
}
.modal-body {
	padding:30px;
}
.modal .modal-form-col {
	display:flex;
	flex-direction:row;
}
.modal .modal-form-row label {
	display:inline-block;
	width:135px;
	margin: 4px 10px 6px 0;
	text-align:right;
	font-weight:500;
}
.modal .modal-form-col {
	flex-direction:column-reverse;
}
.modal .modal-form-col label {
	font-size:0.75rem;
	width:100%;
	margin:-5px 0 0 10px;
}
.modal input {
	border:none;
	border-bottom:1px solid #ccc;
	margin:0;
	padding:2px 0;
	height:auto;
	font-size:1em;
	outline:none;
	border-radius:0;
	-webkit-border-radius:0;
	-moz-border-radius:0;
}
.modal input:focus {
	box-shadow:none;
	-webkit-box-shadow:none;
	-moz-box-shadow:none;
}
.code-container {
	display:flex;
	flex-drection:row;
	align-items:center;
	justify-content:center;
}
.modal input.code {
	width:50px; margin:0 10px;
	font-size:24pt;
	text-align:center;
}
#qr-button {
	cursor:pointer;
	opacity:0.3;
}
#qr-scanner {
	border:none;
	width:100%;
	height:500px;
}
#qr-options {
	margin-top:30px;
}
#qr-message {height:40px;}
.modal small {
	font-size:.6em;
	margin-top:2px;
}
.modal .button-container {
	width:100%;
	text-align:center;
}
.modal button {
	padding-left:30px;
	padding-right:30px;
	margin-left:10px;
	margin-right:10px;
	outline:none;
}
.modal button.btn-light {
	border:1px solid #ccc;
}
.modal button i.fas {
	margin-right:10px;
}

/* On/Off Switch */

.switch {
	display:inline-block;
	cursor: pointer;
	width: 50px; height: 26px;
	background: green;
	filter:grayscale(100%) brightness(150%);
	border-radius: 25px;
	position: relative;
}
.switch:after {
	content: "";
	position: absolute;
	top: 3px;
	left: 4px;
	width: 20px;
	height: 20px;
	background: #fff;
	border-radius: 25px;
	transition: 0.2s;
}
.switch.checked {
	filter:grayscale(0%);
}
.switch.checked:after {
	left: calc(100% - 4px);
	transform: translateX(-100%);
}
.switch:active:after {width: 30px;}


/* alert & confirm modals */

#alert-modal .modal-body, #confirm-modal .modal-body, #cancel-entry-modal .modal-body {
	padding:15px 15px 25px 15px;
	font-size:12pt;
}
#alert-modal-action-buttons, #confirm-modal-action-buttons, #cancel-entry-modal-action-buttons, #em-action-buttons {
	margin:15px 0 0 0;
}

.shake {
	display:inline-block;
	animation: shake 0.5s;
	animation-iteration-count: 1;
}

#signature-drawer {
	display:block;
	position:fixed;
	bottom:-315px; left:0;
	width:100vw; height:315px;
	z-index:99999999999;
	background-color:rgba(0,0,0,0.75);
	box-shadow:0 0 30px rgba(0,0,0,0.25);
	padding:15px;
	transition:0.5s ease-in-out;
}
#signature-drawer.open {
	bottom:0;
}
#signature-drawer canvas {
	background-color:#fff;
	border-radius:5px;
}
#signature-drawer p {
	text-align:center;
	color:#fff;
	margin:-5px 0 30px 0;
}
#signature-drawer p i {margin-right:10px;}
#submit-button {
	width:100%;
	margin:5px 0 0 0;
}

#panic-button {
	width:30px;
}

@keyframes shake {
	0% { transform: translate(0, 1px); }
	10% { transform: translate(0, -2px); }
	20% { transform: translate(0, 0px); }
	30% { transform: translate(0, 2px); }
	40% { transform: translate(0, -1px); }
	50% { transform: translate(0, 2px); }
	60% { transform: translate(0, 1px); }
	70% { transform: translate(0, 1px); }
	80% { transform: translate(0, -1px); }
	90% { transform: translate(0, 2px); }
	100% { transform: translate(0, -2px); }
}
@-webkit-keyframes pulsate-fwd{0%{-webkit-transform:scale(1);transform:scale(1)}50%{-webkit-transform:scale(1.25);transform:scale(1.25)}100%{-webkit-transform:scale(1);transform:scale(1)}}@keyframes pulsate-fwd{0%{-webkit-transform:scale(1);transform:scale(1)}50%{-webkit-transform:scale(1.25);transform:scale(1.25)}100%{-webkit-transform:scale(1);transform:scale(1)}}





body {font-size:15pt;}
@media (max-width:900px) {body {font-size:14pt;}}
@media (max-width:800px) {body {font-size:13pt;}}
@media (max-width:700px) {body {font-size:12pt;}}
@media (max-width:600px) {body {font-size:11pt;}}
@media (max-width:500px) {body {font-size:10pt;}}
@media (max-width:400px) {body {font-size:9pt;}}

@media (max-width:767px) {
	#top {height:60px;}
	#logo {width:120px;}
}

@media (max-width:600px) {
	#cleanup-button {padding:0 15px;}
	#cleanup-button span {display:none;}
}


.modal-header {
	position: relative;
	background-color: #0c479e;
	color: #fff;
	justify-content: center;
	padding: 0.5rem;
	font-size: 14pt;
}
.modal-close {
	position: absolute;
	top: 3px;
	right: 5px;
	padding: 5px;
	cursor: pointer;
	z-index: 5;
	color: rgba(255, 255, 255, 0.5);
}
#comp-switcher .modal-body {
	margin:0; padding:0;
}
#comp-switcher-list-container {
	max-height:calc(100vh - 120px);
	overflow-y:scroll;
}
#comp-switcher ul {
	list-style-type:none;
	margin:10px 15px; padding:0;
}
#comp-switcher ul li {
	display:flex;
	flex-direction:row;
	flex-wrap:nowrap;
	align-items:center;
	justify-content:space-between;
	padding:10px 0;
	line-height:1rem;
	cursor:pointer;
}
#comp-switcher ul li .active-comp-photo {
	width:60px; height:50px;
	position:relative;
	margin-right:15px;
	border-radius:5px;
	-webkit-border-radius:5px;
	-moz-border-radius:5px;
	overflow:hidden;
}
#comp-switcher ul li .active-comp-photo img {
	position:absolute;
	left:0; top:0;
	width:100%; height:100%;
	object-fit:cover;
}
#comp-switcher ul li .active-comp-photo i {
	background-color:#ccc;
	color:#fff;
	font-size:36px;
	padding:7.5px 5px;
}
#comp-switcher ul li .active-comp-info {
	width:100%;
}
#comp-switcher ul li h5 {
	margin:0;
	font-size:1.2rem;
}
#comp-switcher ul li div div {
	color:#999;
	margin:2.5px 0;
}
#navbar > ul > li#comp-switcher-icon > a img {
	border:1px solid rgba(255,255,255,0.2);
	background-color:rgba(255,255,255,0.2);
	border-radius:5px;
}
#navbar > ul > li#comp-switcher-icon.img-exists > a img {
	background:none;
	border:none;
}


.heatlist-error {
	position:absolute;
	left:0; top:0;
	width:100%; height:100%;
	display:flex;
	flex-direction:column;
	align-items:center;
	justify-content:center;
	text-align:center;
	font-size:1.2rem;
	color:rgba(0,0,0,0.33);
}
.heatlist-error i {
	font-size:48px;
	display:block;
	margin-bottom:15px;
	color:rgba(0,0,0,0.1);
}


/* START PAGE / MAIN MENU */

#welcome {
	position:absolute;
	left:0; top:0;
	width:100vw; height:100vh;
	text-align:center;
	padding:60px 30px;
}
#welcome-logo {
	width:100%;
	max-width:300px;
	margin-bottom:60px;
}

#welcome-menu {
	display:flex;
	flex-direction:row;
	list-style-type:none;
	flex-wrap:wrap;
	align-items:flex-start;
	justify-content:center;
	color:#fff;
	margin:0; padding:0;
}
#welcome-menu li {
	text-align:center;
	cursor:pointer;
	font-size:16pt;
	margin:30px;
	position:relative;
}
#welcome-menu li img {
	width:10vw; height:10vw;
	min-width:120px; min-height:120px;
	object-fit:cover;
	margin-bottom:5px;
	display:block;
	transition:0.25s ease-in-out;
}
#welcome-menu li:hover img {
	transform:scale(105%);
}

#welcome-menu li li {
	position:absolute;
	left:-30px; top:-30px;
	width:100%; height:100%;
}

@media(max-width:767px) {
	#welcome {
		overflow-y:scroll;
	}
	#welcome-menu {

	}
	#menu-director {display:none;}
	#menu-registrar {display:none;}
}
@media(min-width:1174px) {
	#menu-judge {display:none;}
}

.puff-in-center-1 {animation:puff-in-center .5s cubic-bezier(.47,0.000,.745,.715) both}
.puff-in-center-2 {animation:puff-in-center .5s cubic-bezier(.47,0.000,.745,.715) .05s both}
.puff-in-center-3 {animation:puff-in-center .5s cubic-bezier(.47,0.000,.745,.715) .1s both}
.puff-in-center-4 {animation:puff-in-center .5s cubic-bezier(.47,0.000,.745,.715) .15s both}
.puff-in-center-5 {animation:puff-in-center .5s cubic-bezier(.47,0.000,.745,.715) .2s both}
.puff-in-center-6 {animation:puff-in-center .5s cubic-bezier(.47,0.000,.745,.715) .25s both}
.puff-in-center-7 {animation:puff-in-center .5s cubic-bezier(.47,0.000,.745,.715) .3s both}
.puff-in-center-8 {animation:puff-in-center .5s cubic-bezier(.47,0.000,.745,.715) .35s both}
@keyframes puff-in-center{0%{transform:scale(2);filter:blur(4px);opacity:0} 100%{transform:scale(1);filter:blur(0);opacity:1}}

@keyframes slide-in-bck-center {0%{transform:scale(2500%);opacity:0.25} 100%{transform:scale(100%);opacity:1}}
.slide-in-bck-center{
	animation:slide-in-bck-center .5s cubic-bezier(.25,.46,.45,.94) reverse both;
	pointer-events:none;
}