font-face {
font-family: 'varelaregular';
src: url('./varela-regular-webfont.woff2') format('woff2'),
url('./varela-regular-webfont.woff') format('woff');
font-weight: normal;
font-style: normal;
}
html, body {
margin: 0;
font-family: Varela, sans-serif;
background-color: #17212e;
min-height: 100vh;
overflow-x: hidden;
overflow-y: visible;
}
a {
color: inherit;
}
* {
box-sizing: border-box;
border-collapse: collapse;
}
header {
position: relative;
box-shadow: 0 0 15px rgba(0, 0, 0, .6);
color: white;
padding: 0 0 0 9vw;
background-color: #43a007;
}
.row {
display: flex;
flex-direction: row;
}
.cancelled {
text-decoration-line: line-through;
}
.cancelled-text {
font-weight: bold;
color: red;
}
.pointer {
cursor: pointer;
}
.back {
cursor: pointer;
position: absolute;
left: 17px;
top: 17px;
width: 32px;
height: 32px;
content: url('data:image/svg+xml;utf8,');
user-select: none;
}
.reload {
cursor: pointer;
position: absolute;
right: 17px;
top: 17px;
width: 32px;
height: 32px;
content: url('data:image/svg+xml;utf8,');
user-select: none;
}
.spinner {
margin: calc(50vh - 60px) auto;
border: 2px solid rgba(255, 255, 255, .7); /* Light grey */
border-top: 4px solid #3498db; /* Blue */
border-radius: 50%;
width: 120px;
height: 120px;
animation: spin 2s linear infinite;
}
@keyframes spin {
0% { transform: rotate(0deg); }
100% { transform: rotate(360deg); }
}
.loadMore {
cursor: pointer;
content: url('data:image/svg+xml;utf8,');
border-radius: 100%;
height: 48px;
width: 48px;
background-color: #eee;
margin: 0 auto;
transition: box-shadow 150ms;
border: 1px solid rgba(0, 0, 0, .1);
user-select: none;
}
.loadMore:hover {
box-shadow: 0 1px 5px 0 rgba(0, 0, 0, .3);
}
.loadMore.flipped {
transform: rotate(180deg);
margin-top: 15px;
}
table {
border-bottom: 1px solid rgba(0, 0, 0, 0.3);
width: 100%;
background-color: #fff;
min-width: 390px;
max-width: 1000px;
}
div.card {
overflow-x: auto;
}
tbody tr {
border-top: 1px solid #ccc;
}
tr {
background-color: #fff;
margin: 0 0 15px 0;
}
td, th {
text-align: center;
overflow: hidden;
}
th {
padding: 5px 3px;
}
thead tr:not(:last-child) {
background-color: #eee;
}
tbody tr:hover {
background-color: #ddd;
}
tbody tr:hover td {
background-color: transparent;
}
@supports (display: flex) {
button,
input[type="date"],
input[type="time"],
input[type="text"],
.switch {
cursor: pointer;
box-sizing: border-box;
width: 100%;
padding: .3em .5em;
border-radius: 3px;
font-size: 1.5em;
padding: 7px;
border: none;
outline: none;
box-shadow: 0 .1em .2em rgba(0, 0, 0, .5);
background-color: white;
color: black;
margin-top: 8px;
}
input[type="text"]:focus {
border-radius: 3px 3px 0px 0px;
}
.input-group {
box-shadow: 0 .1em .2em rgba(0, 0, 0, .5);
}
.input-group input[type="text"] {
border-radius: 0px;
margin-top: 0px;
border-bottom: 1px solid #ddd;
box-shadow: none;
}
.input-group input:nth-child(2) {
border-radius: 3px 3px 0px 0px;
}
.input-group input:nth-last-child(2) {
border-radius: 0px 0px 3px 3px;
}
.btn,
.selector label {
cursor: pointer;
background-color: white;
width: 32px;
padding: 3px;
height: 32px;
display: inline-block;
border-right: 1px solid rgba(0, 0, 0, .2);
user-select: none;
}
.selector {
margin-top: 8px;
margin-bottom: 8px;
margin-right: auto;
display: flex;
border-radius: 3px;
box-shadow: 0 .1em .2em rgba(0, 0, 0, .5);
overflow: hidden;
}
.selector > label {
width: 32px;
height: 32px;
user-select: none;
}
.selector > input {
display: none;
}
.selector input + label {
background: #d3d3d3;
}
.selector input:checked + label {
background: #fff;
}
.selector label {
font-weight: bold;
font-size: 0;
display: flex;
justify-content: center;
align-items: center;
}
.selector label:after {
font-size: .9rem;
color: black;
text-align: center;
line-height: .9rem;
}
.selector label.icon-ice,
.selector label.icon-ic,
.selector label.icon-icice,
.selector label.icon-dzug,
.selector label.icon-regional {
font-style: italic;
}
.selector label.icon-tram:after,
.selector label.icon-bus:after,
.selector label.icon-ferry:after,
.selector label.icon-taxi:after {
font-size: 0.6rem;
}
.switch {
position: relative;
display: inline-block;
width: 84px;
padding: 0 !important;
overflow: hidden;
flex-shrink: 0;
}
.switch input {
opacity: 0;
width: 0;
height: 0;
}
.switch input:active,
.switch input:focus {
box-shadow: 0 .1em .5em rgba(0, 0, 0, .6);
}
.slider {
position: absolute;
cursor: pointer;
top: 0;
left: 0;
right: 0;
bottom: 0;
background-color: #bbb;
height: 100%;
}
.slider:before {
position: absolute;
font-size: 13px;
padding-top: calc(25% - 7px);
line-height: 100%;
text-align: center;
height: 100%;
width: 42px;
background-color: white;
transition: .2s;
box-shadow: 0 .1em .2em rgba(0, 0, 0, .5);
}
.switch input:checked + .slider:before {
transform: translateX(42px);
}
.slider.de:before {
content: "AB";
}
.switch input:checked + .slider.de:before {
content: "AN";
}
.slider.en:before {
content: "DEP";
}
.switch input:checked + .slider.en:before {
content: "ARR";
}
}
.journey,
.journeys {
display: flex;
flex-direction: column;
}
.search {
color: white;
}
.search table {
width: 100%;
color: black;
}
.search #date {
flex-grow: 1;
margin-left: 8px;
}
.search>.title {
display: flex;
justify-content: center;
align-items: center;
}
.search>.title>h1 {
font-weight: normal;
margin-left: .5em;
text-shadow: 0 .05em .1em rgba(0, 0, 0, .5);
margin: .7em .3em .5em .3em;
}
@supports (display: flex) {
.search>.title {
margin-bottom: 20px;
}
.search>.title>.logo {
box-shadow: 0 .1em .2em rgba(0, 0, 0, .5);
background-color: #7171e5;
border-radius: 15%;
width: 50px;
height: 50px;
margin: 0;
padding: 5px 5px 2px 6px;
content: url('data:image/svg+xml;utf8,')
}
}
.search .btn.history {
content: url('data:image/svg+xml;utf8,');
}
.search .btn.swap {
content: url('data:image/svg+xml;utf8,');
}
.search .btn.go {
font-size: 1.5em;
margin-left: 5px;
display: flex;
justify-content: center;
width: 110px;
font-size: 20px;
}
.search .btn.go label {
cursor: pointer;
}
.search .btn.go svg {
margin-left: 5px;
fill: #5050ff;
}
.journeys {
min-height: 100vh;
}
.journeys table {
margin: 15px auto;
}
.journeys table a,
.journey table span {
padding: 5px 3px;
display: flex;
justify-content: center;
align-items: center;
width: 100%;
text-decoration: none;
color: black;
}
.journey table a {
padding: 5px 3px;
display: flex;
justify-content: center;
align-items: center;
text-decoration: none;
color: black;
}
.journeys a.details-button {
height: 30px;
padding: 0;
}
.journey tbody td:nth-child(3) {
text-align: left;
}
.journey tbody:not(:last-child) {
border-bottom: 1px solid rgba(0, 0, 0, .2);
}
.journey p::before {
filter: drop-shadow( 0 0 5px rgba(0, 0, 0, .6) );
margin-right: 4px;
vertical-align: sub;
}
.journey p.change,
.journey p.walk,
.journey p.transfer {
color: #fff;
text-shadow: 0 0 15px rgba(0, 0, 0, .6);
text-align: center;
}
.journey p.change::before {
content: url('data:image/svg+xml;utf8,');
}
.journey p.walk::before {
content: url('data:image/svg+xml;utf8,');
}
.journey p.transfer::before {
content: url('data:image/svg+xml;utf8,');
}
.suggestionsbox {
border-radius: 3px;
width: 100%;
box-shadow: 0 .4em .8em rgba(0, 0, 0, .5);
}
.suggestionsbox p:first-child {
border-top: 0px;
}
.suggestionsbox p {
font-size: 1.2em;
background-color: white;
color: black;
margin: 0;
border-top: 1px solid rgba(0, 0, 0, .2);
padding: .3em .6em;
cursor: pointer;
}
.suggestions {
position: relative;
display: none;
overflow: visible;
z-index: 999;
height: 0;
}
.suggestions.typing,
.suggestions.mouseover {
display: block;
}
@media (max-width: 799px) {
.search {
padding: 10px;
}
header {
padding: 0 0 0 50px;
}
.back {
left: 10px;
}
.row {
flex-wrap: wrap;
}
.search #date {
width: initial;
}
.search #time {
width: 100%;
flex-shrink: 0;
}
}
@media (min-width: 800px) {
.center {
display: flex;
justify-content: center;
align-items: center;
}
.search {
width: 90vw;
max-width: 750px;
background-color: rgba(67, 160, 71);
box-shadow: 0 .1em .2em rgba(0, 0, 0, .5);
padding: 20px;
display: flex;
flex-direction: column;
border-radius: 3px;
}
.search #date {
margin-right: 8px;
}
.search #time {
width: 40%;
}
header {
padding: 0 10vw;
}
td p {
display: inline;
margin-right: 5px;
}
th {
padding: 10px 5px;
}
.journeys table a {
padding: 10px 5px;
}
table {
box-shadow: 0 2px 5px 0 rgba(0, 0, 0, .4);
border-radius: 5px;
overflow: hidden;
border: none;
margin: 50px auto;
width: 80vw;
}
}
@supports (display: flex) {
.hidden {
display: none !important;
}
label[for=from], label[for=via], label[for=to], label[for=isarr], label[for="date"], label[for=time] {
display: none;
}
}
#overlay {
position: fixed;
z-index: 1;
left: 0;
top: 0;
width: 100%;
height: 100%;
overflow: auto;
background-color: rgba(0,0,0,0.4);
}
.station-column {
style="width: 60%;"
}
.icon-ice:after {
content: 'ICE';
}
.icon-ic:after {
content: 'IC';
}
.icon-icice:after {
content: 'IC ICE';
}
.icon-dzug:after {
content: 'D';
}
.icon-regional:after {
content: 'NV';
}
.icon-suburban:after {
content: 'S';
}
.icon-subway:after {
content: 'U';
}
.icon-tram:after {
content: 'Tram';
}
.icon-bus:after {
content: 'Bus';
}
.icon-ferry:after {
content: 'Ferry';
}
.icon-taxi:after {
content: 'Taxi';
}
.icon-back {
content: url('data:image/svg+xml;utf8,');
}
.icon-reload {
content: url('data:image/svg+xml;utf8,');
}
.icon-hint {
content: url('data:image/svg+xml;utf8,');
}
.icon-status {
content: url('data:image/svg+xml;utf8,');
}
.icon-other {
content: url('data:image/svg+xml;utf8,');
}
.icon-arrow1 {
content: url('data:image/svg+xml;utf8,');
}
.icon-arrow2 {
content: url('data:image/svg+xml;utf8,');
}
.icon-arrow3 {
content: url('data:image/svg+xml;utf8,');
}
.icon-swap {
content: url('data:image/svg+xml;utf8,');
}
.icon-settings {
content: url('data:image/svg+xml;utf8,');
}
.icon-walk-fast {
content: url('data:image/svg+xml;utf8,');
}
.icon-walk {
content: url('data:image/svg+xml;utf8,');
}
.icon-wheelchair {
content: url('data:image/svg+xml;utf8,');
}
.icon-logo {
content: url('data:image/svg+xml;utf8,')
}
.icon-travelynx {
content: url('./img/travelynx.svg');
}
.train-details {
display: flex;
justify-content: center;
}
.journey thead>tr:nth-child(2) {
border-bottom: 2px solid #ccc;
}
.train-detail {
margin: .4em 2em;
}