@font-face {
	font-family: 'viamaaxregular';
	src: url("/fonts/maaxvia-regular-webfont.woff2") format("woff2"), url("/fonts/maaxvia-regular-webfont.woff") format("woff");
	font-weight: normal;
	font-style:normal
}

@font-face {
	font-family: 'viamaaxmedium';
	src: url("/fonts/maaxvia-medium-webfont.woff2") format("woff2"), url("/fonts/maaxvia-medium-webfont.woff") format("woff");
	font-weight: normal;
	font-style:normal
}

@font-face {
	font-family: 'viamaaxbold';
	src: url("/fonts/maaxvia-bold-webfont.woff2") format("woff2"), url("/fonts/maaxvia-bold-webfont.woff") format("woff");
	font-weight: normal;
	font-style:normal
}

body {
	font-family: 'viamaaxregular' !important;
	color: #000 !important;
	overflow-x: hidden;
	overflow-y: hidden;
	background: #fff;
}

html {
	overflow-x: hidden;
	overflow-y: auto;
}

header
{
	font-family: 'viamaaxregular';
	background: #fff;
	height: auto;
}

header h1 {
	font-size: 24px;
	letter-spacing: -0.5px;
}

#intro h2 {
	font-size: 16px;
	letter-spacing: -0.5px;
	padding: 0 10px 20px 10px;
}

footer {
	color: #fff;
	background: #353535;
	padding: 3rem 3rem;
}

#langSwitcher {
	float: right;
	margin: 15px;
	padding: 5px 12px;
	border: 1px solid #3c3c3b;
	font-family: viamaaxregular;
	font-size: 14px;
	color: #000;
	text-decoration: none;
	letter-spacing: 1px;
}

#langSwitcher:hover {
	opacity: 0.9;
	-webkit-box-shadow: 0 0 43px -5px rgba(0,0,0,0.75);
    -moz-box-shadow: 0 0 43px -5px rgba(0,0,0,0.75);
	box-shadow: 0 0 43px -5px rgba(0,0,0,0.75);
}

#refreshMobile {
	color: #898989;
	font-size: 13px;
	padding-bottom: 10px;
}

#refreshMobile img {
	margin-top: 5px;
}

#skip a {
	position:absolute;
	left:-10000px;
	top:auto;
	width:1px;
	height:1px;
	overflow:hidden;
}

#skip a:focus {
	position:static;
	width:auto;
	height:auto;
	background: #fff;
	border: 5px solid #ccc;
}

#intro {
	background-color: #f4f4f4;
	text-align: center;
	padding-top: 40px;
	padding-bottom: 40px;
	width: 100%;
	font-family: viamaaxregular;
	line-height: 1.6;
}

#intro svg {
	margin-bottom: 20px;
}

#intro > div {
	width: 380px;
	margin: 0 auto;
}

.d-flex {
	display: flex !important;
	text-align: left;
	margin-bottom: 18px;
}

.dot {
	background-color: #FFCC00;
	display: block;
	border-radius: 50%;
	width: 36px;
	height: 36px;
	padding: 6px;
	color: #3C3C3B;
	font-size: 22px;
	text-align: center;
	font-family: viamaaxbold;
	line-height: 24px;
	margin-right: 20px;
	flex-shrink: 0;
}

#trainInfo {
	opacity: 0;
	-webkit-transition: opacity 2s;
	-moz-transition: opacity 2s;
	-ms-transition: opacity 2s;
	-o-transition: opacity 2s;
	transition: opacity 2s;
	position: absolute;
	left: 0px;
	top: 40%;
	transform: translateY(-50%);
	padding: 10px;
	width: 100%;
	pointer-events: none;
}

.info-container {
	width: 960px;
	margin: auto;
}

.info-shadow {
	background-color: #fff;
	box-shadow: 0 1rem 1rem 0 rgb(0 0 0 / 12%);
	color: #000;
	padding: 20px;
	width: 300px;
	pointer-events: auto;
}

#speedometer img {
	height: 30px;
	vertical-align: inherit;
	width: 39px;
}

#speedometer {
	font-size: 16px;
	margin-bottom: 10px;
	display: inline-block;
}

#speedometer span {
	font-size: 40px;
	line-height: 110%;
	margin-left: 20px;
}

#directionArrow {
	height: 100px;
	width: 100px;
}

#nextStop {
	font-size: 16px;
}

#nextStop div {
	font-size: 12px;
	color: #999;
	line-height: 0.9;
}

#nextStop div:nth-of-type(2) {
	padding-top: 10px;
	margin-top: 10px;
	border-top: 1px solid #666;
}

#logo
{
	height: 40px;
	width: 90px;
	margin-top: 15px;
	margin-left: 15px;
}

main.row {
	position: relative;
	margin: 0 !important;
	display: none;
	background: #fff !important;
}

#leftPanel, #rightPanel {
	padding: 0;
}

#leftPanel {
	width: 960px;
	margin-right: auto;
	margin-left: auto;
}

#rightPanel {
	position: relative;
}

#resize-map {
	padding: 15px 10px;
	-webkit-box-shadow: 1px 1px 8px 1px rgba(122,122,122,0.87);
	-moz-box-shadow: 1px 1px 8px 1px rgba(122,122,122,0.87);
	box-shadow: 1px 1px 8px 1px rgba(122,122,122,0.87);
	position: absolute;
	top: 50%;
	left: 8px;
	z-index: 2;
	background-color: #fff;
	transform: translateY(-50%);
	cursor: pointer;
}

#resize-map.expand img {
    -webkit-transform: rotate(180deg); /* Chrome, Safari, Opera */
    transform: rotate(180deg);
}

#resize-map img {
	-moz-transition: -moz-transform 200ms ease-out;
	-o-transition: -o-transform 200ms ease-out;
	-webkit-transition: -webkit-transform 0.2s ease-out;
	-ms-transition:     -ms-transform 0.2s ease-out;
	transition:         transform 0.2s ease-out;
}

#resize-map:hover img {
	-moz-transform: scale(1.3);
	-webkit-transform: scale(1.3);
	-o-transform: scale(1.3);
	-ms-transform: scale(1.3);
	transform: scale(1.3);
}

#resize-map.expand:hover img {
	-moz-transform: scale(1.3) rotate(180deg);
	-webkit-transform: scale(1.3) rotate(180deg);
	-o-transform: scale(1.3) rotate(180deg);
	-ms-transform: scale(1.3) rotate(180deg);
	transform: scale(1.3) rotate(180deg);
}

.marker {
	display: block;
	border: none;
	border-radius: 30%;
	cursor: pointer;
	padding: 0;
	width: 57px;
	height: 84px;
}

#panelHeader {
	font-family: 'viamaaxregular';
	padding: 20px 30px;
	color: #fff;
	height: 65px;
	width: 300px;
	margin: auto;
}
#trainSelect img {
	filter: invert(100%) sepia(0%) saturate(0%) hue-rotate(56deg) brightness(104%) contrast(104%);
}


#panelHeader div {
	display: inline-block;
}

#panelHeader > div:last-child {
	color: #ccc;
}

.last_refresh {
	margin-right: 10px;
}

.last_refresh+img {
	cursor: pointer;
}

.loader:not(.disabled) {
	-moz-transition: -moz-transform 200ms ease-out;
	-o-transition: -o-transform 200ms ease-out;
	-webkit-transition: -webkit-transform 0.2s ease-out;
	-ms-transition:     -ms-transform 0.2s ease-out;
	transition:         transform 0.2s ease-out;
}

.loader.rotate-360 {
    -webkit-transform: rotate(360deg); /* Chrome, Safari, Opera */
    transform: rotate(360deg);
}

.loader:not(.rotate-360):hover {
    -webkit-transform: rotate(180deg); /* Chrome, Safari, Opera */
    transform: rotate(180deg);
}

.loader.disabled {
    -webkit-transform: none; /* Chrome, Safari, Opera */
    transform: none;
}

#trainSelect {
	margin-left: 15px;
	padding-bottom: 5px;
	border-bottom: 1px solid #898989;
	line-height: 100%;
	width: 200px;
	display: inline-block;
	font-size: 16px;
	color: #000;
	float: right;
}

#trainSelect:focus, #trainSelect:hover {
	box-shadow: 0px 0px 8px 5px #337ab7;
}

#trainSelect img {
	position: relative;
	top: 4px;

	-moz-transition: -moz-transform 200ms ease-out;
	-o-transition: -o-transform 200ms ease-out;
	-webkit-transition: -webkit-transform 0.2s ease-out;
	-ms-transition:     -ms-transform 0.2s ease-out;
	transition:         transform 0.2s ease-out;
	}

#trainSelect[aria-expanded=true] img {
    -webkit-transform: rotate(180deg); /* Chrome, Safari, Opera */
    transform: rotate(180deg);
}

.dropdown {
	width: 100%
}

.dropdown-toggle:hover, [role=button]:hover, [type=button]:hover
{
	cursor: pointer;
}

#station_table_container
{
	overflow: auto;
}

.disabled:hover, .disabled a:hover, .dropdown-menu, .panel
{
	cursor: default !important;
}

.scrollable-menu
{
    height: auto;
    max-height: 200px;
    overflow-y: auto;
}

.not_departed
{
	font-style: italic;
}

.emphasis
{
	font-weight: bold;
	cursor: default;
	display: inline-block;
	position: absolute;
	top: 2px;
	left: 5px;
	color: black;
}

#timeTable {
	padding: 15px 0px 0px 0px;
	display: none;
	overflow-y: auto;
	height: 100%;
	background: #fff;
}
#timeTable a {
	color: #000;
	text-decoration: underline;
}

#timeTable .arrived {
	color: #999;
}

#timeNotice {
	font-size: 12px;
}

table thead th {
	font-size: 16px;
}

table th, table td {
	font-size: 14px;
}

td.med, td.bad, td.goo {
    position: relative;
}

td.med:after, td.bad:after, td.goo:after {
    content: "";
    position: absolute;
    top: 0;
    right: 0;
    width: 0; 
    height: 0; 
    display: block;
    border-left: 15px solid transparent;
    border-bottom: 15px solid transparent;
}

td.goo:after {
    border-top: 15px solid #009584;
}

td.med:after {
    border-top: 15px solid #fce526;
}

td.bad:after {
    border-top: 15px solid #f26464;
}

table th, table td
{
	text-align: left;
	vertical-align: middle !important;
	border: 1px solid #fff !important;
	font-weight: normal;
}

.table-striped > tbody > tr:nth-child(2n+1) > *
{
   background-color: #f4f4f4 !important;
}

.table-striped > tbody > tr:nth-child(2n) > *
{
   background-color: #fff !important;
}

.dropdown-header
{
	cursor: default;
}

#map {
	width: 100%;
	height: 400px;
	background-color: #fff;
}

#train_list
{
	text-align: center;
	width: 200px;
}

#train_list a {
	font-weight: bold;
}

#train_list a.not-departed, #train_list span.not-departed {
	font-style: italic;
	color: gray;
}

#train_list li span.glyphicon {
	font-size: 13px;
	position: absolute;
	right: 5px;
	margin-top: 3px;
	top: auto;
}

#alerts {
	margin: 15px 0 0 0;
	background-color: #FDE6E9;
	padding: 10px;
	color: #000;
	white-space: pre-line;
}

#alerts strong {
	font-weight: normal;
	font-family: viamaaxbold;
}

/* Feedback */
/* Based on Stephen Morley */
#rating {
	display: inline-block;
	margin-bottom: 10px;
}
.starRating:not(old) {
  display        : inline-block;
  width          : 15em;
  height         : 3em;
  overflow       : hidden;
  vertical-align : bottom;
}
.starRating:not(old) > input {
  margin-right : -100%;
  opacity      : 0;
}
.starRating:not(old) > label{
  display         : block;
  float           : right;
  position        : relative;
  background      : url('../img/star-off.svg');
  background-size : contain;
}
.starRating:not(old) > label:before{
  content         : '';
  display         : block;
  width           : 3em;
  height          : 3em;
  background      : url('../img/star-on.svg');
  background-size : contain;
  opacity         : 0;
  transition      : opacity 0.2s linear;
}
.starRating:not(old) > label:hover:before,
.starRating:not(old) > label:hover ~ label:before,
.starRating:not(:hover) > :checked ~ label:before{
  opacity : 1;
}
#feedback img {
	display: none;
	transform: translate(-50%);
	position: absolute;
	left: 50%;
	bottom: 20px;
}

@media screen and (max-width: 992px) {
	#leftPanel {
		width: 100% !important;
	}
	#timeTable {
		padding: 15px 15px 0px 15px;
	}
}

@media screen and (max-width: 768px) {
	html, body {
		overflow-y: auto !important;
	}

	#logo {
		height: 50px !important;
		width: 113px;
	}

	header h1 {
		font-size: 20px;
		padding: 0 25px !important;
	}

	#speedometer span {
		font-size: 40px !important;
	}

	#speedometer img {
		height: 45px !important;
		width: 39px !important;
	}

	#leftPanel {
		width: 100% !important;
		z-index: 1;
		float: none;
	}

	#rightPanel {
		width: 100% !important;
		float: none;
	}
	#map {
		height: 250px;
	}

	#trainInfo {
		position: relative;
		left: auto;
		top: auto;
		transform: translateY(0%);
		background-color:#eee;
	}
	.info-shadow, .info-container {
		width: 100%;
	}

	#timeTable, #leftPanel {
		height: initial !important;
	}

	#timeNotice {
		font-size: 10px;
		padding-bottom: 10px;
	}

	#resize-map, #refresh {
		display: none !important;
	}

	#intro > div {
		width: 60%;
		padding-bottom: 20px;
	}

	.dropdown {
		width: 100%;
	}

	table thead th {
		font-size: 12px;
	}

	table th, table td {
		font-size: 11px;
	}

	#alerts {
		margin: 0;
	}
}

@media screen and (max-width: 600px) {
	#speedometer {
		margin-top: 0 !important;
	}

	#speedometer span {
		font-size: 35px !important;
	}

	#speedometer img {
		height: 30px !important;
	}

	#logo {
		height: 35px !important;
		width: 79px;
		margin-top: 10px;
		margin-left: 10px;
	}
	#langSwitcher {
		margin: 10px;
	}
}

@media screen and (max-width: 350px) {
	#timeTable table tr td:last-child, #timeTable table tr th:last-child {
		display: none;
	}
}

@media (prefers-color-scheme: dark) {
	body {
		color: #fff !important;
		background: #222 !important;
	}

	header {
		background: #222;
	}

	#langSwitcher {
		color: #fff;
		border: 1px solid #f4f4f4;
	}

	.modal-content {
		background: #222 !important;
	}

	#timeTable {
		background: #222;
		color: #fff;
	}

	#timeTable a {
		color: #fff;
		text-decoration: underline;
	}

	#timeTable .arrived {
		color: #bbb;
	}

	#intro {
		background: #222;
		color: #fff;
	}

	#trainSelect {
		color: #fff;
	}
	#panelHeader img {
		filter: none;
	}

	table th, table td
	{
		border: 1px solid #222 !important;
	}

	.table-striped > tbody > tr:nth-child(2n+1) > *
	{
		background-color: #3d3d3d !important;
	}

	.table-striped > tbody > tr:nth-child(2n) > *
	{
		background-color: #222 !important;
	}

	main.row {
		background: #222 !important;
	}

	@media screen and (max-width: 768px) {
		#trainInfo {
			background-color:#000;
		}
		.info-shadow {
			background-color:#f4f4f4;
		}
	}
}
