*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden}body{font-family:Arial,Helvetica,sans-serif;color:#f2f2ee;background:#1729bf}.board{width:100%;height:100dvh;position:relative;display:flex;flex-direction:column;background:linear-gradient(105deg,#2038d0,#182ac2 65%,#1522a7);padding:0 1.4vw 0 .7vw;container-type:size}header{height:15cqh;min-height:0;display:grid;grid-template-columns:13% 1fr 20%;align-items:center;background:linear-gradient(100deg,#192c92,#19267f);margin:0 -1.4vw 0 -.7vw;padding:1.5cqh 1.4vw .5cqh .7vw;gap:1vw}h1{font-size:7.7cqh;line-height:1.1;font-weight:400;margin:0;text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}#clock{font-size:7.3cqh;line-height:1;text-align:right}.logo-button{border:0;background:white;padding:0;width:100%;height:100%;max-height:11.5cqh;cursor:pointer}.logo-button img{height:100%;width:100%;object-fit:contain}.columns,.departure{display:grid;grid-template-columns:12% 1fr 23%;gap:1vw;align-items:center}.columns{height:5cqh;background:#192c92;font-size:3.4cqh;margin:0 -1.4vw 0 -.7vw;padding:0 1.4vw 0 .7vw}.columns span:nth-child(2){text-align:center}.columns span:last-child{text-align:right}.departures{flex:1;display:grid;grid-template-rows:repeat(7,minmax(0,1fr));min-height:0}.departure{font-size:7.6cqh;line-height:1.05;min-height:0;padding:.3cqh 0}.departure:nth-child(odd){background:rgba(27,61,232,.17)}.departure .line{text-align:center}.departure .destination{white-space:nowrap;overflow:hidden;min-width:0}.departure .destination span{display:inline-block;transform-origin:left center}.departure .when{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}.board-message{position:absolute;top:45%;left:10%;right:10%;text-align:center;font-size:4cqh;pointer-events:none}.board-message.error{background:#19267fe8;padding:2cqh}.controls{position:absolute;bottom:14px;right:14px;display:flex;gap:8px;padding:8px;background:#0b154be8;border:1px solid #7183e2;box-shadow:0 4px 24px #0005}.controls[hidden]{display:none}.controls button,.show-controls{font:inherit;color:white;border:1px solid #8092e0;background:#203585;cursor:pointer;padding:10px 14px;font-size:14px}.show-controls{position:absolute;right:5px;bottom:4px;padding:0 8px;opacity:0;font-size:24px}.show-controls:hover,.show-controls:focus-visible{opacity:.8}button:focus-visible,a:focus-visible{outline:3px solid #ffc947;outline-offset:3px}dialog{width:min(580px,calc(100% - 28px));max-height:calc(100dvh - 28px);border:1px solid #7083ce;border-radius:5px;background:#f7f8fc;color:#152251;padding:24px;box-shadow:0 20px 80px #0006}dialog::backdrop{background:#060e47b5;backdrop-filter:blur(3px)}.picker-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px}h2{margin:0;font-size:25px}.picker-header button{font-size:28px;border:0;background:transparent;color:#152251;cursor:pointer}label{display:block;font-size:14px;margin-bottom:8px}input{width:100%;padding:13px;font:inherit;font-size:17px;border:1px solid #9aa8d6;border-radius:3px;background:white;color:#152251}input:focus{outline:2px solid #244bd8}#searchStatus{font-size:14px;margin:12px 0}.results{max-height:42dvh;overflow:auto;display:grid;gap:8px}.result{border:1px solid #ccd3ea;background:white;color:#14245b;text-align:left;padding:13px;cursor:pointer;font:inherit}.result:hover{background:#eaf0ff;border-color:#284ac1}.result strong{display:block;font-size:17px}.result small{display:block;font-size:14px;color:#566288;margin-top:5px}.hint{font-size:14px;line-height:1.5;color:#566288;margin:18px 0 10px}dialog a{font-size:14px;color:#274ec5}@media(orientation:portrait){header{grid-template-columns:17% 1fr 22%}h1{font-size:min(5cqh,6vw)}#clock{font-size:5vw}.columns{font-size:3.5vw}.departure{font-size:min(6cqh,6.3vw)}.columns,.departure{grid-template-columns:13% 1fr 25%}.logo-button{max-height:9cqh}}@media(max-height:450px){dialog{padding:15px}.picker-header{margin-bottom:10px}h2{font-size:21px}.results{max-height:35dvh}.hint{margin:10px 0}.controls{bottom:8px;right:8px}}

/* Proportions of the original stop display. */
.board{padding:0 1vw 0 0;background:#1b2bd1}header{flex-shrink:0;grid-template-columns:12.5% 1fr 17%;margin:0 -1vw 0 0;padding:0 1vw 0 0;background:#1b267c}h1{font-size:8cqh}#clock{font-size:7.6cqh}.logo-button{width:100%;height:12.8cqh;max-height:none;align-self:start;background:#fff;padding:.55cqh .45vw}.logo-button img{display:block;width:100%;height:100%;object-fit:fill}.columns{flex-shrink:0;margin:0 -1vw 0 0;padding:0 1vw 0 0;background:#1b267c;position:relative}.columns span:nth-child(2){position:absolute;left:50%;transform:translateX(-50%)}.columns span:last-child{grid-column:3}.departure{font-size:8.4cqh}.departure:nth-child(odd){background:#2035d7}.columns,.departure{grid-template-columns:12.5% 1fr 23%;gap:.65vw}@media(orientation:portrait){header{grid-template-columns:17% 1fr 22%}h1{font-size:min(5cqh,6vw)}#clock{font-size:5vw}.logo-button{height:9cqh}.departure{font-size:min(6cqh,6.3vw)}.columns,.departure{grid-template-columns:13% 1fr 25%}}

.departure.departing-now{animation:departing-blink 1.6s steps(1,end) infinite}
@keyframes departing-blink{0%{opacity:1}50%{opacity:0}100%{opacity:1}}

/* Consistent outline icons and touch-friendly menu controls. */
.icon{display:block;width:22px;height:22px;flex-shrink:0}.controls{bottom:70px;right:16px;width:264px;max-width:calc(100vw - 32px);display:flex;flex-direction:column;gap:4px;padding:8px;background:#f7f8fc;color:#152251;border:1px solid #ccd3ea;border-radius:12px;box-shadow:0 8px 32px #070f4a55;z-index:2}.controls button{color:#152251;background:transparent;border:0;border-radius:7px;font-size:16px;min-height:44px;cursor:pointer}.menu-heading{display:flex;align-items:center;justify-content:space-between;padding-left:12px;min-height:44px;font-size:15px;font-weight:600;border-bottom:1px solid #e0e5f2;margin-bottom:4px}.controls .control-action{display:flex;align-items:center;gap:12px;text-align:left;padding:12px}.control-action .icon{color:#3155b7}.controls button:hover,.picker-header button:hover{background:#e7edfb}.controls .icon-button,.picker-header .icon-button{display:flex;align-items:center;justify-content:center;width:44px;height:44px;padding:10px}.show-controls{display:flex;align-items:center;justify-content:center;width:44px;height:44px;padding:10px;right:16px;bottom:16px;background:#14216ddd;border:1px solid #8b9be866;border-radius:8px;opacity:.35;z-index:2}.show-controls:hover,.show-controls:focus-visible,.show-controls[aria-expanded="true"]{opacity:1;background:#14216d}.picker-header .icon-button{color:#152251;border:0;border-radius:7px}.fullscreen-icon{transition:none}@media(max-height:450px){.show-controls{right:10px;bottom:10px}.controls{right:10px;bottom:62px}}
