* { box-sizing: border-box; }

body {
  margin: 0;
  font-family: "Poppins", system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
  background-color: #191919;
  min-height: 100dvh;
  display: flex;
  flex-direction: column;
  align-items: center;
}

.inputcontainer {
	width: min(95vw, 1000px);
	margin-bottom: 10px;
	margin-top: 10px;
	display: flex;
	gap: 10px;
}

.logo {
	width: 300px;
	max-width: 100%;
	display: block;
	margin-left: auto;
	margin-right: auto;
}

select, input[type="text"] {
	padding: 10px;
	box-sizing: border-box;
	border-radius: 10px;
	font-size: 16px;
	font-family: "Poppins", sans-serif;
	font-weight: 400;
	border: none;
	background-color: #2D2D2D;
	color: #D8D8D8;
}

input[type="text"] {
	width: 100px;
}

.mapcontainer {
  width: min(95vw, 1000px);
  margin-bottom: 10px;
  aspect-ratio: 4960 / 1500;
  max-height: 40dvh;
  display: block;
}

.map {
  width: 100%;
  height: 100%;
  display: block;
  background: #2D2D2D;
  border-radius: 10px;
  overflow: hidden;
}

.seat.highlight {
	fill: rgba(255,255,255,1);
	stroke: #FFF;
	stroke-width: 5;
	animation: flash 0.8s ease-in-out 0s infinite;
}

@keyframes flash {
	0%, 100% {
		fill: #ffffff00;
	}
	50% {
		fill: #ffffffff;
	}
}

.seat {
  fill: rgba(255,255,255,0);
}

.routecontainer {
	width: min(95vw, 1000px);
	height: 100px;
	margin-bottom: 10px;
}

.route {
	width: 100%;
	height: 100%;
	padding: 10px;
	border-radius: 10px;
	font-size: 16px;
	background-color: #2D2D2D;
	border: none;
	color: #D8D8D8;
}

.version {
	text-align: center;
	font-size: 16px;
	color: #2D2D2D;
}

.zoom-slider-container {
	width: min(95vw, 1000px);
	margin-bottom: 10px;
	display: flex;
	gap: 20px;
}

.zoom-slider {
	width: 100%;
	display: block;
	margin: auto;
	appearance: none;
	height: 6px;
	background: #2d2d2d;
	border-radius: 5px;
	outline: none;
}

.zoom-slider::-webkit-slider-thumb {
	appearance: none;
	width: 20px;
	height: 20px;
	background: #D8D8D8;
	border-radius: 50%;
	cursor: pointer;
}

.zoom-slider::-moz-range-thumb {
	width: 20px;
	height: 20px;
	background: #D8D8D8;
	border-radius: 50%;
	cursor: pointer;
}

.zoom-label {
	width: 50px;
	color: #2D2D2D;
}

.spin-page {
	animation: spin 1.5s ease-in-out forwards;
}

@keyframes spin {
    from { transform: rotate(0deg); }
    to { transform: rotate(360deg); }
}

.overlay {
	position: fixed;
	inset: 0;
	background: rgba(0, 0, 0, 0.5);
	backdrop-filter: blur(2px);
	display: grid;
	place-items: center;
	opacity: 0;
	visibility: hidden;
	pointer-events: none;
	transition: opacity 200ms ease, visibility 200ms ease;
	z-index: 9999;
}

.overlay--on {
	opacity: 1;
	visibility: visible;
	pointer-events: auto;
}

.body--lock {
	overflow: hidden;
	overscroll-behavior: contain;
}