Skip to content
GitLab
Explore
Sign in
derf
db-infoscreen
Compare revisions
5d2c4699abd7cd0e8054f6a93dc487b2983dd1f6 to b7fa09f8139715c282ee49df764da2cfe53d4ced
Commits on Source (5)
train details: show real-time data first
· 1893167d
Birte Kristina Friesel
authored
Apr 03, 2024
1893167d
show local time if it differs from backend time
· 7152cb55
Birte Kristina Friesel
authored
Apr 03, 2024
7152cb55
also show local time for current stop
· fb0d8fc6
Birte Kristina Friesel
authored
Apr 03, 2024
fb0d8fc6
rebuild assets
· b993c332
Birte Kristina Friesel
authored
Apr 03, 2024
b993c332
release assets
· b7fa09f8
Birte Kristina Friesel
authored
Apr 03, 2024
b7fa09f8
Hide whitespace changes
Inline
Side-by-side
lib/DBInfoscreen/Controller/Stationboard.pm
View file @
b7fa09f8
...
...
@@ -1243,7 +1243,11 @@ sub train_details {
=
$station_info
->
{
dep_cancelled
};
$res
->
{
is_cancelled
}
=
$res
->
{
arrival_is_cancelled
}
||
$res
->
{
arrival_is_cancelled
};
$res
->
{
platform
}
=
$station_info
->
{
platform
};
$res
->
{
tz_offset
}
=
$station_info
->
{
tz_offset
};
$res
->
{
local_dt_da
}
=
$station_info
->
{
local_dt_da
};
$res
->
{
local_sched_arr
}
=
$station_info
->
{
local_sched_arr
};
$res
->
{
local_sched_dep
}
=
$station_info
->
{
local_sched_dep
};
$res
->
{
platform
}
=
$station_info
->
{
platform
};
$res
->
{
scheduled_platform
}
=
$station_info
->
{
sched_platform
};
}
...
...
lib/DBInfoscreen/Helper/HAFAS.pm
View file @
b7fa09f8
...
...
@@ -119,6 +119,7 @@ sub get_route_p {
dep_delay
=>
$stop
->
dep_delay
,
arr_cancelled
=>
$stop
->
arr_cancelled
,
dep_cancelled
=>
$stop
->
dep_cancelled
,
tz_offset
=>
$stop
->
tz_offset
,
platform
=>
$stop
->
platform
,
sched_platform
=>
$stop
->
sched_platform
,
load
=>
$stop
->
load
,
...
...
@@ -142,6 +143,32 @@ sub get_route_p {
$station_is_past
=
0
;
}
$ret
[
-
1
]{
isPast
}
=
$station_is_past
;
if
(
$stop
->
tz_offset
)
{
if
(
$stop
->
sched_arr
)
{
$ret
[
-
1
]{
local_sched_arr
}
=
$stop
->
sched_arr
->
clone
->
add
(
minutes
=>
$stop
->
tz_offset
);
}
if
(
$stop
->
sched_dep
)
{
$ret
[
-
1
]{
local_sched_dep
}
=
$stop
->
sched_dep
->
clone
->
add
(
minutes
=>
$stop
->
tz_offset
);
}
if
(
$stop
->
rt_arr
)
{
$ret
[
-
1
]{
local_rt_arr
}
=
$stop
->
rt_arr
->
clone
->
add
(
minutes
=>
$stop
->
tz_offset
);
}
if
(
$stop
->
rt_dep
)
{
$ret
[
-
1
]{
local_rt_dep
}
=
$stop
->
rt_dep
->
clone
->
add
(
minutes
=>
$stop
->
tz_offset
);
}
$ret
[
-
1
]{
local_dt_ad
}
=
$ret
[
-
1
]{
local_rt_arr
}
//
$ret
[
-
1
]{
local_sched_arr
}
//
$ret
[
-
1
]{
local_rt_dep
}
//
$ret
[
-
1
]{
local_sched_dep
};
$ret
[
-
1
]{
local_dt_da
}
=
$ret
[
-
1
]{
local_rt_dep
}
//
$ret
[
-
1
]{
local_sched_dep
}
//
$ret
[
-
1
]{
local_rt_arr
}
//
$ret
[
-
1
]{
local_sched_arr
};
}
}
$promise
->
resolve
(
\
@ret
,
$journey
,
$hafas
);
...
...
public/static/css/dark.min.css
View file @
b7fa09f8
body
{
margin
:
0
;
color
:
#fff
;
background-color
:
#101010
}
html
{
font-family
:
"Arimo"
,
"Arial"
,
Sans-Serif
}
a
{
color
:
#99f
;
text-decoration
:
none
}
.visually-hidden
{
clip
:
rect
(
0
0
0
0
);
clip-path
:
inset
(
50%
);
height
:
1px
;
overflow
:
hidden
;
position
:
absolute
;
white-space
:
nowrap
;
width
:
1px
}
p
,
div
.about
,
div
.config
,
div
.input-field
,
div
.notes
{
max-width
:
94%
;
margin-left
:
auto
;
margin-right
:
auto
}
p
{
text-align
:
justify
}
div
.content
{
width
:
100%
;
margin
:
0
}
.copyright
{
margin-top
:
1em
;
color
:
#999
;
clear
:
both
}
.wagonorder
{
position
:
relative
;
width
:
100%
;
height
:
100ex
}
.wagonorder.exit-unknown
.section
{
left
:
1em
;
width
:
2em
}
.wagonorder.exit-unknown
.wagon
{
left
:
3em
;
min-width
:
6em
}
.wagonorder.exit-unknown
.details
{
left
:
10em
;
right
:
0em
}
.wagonorder.exit-left
.section
{
left
:
1em
;
width
:
2em
;
background-color
:
#222
}
.wagonorder.exit-left
.wagon
{
left
:
3em
;
min-width
:
6em
}
.wagonorder.exit-left
.details
{
left
:
10em
;
right
:
0em
}
.wagonorder.exit-right
.section
{
right
:
1em
;
width
:
2em
;
background-color
:
#222
}
.wagonorder.exit-right
.wagon
{
right
:
3em
;
min-width
:
6em
}
.wagonorder.exit-right
.details
{
right
:
10em
;
left
:
0em
;
text-align
:
right
}
.wagonorder
.section
{
position
:
absolute
;
text-align
:
center
}
.wagonorder
.wagon
{
position
:
absolute
;
border
:
1px
solid
#999
;
padding-left
:
0.2em
;
padding-right
:
0.2em
}
.wagonorder
.wagon
.material-icons
{
color
:
#bbb
}
.wagonorder
.wagon
.direction
{
position
:
absolute
;
left
:
0.2em
;
bottom
:
0
;
right
:
0
;
text-align
:
center
;
color
:
#bbb
}
.wagonorder
.wagon
~
.wagon
{
border-top
:
none
}
.wagonorder
.firstclass
{
background-color
:
#330
}
.wagonorder
.powercar
{
background-color
:
#222
}
.wagonorder
.closed
{
background-color
:
#222
}
.wagonorder
.nondestwagon
{
border-style
:
dashed
}
.wagonorder
.details
{
position
:
absolute
;
padding-top
:
0.5ex
}
.wagonorder
.details
.type
{
display
:
inline-block
;
width
:
5em
;
color
:
#bbb
}
.wagonorder
.details
a
.type
{
color
:
#99f
}
.wagonorder
.details
.uicunknown
{
color
:
#999
}
.wagonorder
.details
.uicexchange
{
margin-right
:
0.2em
;
color
:
#999
}
.wagonorder
.details
.uiccountry
{
margin-right
:
0.2em
;
color
:
#999
}
.wagonorder
.details
.uic5
{
margin-right
:
0.2em
;
color
:
#999
}
.wagonorder
.details
.uic56
{
color
:
#bbb
;
font-weight
:
bold
}
.wagonorder
.details
.uic78
{
margin-right
:
0.2em
;
color
:
#bbb
;
font-weight
:
bold
}
.wagonorder
.details
.uic78
::before
{
content
:
"-"
}
.wagonorder
.details
.uictype
{
margin-right
:
0.2em
;
color
:
#bbb
;
font-weight
:
bold
}
.wagonorder
.details
.uicno
{
color
:
#bbb
}
.wagonorder
.details
.uiccheck
{
color
:
#999
}
.wagonorder
.details
.uiccheck
::before
{
content
:
"-"
}
.singlewagon
.sign-left
{
float
:
left
;
padding-left
:
5%
}
.singlewagon
.sign-right
{
float
:
right
;
padding-right
:
5%
}
.singlewagon
.sign-center
{
text-align
:
center
}
.singlewagon
.platform
{
text-align
:
center
;
background-color
:
#444
;
font-weight
:
bold
;
padding-top
:
0.5em
;
padding-bottom
:
0.5em
}
.singlewagon
img
.wagonfile
{
width
:
100%
;
margin-top
:
0.2em
;
margin-bottom
:
0.2em
}
div
.app
{
border-width
:
1px
2px
;
width
:
100%
;
margin-bottom
:
5em
}
div
.app
>
ul
{
position
:
relative
;
width
:
100%
;
list-style-type
:
none
;
margin
:
0
;
padding
:
0
}
div
.app
>
ul
>
li
{
min-height
:
7em
;
display
:
block
;
width
:
100%
;
position
:
relative
;
border-bottom
:
1px
solid
#999
;
background-color
:
#101010
}
div
.app
>
ul
>
li
.cancelled
{
background-color
:
#512f00
}
div
.app
>
ul
>
li
.past
{
opacity
:
0.8
;
background-color
:
#222
}
div
.app
>
ul
>
li
>
a
{
color
:
#fff
}
div
.app
>
ul
>
li
.anchor
{
position
:
relative
;
top
:
-12em
}
div
.app
>
ul
>
li
.line
{
font-size
:
2.7em
;
position
:
absolute
;
bottom
:
5px
;
left
:
2px
;
max-width
:
6em
;
max-height
:
3ex
;
overflow
:
hidden
}
div
.app
>
ul
>
li
.line
.trainno
{
font-weight
:
normal
}
div
.app
>
ul
>
li
.line
.trainno_sub
{
font-weight
:
normal
;
font-size
:
0.6em
;
text-align
:
center
;
margin-top
:
-0.2em
}
div
.app
>
ul
>
li
.sbahn
.trainno_sub
{
font-weight
:
normal
;
font-size
:
0.5em
;
text-align
:
center
;
margin-top
:
-0.25em
}
div
.app
>
ul
>
li
.lineinfo
{
color
:
#fff
;
font-size
:
2em
;
position
:
absolute
;
top
:
0px
;
left
:
2px
}
div
.app
>
ul
>
li
.route
,
div
.app
>
ul
>
li
.info
{
background-color
:
transparent
;
font-size
:
2.1em
;
position
:
absolute
;
top
:
0
;
left
:
7.7em
;
right
:
7em
;
height
:
1.5em
;
overflow
:
hidden
;
white-space
:
nowrap
}
div
.app
>
ul
>
li
.route
{
color
:
#ddd
}
div
.app
>
ul
>
li
.info
{
color
:
#f77
}
div
.app
>
ul
>
li
.dest
,
div
.app
>
ul
>
li
.origin
{
background-color
:
transparent
;
font-size
:
4em
;
position
:
absolute
;
bottom
:
0
;
left
:
4em
;
width
:
70%
;
white-space
:
nowrap
;
overflow
:
hidden
;
color
:
#fff
}
div
.app
>
ul
>
li
.dest
{
background-color
:
transparent
;
color
:
#fff
}
div
.app
>
ul
>
li
.origin
{
background-color
:
transparent
;
color
:
#bbb
}
div
.app
>
ul
>
li
.origin
:before
{
content
:
"von "
}
div
.app
>
ul
>
li
.platform
{
background-color
:
transparent
;
font-size
:
3em
;
font-weight
:
bold
;
position
:
absolute
;
right
:
5px
;
bottom
:
0
;
padding-left
:
0.2em
;
color
:
#fff
}
div
.app
>
ul
>
li
.changed-platform
{
color
:
#f77
}
div
.app
>
ul
>
li
.time
{
background-color
:
transparent
;
font-size
:
2.3em
;
position
:
absolute
;
right
:
5px
;
top
:
1px
;
padding-left
:
0.2em
;
color
:
#fff
}
div
.app
>
ul
>
li
.time.delayed
{
color
:
#f77
;
background-color
:
transparent
}
div
.app
>
ul
>
li
.time
.no-realtime
{
background-color
:
transparent
;
padding-right
:
1ex
}
div
.app
>
ul
>
li
.time
.no-realtime
i
.material-icons
{
font-size
:
12px
}
div
.app
>
ul
>
li
.time
.delay
{
font-size
:
1em
;
color
:
#f77
;
background-color
:
transparent
;
padding-right
:
1ex
}
div
.app
>
ul
>
li
.time
.undelay
{
font-size
:
1em
;
color
:
#7f7
;
padding-right
:
1ex
}
div
.app
>
ul
>
li
.time
.delaynorm
{
font-size
:
0.9em
;
color
:
#d99
}
div
.app
>
ul
>
li
.time
.undelaynorm
{
font-size
:
0.9em
;
color
:
#9d9
}
div
.app
.trainsubtype
{
font-weight
:
normal
;
font-size
:
70%
;
position
:
relative
;
vertical-align
:
baseline
;
top
:
-0.6ex
;
left
:
-0.5ex
}
div
.app
.replacement
{
color
:
#afa
}
div
.app
.replaced
{
color
:
#faa
}
div
.app
.sbahn
{
font-weight
:
bold
;
border-radius
:
30px
;
padding
:
3px
6px
2px
6px
;
background-color
:
#151
}
div
.app
.bahn
,
div
.app
.fern
,
div
.app
.ext
{
font-weight
:
bold
;
border-radius
:
5px
;
padding
:
3px
5px
2px
5px
}
div
.app
.bahn
{
background-color
:
#333
}
div
.app
.fern
{
background-color
:
#511
}
div
.app
.ext
{
border
:
2px
solid
#333
}
div
.app
.tram
,
div
.app
.bus
,
div
.app
.ubahn
{
padding
:
3px
5px
2px
5px
}
div
.app
.tram
{
background-color
:
#411
}
div
.app
.bus
{
background-color
:
#515
}
div
.app
.ubahn
{
background-color
:
#071e62
}
div
.app
.moreinfo
{
font-size
:
2.1em
;
position
:
fixed
;
left
:
0
;
right
:
0
;
bottom
:
0em
;
z-index
:
5
;
overflow
:
auto
;
cursor
:
default
;
background-color
:
#101010
}
div
.app
.moreinfo
.mheader
,
div
.app
.moreinfo
.mfooter
{
max-width
:
50em
;
margin-left
:
auto
;
margin-right
:
auto
}
div
.app
.moreinfo
.mheader
{
text-align
:
center
;
font-size
:
120%
;
padding-top
:
0.5em
;
padding-bottom
:
0.5em
;
padding-left
:
1em
;
padding-right
:
1em
;
border-bottom
:
0.1em
dashed
#cccccc
}
div
.app
.moreinfo
.mfooter
{
padding-top
:
0.5em
;
padding-left
:
1em
;
padding-right
:
1em
}
div
.app
.moreinfo
.dataline
{
font-size
:
120%
;
width
:
100%
;
display
:
flex
;
justify-content
:
space-between
;
margin-bottom
:
0.5em
}
div
.app
.moreinfo
.dataline
>
div
{
width
:
33%
}
div
.app
.moreinfo
.wagonorder-preview
{
font-size
:
110%
;
width
:
100%
;
text-align
:
center
;
margin-bottom
:
1em
}
div
.app
.moreinfo
.wagonorder-preview
a
{
color
:
#fff
}
div
.app
.moreinfo
.departure
{
text-align
:
right
}
div
.app
.moreinfo
.platform
{
text-align
:
center
}
div
.app
.moreinfo
.arrival
{
display
:
inline-block
;
text-align
:
right
}
div
.app
.moreinfo
.loading
{
text-align
:
center
;
width
:
100%
;
color
:
#888888
}
div
.app
.moreinfo
.minfo
{
color
:
#f77
}
div
.app
.moreinfo
.timehidden
{
color
:
#bbb
}
div
.app
.moreinfo
.undelay
{
color
:
#7f7
}
div
.app
.moreinfo
.verbose
{
margin-bottom
:
1em
}
div
.app
.moreinfo
.verbose
.no-realtime
{
color
:
#f77
}
div
.app
.moreinfo
.messages
i
.material-icons
{
font-size
:
14px
}
div
.app
.moreinfo
.details
{
margin-top
:
1em
}
div
.app
.moreinfo
.mroute
.important-stop
{
color
:
#fff
}
div
.app
.moreinfo
.mroute
.generic-stop
{
color
:
#bbb
}
div
.app
.moreinfo
.mroute
.additional-stop
{
color
:
#7f7
}
div
.app
.moreinfo
.mroute
.cancelled-stop
{
color
:
#f77
}
div
.app
.moreinfo
.mroute
.past-stop
{
list-style-type
:
disc
}
div
.app
.moreinfo
.mroute
.future-stop
{
list-style-type
:
circle
}
div
.app
.moreinfo
.mroute
i
.material-icons
{
font-size
:
14px
}
div
.app
.moreinfo
.db-attr
{
margin-bottom
:
1em
}
div
.app
.moreinfo
.db-attr
span
{
margin-right
:
0.5em
}
div
.app
.collapsed-moreinfo
{
display
:
none
}
div
.app
.expanded-moreinfo
{
display
:
block
}
ul
.ui-autocomplete
{
max-height
:
20em
;
overflow-x
:
hidden
;
overflow-y
:
auto
}
div
.geolocation
{
text-align
:
center
}
div
.candidatestatus
{
text-align
:
center
;
color
:
#999999
}
div
.candidatelist
a
{
display
:
block
;
text-decoration
:
none
;
font-size
:
1.4em
;
padding-top
:
0.3em
;
text-align
:
center
;
border-bottom
:
1px
solid
#999999
}
div
.candidatelist
a
.distance
:after
{
content
:
" km"
}
div
.candidatelist
a
.distance
{
font-size
:
0.6em
;
color
:
#999999
;
padding-top
:
0.2em
;
padding-bottom
:
0.3em
}
div
.candidatelist
a
.traininfo
{
font-size
:
0.7em
;
color
:
#999999
;
padding-top
:
0.2em
;
padding-bottom
:
0.3em
}
div
.config
{
margin-top
:
2em
;
font-family
:
Sans-Serif
;
color
:
#bbb
}
div
.config
a
{
color
:
#99f
;
cursor
:
pointer
;
text-decoration
:
none
}
div
.about
{
margin-top
:
1em
;
font-family
:
Sans-Serif
;
color
:
#bbb
}
div
.about
a
{
color
:
#99f
;
text-decoration
:
none
}
.notice
{
padding
:
15px
;
margin-bottom
:
20px
;
border
:
1px
solid
#bce8f1
;
border-radius
:
4px
;
color
:
#31708f
;
background-color
:
#d9edf7
;
margin-left
:
auto
;
margin-right
:
auto
}
.warning
{
padding
:
15px
;
margin-bottom
:
20px
;
border
:
1px
solid
#faebcc
;
border-radius
:
4px
;
color
:
#8a6d3b
;
background-color
:
#fcf8e3
;
margin-left
:
auto
;
margin-right
:
auto
}
.error
{
padding
:
15px
;
margin-bottom
:
20px
;
border
:
1px
solid
#ebccd1
;
border-radius
:
4px
;
color
:
#a94442
;
background-color
:
#f2dede
;
margin-left
:
auto
;
margin-right
:
auto
}
.error
.errcode
{
font-family
:
Monospace
;
margin-top
:
2em
;
font-size
:
100%
;
color
:
#aaaaaa
}
.container
{
max-width
:
60em
;
margin-left
:
auto
;
margin-right
:
auto
}
pre
{
margin-bottom
:
2em
}
span
.optional
,
span
.notes
{
color
:
#bbb
}
.moresettings-header
{
cursor
:
pointer
}
.moresettings-header-collapsed
:before
{
content
:
"▹ "
}
.moresettings-header-expanded
:before
{
content
:
"▿ "
}
.moresettings-collapsed
{
display
:
none
}
.moresettings-expanded
{
display
:
block
}
.developers-header
{
cursor
:
pointer
}
.developers-header-collapsed
:before
{
content
:
"▹ "
}
.developers-header-expanded
:before
{
content
:
"▿ "
}
.developers-collapsed
{
display
:
none
}
.developers-expanded
{
display
:
block
}
div
.break
{
height
:
1em
}
div
.field
{
margin-top
:
0.3em
;
margin-bottom
:
0.6em
}
.disabledbutton
{
display
:
inline-block
;
vertical-align
:
baseline
;
border-radius
:
4px
;
border
:
1px
solid
#cccccc
;
box-shadow
:
none
;
padding
:
0.9ex
;
margin-right
:
1em
}
.smallbutton
{
display
:
inline-block
;
vertical-align
:
baseline
;
border-radius
:
4px
;
border
:
1px
solid
#2e6da4
;
transition
:
background-color
.3s
;
color
:
#fff
;
background-color
:
#337ab7
;
cursor
:
pointer
;
box-shadow
:
none
;
padding
:
0.9ex
;
margin-right
:
1em
}
.smallbutton
.material-icons
,
.disabledbutton
.material-icons
{
display
:
block
;
float
:
left
;
margin-right
:
0.5ex
}
.smallbutton
img
{
display
:
block
;
float
:
left
;
margin-right
:
0.7ex
;
height
:
1.2em
}
input
,
select
,
.button
{
display
:
inline-block
;
width
:
60em
;
max-width
:
100%
;
min-height
:
1.8em
;
border-radius
:
4px
;
color
:
#fff
;
background-color
:
#101010
;
border
:
1px
solid
#444
;
box-shadow
:
inset
0
1px
1px
rgba
(
0
,
0
,
0
,
0.075
);
font-size
:
90%
;
text-align
:
center
;
vertical-align
:
middle
}
input
[
type
=
"text"
]
{
width
:
59em
;
padding-left
:
0.5em
;
padding-right
:
0.5em
;
text-align
:
left
;
box-sizing
:
border-box
}
select
{
min-height
:
2em
}
input
[
type
=
"checkbox"
]
{
width
:
1.5em
;
box-shadow
:
none
}
input
[
type
=
"submit"
],
.button
{
transition
:
background-color
.3s
;
color
:
#fff
;
background-color
:
#337ab7
;
border-color
:
#2e6da4
;
cursor
:
pointer
;
box-shadow
:
none
;
padding-top
:
0.9ex
;
padding-bottom
:
0.9ex
}
.button
{
padding-top
:
1.1ex
;
padding-bottom
:
0
}
input
[
type
=
"submit"
]
:active
,
input
[
type
=
"submit"
]
:focus
,
input
[
type
=
"submit"
]
:hover
,
.button
:active
,
.button
:focus
,
.button
:hover
,
.smallbutton
:active
,
.smallbutton
:focus
,
.smallbutton
:hover
{
color
:
#fff
;
background-color
:
#286090
;
border-color
:
#204d74
}
input
[
type
=
"submit"
]
:active
,
.button
:active
{
box-shadow
:
inset
0
3px
5px
rgba
(
0
,
0
,
0
,
0.125
)}
.button-light
{
color
:
#ddd
;
background-color
:
#101010
;
border-color
:
#444
}
.button-light
:active
,
.button-light
:focus
,
.button-light
:hover
{
color
:
#ddd
;
background-color
:
#111
;
border-color
:
#333
}
div
.notes
{
margin-top
:
2em
}
div
.notes
ul
{
margin-top
:
1em
}
div
.app
{
max-width
:
60em
;
margin-left
:
auto
;
margin-right
:
auto
}
.navbar-fixed
{
position
:
relative
;
z-index
:
997
}
.navbar-fixed
nav
{
position
:
fixed
}
nav
{
box-shadow
:
0
2px
2px
0
rgba
(
0
,
0
,
0
,
0.14
),
0
3px
1px
-2px
rgba
(
0
,
0
,
0
,
0.12
),
0
1px
5px
0
rgba
(
0
,
0
,
0
,
0.2
)}
nav
{
width
:
100%
;
overflow
:
hidden
}
nav
a
{
color
:
#fff
}
nav
.nav-wrapper
{
position
:
relative
;
height
:
100%
}
nav
i
,
nav
i
.material-icons
{
display
:
block
;
font-size
:
24px
}
nav
.brand-logo
{
position
:
absolute
;
display
:
inline-block
;
padding-left
:
0.5rem
}
nav
ul
{
margin
:
0
;
padding-left
:
0
;
list-style-type
:
none
}
nav
ul
li
{
transition
:
background-color
.3s
;
float
:
left
;
padding
:
0
;
list-style-type
:
none
;
background-color
:
#00838f
}
nav
ul
a
{
transition
:
background-color
.3s
;
font-size
:
1rem
;
color
:
#fff
;
display
:
block
;
padding
:
0
15px
;
cursor
:
pointer
}
@media
only
screen
and
(
max-width
:
600px
){
div
.app
>
ul
>
li
{
font-size
:
35%
}
div
.navbar-fixed
{
height
:
56px
}
.moreinfo
{
top
:
56px
}
nav
{
height
:
56px
;
line-height
:
56px
}
nav
.brand-logo
{
font-size
:
1.5rem
}
nav
.nav-wrapper
i
{
height
:
56px
;
line-height
:
56px
}}
@media
only
screen
and
(
min-width
:
600px
){
div
.app
>
ul
>
li
{
font-size
:
40%
}
div
.navbar-fixed
{
height
:
64px
}
.moreinfo
{
top
:
64px
}
nav
{
height
:
64px
;
line-height
:
64px
}
nav
.brand-logo
{
font-size
:
2.1rem
}
nav
.nav-wrapper
i
{
height
:
64px
;
line-height
:
64px
}}
div
.app
.moreinfo
{
font-size
:
100%
}
body
{
margin
:
0
;
color
:
#fff
;
background-color
:
#101010
}
html
{
font-family
:
"Arimo"
,
"Arial"
,
Sans-Serif
}
a
{
color
:
#99f
;
text-decoration
:
none
}
.visually-hidden
{
clip
:
rect
(
0
0
0
0
);
clip-path
:
inset
(
50%
);
height
:
1px
;
overflow
:
hidden
;
position
:
absolute
;
white-space
:
nowrap
;
width
:
1px
}
p
,
div
.about
,
div
.config
,
div
.input-field
,
div
.notes
{
max-width
:
94%
;
margin-left
:
auto
;
margin-right
:
auto
}
p
{
text-align
:
justify
}
div
.content
{
width
:
100%
;
margin
:
0
}
.copyright
{
margin-top
:
1em
;
color
:
#999
;
clear
:
both
}
.wagonorder
{
position
:
relative
;
width
:
100%
;
height
:
100ex
}
.wagonorder.exit-unknown
.section
{
left
:
1em
;
width
:
2em
}
.wagonorder.exit-unknown
.wagon
{
left
:
3em
;
min-width
:
6em
}
.wagonorder.exit-unknown
.details
{
left
:
10em
;
right
:
0em
}
.wagonorder.exit-left
.section
{
left
:
1em
;
width
:
2em
;
background-color
:
#222
}
.wagonorder.exit-left
.wagon
{
left
:
3em
;
min-width
:
6em
}
.wagonorder.exit-left
.details
{
left
:
10em
;
right
:
0em
}
.wagonorder.exit-right
.section
{
right
:
1em
;
width
:
2em
;
background-color
:
#222
}
.wagonorder.exit-right
.wagon
{
right
:
3em
;
min-width
:
6em
}
.wagonorder.exit-right
.details
{
right
:
10em
;
left
:
0em
;
text-align
:
right
}
.wagonorder
.section
{
position
:
absolute
;
text-align
:
center
}
.wagonorder
.wagon
{
position
:
absolute
;
border
:
1px
solid
#999
;
padding-left
:
0.2em
;
padding-right
:
0.2em
}
.wagonorder
.wagon
.material-icons
{
color
:
#bbb
}
.wagonorder
.wagon
.direction
{
position
:
absolute
;
left
:
0.2em
;
bottom
:
0
;
right
:
0
;
text-align
:
center
;
color
:
#bbb
}
.wagonorder
.wagon
~
.wagon
{
border-top
:
none
}
.wagonorder
.firstclass
{
background-color
:
#330
}
.wagonorder
.powercar
{
background-color
:
#222
}
.wagonorder
.closed
{
background-color
:
#222
}
.wagonorder
.nondestwagon
{
border-style
:
dashed
}
.wagonorder
.details
{
position
:
absolute
;
padding-top
:
0.5ex
}
.wagonorder
.details
.type
{
display
:
inline-block
;
width
:
5em
;
color
:
#bbb
}
.wagonorder
.details
a
.type
{
color
:
#99f
}
.wagonorder
.details
.uicunknown
{
color
:
#999
}
.wagonorder
.details
.uicexchange
{
margin-right
:
0.2em
;
color
:
#999
}
.wagonorder
.details
.uiccountry
{
margin-right
:
0.2em
;
color
:
#999
}
.wagonorder
.details
.uic5
{
margin-right
:
0.2em
;
color
:
#999
}
.wagonorder
.details
.uic56
{
color
:
#bbb
;
font-weight
:
bold
}
.wagonorder
.details
.uic78
{
margin-right
:
0.2em
;
color
:
#bbb
;
font-weight
:
bold
}
.wagonorder
.details
.uic78
::before
{
content
:
"-"
}
.wagonorder
.details
.uictype
{
margin-right
:
0.2em
;
color
:
#bbb
;
font-weight
:
bold
}
.wagonorder
.details
.uicno
{
color
:
#bbb
}
.wagonorder
.details
.uiccheck
{
color
:
#999
}
.wagonorder
.details
.uiccheck
::before
{
content
:
"-"
}
.singlewagon
.sign-left
{
float
:
left
;
padding-left
:
5%
}
.singlewagon
.sign-right
{
float
:
right
;
padding-right
:
5%
}
.singlewagon
.sign-center
{
text-align
:
center
}
.singlewagon
.platform
{
text-align
:
center
;
background-color
:
#444
;
font-weight
:
bold
;
padding-top
:
0.5em
;
padding-bottom
:
0.5em
}
.singlewagon
img
.wagonfile
{
width
:
100%
;
margin-top
:
0.2em
;
margin-bottom
:
0.2em
}
div
.app
{
border-width
:
1px
2px
;
width
:
100%
;
margin-bottom
:
5em
}
div
.app
>
ul
{
position
:
relative
;
width
:
100%
;
list-style-type
:
none
;
margin
:
0
;
padding
:
0
}
div
.app
>
ul
>
li
{
min-height
:
7em
;
display
:
block
;
width
:
100%
;
position
:
relative
;
border-bottom
:
1px
solid
#999
;
background-color
:
#101010
}
div
.app
>
ul
>
li
.cancelled
{
background-color
:
#512f00
}
div
.app
>
ul
>
li
.past
{
opacity
:
0.8
;
background-color
:
#222
}
div
.app
>
ul
>
li
>
a
{
color
:
#fff
}
div
.app
>
ul
>
li
.anchor
{
position
:
relative
;
top
:
-12em
}
div
.app
>
ul
>
li
.line
{
font-size
:
2.7em
;
position
:
absolute
;
bottom
:
5px
;
left
:
2px
;
max-width
:
6em
;
max-height
:
3ex
;
overflow
:
hidden
}
div
.app
>
ul
>
li
.line
.trainno
{
font-weight
:
normal
}
div
.app
>
ul
>
li
.line
.trainno_sub
{
font-weight
:
normal
;
font-size
:
0.6em
;
text-align
:
center
;
margin-top
:
-0.2em
}
div
.app
>
ul
>
li
.sbahn
.trainno_sub
{
font-weight
:
normal
;
font-size
:
0.5em
;
text-align
:
center
;
margin-top
:
-0.25em
}
div
.app
>
ul
>
li
.lineinfo
{
color
:
#fff
;
font-size
:
2em
;
position
:
absolute
;
top
:
0px
;
left
:
2px
}
div
.app
>
ul
>
li
.route
,
div
.app
>
ul
>
li
.info
{
background-color
:
transparent
;
font-size
:
2.1em
;
position
:
absolute
;
top
:
0
;
left
:
7.7em
;
right
:
7em
;
height
:
1.5em
;
overflow
:
hidden
;
white-space
:
nowrap
}
div
.app
>
ul
>
li
.route
{
color
:
#ddd
}
div
.app
>
ul
>
li
.info
{
color
:
#f77
}
div
.app
>
ul
>
li
.dest
,
div
.app
>
ul
>
li
.origin
{
background-color
:
transparent
;
font-size
:
4em
;
position
:
absolute
;
bottom
:
0
;
left
:
4em
;
width
:
70%
;
white-space
:
nowrap
;
overflow
:
hidden
;
color
:
#fff
}
div
.app
>
ul
>
li
.dest
{
background-color
:
transparent
;
color
:
#fff
}
div
.app
>
ul
>
li
.origin
{
background-color
:
transparent
;
color
:
#bbb
}
div
.app
>
ul
>
li
.origin
:before
{
content
:
"von "
}
div
.app
>
ul
>
li
.platform
{
background-color
:
transparent
;
font-size
:
3em
;
font-weight
:
bold
;
position
:
absolute
;
right
:
5px
;
bottom
:
0
;
padding-left
:
0.2em
;
color
:
#fff
}
div
.app
>
ul
>
li
.changed-platform
{
color
:
#f77
}
div
.app
>
ul
>
li
.time
{
background-color
:
transparent
;
font-size
:
2.3em
;
position
:
absolute
;
right
:
5px
;
top
:
1px
;
padding-left
:
0.2em
;
color
:
#fff
}
div
.app
>
ul
>
li
.time.delayed
{
color
:
#f77
;
background-color
:
transparent
}
div
.app
>
ul
>
li
.time
.no-realtime
{
background-color
:
transparent
;
padding-right
:
1ex
}
div
.app
>
ul
>
li
.time
.no-realtime
i
.material-icons
{
font-size
:
12px
}
div
.app
>
ul
>
li
.time
.delay
{
font-size
:
1em
;
color
:
#f77
;
background-color
:
transparent
;
padding-right
:
1ex
}
div
.app
>
ul
>
li
.time
.undelay
{
font-size
:
1em
;
color
:
#7f7
;
padding-right
:
1ex
}
div
.app
>
ul
>
li
.time
.delaynorm
{
font-size
:
0.9em
;
color
:
#d99
}
div
.app
>
ul
>
li
.time
.undelaynorm
{
font-size
:
0.9em
;
color
:
#9d9
}
div
.app
.trainsubtype
{
font-weight
:
normal
;
font-size
:
70%
;
position
:
relative
;
vertical-align
:
baseline
;
top
:
-0.6ex
;
left
:
-0.5ex
}
div
.app
.replacement
{
color
:
#afa
}
div
.app
.replaced
{
color
:
#faa
}
div
.app
.sbahn
{
font-weight
:
bold
;
border-radius
:
30px
;
padding
:
3px
6px
2px
6px
;
background-color
:
#151
}
div
.app
.bahn
,
div
.app
.fern
,
div
.app
.ext
{
font-weight
:
bold
;
border-radius
:
5px
;
padding
:
3px
5px
2px
5px
}
div
.app
.bahn
{
background-color
:
#333
}
div
.app
.fern
{
background-color
:
#511
}
div
.app
.ext
{
border
:
2px
solid
#333
}
div
.app
.tram
,
div
.app
.bus
,
div
.app
.ubahn
{
padding
:
3px
5px
2px
5px
}
div
.app
.tram
{
background-color
:
#411
}
div
.app
.bus
{
background-color
:
#515
}
div
.app
.ubahn
{
background-color
:
#071e62
}
div
.app
.moreinfo
{
font-size
:
2.1em
;
position
:
fixed
;
left
:
0
;
right
:
0
;
bottom
:
0em
;
z-index
:
5
;
overflow
:
auto
;
cursor
:
default
;
background-color
:
#101010
}
div
.app
.moreinfo
.mheader
,
div
.app
.moreinfo
.mfooter
{
max-width
:
50em
;
margin-left
:
auto
;
margin-right
:
auto
}
div
.app
.moreinfo
.mheader
{
text-align
:
center
;
font-size
:
120%
;
padding-top
:
0.5em
;
padding-bottom
:
0.5em
;
padding-left
:
1em
;
padding-right
:
1em
;
border-bottom
:
0.1em
dashed
#cccccc
}
div
.app
.moreinfo
.mfooter
{
padding-top
:
0.5em
;
padding-left
:
1em
;
padding-right
:
1em
}
div
.app
.moreinfo
.dataline
{
font-size
:
120%
;
width
:
100%
;
display
:
flex
;
justify-content
:
space-between
;
margin-bottom
:
0.5em
}
div
.app
.moreinfo
.dataline
>
div
{
width
:
33%
}
div
.app
.moreinfo
.wagonorder-preview
{
font-size
:
110%
;
width
:
100%
;
text-align
:
center
;
margin-bottom
:
1em
}
div
.app
.moreinfo
.wagonorder-preview
a
{
color
:
#fff
}
div
.app
.moreinfo
.departure
{
text-align
:
right
}
div
.app
.moreinfo
.platform
{
text-align
:
center
}
div
.app
.moreinfo
.arrival
{
display
:
inline-block
;
text-align
:
right
}
div
.app
.moreinfo
.loading
{
text-align
:
center
;
width
:
100%
;
color
:
#888888
}
div
.app
.moreinfo
.minfo
{
color
:
#f77
}
div
.app
.moreinfo
.timehidden
{
color
:
#bbb
}
div
.app
.moreinfo
.undelay
{
color
:
#7f7
}
div
.app
.moreinfo
.verbose
{
margin-bottom
:
1em
}
div
.app
.moreinfo
.verbose
.no-realtime
{
color
:
#f77
}
div
.app
.moreinfo
.messages
i
.material-icons
{
font-size
:
14px
}
div
.app
.moreinfo
.details
{
margin-top
:
1em
}
div
.app
.moreinfo
.mroute
.important-stop
{
color
:
#fff
}
div
.app
.moreinfo
.mroute
.generic-stop
{
color
:
#bbb
}
div
.app
.moreinfo
.mroute
.additional-stop
{
color
:
#7f7
}
div
.app
.moreinfo
.mroute
.cancelled-stop
{
color
:
#f77
}
div
.app
.moreinfo
.mroute
.past-stop
{
list-style-type
:
disc
}
div
.app
.moreinfo
.mroute
.future-stop
{
list-style-type
:
circle
}
div
.app
.moreinfo
.mroute
.sched-delayed
:before
{
content
:
"("
}
div
.app
.moreinfo
.mroute
.sched-delayed
:after
{
content
:
")"
}
div
.app
.moreinfo
.mroute
i
.material-icons
{
font-size
:
14px
}
div
.app
.moreinfo
.db-attr
{
margin-bottom
:
1em
}
div
.app
.moreinfo
.db-attr
span
{
margin-right
:
0.5em
}
div
.app
.collapsed-moreinfo
{
display
:
none
}
div
.app
.expanded-moreinfo
{
display
:
block
}
ul
.ui-autocomplete
{
max-height
:
20em
;
overflow-x
:
hidden
;
overflow-y
:
auto
}
div
.geolocation
{
text-align
:
center
}
div
.candidatestatus
{
text-align
:
center
;
color
:
#999999
}
div
.candidatelist
a
{
display
:
block
;
text-decoration
:
none
;
font-size
:
1.4em
;
padding-top
:
0.3em
;
text-align
:
center
;
border-bottom
:
1px
solid
#999999
}
div
.candidatelist
a
.distance
:after
{
content
:
" km"
}
div
.candidatelist
a
.distance
{
font-size
:
0.6em
;
color
:
#999999
;
padding-top
:
0.2em
;
padding-bottom
:
0.3em
}
div
.candidatelist
a
.traininfo
{
font-size
:
0.7em
;
color
:
#999999
;
padding-top
:
0.2em
;
padding-bottom
:
0.3em
}
div
.config
{
margin-top
:
2em
;
font-family
:
Sans-Serif
;
color
:
#bbb
}
div
.config
a
{
color
:
#99f
;
cursor
:
pointer
;
text-decoration
:
none
}
div
.about
{
margin-top
:
1em
;
font-family
:
Sans-Serif
;
color
:
#bbb
}
div
.about
a
{
color
:
#99f
;
text-decoration
:
none
}
.notice
{
padding
:
15px
;
margin-bottom
:
20px
;
border
:
1px
solid
#bce8f1
;
border-radius
:
4px
;
color
:
#31708f
;
background-color
:
#d9edf7
;
margin-left
:
auto
;
margin-right
:
auto
}
.warning
{
padding
:
15px
;
margin-bottom
:
20px
;
border
:
1px
solid
#faebcc
;
border-radius
:
4px
;
color
:
#8a6d3b
;
background-color
:
#fcf8e3
;
margin-left
:
auto
;
margin-right
:
auto
}
.error
{
padding
:
15px
;
margin-bottom
:
20px
;
border
:
1px
solid
#ebccd1
;
border-radius
:
4px
;
color
:
#a94442
;
background-color
:
#f2dede
;
margin-left
:
auto
;
margin-right
:
auto
}
.error
.errcode
{
font-family
:
Monospace
;
margin-top
:
2em
;
font-size
:
100%
;
color
:
#aaaaaa
}
.container
{
max-width
:
60em
;
margin-left
:
auto
;
margin-right
:
auto
}
pre
{
margin-bottom
:
2em
}
span
.optional
,
span
.notes
{
color
:
#bbb
}
.moresettings-header
{
cursor
:
pointer
}
.moresettings-header-collapsed
:before
{
content
:
"▹ "
}
.moresettings-header-expanded
:before
{
content
:
"▿ "
}
.moresettings-collapsed
{
display
:
none
}
.moresettings-expanded
{
display
:
block
}
.developers-header
{
cursor
:
pointer
}
.developers-header-collapsed
:before
{
content
:
"▹ "
}
.developers-header-expanded
:before
{
content
:
"▿ "
}
.developers-collapsed
{
display
:
none
}
.developers-expanded
{
display
:
block
}
div
.break
{
height
:
1em
}
div
.field
{
margin-top
:
0.3em
;
margin-bottom
:
0.6em
}
.disabledbutton
{
display
:
inline-block
;
vertical-align
:
baseline
;
border-radius
:
4px
;
border
:
1px
solid
#cccccc
;
box-shadow
:
none
;
padding
:
0.9ex
;
margin-right
:
1em
}
.smallbutton
{
display
:
inline-block
;
vertical-align
:
baseline
;
border-radius
:
4px
;
border
:
1px
solid
#2e6da4
;
transition
:
background-color
.3s
;
color
:
#fff
;
background-color
:
#337ab7
;
cursor
:
pointer
;
box-shadow
:
none
;
padding
:
0.9ex
;
margin-right
:
1em
}
.smallbutton
.material-icons
,
.disabledbutton
.material-icons
{
display
:
block
;
float
:
left
;
margin-right
:
0.5ex
}
.smallbutton
img
{
display
:
block
;
float
:
left
;
margin-right
:
0.7ex
;
height
:
1.2em
}
input
,
select
,
.button
{
display
:
inline-block
;
width
:
60em
;
max-width
:
100%
;
min-height
:
1.8em
;
border-radius
:
4px
;
color
:
#fff
;
background-color
:
#101010
;
border
:
1px
solid
#444
;
box-shadow
:
inset
0
1px
1px
rgba
(
0
,
0
,
0
,
0.075
);
font-size
:
90%
;
text-align
:
center
;
vertical-align
:
middle
}
input
[
type
=
"text"
]
{
width
:
59em
;
padding-left
:
0.5em
;
padding-right
:
0.5em
;
text-align
:
left
;
box-sizing
:
border-box
}
select
{
min-height
:
2em
}
input
[
type
=
"checkbox"
]
{
width
:
1.5em
;
box-shadow
:
none
}
input
[
type
=
"submit"
],
.button
{
transition
:
background-color
.3s
;
color
:
#fff
;
background-color
:
#337ab7
;
border-color
:
#2e6da4
;
cursor
:
pointer
;
box-shadow
:
none
;
padding-top
:
0.9ex
;
padding-bottom
:
0.9ex
}
.button
{
padding-top
:
1.1ex
;
padding-bottom
:
0
}
input
[
type
=
"submit"
]
:active
,
input
[
type
=
"submit"
]
:focus
,
input
[
type
=
"submit"
]
:hover
,
.button
:active
,
.button
:focus
,
.button
:hover
,
.smallbutton
:active
,
.smallbutton
:focus
,
.smallbutton
:hover
{
color
:
#fff
;
background-color
:
#286090
;
border-color
:
#204d74
}
input
[
type
=
"submit"
]
:active
,
.button
:active
{
box-shadow
:
inset
0
3px
5px
rgba
(
0
,
0
,
0
,
0.125
)}
.button-light
{
color
:
#ddd
;
background-color
:
#101010
;
border-color
:
#444
}
.button-light
:active
,
.button-light
:focus
,
.button-light
:hover
{
color
:
#ddd
;
background-color
:
#111
;
border-color
:
#333
}
div
.notes
{
margin-top
:
2em
}
div
.notes
ul
{
margin-top
:
1em
}
div
.app
{
max-width
:
60em
;
margin-left
:
auto
;
margin-right
:
auto
}
.navbar-fixed
{
position
:
relative
;
z-index
:
997
}
.navbar-fixed
nav
{
position
:
fixed
}
nav
{
box-shadow
:
0
2px
2px
0
rgba
(
0
,
0
,
0
,
0.14
),
0
3px
1px
-2px
rgba
(
0
,
0
,
0
,
0.12
),
0
1px
5px
0
rgba
(
0
,
0
,
0
,
0.2
)}
nav
{
width
:
100%
;
overflow
:
hidden
}
nav
a
{
color
:
#fff
}
nav
.nav-wrapper
{
position
:
relative
;
height
:
100%
}
nav
i
,
nav
i
.material-icons
{
display
:
block
;
font-size
:
24px
}
nav
.brand-logo
{
position
:
absolute
;
display
:
inline-block
;
padding-left
:
0.5rem
}
nav
ul
{
margin
:
0
;
padding-left
:
0
;
list-style-type
:
none
}
nav
ul
li
{
transition
:
background-color
.3s
;
float
:
left
;
padding
:
0
;
list-style-type
:
none
;
background-color
:
#00838f
}
nav
ul
a
{
transition
:
background-color
.3s
;
font-size
:
1rem
;
color
:
#fff
;
display
:
block
;
padding
:
0
15px
;
cursor
:
pointer
}
@media
only
screen
and
(
max-width
:
600px
){
div
.app
>
ul
>
li
{
font-size
:
35%
}
div
.navbar-fixed
{
height
:
56px
}
.moreinfo
{
top
:
56px
}
nav
{
height
:
56px
;
line-height
:
56px
}
nav
.brand-logo
{
font-size
:
1.5rem
}
nav
.nav-wrapper
i
{
height
:
56px
;
line-height
:
56px
}}
@media
only
screen
and
(
min-width
:
600px
){
div
.app
>
ul
>
li
{
font-size
:
40%
}
div
.navbar-fixed
{
height
:
64px
}
.moreinfo
{
top
:
64px
}
nav
{
height
:
64px
;
line-height
:
64px
}
nav
.brand-logo
{
font-size
:
2.1rem
}
nav
.nav-wrapper
i
{
height
:
64px
;
line-height
:
64px
}}
div
.app
.moreinfo
{
font-size
:
100%
}
public/static/css/light.min.css
View file @
b7fa09f8
body
{
margin
:
0
;
color
:
#000
;
background-color
:
#fff
}
html
{
font-family
:
"Arimo"
,
"Arial"
,
Sans-Serif
}
a
{
color
:
#009
;
text-decoration
:
none
}
.visually-hidden
{
clip
:
rect
(
0
0
0
0
);
clip-path
:
inset
(
50%
);
height
:
1px
;
overflow
:
hidden
;
position
:
absolute
;
white-space
:
nowrap
;
width
:
1px
}
p
,
div
.about
,
div
.config
,
div
.input-field
,
div
.notes
{
max-width
:
94%
;
margin-left
:
auto
;
margin-right
:
auto
}
p
{
text-align
:
justify
}
div
.content
{
width
:
100%
;
margin
:
0
}
.copyright
{
margin-top
:
1em
;
color
:
#999
;
clear
:
both
}
.wagonorder
{
position
:
relative
;
width
:
100%
;
height
:
100ex
}
.wagonorder.exit-unknown
.section
{
left
:
1em
;
width
:
2em
}
.wagonorder.exit-unknown
.wagon
{
left
:
3em
;
min-width
:
6em
}
.wagonorder.exit-unknown
.details
{
left
:
10em
;
right
:
0em
}
.wagonorder.exit-left
.section
{
left
:
1em
;
width
:
2em
;
background-color
:
#ddd
}
.wagonorder.exit-left
.wagon
{
left
:
3em
;
min-width
:
6em
}
.wagonorder.exit-left
.details
{
left
:
10em
;
right
:
0em
}
.wagonorder.exit-right
.section
{
right
:
1em
;
width
:
2em
;
background-color
:
#ddd
}
.wagonorder.exit-right
.wagon
{
right
:
3em
;
min-width
:
6em
}
.wagonorder.exit-right
.details
{
right
:
10em
;
left
:
0em
;
text-align
:
right
}
.wagonorder
.section
{
position
:
absolute
;
text-align
:
center
}
.wagonorder
.wagon
{
position
:
absolute
;
border
:
1px
solid
#999
;
padding-left
:
0.2em
;
padding-right
:
0.2em
}
.wagonorder
.wagon
.material-icons
{
color
:
#666
}
.wagonorder
.wagon
.direction
{
position
:
absolute
;
left
:
0.2em
;
bottom
:
0
;
right
:
0
;
text-align
:
center
;
color
:
#666
}
.wagonorder
.wagon
~
.wagon
{
border-top
:
none
}
.wagonorder
.firstclass
{
background-color
:
#ff9
}
.wagonorder
.powercar
{
background-color
:
#ccc
}
.wagonorder
.closed
{
background-color
:
#ddd
}
.wagonorder
.nondestwagon
{
border-style
:
dashed
}
.wagonorder
.details
{
position
:
absolute
;
padding-top
:
0.5ex
}
.wagonorder
.details
.type
{
display
:
inline-block
;
width
:
5em
;
color
:
#666
}
.wagonorder
.details
a
.type
{
color
:
#009
}
.wagonorder
.details
.uicunknown
{
color
:
#999
}
.wagonorder
.details
.uicexchange
{
margin-right
:
0.2em
;
color
:
#999
}
.wagonorder
.details
.uiccountry
{
margin-right
:
0.2em
;
color
:
#999
}
.wagonorder
.details
.uic5
{
margin-right
:
0.2em
;
color
:
#999
}
.wagonorder
.details
.uic56
{
color
:
#666
;
font-weight
:
bold
}
.wagonorder
.details
.uic78
{
margin-right
:
0.2em
;
color
:
#666
;
font-weight
:
bold
}
.wagonorder
.details
.uic78
::before
{
content
:
"-"
}
.wagonorder
.details
.uictype
{
margin-right
:
0.2em
;
color
:
#666
;
font-weight
:
bold
}
.wagonorder
.details
.uicno
{
color
:
#666
}
.wagonorder
.details
.uiccheck
{
color
:
#999
}
.wagonorder
.details
.uiccheck
::before
{
content
:
"-"
}
.singlewagon
.sign-left
{
float
:
left
;
padding-left
:
5%
}
.singlewagon
.sign-right
{
float
:
right
;
padding-right
:
5%
}
.singlewagon
.sign-center
{
text-align
:
center
}
.singlewagon
.platform
{
text-align
:
center
;
background-color
:
#ccc
;
font-weight
:
bold
;
padding-top
:
0.5em
;
padding-bottom
:
0.5em
}
.singlewagon
img
.wagonfile
{
width
:
100%
;
margin-top
:
0.2em
;
margin-bottom
:
0.2em
}
div
.app
{
border-width
:
1px
2px
;
width
:
100%
;
margin-bottom
:
5em
}
div
.app
>
ul
{
position
:
relative
;
width
:
100%
;
list-style-type
:
none
;
margin
:
0
;
padding
:
0
}
div
.app
>
ul
>
li
{
min-height
:
7em
;
display
:
block
;
width
:
100%
;
position
:
relative
;
border-bottom
:
1px
solid
#999
;
background-color
:
#fff
}
div
.app
>
ul
>
li
.cancelled
{
background-color
:
#ffe7d0
}
div
.app
>
ul
>
li
.past
{
opacity
:
0.8
;
background-color
:
#ddd
}
div
.app
>
ul
>
li
>
a
{
color
:
#000
}
div
.app
>
ul
>
li
.anchor
{
position
:
relative
;
top
:
-12em
}
div
.app
>
ul
>
li
.line
{
font-size
:
2.7em
;
position
:
absolute
;
bottom
:
5px
;
left
:
2px
;
max-width
:
6em
;
max-height
:
3ex
;
overflow
:
hidden
}
div
.app
>
ul
>
li
.line
.trainno
{
font-weight
:
normal
}
div
.app
>
ul
>
li
.line
.trainno_sub
{
font-weight
:
normal
;
font-size
:
0.6em
;
text-align
:
center
;
margin-top
:
-0.2em
}
div
.app
>
ul
>
li
.sbahn
.trainno_sub
{
font-weight
:
normal
;
font-size
:
0.5em
;
text-align
:
center
;
margin-top
:
-0.25em
}
div
.app
>
ul
>
li
.lineinfo
{
color
:
#000
;
font-size
:
2em
;
position
:
absolute
;
top
:
0px
;
left
:
2px
}
div
.app
>
ul
>
li
.route
,
div
.app
>
ul
>
li
.info
{
background-color
:
transparent
;
font-size
:
2.1em
;
position
:
absolute
;
top
:
0
;
left
:
7.7em
;
right
:
7em
;
height
:
1.5em
;
overflow
:
hidden
;
white-space
:
nowrap
}
div
.app
>
ul
>
li
.route
{
color
:
#444
}
div
.app
>
ul
>
li
.info
{
color
:
red
}
div
.app
>
ul
>
li
.dest
,
div
.app
>
ul
>
li
.origin
{
background-color
:
transparent
;
font-size
:
4em
;
position
:
absolute
;
bottom
:
0
;
left
:
4em
;
width
:
70%
;
white-space
:
nowrap
;
overflow
:
hidden
;
color
:
#000
}
div
.app
>
ul
>
li
.dest
{
background-color
:
transparent
;
color
:
#000
}
div
.app
>
ul
>
li
.origin
{
background-color
:
transparent
;
color
:
#666
}
div
.app
>
ul
>
li
.origin
:before
{
content
:
"von "
}
div
.app
>
ul
>
li
.platform
{
background-color
:
transparent
;
font-size
:
3em
;
font-weight
:
bold
;
position
:
absolute
;
right
:
5px
;
bottom
:
0
;
padding-left
:
0.2em
;
color
:
#000
}
div
.app
>
ul
>
li
.changed-platform
{
color
:
red
}
div
.app
>
ul
>
li
.time
{
background-color
:
transparent
;
font-size
:
2.3em
;
position
:
absolute
;
right
:
5px
;
top
:
1px
;
padding-left
:
0.2em
;
color
:
#000
}
div
.app
>
ul
>
li
.time.delayed
{
color
:
red
;
background-color
:
transparent
}
div
.app
>
ul
>
li
.time
.no-realtime
{
background-color
:
transparent
;
padding-right
:
1ex
}
div
.app
>
ul
>
li
.time
.no-realtime
i
.material-icons
{
font-size
:
12px
}
div
.app
>
ul
>
li
.time
.delay
{
font-size
:
1em
;
color
:
red
;
background-color
:
transparent
;
padding-right
:
1ex
}
div
.app
>
ul
>
li
.time
.undelay
{
font-size
:
1em
;
color
:
#060
;
padding-right
:
1ex
}
div
.app
>
ul
>
li
.time
.delaynorm
{
font-size
:
0.9em
;
color
:
#b33
}
div
.app
>
ul
>
li
.time
.undelaynorm
{
font-size
:
0.9em
;
color
:
#383
}
div
.app
.trainsubtype
{
font-weight
:
normal
;
font-size
:
70%
;
position
:
relative
;
vertical-align
:
baseline
;
top
:
-0.6ex
;
left
:
-0.5ex
}
div
.app
.replacement
{
color
:
#060
}
div
.app
.replaced
{
color
:
#600
}
div
.app
.sbahn
{
font-weight
:
bold
;
border-radius
:
30px
;
padding
:
3px
6px
2px
6px
;
background-color
:
#95d79f
}
div
.app
.bahn
,
div
.app
.fern
,
div
.app
.ext
{
font-weight
:
bold
;
border-radius
:
5px
;
padding
:
3px
5px
2px
5px
}
div
.app
.bahn
{
background-color
:
#eee
}
div
.app
.fern
{
background-color
:
#fdd
}
div
.app
.ext
{
border
:
2px
solid
#eee
}
div
.app
.tram
,
div
.app
.bus
,
div
.app
.ubahn
{
padding
:
3px
5px
2px
5px
}
div
.app
.tram
{
background-color
:
#fcc
}
div
.app
.bus
{
background-color
:
#eae
}
div
.app
.ubahn
{
background-color
:
#aac0ff
}
div
.app
.moreinfo
{
font-size
:
2.1em
;
position
:
fixed
;
left
:
0
;
right
:
0
;
bottom
:
0em
;
z-index
:
5
;
overflow
:
auto
;
cursor
:
default
;
background-color
:
#fff
}
div
.app
.moreinfo
.mheader
,
div
.app
.moreinfo
.mfooter
{
max-width
:
50em
;
margin-left
:
auto
;
margin-right
:
auto
}
div
.app
.moreinfo
.mheader
{
text-align
:
center
;
font-size
:
120%
;
padding-top
:
0.5em
;
padding-bottom
:
0.5em
;
padding-left
:
1em
;
padding-right
:
1em
;
border-bottom
:
0.1em
dashed
#cccccc
}
div
.app
.moreinfo
.mfooter
{
padding-top
:
0.5em
;
padding-left
:
1em
;
padding-right
:
1em
}
div
.app
.moreinfo
.dataline
{
font-size
:
120%
;
width
:
100%
;
display
:
flex
;
justify-content
:
space-between
;
margin-bottom
:
0.5em
}
div
.app
.moreinfo
.dataline
>
div
{
width
:
33%
}
div
.app
.moreinfo
.wagonorder-preview
{
font-size
:
110%
;
width
:
100%
;
text-align
:
center
;
margin-bottom
:
1em
}
div
.app
.moreinfo
.wagonorder-preview
a
{
color
:
#000
}
div
.app
.moreinfo
.departure
{
text-align
:
right
}
div
.app
.moreinfo
.platform
{
text-align
:
center
}
div
.app
.moreinfo
.arrival
{
display
:
inline-block
;
text-align
:
right
}
div
.app
.moreinfo
.loading
{
text-align
:
center
;
width
:
100%
;
color
:
#888888
}
div
.app
.moreinfo
.minfo
{
color
:
red
}
div
.app
.moreinfo
.timehidden
{
color
:
#666
}
div
.app
.moreinfo
.undelay
{
color
:
#060
}
div
.app
.moreinfo
.verbose
{
margin-bottom
:
1em
}
div
.app
.moreinfo
.verbose
.no-realtime
{
color
:
#c00
}
div
.app
.moreinfo
.messages
i
.material-icons
{
font-size
:
14px
}
div
.app
.moreinfo
.details
{
margin-top
:
1em
}
div
.app
.moreinfo
.mroute
.important-stop
{
color
:
#000
}
div
.app
.moreinfo
.mroute
.generic-stop
{
color
:
#666
}
div
.app
.moreinfo
.mroute
.additional-stop
{
color
:
#090
}
div
.app
.moreinfo
.mroute
.cancelled-stop
{
color
:
#c00
}
div
.app
.moreinfo
.mroute
.past-stop
{
list-style-type
:
disc
}
div
.app
.moreinfo
.mroute
.future-stop
{
list-style-type
:
circle
}
div
.app
.moreinfo
.mroute
i
.material-icons
{
font-size
:
14px
}
div
.app
.moreinfo
.db-attr
{
margin-bottom
:
1em
}
div
.app
.moreinfo
.db-attr
span
{
margin-right
:
0.5em
}
div
.app
.collapsed-moreinfo
{
display
:
none
}
div
.app
.expanded-moreinfo
{
display
:
block
}
ul
.ui-autocomplete
{
max-height
:
20em
;
overflow-x
:
hidden
;
overflow-y
:
auto
}
div
.geolocation
{
text-align
:
center
}
div
.candidatestatus
{
text-align
:
center
;
color
:
#999999
}
div
.candidatelist
a
{
display
:
block
;
text-decoration
:
none
;
font-size
:
1.4em
;
padding-top
:
0.3em
;
text-align
:
center
;
border-bottom
:
1px
solid
#999999
}
div
.candidatelist
a
.distance
:after
{
content
:
" km"
}
div
.candidatelist
a
.distance
{
font-size
:
0.6em
;
color
:
#999999
;
padding-top
:
0.2em
;
padding-bottom
:
0.3em
}
div
.candidatelist
a
.traininfo
{
font-size
:
0.7em
;
color
:
#999999
;
padding-top
:
0.2em
;
padding-bottom
:
0.3em
}
div
.config
{
margin-top
:
2em
;
font-family
:
Sans-Serif
;
color
:
#666
}
div
.config
a
{
color
:
#009
;
cursor
:
pointer
;
text-decoration
:
none
}
div
.about
{
margin-top
:
1em
;
font-family
:
Sans-Serif
;
color
:
#666
}
div
.about
a
{
color
:
#009
;
text-decoration
:
none
}
.notice
{
padding
:
15px
;
margin-bottom
:
20px
;
border
:
1px
solid
#bce8f1
;
border-radius
:
4px
;
color
:
#31708f
;
background-color
:
#d9edf7
;
margin-left
:
auto
;
margin-right
:
auto
}
.warning
{
padding
:
15px
;
margin-bottom
:
20px
;
border
:
1px
solid
#faebcc
;
border-radius
:
4px
;
color
:
#8a6d3b
;
background-color
:
#fcf8e3
;
margin-left
:
auto
;
margin-right
:
auto
}
.error
{
padding
:
15px
;
margin-bottom
:
20px
;
border
:
1px
solid
#ebccd1
;
border-radius
:
4px
;
color
:
#a94442
;
background-color
:
#f2dede
;
margin-left
:
auto
;
margin-right
:
auto
}
.error
.errcode
{
font-family
:
Monospace
;
margin-top
:
2em
;
font-size
:
100%
;
color
:
#aaaaaa
}
.container
{
max-width
:
60em
;
margin-left
:
auto
;
margin-right
:
auto
}
pre
{
margin-bottom
:
2em
}
span
.optional
,
span
.notes
{
color
:
#666
}
.moresettings-header
{
cursor
:
pointer
}
.moresettings-header-collapsed
:before
{
content
:
"▹ "
}
.moresettings-header-expanded
:before
{
content
:
"▿ "
}
.moresettings-collapsed
{
display
:
none
}
.moresettings-expanded
{
display
:
block
}
.developers-header
{
cursor
:
pointer
}
.developers-header-collapsed
:before
{
content
:
"▹ "
}
.developers-header-expanded
:before
{
content
:
"▿ "
}
.developers-collapsed
{
display
:
none
}
.developers-expanded
{
display
:
block
}
div
.break
{
height
:
1em
}
div
.field
{
margin-top
:
0.3em
;
margin-bottom
:
0.6em
}
.disabledbutton
{
display
:
inline-block
;
vertical-align
:
baseline
;
border-radius
:
4px
;
border
:
1px
solid
#cccccc
;
box-shadow
:
none
;
padding
:
0.9ex
;
margin-right
:
1em
}
.smallbutton
{
display
:
inline-block
;
vertical-align
:
baseline
;
border-radius
:
4px
;
border
:
1px
solid
#2e6da4
;
transition
:
background-color
.3s
;
color
:
#fff
;
background-color
:
#337ab7
;
cursor
:
pointer
;
box-shadow
:
none
;
padding
:
0.9ex
;
margin-right
:
1em
}
.smallbutton
.material-icons
,
.disabledbutton
.material-icons
{
display
:
block
;
float
:
left
;
margin-right
:
0.5ex
}
.smallbutton
img
{
display
:
block
;
float
:
left
;
margin-right
:
0.7ex
;
height
:
1.2em
}
input
,
select
,
.button
{
display
:
inline-block
;
width
:
60em
;
max-width
:
100%
;
min-height
:
1.8em
;
border-radius
:
4px
;
color
:
#000
;
background-color
:
#fff
;
border
:
1px
solid
#ccc
;
box-shadow
:
inset
0
1px
1px
rgba
(
0
,
0
,
0
,
0.075
);
font-size
:
90%
;
text-align
:
center
;
vertical-align
:
middle
}
input
[
type
=
"text"
]
{
width
:
59em
;
padding-left
:
0.5em
;
padding-right
:
0.5em
;
text-align
:
left
;
box-sizing
:
border-box
}
select
{
min-height
:
2em
}
input
[
type
=
"checkbox"
]
{
width
:
1.5em
;
box-shadow
:
none
}
input
[
type
=
"submit"
],
.button
{
transition
:
background-color
.3s
;
color
:
#fff
;
background-color
:
#337ab7
;
border-color
:
#2e6da4
;
cursor
:
pointer
;
box-shadow
:
none
;
padding-top
:
0.9ex
;
padding-bottom
:
0.9ex
}
.button
{
padding-top
:
1.1ex
;
padding-bottom
:
0
}
input
[
type
=
"submit"
]
:active
,
input
[
type
=
"submit"
]
:focus
,
input
[
type
=
"submit"
]
:hover
,
.button
:active
,
.button
:focus
,
.button
:hover
,
.smallbutton
:active
,
.smallbutton
:focus
,
.smallbutton
:hover
{
color
:
#fff
;
background-color
:
#286090
;
border-color
:
#204d74
}
input
[
type
=
"submit"
]
:active
,
.button
:active
{
box-shadow
:
inset
0
3px
5px
rgba
(
0
,
0
,
0
,
0.125
)}
.button-light
{
color
:
#333
;
background-color
:
#fff
;
border-color
:
#ccc
}
.button-light
:active
,
.button-light
:focus
,
.button-light
:hover
{
color
:
#333
;
background-color
:
#e6e6e6
;
border-color
:
#adadad
}
div
.notes
{
margin-top
:
2em
}
div
.notes
ul
{
margin-top
:
1em
}
div
.app
{
max-width
:
60em
;
margin-left
:
auto
;
margin-right
:
auto
}
.navbar-fixed
{
position
:
relative
;
z-index
:
997
}
.navbar-fixed
nav
{
position
:
fixed
}
nav
{
box-shadow
:
0
2px
2px
0
rgba
(
0
,
0
,
0
,
0.14
),
0
3px
1px
-2px
rgba
(
0
,
0
,
0
,
0.12
),
0
1px
5px
0
rgba
(
0
,
0
,
0
,
0.2
)}
nav
{
width
:
100%
;
overflow
:
hidden
}
nav
a
{
color
:
#fff
}
nav
.nav-wrapper
{
position
:
relative
;
height
:
100%
}
nav
i
,
nav
i
.material-icons
{
display
:
block
;
font-size
:
24px
}
nav
.brand-logo
{
position
:
absolute
;
display
:
inline-block
;
padding-left
:
0.5rem
}
nav
ul
{
margin
:
0
;
padding-left
:
0
;
list-style-type
:
none
}
nav
ul
li
{
transition
:
background-color
.3s
;
float
:
left
;
padding
:
0
;
list-style-type
:
none
;
background-color
:
#00838f
}
nav
ul
a
{
transition
:
background-color
.3s
;
font-size
:
1rem
;
color
:
#fff
;
display
:
block
;
padding
:
0
15px
;
cursor
:
pointer
}
@media
only
screen
and
(
max-width
:
600px
){
div
.app
>
ul
>
li
{
font-size
:
35%
}
div
.navbar-fixed
{
height
:
56px
}
.moreinfo
{
top
:
56px
}
nav
{
height
:
56px
;
line-height
:
56px
}
nav
.brand-logo
{
font-size
:
1.5rem
}
nav
.nav-wrapper
i
{
height
:
56px
;
line-height
:
56px
}}
@media
only
screen
and
(
min-width
:
600px
){
div
.app
>
ul
>
li
{
font-size
:
40%
}
div
.navbar-fixed
{
height
:
64px
}
.moreinfo
{
top
:
64px
}
nav
{
height
:
64px
;
line-height
:
64px
}
nav
.brand-logo
{
font-size
:
2.1rem
}
nav
.nav-wrapper
i
{
height
:
64px
;
line-height
:
64px
}}
div
.app
.moreinfo
{
font-size
:
100%
}
body
{
margin
:
0
;
color
:
#000
;
background-color
:
#fff
}
html
{
font-family
:
"Arimo"
,
"Arial"
,
Sans-Serif
}
a
{
color
:
#009
;
text-decoration
:
none
}
.visually-hidden
{
clip
:
rect
(
0
0
0
0
);
clip-path
:
inset
(
50%
);
height
:
1px
;
overflow
:
hidden
;
position
:
absolute
;
white-space
:
nowrap
;
width
:
1px
}
p
,
div
.about
,
div
.config
,
div
.input-field
,
div
.notes
{
max-width
:
94%
;
margin-left
:
auto
;
margin-right
:
auto
}
p
{
text-align
:
justify
}
div
.content
{
width
:
100%
;
margin
:
0
}
.copyright
{
margin-top
:
1em
;
color
:
#999
;
clear
:
both
}
.wagonorder
{
position
:
relative
;
width
:
100%
;
height
:
100ex
}
.wagonorder.exit-unknown
.section
{
left
:
1em
;
width
:
2em
}
.wagonorder.exit-unknown
.wagon
{
left
:
3em
;
min-width
:
6em
}
.wagonorder.exit-unknown
.details
{
left
:
10em
;
right
:
0em
}
.wagonorder.exit-left
.section
{
left
:
1em
;
width
:
2em
;
background-color
:
#ddd
}
.wagonorder.exit-left
.wagon
{
left
:
3em
;
min-width
:
6em
}
.wagonorder.exit-left
.details
{
left
:
10em
;
right
:
0em
}
.wagonorder.exit-right
.section
{
right
:
1em
;
width
:
2em
;
background-color
:
#ddd
}
.wagonorder.exit-right
.wagon
{
right
:
3em
;
min-width
:
6em
}
.wagonorder.exit-right
.details
{
right
:
10em
;
left
:
0em
;
text-align
:
right
}
.wagonorder
.section
{
position
:
absolute
;
text-align
:
center
}
.wagonorder
.wagon
{
position
:
absolute
;
border
:
1px
solid
#999
;
padding-left
:
0.2em
;
padding-right
:
0.2em
}
.wagonorder
.wagon
.material-icons
{
color
:
#666
}
.wagonorder
.wagon
.direction
{
position
:
absolute
;
left
:
0.2em
;
bottom
:
0
;
right
:
0
;
text-align
:
center
;
color
:
#666
}
.wagonorder
.wagon
~
.wagon
{
border-top
:
none
}
.wagonorder
.firstclass
{
background-color
:
#ff9
}
.wagonorder
.powercar
{
background-color
:
#ccc
}
.wagonorder
.closed
{
background-color
:
#ddd
}
.wagonorder
.nondestwagon
{
border-style
:
dashed
}
.wagonorder
.details
{
position
:
absolute
;
padding-top
:
0.5ex
}
.wagonorder
.details
.type
{
display
:
inline-block
;
width
:
5em
;
color
:
#666
}
.wagonorder
.details
a
.type
{
color
:
#009
}
.wagonorder
.details
.uicunknown
{
color
:
#999
}
.wagonorder
.details
.uicexchange
{
margin-right
:
0.2em
;
color
:
#999
}
.wagonorder
.details
.uiccountry
{
margin-right
:
0.2em
;
color
:
#999
}
.wagonorder
.details
.uic5
{
margin-right
:
0.2em
;
color
:
#999
}
.wagonorder
.details
.uic56
{
color
:
#666
;
font-weight
:
bold
}
.wagonorder
.details
.uic78
{
margin-right
:
0.2em
;
color
:
#666
;
font-weight
:
bold
}
.wagonorder
.details
.uic78
::before
{
content
:
"-"
}
.wagonorder
.details
.uictype
{
margin-right
:
0.2em
;
color
:
#666
;
font-weight
:
bold
}
.wagonorder
.details
.uicno
{
color
:
#666
}
.wagonorder
.details
.uiccheck
{
color
:
#999
}
.wagonorder
.details
.uiccheck
::before
{
content
:
"-"
}
.singlewagon
.sign-left
{
float
:
left
;
padding-left
:
5%
}
.singlewagon
.sign-right
{
float
:
right
;
padding-right
:
5%
}
.singlewagon
.sign-center
{
text-align
:
center
}
.singlewagon
.platform
{
text-align
:
center
;
background-color
:
#ccc
;
font-weight
:
bold
;
padding-top
:
0.5em
;
padding-bottom
:
0.5em
}
.singlewagon
img
.wagonfile
{
width
:
100%
;
margin-top
:
0.2em
;
margin-bottom
:
0.2em
}
div
.app
{
border-width
:
1px
2px
;
width
:
100%
;
margin-bottom
:
5em
}
div
.app
>
ul
{
position
:
relative
;
width
:
100%
;
list-style-type
:
none
;
margin
:
0
;
padding
:
0
}
div
.app
>
ul
>
li
{
min-height
:
7em
;
display
:
block
;
width
:
100%
;
position
:
relative
;
border-bottom
:
1px
solid
#999
;
background-color
:
#fff
}
div
.app
>
ul
>
li
.cancelled
{
background-color
:
#ffe7d0
}
div
.app
>
ul
>
li
.past
{
opacity
:
0.8
;
background-color
:
#ddd
}
div
.app
>
ul
>
li
>
a
{
color
:
#000
}
div
.app
>
ul
>
li
.anchor
{
position
:
relative
;
top
:
-12em
}
div
.app
>
ul
>
li
.line
{
font-size
:
2.7em
;
position
:
absolute
;
bottom
:
5px
;
left
:
2px
;
max-width
:
6em
;
max-height
:
3ex
;
overflow
:
hidden
}
div
.app
>
ul
>
li
.line
.trainno
{
font-weight
:
normal
}
div
.app
>
ul
>
li
.line
.trainno_sub
{
font-weight
:
normal
;
font-size
:
0.6em
;
text-align
:
center
;
margin-top
:
-0.2em
}
div
.app
>
ul
>
li
.sbahn
.trainno_sub
{
font-weight
:
normal
;
font-size
:
0.5em
;
text-align
:
center
;
margin-top
:
-0.25em
}
div
.app
>
ul
>
li
.lineinfo
{
color
:
#000
;
font-size
:
2em
;
position
:
absolute
;
top
:
0px
;
left
:
2px
}
div
.app
>
ul
>
li
.route
,
div
.app
>
ul
>
li
.info
{
background-color
:
transparent
;
font-size
:
2.1em
;
position
:
absolute
;
top
:
0
;
left
:
7.7em
;
right
:
7em
;
height
:
1.5em
;
overflow
:
hidden
;
white-space
:
nowrap
}
div
.app
>
ul
>
li
.route
{
color
:
#444
}
div
.app
>
ul
>
li
.info
{
color
:
red
}
div
.app
>
ul
>
li
.dest
,
div
.app
>
ul
>
li
.origin
{
background-color
:
transparent
;
font-size
:
4em
;
position
:
absolute
;
bottom
:
0
;
left
:
4em
;
width
:
70%
;
white-space
:
nowrap
;
overflow
:
hidden
;
color
:
#000
}
div
.app
>
ul
>
li
.dest
{
background-color
:
transparent
;
color
:
#000
}
div
.app
>
ul
>
li
.origin
{
background-color
:
transparent
;
color
:
#666
}
div
.app
>
ul
>
li
.origin
:before
{
content
:
"von "
}
div
.app
>
ul
>
li
.platform
{
background-color
:
transparent
;
font-size
:
3em
;
font-weight
:
bold
;
position
:
absolute
;
right
:
5px
;
bottom
:
0
;
padding-left
:
0.2em
;
color
:
#000
}
div
.app
>
ul
>
li
.changed-platform
{
color
:
red
}
div
.app
>
ul
>
li
.time
{
background-color
:
transparent
;
font-size
:
2.3em
;
position
:
absolute
;
right
:
5px
;
top
:
1px
;
padding-left
:
0.2em
;
color
:
#000
}
div
.app
>
ul
>
li
.time.delayed
{
color
:
red
;
background-color
:
transparent
}
div
.app
>
ul
>
li
.time
.no-realtime
{
background-color
:
transparent
;
padding-right
:
1ex
}
div
.app
>
ul
>
li
.time
.no-realtime
i
.material-icons
{
font-size
:
12px
}
div
.app
>
ul
>
li
.time
.delay
{
font-size
:
1em
;
color
:
red
;
background-color
:
transparent
;
padding-right
:
1ex
}
div
.app
>
ul
>
li
.time
.undelay
{
font-size
:
1em
;
color
:
#060
;
padding-right
:
1ex
}
div
.app
>
ul
>
li
.time
.delaynorm
{
font-size
:
0.9em
;
color
:
#b33
}
div
.app
>
ul
>
li
.time
.undelaynorm
{
font-size
:
0.9em
;
color
:
#383
}
div
.app
.trainsubtype
{
font-weight
:
normal
;
font-size
:
70%
;
position
:
relative
;
vertical-align
:
baseline
;
top
:
-0.6ex
;
left
:
-0.5ex
}
div
.app
.replacement
{
color
:
#060
}
div
.app
.replaced
{
color
:
#600
}
div
.app
.sbahn
{
font-weight
:
bold
;
border-radius
:
30px
;
padding
:
3px
6px
2px
6px
;
background-color
:
#95d79f
}
div
.app
.bahn
,
div
.app
.fern
,
div
.app
.ext
{
font-weight
:
bold
;
border-radius
:
5px
;
padding
:
3px
5px
2px
5px
}
div
.app
.bahn
{
background-color
:
#eee
}
div
.app
.fern
{
background-color
:
#fdd
}
div
.app
.ext
{
border
:
2px
solid
#eee
}
div
.app
.tram
,
div
.app
.bus
,
div
.app
.ubahn
{
padding
:
3px
5px
2px
5px
}
div
.app
.tram
{
background-color
:
#fcc
}
div
.app
.bus
{
background-color
:
#eae
}
div
.app
.ubahn
{
background-color
:
#aac0ff
}
div
.app
.moreinfo
{
font-size
:
2.1em
;
position
:
fixed
;
left
:
0
;
right
:
0
;
bottom
:
0em
;
z-index
:
5
;
overflow
:
auto
;
cursor
:
default
;
background-color
:
#fff
}
div
.app
.moreinfo
.mheader
,
div
.app
.moreinfo
.mfooter
{
max-width
:
50em
;
margin-left
:
auto
;
margin-right
:
auto
}
div
.app
.moreinfo
.mheader
{
text-align
:
center
;
font-size
:
120%
;
padding-top
:
0.5em
;
padding-bottom
:
0.5em
;
padding-left
:
1em
;
padding-right
:
1em
;
border-bottom
:
0.1em
dashed
#cccccc
}
div
.app
.moreinfo
.mfooter
{
padding-top
:
0.5em
;
padding-left
:
1em
;
padding-right
:
1em
}
div
.app
.moreinfo
.dataline
{
font-size
:
120%
;
width
:
100%
;
display
:
flex
;
justify-content
:
space-between
;
margin-bottom
:
0.5em
}
div
.app
.moreinfo
.dataline
>
div
{
width
:
33%
}
div
.app
.moreinfo
.wagonorder-preview
{
font-size
:
110%
;
width
:
100%
;
text-align
:
center
;
margin-bottom
:
1em
}
div
.app
.moreinfo
.wagonorder-preview
a
{
color
:
#000
}
div
.app
.moreinfo
.departure
{
text-align
:
right
}
div
.app
.moreinfo
.platform
{
text-align
:
center
}
div
.app
.moreinfo
.arrival
{
display
:
inline-block
;
text-align
:
right
}
div
.app
.moreinfo
.loading
{
text-align
:
center
;
width
:
100%
;
color
:
#888888
}
div
.app
.moreinfo
.minfo
{
color
:
red
}
div
.app
.moreinfo
.timehidden
{
color
:
#666
}
div
.app
.moreinfo
.undelay
{
color
:
#060
}
div
.app
.moreinfo
.verbose
{
margin-bottom
:
1em
}
div
.app
.moreinfo
.verbose
.no-realtime
{
color
:
#c00
}
div
.app
.moreinfo
.messages
i
.material-icons
{
font-size
:
14px
}
div
.app
.moreinfo
.details
{
margin-top
:
1em
}
div
.app
.moreinfo
.mroute
.important-stop
{
color
:
#000
}
div
.app
.moreinfo
.mroute
.generic-stop
{
color
:
#666
}
div
.app
.moreinfo
.mroute
.additional-stop
{
color
:
#090
}
div
.app
.moreinfo
.mroute
.cancelled-stop
{
color
:
#c00
}
div
.app
.moreinfo
.mroute
.past-stop
{
list-style-type
:
disc
}
div
.app
.moreinfo
.mroute
.future-stop
{
list-style-type
:
circle
}
div
.app
.moreinfo
.mroute
.sched-delayed
:before
{
content
:
"("
}
div
.app
.moreinfo
.mroute
.sched-delayed
:after
{
content
:
")"
}
div
.app
.moreinfo
.mroute
i
.material-icons
{
font-size
:
14px
}
div
.app
.moreinfo
.db-attr
{
margin-bottom
:
1em
}
div
.app
.moreinfo
.db-attr
span
{
margin-right
:
0.5em
}
div
.app
.collapsed-moreinfo
{
display
:
none
}
div
.app
.expanded-moreinfo
{
display
:
block
}
ul
.ui-autocomplete
{
max-height
:
20em
;
overflow-x
:
hidden
;
overflow-y
:
auto
}
div
.geolocation
{
text-align
:
center
}
div
.candidatestatus
{
text-align
:
center
;
color
:
#999999
}
div
.candidatelist
a
{
display
:
block
;
text-decoration
:
none
;
font-size
:
1.4em
;
padding-top
:
0.3em
;
text-align
:
center
;
border-bottom
:
1px
solid
#999999
}
div
.candidatelist
a
.distance
:after
{
content
:
" km"
}
div
.candidatelist
a
.distance
{
font-size
:
0.6em
;
color
:
#999999
;
padding-top
:
0.2em
;
padding-bottom
:
0.3em
}
div
.candidatelist
a
.traininfo
{
font-size
:
0.7em
;
color
:
#999999
;
padding-top
:
0.2em
;
padding-bottom
:
0.3em
}
div
.config
{
margin-top
:
2em
;
font-family
:
Sans-Serif
;
color
:
#666
}
div
.config
a
{
color
:
#009
;
cursor
:
pointer
;
text-decoration
:
none
}
div
.about
{
margin-top
:
1em
;
font-family
:
Sans-Serif
;
color
:
#666
}
div
.about
a
{
color
:
#009
;
text-decoration
:
none
}
.notice
{
padding
:
15px
;
margin-bottom
:
20px
;
border
:
1px
solid
#bce8f1
;
border-radius
:
4px
;
color
:
#31708f
;
background-color
:
#d9edf7
;
margin-left
:
auto
;
margin-right
:
auto
}
.warning
{
padding
:
15px
;
margin-bottom
:
20px
;
border
:
1px
solid
#faebcc
;
border-radius
:
4px
;
color
:
#8a6d3b
;
background-color
:
#fcf8e3
;
margin-left
:
auto
;
margin-right
:
auto
}
.error
{
padding
:
15px
;
margin-bottom
:
20px
;
border
:
1px
solid
#ebccd1
;
border-radius
:
4px
;
color
:
#a94442
;
background-color
:
#f2dede
;
margin-left
:
auto
;
margin-right
:
auto
}
.error
.errcode
{
font-family
:
Monospace
;
margin-top
:
2em
;
font-size
:
100%
;
color
:
#aaaaaa
}
.container
{
max-width
:
60em
;
margin-left
:
auto
;
margin-right
:
auto
}
pre
{
margin-bottom
:
2em
}
span
.optional
,
span
.notes
{
color
:
#666
}
.moresettings-header
{
cursor
:
pointer
}
.moresettings-header-collapsed
:before
{
content
:
"▹ "
}
.moresettings-header-expanded
:before
{
content
:
"▿ "
}
.moresettings-collapsed
{
display
:
none
}
.moresettings-expanded
{
display
:
block
}
.developers-header
{
cursor
:
pointer
}
.developers-header-collapsed
:before
{
content
:
"▹ "
}
.developers-header-expanded
:before
{
content
:
"▿ "
}
.developers-collapsed
{
display
:
none
}
.developers-expanded
{
display
:
block
}
div
.break
{
height
:
1em
}
div
.field
{
margin-top
:
0.3em
;
margin-bottom
:
0.6em
}
.disabledbutton
{
display
:
inline-block
;
vertical-align
:
baseline
;
border-radius
:
4px
;
border
:
1px
solid
#cccccc
;
box-shadow
:
none
;
padding
:
0.9ex
;
margin-right
:
1em
}
.smallbutton
{
display
:
inline-block
;
vertical-align
:
baseline
;
border-radius
:
4px
;
border
:
1px
solid
#2e6da4
;
transition
:
background-color
.3s
;
color
:
#fff
;
background-color
:
#337ab7
;
cursor
:
pointer
;
box-shadow
:
none
;
padding
:
0.9ex
;
margin-right
:
1em
}
.smallbutton
.material-icons
,
.disabledbutton
.material-icons
{
display
:
block
;
float
:
left
;
margin-right
:
0.5ex
}
.smallbutton
img
{
display
:
block
;
float
:
left
;
margin-right
:
0.7ex
;
height
:
1.2em
}
input
,
select
,
.button
{
display
:
inline-block
;
width
:
60em
;
max-width
:
100%
;
min-height
:
1.8em
;
border-radius
:
4px
;
color
:
#000
;
background-color
:
#fff
;
border
:
1px
solid
#ccc
;
box-shadow
:
inset
0
1px
1px
rgba
(
0
,
0
,
0
,
0.075
);
font-size
:
90%
;
text-align
:
center
;
vertical-align
:
middle
}
input
[
type
=
"text"
]
{
width
:
59em
;
padding-left
:
0.5em
;
padding-right
:
0.5em
;
text-align
:
left
;
box-sizing
:
border-box
}
select
{
min-height
:
2em
}
input
[
type
=
"checkbox"
]
{
width
:
1.5em
;
box-shadow
:
none
}
input
[
type
=
"submit"
],
.button
{
transition
:
background-color
.3s
;
color
:
#fff
;
background-color
:
#337ab7
;
border-color
:
#2e6da4
;
cursor
:
pointer
;
box-shadow
:
none
;
padding-top
:
0.9ex
;
padding-bottom
:
0.9ex
}
.button
{
padding-top
:
1.1ex
;
padding-bottom
:
0
}
input
[
type
=
"submit"
]
:active
,
input
[
type
=
"submit"
]
:focus
,
input
[
type
=
"submit"
]
:hover
,
.button
:active
,
.button
:focus
,
.button
:hover
,
.smallbutton
:active
,
.smallbutton
:focus
,
.smallbutton
:hover
{
color
:
#fff
;
background-color
:
#286090
;
border-color
:
#204d74
}
input
[
type
=
"submit"
]
:active
,
.button
:active
{
box-shadow
:
inset
0
3px
5px
rgba
(
0
,
0
,
0
,
0.125
)}
.button-light
{
color
:
#333
;
background-color
:
#fff
;
border-color
:
#ccc
}
.button-light
:active
,
.button-light
:focus
,
.button-light
:hover
{
color
:
#333
;
background-color
:
#e6e6e6
;
border-color
:
#adadad
}
div
.notes
{
margin-top
:
2em
}
div
.notes
ul
{
margin-top
:
1em
}
div
.app
{
max-width
:
60em
;
margin-left
:
auto
;
margin-right
:
auto
}
.navbar-fixed
{
position
:
relative
;
z-index
:
997
}
.navbar-fixed
nav
{
position
:
fixed
}
nav
{
box-shadow
:
0
2px
2px
0
rgba
(
0
,
0
,
0
,
0.14
),
0
3px
1px
-2px
rgba
(
0
,
0
,
0
,
0.12
),
0
1px
5px
0
rgba
(
0
,
0
,
0
,
0.2
)}
nav
{
width
:
100%
;
overflow
:
hidden
}
nav
a
{
color
:
#fff
}
nav
.nav-wrapper
{
position
:
relative
;
height
:
100%
}
nav
i
,
nav
i
.material-icons
{
display
:
block
;
font-size
:
24px
}
nav
.brand-logo
{
position
:
absolute
;
display
:
inline-block
;
padding-left
:
0.5rem
}
nav
ul
{
margin
:
0
;
padding-left
:
0
;
list-style-type
:
none
}
nav
ul
li
{
transition
:
background-color
.3s
;
float
:
left
;
padding
:
0
;
list-style-type
:
none
;
background-color
:
#00838f
}
nav
ul
a
{
transition
:
background-color
.3s
;
font-size
:
1rem
;
color
:
#fff
;
display
:
block
;
padding
:
0
15px
;
cursor
:
pointer
}
@media
only
screen
and
(
max-width
:
600px
){
div
.app
>
ul
>
li
{
font-size
:
35%
}
div
.navbar-fixed
{
height
:
56px
}
.moreinfo
{
top
:
56px
}
nav
{
height
:
56px
;
line-height
:
56px
}
nav
.brand-logo
{
font-size
:
1.5rem
}
nav
.nav-wrapper
i
{
height
:
56px
;
line-height
:
56px
}}
@media
only
screen
and
(
min-width
:
600px
){
div
.app
>
ul
>
li
{
font-size
:
40%
}
div
.navbar-fixed
{
height
:
64px
}
.moreinfo
{
top
:
64px
}
nav
{
height
:
64px
;
line-height
:
64px
}
nav
.brand-logo
{
font-size
:
2.1rem
}
nav
.nav-wrapper
i
{
height
:
64px
;
line-height
:
64px
}}
div
.app
.moreinfo
{
font-size
:
100%
}
public/static/css/material-icons.css
View file @
b7fa09f8
...
...
@@ -2,12 +2,12 @@
font-family
:
'Material Icons'
;
font-style
:
normal
;
font-weight
:
400
;
src
:
url(/static/v9
2
/fonts/MaterialIcons-Regular.eot)
;
/* For IE6-8 */
src
:
url(/static/v9
3
/fonts/MaterialIcons-Regular.eot)
;
/* For IE6-8 */
src
:
local
(
'Material Icons'
),
local
(
'MaterialIcons-Regular'
),
url(/static/v9
2
/fonts/MaterialIcons-Regular.woff2)
format
(
'woff2'
),
url(/static/v9
2
/fonts/MaterialIcons-Regular.woff)
format
(
'woff'
),
url(/static/v9
2
/fonts/MaterialIcons-Regular.ttf)
format
(
'truetype'
);
url(/static/v9
3
/fonts/MaterialIcons-Regular.woff2)
format
(
'woff2'
),
url(/static/v9
3
/fonts/MaterialIcons-Regular.woff)
format
(
'woff'
),
url(/static/v9
3
/fonts/MaterialIcons-Regular.ttf)
format
(
'truetype'
);
}
.material-icons
{
...
...
public/static/v9
1
→
public/static/v9
3
View file @
b7fa09f8
File moved
sass/app.scss
View file @
b7fa09f8
...
...
@@ -618,6 +618,14 @@ div.app {
list-style-type
:
circle
;
}
.sched-delayed
:before
{
content
:
"("
;
}
.sched-delayed
:after
{
content
:
")"
;
}
i
.material-icons
{
font-size
:
14px
;
}
...
...
templates/_train_details.html.ep
View file @
b7fa09f8
...
...
@@ -44,6 +44,9 @@
% }
% elsif ($departure->{prep_time}) {
Ein: <%= $departure->{prep_time} %>
% }
% if ($departure->{tz_offset} and $departure->{local_sched_arr}) {
<br/>Lokal: <%= $departure->{local_sched_arr}->strftime('%H:%M') %>
% }
</div>
</div>
...
...
@@ -106,6 +109,9 @@
% }
% elsif ($departure->{sched_departure}) {
Ab: <%= $departure->{sched_departure} %>
% }
% if ($departure->{tz_offset} and $departure->{local_sched_dep}) {
<br/>Lokal: <%= $departure->{local_sched_dep}->strftime('%H:%M') %>
% }
</div>
</div>
...
...
@@ -252,13 +258,16 @@
generic-stop
% }
% if (($stop->{rt_dep} and $stop->{dep_delay}) or (not $stop->{rt_dep} and $stop->{rt_arr} and $stop->{arr_delay})) {
"><%= ($stop->{
sched
_dep} // $stop->{
sched
_arr})->strftime('%H:%M') %>
(heute
<%= ($stop->{
rt
_dep} // $stop->{
rt
_arr})->strftime('%H:%M') %>
)
"><%= ($stop->{
rt
_dep} // $stop->{
rt
_arr})->strftime('%H:%M') %>
<span class="sched-delayed">
<%= ($stop->{
sched
_dep} // $stop->{
sched
_arr})->strftime('%H:%M') %>
</span>
% }
% else {
"><%= ($stop->{sched_dep} // $stop->{sched_arr}) ? ($stop->{sched_dep} // $stop->{sched_arr})->strftime('%H:%M') : q{} %>
% if ($stop->{rt_bogus}) {
<i class="material-icons" aria-label="Echtzeitdaten fehlen">gps_off</i>
% }
% }
% if ($stop->{tz_offset} and $stop->{local_dt_da}) {
(lokal <%= $stop->{local_dt_da}->strftime('%H:%M') %>)
% }
<%= $stop->{name} %></a>
% if ($stop->{load}{FIRST} or $stop->{load}{SECOND}) {
...
...
@@ -269,15 +278,19 @@
</li>
% }
% if (stash('station_name')) {
<li class="<%= $departure->{is_cancelled} ? 'cancelled-stop' : q{} %> <%= $departure->{isPast} ? 'past-stop' : 'future-stop' %>"><%= $departure->{sched_departure} // $departure->{sched_arrival} // q{} %>
<li class="<%= $departure->{is_cancelled} ? 'cancelled-stop' : q{} %> <%= $departure->{isPast} ? 'past-stop' : 'future-stop' %>">
%= $departure->{departure} // $departure->{arrival} // $departure->{sched_departure} // $departure->{sched_arrival} // q{}
% if ($departure->{departure} and $departure->{sched_departure} and $departure->{departure} ne $departure->{sched_departure}) {
(heute
<%= $departure->{departure}
%>)
<span class="sched-delayed">
<%= $departure->{
sched_
departure}
// $departure->{sched_arrival} // q{} %></span>
% }
% elsif ($departure->{arrival} and $departure->{sched_arrival} and $departure->{arrival} ne $departure->{sched_arrival}) {
(heute <%=
$departure->{arrival}
%>)
<span class="sched-delayed"><%= $departure->{sched_departure} //
$departure->{
sched_
arrival}
// q{} %></span>
% }
% if ($departure->{missing_realtime} or $departure->{no_realtime_yet}) {
<i class="material-icons" aria-label="Echtzeitdaten fehlen">gps_off</i>
% }
% if ($departure->{tz_offset} and $departure->{local_dt_da}) {
(lokal <%= $departure->{local_dt_da}->strftime('%H:%M') %>)
% }
<strong><%= stash('station_name') %></strong>
% if (my $u = $departure->{utilization}) {
...
...
@@ -303,13 +316,16 @@
generic-stop
% }
% if (($stop->{rt_arr} and $stop->{arr_delay}) or (not $stop->{rt_arr} and $stop->{rt_dep} and $stop->{dep_delay})) {
"><%= ($stop->{
sched
_arr} // $stop->{
sched
_dep})->strftime('%H:%M') %>
(heute
<%= ($stop->{
rt
_arr} // $stop->{
rt
_dep})->strftime('%H:%M') %>
)
"><%= ($stop->{
rt
_arr} // $stop->{
rt
_dep})->strftime('%H:%M') %>
<span class="sched-delayed">
<%= ($stop->{
sched
_arr} // $stop->{
sched
_dep})->strftime('%H:%M') %>
</span>
% }
% else {
"><%= ($stop->{sched_arr} // $stop->{sched_dep}) ? ($stop->{sched_arr} // $stop->{sched_dep})->strftime('%H:%M') : q{} %>
% if ($stop->{rt_bogus}) {
<i class="material-icons" aria-label="Echtzeitdaten fehlen">gps_off</i>
% }
% }
% if ($stop->{tz_offset} and $stop->{local_dt_ad}) {
(lokal <%= $stop->{local_dt_ad}->strftime('%H:%M') %>)
% }
<%= $stop->{name} %></a>
% if ($stop->{load}{FIRST} or $stop->{load}{SECOND}) {
...
...
templates/layouts/app.html.ep
View file @
b7fa09f8
...
...
@@ -18,7 +18,7 @@
<meta
http-equiv=
"refresh"
content=
"<%= $self->stash('refresh_interval') %>"
/>
% }
% my $av = 'v9
2
'; # asset version
% my $av = 'v9
3
'; # asset version
% if (session('theme') and session('theme') eq 'dark' or param('dark')) {
%= stylesheet "/static/${av}/css/dark.min.css", id => 'theme'
% }
...
...
templates/layouts/legacy.html.ep
View file @
b7fa09f8
...
...
@@ -17,7 +17,7 @@
<meta
http-equiv=
"refresh"
content=
"<%= $self->stash('refresh_interval') %>"
/>
% }
% my $av = 'v9
2
'; # asset version
% my $av = 'v9
3
'; # asset version
%= stylesheet "/static/${av}/css/default.css"
%= stylesheet "/static/${av}/css/material-icons.css"
%= stylesheet "/static/${av}/css/jquery-ui.min.css"
...
...