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;
}
* {
box-sizing: border-box;
border-collapse: collapse;
}
html, body {
margin: 0;
font-family: Varela, sans-serif;
background-color: #2a2a2a;
min-height: 100vh;
overflow-x: hidden;
overflow-y: visible;
}
a {
color: inherit;
}
header {
position: relative;
color: white;
background-color: #555;
bottom-border: 1px solid rgba(255, 255, 255, .3);
display: flex;
flex-direction: row;
justify-content: center;
}
.header-content {
max-width: 1000px;
width: 80vw;
display: flex;
flex-direction: row;
flex-wrap: wrap;
}
.header-content>div {
display: flex;
flex-direction: row;
flex-grow: 1;
flex-wrap: wrap;
}
.row {
display: flex;
flex-direction: row;
}
.cancelled {
text-decoration-line: line-through;
}
.cancelled-text {
font-weight: bold;
color: red;
}
.pointer {
cursor: pointer;
}
.back.invisible {
visibility: hidden;
}
.back,
.reload {
cursor: pointer;
width: 32px;
height: 32px;
margin: 12px;
user-select: none;
}
.spinner {
margin: calc(50vh - 60px) auto;
border: 5px solid rgba(255, 255, 255, .4);
border-top: 5px solid #fff;
border-radius: 50%;
width: 120px;
height: 120px;
animation: spin 2s linear infinite;
}
.spinning {
animation: spin 2s linear infinite;
}
@keyframes spin {
0% { transform: rotate(0deg); }
100% { transform: rotate(360deg); }
}
.loadMore {
cursor: pointer;
height: 72px;
width: 72px;
margin: 0 auto;
transition: transform 150ms;
user-select: none;
filter: invert();
}
.loadMore.flipped {
transform: rotate(180deg);
margin-top: 45px;
}
:checked ~ label[for=btn-history] {
transform: rotateX(180deg);
}
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;
font-size: 1.5em;
padding: 7px;
border: none;
outline: none;
background-color: white;
color: black;
margin-top: 8px;
border-radius: 0;
}
input[type="time"] {
flex-grow: 1;
}
input[type="text"] {
border: 1px solid transparent;
}
input[type="text"]:focus {
border-bottom: 1px solid rgba(0, 0, 0, .2);
}
.btn,
.selector label {
cursor: pointer;
background-color: white;
width: 32px;
padding: 3px;
height: 32px;
display: inline-block;
user-select: none;
}
.selector div:not(:last-child),
.selector label:not(:last-child) {
border-right: 1px solid rgba(0, 0, 0, .2);
}
.selector {
margin-top: 8px;
margin-bottom: 8px;
margin-right: auto;
display: flex;
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;
}
.switch {
position: relative;
display: inline-block;
width: 84px;
padding: 0 !important;
overflow: hidden;
flex-shrink: 0;
}
.switch input {
opacity: 0;
width: 0;
height: 0;
}
.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;
}
.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";
}
}
@media (min-width: 576px) {
}
@media (max-width: 575px) {
.selector:nth-child(2) {
flex-basis: 100%;
}
}
.journey,
.journeys {
display: flex;
flex-direction: column;
min-height: 100vh;
}
.search {
color: white;
display: flex;
flex-direction: column;
margin-bottom: 5em;
}
.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;
margin: .7em .3em .5em .3em;
}
.search>.title>h1:hover {
-webkit-text-fill-color: transparent;
-webkit-background-clip: text !important;
background: linear-gradient(90deg, #b4dcff 20%, pink 20%, pink 40%, white 40%, white 60%, pink 60%, pink 80%, #b4dcff 80%, #b4dcff 100%);
}
.search>.title>.logo {
background-color: #7171e5;
border-radius: 15%;
width: 50px;
height: 50px;
margin: 0;
padding: 5px 5px 2px 6px;
}
.search .btn.go {
font-size: 1.5em;
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 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 {
color: white;
width: 100%;
}
.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 {
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%;
}
.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) {
.back.invisible {
display: none;
}
.header-content {
flex-grow: 1;
}
.search {
padding: 10px;
}
.back {
left: 10px;
}
.row {
flex-wrap: wrap;
}
.search #date {
width: initial;
}
.search #time {
width: 100%;
flex-shrink: 0;
}
.loadMore.flipped {
margin-top: 15px;
}
.loadMore {
width: 48px;
}
}
@media (min-width: 800px) {
.journeys table {
margin: 15px auto;
}
#content {
justify-content: center;
}
.center {
display: flex;
justify-content: center;
align-items: center;
}
.search {
width: 80vw;
max-width: 700px;
color: white;
}
.search #date {
margin-right: 8px;
}
.search #time {
width: 40%;
}
td p {
display: inline;
margin-right: 5px;
}
th {
padding: 10px 5px;
}
.journeys table a {
padding: 10px 5px;
}
table {
overflow: hidden;
border: none;
margin: 50px auto;
width: 80vw;
}
}
.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);
}
.modal {
display: flex;
position: fixed;
top: 0;
right: 0;
bottom: 0;
left: 0;
z-index: 1050;
overflow: hidden;
-webkit-overflow-scrolling: touch;
outline: 0;
}
.modal-alert {
margin: auto;
border-radius: 4px;
background-color: white;
width: fit-content;
padding: 15px;
}
.dismiss {
content: 'OK';
border-radius: 4px;
background-color: rgba(20, 30, 255, .7);
color: white;
width: fit-content;
padding: 8px 20px;
margin-left: auto;
margin-top: 10px;
transition: background-color 300ms;
}
.dismiss:hover {
background-color: rgba(70, 100, 255, .8);
cursor: pointer;
}
.modal-header {
background-color: #43a047;
color: white;
border-radius: 6px 6px 0px 0px;
min-height: 16.4;
padding: 15px;
border-bottom: 1px solid #e5e5e5;
}
.modal-header .close {
margin-top: -2px;
}
.modal-header .modal-close {
width:53px;
float:right;
margin:-15px;
margin-left:0px;
height:53px;
border-left: 1px solid #00000040;
background: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAACXBIWXMAAAsTAAALEwEAmpwYAAABO0lEQVR42u3bURKDIAwEUNiLoyfXC3Ss4mYTh81Xv4R90wqEad+2ra1caIuXAQxgAAMYwAAGMIABDGAAA0zVGOMYYxzqibPGxdtJ/PqsCM8aF4xJKBHY40IxwcrPngbY970rJ3r1zKu5hH4DVAhR4Sk/gWiEyPC0d0AUQnR46kuQjaAIT18FWAiq8CHL4FsEZfiws8Asgjp86GHoKUJG+PDT4F2ErPCttdYVd4OzS2F0eFk/YCaIIry0IfIkkCq8FOBuMGV4OUDFkgK83Qh9GoC1Ff4kAPsw9CmAf5scdWdJCnB3h5eJgOzw2QioED4TAVXCZyGgUvgMBFQLr0ZAxfBKBFQNr0JA5fAKBFQPH40gbYtXfDb1dljRzGCPS7sdVnZymON2/2Nk8TKAAQxgAAMYwAAGMIABDLBmnWRS+u5G6HkFAAAAAElFTkSuQmCC') center no-repeat;
background-size:30px;
cursor:pointer;
}
.modal-header .modal-close:hover {
border-radius: 0px 6px 0px 0px;
}
.modal-title {
margin: 0;
line-height: 1.4;
}
.modal-dialog {
position: relative;
width: auto;
margin: 10px;
}
.modal-content {
position: relative;
background-color: #fff;
background-clip: padding-box;
border: 1px solid #999;
border: 1px solid rgba(0, 0, 0, .2);
border-radius: 6px;
outline: 0;
}
.modal-body {
position: relative;
}
@media (min-width: 768px) {
.modal-dialog {
width: 600px;
margin: 30px auto;
}
.modal-content {
}
}
.row.history:first-child {
border-top: 0px;
}
form>div.history {
margin-top: 8px;
overflow: hidden;
display: none;
margin-bottom: 1em;
user-select: none;
}
:checked ~ .history {
display: block;
}
.row.history {
font-size: 1.2em;
background-color: white;
color: black;
margin: 0;
border-top: 1px solid rgba(0, 0, 0, .2);
padding: .3em .6em .3em .3em;
cursor: pointer;
display: flex;
justify-content: space-between;
}
.history.via {
font-weight: 200;
}
.history.from,
.history.to {
width: 40%;
}
.history.to {
text-align: right;
}
.history.arrow {
width: 25px;
}
.station-column {
width: 60%;
}
.modal {
display: flex;
}
.box {
margin: auto;
background-color: white;
width: fit-content;
width: -moz-fit-content;
padding: 15px;
}
.alert.dismiss {
content: 'OK';
border-radius: 4px;
background-color: rgba(20, 30, 255, .7);
color: white;
width: fit-content;
width: -moz-fit-content;
padding: 8px 20px;
margin-left: auto;
margin-top: 10px;
transition: background-color 300ms;
}
.alert.dismiss:hover {
background-color: rgba(70, 100, 255, .8);
cursor: pointer;
}
.select a {
display: block;
text-decoration: none;
background-color: rgba(20, 30, 255, .7);
color: white;
width: 100%;
padding: 8px 20px;
margin-left: auto;
margin-top: 10px;
text-align: center;
transition: background-color 300ms;
}
.select a:first-child {
margin-top: 0px;
}
.select a:hover {
background-color: rgba(70, 100, 255, .8);
cursor: pointer;
}
.journey .link {
vertical-align: bottom;
cursor: pointer;
max-inline-size: 22px;
margin: 0 .3em;
}
.remark {
vertical-align: middle;
}
.remarks td {
margin: 0 10px;
text-align: left;
display: block;
}
.remarks {
/*background: #000000d0;*/
border: 1px solid #ddd;
padding: 0;
width: 100%;
margin: 0;
}
.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-weelchair {
content: url('data:image/svg+xml;utf8,');
}
.icon-logo {
content: url('data:image/svg+xml;utf8,')
}
.icon-travelynx {
content: url('./img/travelynx.svg');
}
.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;
}
.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';
}
#selected {
background-color: #bfbfbf !important;
}
#content {
display: flex;
flex-direction: column;
min-height: 100vh;
}
/* table */
.icon-table {
content: url('data:image/svg+xml;utf8,');
filter: invert();
}
/* canvas */
.icon-canvas {
transform: rotate(90deg);
content: url('data:image/svg+xml;utf8,');
filter: invert();
}
.mode-changers {
display: flex;
margin-left: auto;
}
.mode-changers a.active {
border-bottom: 3px solid white;
}
.mode-changers a {
border-bottom: 3px solid transparent;
align-items: center;
display: flex;
padding: 0 1em;
cursor: pointer;
}
.mode-changers a span {
font-weight: bold;
margin: 1em .4em;
}
header h3 {
margin-right: 1.5em;
}
.train-details {
display: flex;
justify-content: center;
}
.journey thead>tr:nth-child(2) {
border-bottom: 2px solid #ccc;
}
.train-detail {
margin: .4em 2em;
}