html,
body
{
	height: 100%;
	-webkit-tap-highlight-color: rgba(0,0,0,0);
}
*
{
	box-sizing: border-box;
}

body
{
	background-image: url(back.jpg);
	background-size: cover;
	background-attachment: fixed;
	font-family: sans-serif;
	font-size: 16px;
	line-height: 1.5;
}

header
{
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
}

header h1
{
	float: left;
	margin: 0;
	padding: 15px 25px;
	font-size: 110%;
	border-bottom-right-radius: 30px;
	background: rgba(255,255,255, 0.5);
}

header nav
{
	float: right;
	display: none;
}
	header nav ul
	{
		margin: 0;
		padding: 0;
		list-style: none;
		border-bottom-left-radius: 30px;
		overflow-y: hidden;
		background: rgba(255,255,255, 0.33);
	}
		header nav li
		{
			display: inline-block;
		}
		/*header nav li:nth-child(3)
		{
			display: none;
		}*/
			header nav a,
			header nav li > div
			{
				outline: none;
				display: block;
				padding: 15px 25px;
				opacity: 0.66;
				transition: opacity 0.3s, background 0.3s;
			}
			header nav a:hover,
			header nav li > div:hover,
			header nav a:active
			{
				opacity: 1;
				background: rgba(255,255,255, 0.5);
			}
				header nav li ul
				{
					position: absolute;
					margin-left: -25px;
					margin-top: 15px;
					border-bottom-right-radius: 30px;
					overflow-y: hidden;
					z-index: 100;
					background: #fff;
					box-shadow: 0px 10px 20px rgba(0,0,0, 0.1);
				}
					header nav li li
					{
						display: block;
						transition: max-height 0.3s, opacity 0.3s;
						max-height: 0;
						opacity: 0;
					}
					header nav li > div:hover li
					{
						max-height: 50px;
						opacity: 1;
					}
			
a
{
	text-decoration: none;
}
nav li > div i,
a i
{
	margin-right: 5px;
}
		
main
{
	margin-top: 85px;
	padding-bottom: 100px;
}

.panel
{
	margin: 25px;
	padding: 25px;
	border-radius: 30px;
	box-shadow: 0px 20px 30px -30px rgba(0,0,0, 0.5);
	background: rgba(255,255,255, 0.66);
	opacity: 1;
	transition: visibility 1s, opacity 1s, margin-top 1s;
}
.panel.hidden
{
	display: block;
	opacity: 0;
	margin-top: -25px;
	visibility: hidden;
	transition: visibility 0.5s, opacity 0.5s, margin-top 0.5s;
}

.hidden
{
	display: none;
}

@keyframes Loading
{
	0% { transform: rotate(0); }
	100% { transform: rotate(360deg); }
}
.loading
{
	text-align: center;
	padding: 100px 0;
}
.panel .loading
{
	padding: 50px 0 !important;
}
	.loading > *
	{
		display: none;
		visibility: hidden;
		height: 0;
	}
	.loading::before
	{
		display: inline-block;
		content: "";
		width: 40px;
		height: 40px;
		border: 10px solid rgba(0,0,0, 0);
		border-left-color: rgba(255,255,255, 0.5);
		border-right-color: rgba(255,255,255, 0.5);
		border-radius: 50%;
		animation-name: Loading;
		animation-duration: 1s;
		animation-iteration-count: infinite;
		animation-timing-function: linear;
	}
	.panel .loading::before,
	.dialog .loading::before,
	.panel.loading::before
	{
		border-left-color: rgba(0,0,0, 0.2);
		border-right-color:rgba(0,0,0, 0.2);
	}
	
/* SEATMAP */

.seatmap
{
	background: #fff;
	border-radius: 20px;
	position: relative;
	font-size: 0.7vw;
	line-height: 1.3;
	min-height: 500px;
}
	.seatmap .map
	{
		transition: opacity 1s;
	}
	.seatmap .cover
	{
		position: absolute;
		background: #f4f4f4;
		border-radius: 20px;
		transition: width 1s, height 1s, left 1s, top 1s, opacity 1s;
	}
		.seatmap .top
		{
			border-bottom: 1px solid #ddd;
			margin: 0 25px;
			margin-bottom: 20px;
		}
			.seatmap h3
			{
				margin: 0;
				color: #999;
				padding: 10px 0;
				font-size: 175%;
			}
			.seatmap .top a
			{
				float: right;
				color: #999;
				display: block;
				padding: 10px 15px;
				padding-top: 13px;
				margin-right: -15px;
				font-size: 90%;
			}
		.seatmap .sector
		{
			display: flex;
			align-items: center;
			justify-content: center;
			text-align: center;
			position: absolute;
			color: rgba(0,0,0, 0.75);
			font-size: 120%;
			font-weight: bold;
			border-radius: 12px;
			background: #eee;
			opacity: 0.66;
			transition: opacity 0.3s;
		}
		.seatmap .sector:hover
		{
			opacity: 1;
		}
			.seatmap .sector span
			{
				display: block;
				font-weight: normal;
				font-size: 75%;
			}
		.seatmap .region
		{
			position: absolute;
			color: #999;
			display: flex;
			align-items: center;
			justify-content: center;
			border-radius: 12px;
			border: 1px solid #ddd;
		}
		.seatmap .inside
		{
			position: relative;
			left: 0;
			top: 0;
			height: 80%;
		}
			.seatmap .seat
			{
				display: flex;
				align-items: center;
				justify-content: center;
				position: absolute;
				color: rgba(0,0,0, 0.75);
				font-size: 200%;
				font-weight: bold;
				padding: 15px;
				border-radius: 15px;
				background: #e8e8e8;
				box-sizing: border-box;
				opacity: 0.66;
				transition: opacity 0.3s;
			}
			.seatmap .seat:hover
			{
				opacity: 1;
			}
			.seatmap .big .seat
			{
				font-size: 150%;
				border-radius: 5px;
			}
.ticketTypeChooser
{
	text-align: center;
	padding: 35px;
}
	.ticketTypeChooser h3
	{
		margin: 0;
	}
	.ticketTypeChooser p
	{
		margin: 0;
		margin-bottom: 35px;
	}
	.ticketTypeChooser ul
	{
		margin: 0;
		padding: 0;
		list-style: none;
	}
	.ticketTypeChooser ul::after
	{
		display: block;
		content: "";
		clear: both;
	}
		.ticketTypeChooser li
		{
			float: left;
			margin: 0 1%;
			margin-bottom: 1%;
			width: 23%;
		}
			.ticketTypeChooser a
			{
				display: block;
				padding: 15px;
				height: 75px;
				box-sizing: border-box;
				font-size: 150%;
				border-radius: 12px;
				color: rgba(0,0,0, 0.66);
				opacity: 0.66;
				transition: opacity 0.3s, border 0.3s;
				border: 3px dashed transparent;
			}
			.ticketTypeChooser a:hover
			{
				opacity: 1;
			}
			.ticketTypeChooser a.active
			{
				opacity: 1;
				border: 3px dashed rgba(0,0,0, 0.33);
			}

/* DIALOG */

.dialog.hidden
{
	display: block;
}
	.dialog .back
	{
		position: fixed;
		left: 0;
		top: 0;
		width: 100%;
		height: 100%;
		background: rgba(0,0,0, 0.66);
		transition: opacity 1s;
	}
	.dialog.hidden .back
	{
		opacity: 0;
	}
		.dialog .front
		{
			position: absolute;
			left: 5%;
			top: 5%;
			width: 90%;
			padding: 25px;
			border-radius: 30px;
			box-shadow: 0px 20px 30px -30px rgba(0,0,0, 0.5);
			box-sizing: border-box;;
			background: #fff;
			transition: opacity 1s, left 1s, top 1s, width 1s, height 1s;
		}
		.dialog.hidden .front
		{
			top: -5%;
			opacity: 0;
		}
			.dialog .header
			{
				border-bottom: 1px solid #ddd;
				margin-bottom: 25px;
			}
			.dialog .header::after
			{
				content: "";
				display: block;
				clear: both;
			}
				.dialog .header h2
				{
					float: left;
					margin: 0;
					font-size: 125%;
				}
				.dialog .header a
				{
					display: block;
					float: right;
					color: #666;
					font-size: 125%;
					margin-top: -5px;
				}
			.dialog.hidden .content
			{
				display: none;
			}

.optional.hidden
{
	display: block;
}
	.optional .title
	{
		display: block;
		padding: 10px;
		color: rgba(0,0,0, 0.66);
		background: #f4f4f4;
		border-bottom: 1px solid #ddd;
		opacity: 0.75;
		transition: opacity 0.3s;
	}
	.optional .title:hover
	{
		opacity: 1;
	}
	.optional .title::after
	{
		display: block;
		content: "";
		clear: both;
	}
		.optional .title h3
		{
			float: left;
			margin: 0;
			font-size: 110%;
			font-weight: normal;
		}
		.optional .title i
		{
			float: right;
			font-size: 150%;
			opacity: 0.75;
			transition: opacity 0.3s, transform 0.5s;
		}
		.optional.hidden .title i
		{
			transform: rotate(180deg);
		}
		.optional .title:hover i
		{
			opacity: 1;
		}
	.optional .content
	{
		padding: 15px 10px;
		transition: max-height 0.5s, opacity 0.5s;
		overflow-y: hidden;
		/*max-height: 500px;*/
	}
	.optional.hidden .content
	{
		max-height: 0;
		opacity: 0;
	}

form > div,
fieldset > div
{
	margin-bottom: 15px;
}
	fieldset
	{
		padding: 15px 0;
		border: 0;
		border-top: 1px solid #ddd;
	}
		fieldset legend
		{
			padding: 0;
			padding-right: 15px;
			font-weight: bold;
			font-size: 85%;
			color: #999;
		}
		form label
		{
			display: block;
		}
		form .check label
		{
			display: initial;
			margin-left: 5px;
		}
		form input:not([type=checkbox]),
		form select,
		form textarea
		{
			width: 100%;
			box-sizing: border-box;
			padding: 5px;
			border-radius: 5px;
			border: 1px solid #ccc;
			outline: none;
		}
		form input:focus,
		form select:focus,
		form textarea:focus
		{
			border: 1px solid rgb(199, 216, 192);
		}
		form textarea
		{
			resize: vertical;
			height: 75px;
		}
form.login
{
	max-width: 500px;
	margin: auto;
	text-align: center;
}
	form.login input
	{
		max-width: 300px;
	}

.filters form .row
{
	margin-bottom: 25px;
}
	.filters form .row > div
	{
		float: none;
		width: auto;
		margin-bottom: 5px;
	}

button
{
	cursor: pointer;
	border: 0;
	padding: 8px 16px;
	font-size: 90%;
	background: #999;
	color: #fff;
	border-radius: 5px;
	transition: background 0.3s;
}
button:hover,
button:active
{
	background: #666;
}
	button i
	{
		margin-right: 5px;
	}
.buttons
{
	margin-bottom: 25px;
}
	.buttons button
	{
		margin-right: 10px;
	}

.row::after
{
	content: "";
	display: block;
	clear: both;
}
	.row > div
	{
		float: right;
		width: 48%;
	}
	.row > div:nth-child(1)
	{
		float: left;
	}

.details
{
	padding: 5px 10px;
	line-height: 1.2;
	margin-bottom: 10px;
}
	.details .row
	{
		margin-bottom: 15px;
	}
	.details span
	{
		font-size: 80%;
		color: #999;
	}
	.details strong
	{
		display: block;
		font-weight: normal;
		font-size: 105%;
	}
		.details img
		{
			border-radius: 10px;
			width: 100%;
			max-width: 250px;
		}
.details ul.items
{
	margin: 5px 0;
	padding: 0;
	list-style: none;
}
	.details ul.items li
	{
		display: inline-block;
		margin-right: 5px;
		margin-bottom: 5px;
		background: #eee;
		padding: 5px 10px;
		border-radius: 50px;
		font-size: 90%;
	}

.itemList
{
	display: table;
	width: 100%;
}
	.itemList > div
	{
		display: table-cell;
		vertical-align: top;
	}
	.panel .list
	{
		padding: 25px;
		border-radius: 20px;
		background: #fff;
	}
	.itemList .filters
	{
		width: 250px;
		padding-left: 25px;
	}
		.itemList form
		{
			border-radius: 20px;
			background: #fff;
			padding: 25px;
		}
			.itemList .filters label
			{
				font-size: 80%;
			}
			.itemList .filters .check label
			{
				font-size: 100%;
			}

table
{
	width: 100%;
	border-collapse: collapse;
	color: #666;
}
	table thead
	{
		font-size: 90%;
		text-align: left;
		border-bottom: 1px solid #bbb;
		color: #999;
	}
	table tbody tr
	{
		border-bottom: 1px solid #ddd;
		transition: background 0.3s, color 0.3s;
	}
	table tbody tr:hover
	{
		background: #f8f8f8;
		color: #444;
	}
		table th,
		table td
		{
			padding: 10px 15px;
		}
			table a.action
			{
				color: #fff;
				padding-top: 3px;
				text-align: center;
				display: inline-block;
				width: 30px;
				height: 30px;
				border-radius: 50%;
				margin: 0 5px;
				opacity: 0.66;
				transition: opacity 0.3s;
			}
			table a.action:hover
			{
				opacity: 1;
			}
				table a.action i
				{
					margin-right: 0;
				}
				table .atom
				{
					white-space: nowrap;
				}

.tickets table td:nth-child(4)
{
	white-space: nowrap;
}
.tickets table td:nth-child(4),
.tickets table td:nth-child(6)
{
	font-size: 90%;
}
.tickets table th:nth-child(7),
.tickets table td:nth-child(7)
{
	text-align: center;
}
table td a:not(.action):hover
{
    text-decoration: underline;
}

p.info
{
	margin: 0;
	margin-bottom: 15px;
	font-size: 90%;
	background-color: #f4f4f4;
	padding: 8px 20px;
	display: flex;
	align-items: center;
	color: rgba(0,0,0, 0.66);
	border-radius: 5px;
}
	.info strong
	{
		margin-right: 5px;
	}

.headbar
{
	margin-bottom: 10px;
}
.headbar::after
{
	display: block;
	content: "";
	clear: both;
}
	.headbar .info
	{
		height: 35px;
		box-sizing: border-box;
	}
	.headbar button
	{
		float: right;
		margin-left: 15px;
		height: 35px;
		box-sizing: border-box;
	}

p.message
{
	margin: 0;
	margin-bottom: 25px;
	background-color: #f4f4f4;
	border: 1px solid #e4e4e4;
	padding: 25px;
	display: flex;
	align-items: center;
	color: rgba(0,0,0, 0.66);
	border-radius: 5px;
}
	p.message i
	{
		opacity: 0.5;
		margin-right: 20px;
		font-size: 200%;
	}

.interaction button
{
	margin-right: 15px;
}

span i
{
	margin-right: 5px;
}

.pdfTicket
{
	display: none;
}

.layoutEditor
{
	background-color: #f4f4f4;
    border: 1px solid #e4e4e4;
	padding: 50px 0;
	font-size: 85%;
}
	.layoutEditor .sides
	{
		background: #fff;
		border-top: 1px solid #e4e4e4;
		border-bottom: 1px solid #e4e4e4;
		position: relative;
		padding-top: 31.5%;
	}
	.layoutEditor.oneticket .sides
	{
		padding-top: 33.36%;
	}
		.layoutEditor .sides .frontSide,
		.layoutEditor .sides .backSide
		{
			position: absolute;
			top: 0;
			left: 0;
			width: 50%;
			height: 100%;
			background-size: 100% 100%;
			opacity: 0.5;
		}
		.layoutEditor.oneticket .sides .frontSide
		{
			width: 100%;
		}
		.layoutEditor .sides > .backSide
		{
			left: 50%;
			border-left: 3px dashed #666;
		}
		.layoutEditor .sides .item
		{
			position: absolute;
			left: 10px;
			top: 10px;
			border: 1px dashed #97ad40;
			color: #819435;
			padding: 0 5px;
			background: rgba(255,255,255, 0.66);
			cursor: grab;
			user-select: none;
			font-size: 90%;
		}
		.layoutEditor .sides .item.name
		{
			font-weight: bold;
		}
		.layoutEditor .sides .item.code
		{
			font-size: 110%;
			top: 150px;
		}
		.layoutEditor .sides .item.qr
		{
			font-weight: bold;
			font-size: 120%;
			top: 10px;
			left: 33%;
			width: 14.6%;
			height: 46.3%;
			text-align: center;
			padding-top: 35px;
		}
		.layoutEditor .sides .item.type { top: 40px; }
		.layoutEditor .sides .item.seat { top: 65px; }
		.layoutEditor .sides .item.price { top: 90px; }