:root { --color-gray-50: hsl(60, 9%, 98%); --color-gray-100: hsl(60, 5%, 96%); --color-gray-200: hsl(20, 6%, 90%); --color-gray-300: hsl(24, 6%, 83%); --color-gray-400: hsl(24, 5%, 64%); --color-gray-500: hsl(25, 5%, 45%); --color-gray-600: hsl(33, 5%, 32%); --color-gray-700: hsl(30, 6%, 25%); --color-gray-800: hsl(12, 6%, 15%); --color-gray-900: hsl(24, 10%, 10%); --color-gray-950: hsl(20, 14%, 4%); --bg: var(--color-gray-50); --text: var(--color-gray-950); --text-secondary: var(--color-gray-700); --nav-bg: hsl(210, 60%, 50%); --nav-bg-hover: hsl(210, 60%, 30%); --nav-bg-visited: hsl(250, 60%, 50%); --nav-text-visited: hsl(250, 60%, 93%); --nav-text: hsl(210, 60%, 93%); --link: hsl(210, 60%, 30%); --link-hover: hsl(210, 60%, 10%); --link-visited: hsl(250, 60%, 30%); --station-bg: var(--color-gray-50); --station-bg-hover: var(--color-gray-400); --station-border: var(--color-gray-400); --station-border-hover: var(--color-gray-600); --elevator-bg: var(--color-gray-100); --elevator-list-gap: 3rem; --item-radius: 1.5rem; --btn-radius: 0.8rem; --type-icon-size: 3.2rem; --space-s: 0.25rem; --space-m: 0.5rem; --space-l: 1rem; --space-xl: 2rem; } @media (prefers-color-scheme: dark) { :root { --bg: var(--color-gray-950); --text: var(--color-gray-50); --text-secondary: var(--color-gray-400); --nav-bg: hsl(210, 60%, 30%); --nav-bg-hover: hsl(210, 60%, 10%); --nav-bg-visited: hsl(250, 60%, 30%); --link: hsl(210, 60%, 60%); --link-hover: hsl(210, 60%, 60%); --link-visited: hsl(250, 60%, 70%); --station-bg: var(--color-gray-950); --station-bg-hover: var(--color-gray-600); --station-border: var(--color-gray-600); --station-border-hover: var(--color-gray-400); --elevator-bg: var(--color-gray-900); } } .hidden { display: none; } .text-red { color: #e32d2d; } .text-orange { color: #cc6300; } .text-green { color: #19942e; } body { font-family: system-ui, ui-sans-serif, sans-serif; font-size: 1.2rem; background-color: var(--bg); color: var(--text); } h1 { text-align: center; } a { color: var(--link); text-decoration: none; } a:hover { text-decoration: underline; color: var(--link-hover); } a:visited { color: var(--link-visited); } nav ul { padding: 0; list-style: none; display: flex; flex-direction: row; justify-content: center; gap: var(--space-m); } nav ul li a { font-weight: bold; color: var(--nav-text); text-decoration: none; background-color: var(--nav-bg); padding: var(--space-m) var(--space-l); cursor: pointer; } nav ul li a:hover { text-decoration: underline; background-color: var(--nav-bg-hover); } nav ul li a:visited { color: var(--nav-text-visited); background-color: var(--nav-bg-visited); } main { margin: 4em auto; max-width: 960px; } button, input { background-color: var(--station-bg); color: var(--text); padding: var(--space-m) var(--space-l); border-radius: var(--item-radius); border: solid 2px var(--station-border); } button { cursor: pointer; display: inline-flex; align-items: center; gap: var(--space-m); } button:hover { background-color: var(--station-bg-hover); border-color: var(--station-border-hover); } div.filters { display: flex; gap: var(--space-m); justify-items: stretch; } div.filters button, div.filters input { font-size: 1.5rem; } ul#stationList { padding: 0; list-style: none; display: flex; flex-direction: column; gap: var(--space-m); } ul#stationList > li.station { background-color: var(--station-bg); border-radius: var(--item-radius); border: solid 0.2rem var(--station-border); overflow: hidden; position: relative; padding: var(--space-m); } ul#stationList > li.station > div.stationSummary { display: flex; gap: var(--space-m); } ul#stationList > li.station > div.stationSummary div.typeList { flex-shrink: 0; } ul#stationList > li.station > div.stationSummary div.stationTitle { align-self: stretch; flex-grow: 1; display: flex; flex-wrap: wrap; justify-content: space-between; } ul#stationList > li.station > div.stationSummary div.stationTitle > h3 { font-size: 1.5rem; line-height: var(--type-icon-size); margin: 0; width: 100%; } @media screen and (min-width: 576px) { ul#stationList > li.station > div.stationSummary div.stationTitle > h3 { width: auto; } } ul#stationList > li.station > div.stationSummary div.stationTitle > div.elevator-preview { flex-shrink: 0; display: flex; flex-wrap: wrap; justify-content: start; width: 100%; } @media screen and (min-width: 576px) { ul#stationList > li.station > div.stationSummary div.stationTitle > div.elevator-preview { max-width: 10rem; justify-content: end; width: auto; } } ul#stationList > li.station > details { width: 100%; } ul#stationList > li.station > details summary { list-style: none; border: solid 2px var(--station-border); display: inline-flex; padding: var(--space-m) var(--space-l); border-radius: var(--btn-radius); cursor: pointer; margin-left: calc(var(--space-m) + var(--type-icon-size)); } ul#stationList > li.station > details summary:hover { background-color: var(--station-bg-hover); border-color: var(--station-border-hover); } ul#stationList > li.station > details summary::after { position: absolute; top: 0; right: 0; bottom: 0; left: 0; z-index: 1; pointer-events: auto; content: ""; background-color: rgba(0, 0, 0, 0); } @media (prefers-reduced-motion: no-preference) { ul#stationList > li.station > details summary { transition: margin 150ms ease-out; } } ul#stationList > li.station > details[open] summary { margin-bottom: 1rem; } ul#stationList > li.station > details > ul { padding: 0; list-style: none; display: flex; flex-direction: column; gap: var(--elevator-list-gap); overflow: hidden; position: relative; z-index: 20; } ul#stationList > li.station > details > ul > li.elevator { display: flex; align-items: start; flex-wrap: nowrap; padding: var(--space-m); gap: var(--space-m); position: relative; margin: 0 1rem 1rem; } @media screen and (min-width: 576px) { ul#stationList > li.station > details > ul > li.elevator { margin: 0 3rem 1rem; } } ul#stationList > li.station > details > ul > li.elevator > span { flex-shrink: 0; } ul#stationList > li.station > details > ul > li.elevator:not(:first-child):before { content: ""; position: absolute; left: 0; top: calc(var(--elevator-list-gap) / -2); height: 2px; width: 100%; background: var(--station-border); } ul#stationList > li.station > details > ul > li.elevator > div.elevatorData { width: 100%; display: grid; flex-direction: column; gap: var(--space-l); align-items: start; grid-template-columns: 1fr; } @media screen and (min-width: 800px) { ul#stationList > li.station > details > ul > li.elevator > div.elevatorData { grid-template-columns: 1fr 1fr; } } ul#stationList > li.station > details > ul > li.elevator > div.elevatorData .elevatorInfo { font-weight: bold; grid-column: 1/-1; } ul#stationList > li.station > details > ul > li.elevator > div.elevatorData .lineList { display: flex; gap: var(--space-m); align-items: center; grid-column: 1/-1; } ul#stationList > li.station > details > ul > li.elevator > div.elevatorData .osm { grid-column: 1/-1; color: var(--text-secondary); } ul#stationList > li.station > details > ul > li.elevator > div.elevatorData .osm dl div dt { min-width: 18ch; } ul#stationList > li.station > details > ul > li.elevator > div.elevatorData ol.levelList { --dot-size: 0.8rem; --line-width: 0.3rem; --left-space: 1.4rem; list-style: none; padding-left: var(--left-space); } ul#stationList > li.station > details > ul > li.elevator > div.elevatorData ol.levelList > li { position: relative; line-height: 1.8em; } ul#stationList > li.station > details > ul > li.elevator > div.elevatorData ol.levelList > li:before { background-color: currentColor; width: var(--line-width); content: ""; position: absolute; top: 0; bottom: 0; left: calc(var(--left-space) * -1 + var(--dot-size) / 2 - var(--line-width) / 2); } ul#stationList > li.station > details > ul > li.elevator > div.elevatorData ol.levelList > li:first-child:before { top: 0.5lh; } ul#stationList > li.station > details > ul > li.elevator > div.elevatorData ol.levelList > li:last-child:before { bottom: calc(100% - 0.5lh); } ul#stationList > li.station > details > ul > li.elevator > div.elevatorData ol.levelList > li:after { background-color: currentColor; width: var(--dot-size); height: var(--dot-size); border-radius: 100%; content: ""; position: absolute; top: calc(0.5lh - var(--dot-size) / 2); left: calc(var(--left-space) * -1); } ul#stationList > li.station > details > ul > li.elevator > div.elevatorData dl { display: flex; flex-direction: column; width: 100%; gap: 0.2rem; } ul#stationList > li.station > details > ul > li.elevator > div.elevatorData dl div { display: flex; align-items: center; flex-wrap: wrap; } ul#stationList > li.station > details > ul > li.elevator > div.elevatorData dl div dt { flex-shrink: 0; display: flex; gap: var(--space-m); align-items: center; font-weight: bold; min-width: 15ch; } @media (max-width: 576px) { ul#stationList > li.station > details > ul > li.elevator > div.elevatorData dl div dt { width: 100%; } } ul#stationList > li.station > details > ul > li.elevator > div.elevatorData dl div dd { flex-shrink: 0; margin-left: 3rem; } @media screen and (min-width: 576px) { ul#stationList > li.station > details > ul > li.elevator > div.elevatorData dl div dd { margin-left: 1rem; } } span.lineChip, span.typeChip { font-weight: bold; font-size: 0.8em; text-align: center; box-sizing: border-box; } span.lineChip[data-type=U], span.typeChip[data-type=U] { background-color: #006ab3; color: #ffffff; } span.lineChip[data-type=U][data-line=U1], span.typeChip[data-type=U][data-line=U1] { background-color: #006ab3; } span.lineChip[data-type=U][data-line=U2], span.typeChip[data-type=U][data-line=U2] { background-color: #e2001a; } span.lineChip[data-type=U][data-line=U3], span.typeChip[data-type=U][data-line=U3] { background-color: #ffdd00; color: #000000; } span.lineChip[data-type=U][data-line=U4], span.typeChip[data-type=U][data-line=U4] { background-color: #0098a1; } span.lineChip[data-type=S], span.typeChip[data-type=S] { background-color: #1a962b; color: #ffffff; } span.lineChip[data-type=S][data-line=S1], span.typeChip[data-type=S][data-line=S1] { background-color: #1a962b; } span.lineChip[data-type=S][data-line=S2], span.typeChip[data-type=S][data-line=S2] { background-color: #b51143; } span.lineChip[data-type=S][data-line=S3], span.typeChip[data-type=S][data-line=S3] { background-color: #622181; } span.lineChip[data-type=S][data-line=S4], span.typeChip[data-type=S][data-line=S4] { background-color: #be148e; } span.lineChip[data-type=S][data-line=S5], span.typeChip[data-type=S][data-line=S5] { background-color: #0089bb; } span.lineChip[data-type=S][data-line=S6], span.typeChip[data-type=S][data-line=S6] { background-color: #d3da00; color: #000000; } span.lineChip[data-type=A], span.typeChip[data-type=A] { background-color: #f39100; color: #ffffff; } span.lineChip[data-type=R], span.typeChip[data-type=R] { background-color: #000000; color: #ffffff; } @media (prefers-color-scheme: dark) { span.lineChip[data-type=R], span.typeChip[data-type=R] { border: solid 2px #ffffff; } } span.lineChip { padding: 0.3em 0.6em; min-width: 4ch; } span.lineChip[data-type=U] { padding: 0.3em 0.1em; } span.lineChip[data-type=S] { border-radius: 2em; min-width: 6ch; } span.lineChip[data-type=A] { padding: 0.3em 0.1em; border-radius: 2em; } .typeList { width: var(--type-icon-size); height: var(--type-icon-size); display: flex; flex-wrap: wrap; gap: 0.2rem; align-items: center; justify-content: center; } span.typeChip { --chip-size: 1.5; width: calc(1rem * var(--chip-size)); min-width: calc(1rem * var(--chip-size)); height: calc(1rem * var(--chip-size)); font-size: calc(0.5rem * var(--chip-size)); display: inline-flex; align-items: center; justify-content: center; } span.typeChip:only-child { --chip-size: 3; } span.typeChip[data-type=U], span.typeChip[data-type=A], span.typeChip[data-type=R], span.typeChip[data-type=S] { border-radius: 100%; padding: 0; } span[data-icon] { display: inline-block; vertical-align: top; width: 1em; height: 1em; mask-size: contain; mask-position: center; mask-repeat: no-repeat; background-color: currentColor; flex-shrink: 0; } span[data-icon].size-s { font-size: 1rem; } span[data-icon].size-m { font-size: 1.5rem; } span[data-icon].size-l { font-size: 2rem; } span[data-icon].size-xl { font-size: 3rem; } span[data-icon][data-icon=location] { mask-image: url(/md_icons/location.svg); } span[data-icon][data-icon=elevator] { mask-image: url(/md_icons/elevator.svg); } span[data-icon][data-icon=elevator-slash] { mask-image: url(/md_icons/elevator-slash.svg); } span[data-icon][data-icon=fit-width] { mask-image: url(/md_icons/fit_width.svg); } span[data-icon][data-icon=width] { mask-image: url(/md_icons/width.svg); } span[data-icon][data-icon=length] { mask-image: url(/md_icons/height.svg); } span[data-icon][data-icon=braille] { mask-image: url(/md_icons/braille.svg); } span[data-icon][data-icon=speaker] { mask-image: url(/md_icons/speaker.svg); } span[data-icon][data-icon=wheelchair] { mask-image: url(/md_icons/wheelchair.svg); } span[data-icon][data-icon=bicycle] { mask-image: url(/md_icons/bicycle.svg); } span[data-icon][data-icon=info] { mask-image: url(/md_icons/info.svg); } span[data-icon][data-icon=up-down] { mask-image: url(/md_icons/up-down.svg); } span[data-icon][data-icon=location-searching] { mask-image: url(/md_icons/location-searching.svg); } /*# sourceMappingURL=style.css.map */