.map-app{isolation:isolate;flex:auto;min-height:0;display:flex;position:relative}.map-app .map-container--full{width:100%;height:100%;box-shadow:none;border:none;border-radius:0;position:absolute;inset:0}.map-app #transport-map{width:100%;height:100%}.map-app [hidden]{display:none}.map-app__noscript{z-index:500;justify-content:center;align-items:center;gap:var(--space-3);padding:var(--space-6);background-color:var(--color-surface-secondary);color:var(--color-text-secondary);text-align:center;flex-direction:column;display:flex;position:absolute;inset:0}.map-app .leaflet-bottom{transition:padding-bottom var(--transition-normal)}.map-app .leaflet-bottom.leaflet-right .leaflet-control{margin:0 12px 12px 0}.map-app .leaflet-control-zoom.leaflet-bar,.map-app .map-app__control.leaflet-bar{gap:var(--space-2);box-shadow:none;background:0 0;border:none;flex-direction:column;display:flex}.map-app .leaflet-control-zoom a.leaflet-control-zoom-in,.map-app .leaflet-control-zoom a.leaflet-control-zoom-out,.map-app .map-app__control-btn{width:var(--control-size);height:var(--control-size);appearance:none;border:1px solid var(--color-border);border-radius:var(--radius-control);background:var(--color-overlay-surface);color:var(--color-text-primary);box-shadow:var(--shadow-sm);font:inherit;cursor:pointer;transition:background-color var(--transition-fast) var(--ease-out), border-color var(--transition-fast) var(--ease-out);justify-content:center;align-items:center;padding:0;font-size:1rem;line-height:1;display:inline-flex}.map-app .leaflet-control-zoom a.leaflet-control-zoom-in:hover,.map-app .leaflet-control-zoom a.leaflet-control-zoom-out:hover,.map-app .map-app__control-btn:hover{background:var(--color-overlay-surface-hover);border-color:var(--color-border-strong)}.map-app .leaflet-control-zoom a.leaflet-control-zoom-in:focus-visible,.map-app .leaflet-control-zoom a.leaflet-control-zoom-out:focus-visible,.map-app .map-app__control-btn:focus-visible{outline:var(--focus-ring-width) solid var(--focus-ring-color);outline-offset:var(--focus-ring-offset)}.map-app .leaflet-control-attribution{font-size:var(--font-size-micro)}.map-app__trigger{top:var(--space-3);left:var(--space-3);z-index:1000;align-items:center;gap:var(--space-2);max-width:calc(100% - 8rem);min-height:var(--control-size);padding:var(--space-2) var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-control);background:var(--color-overlay-surface);box-shadow:var(--shadow-sm);color:var(--color-text-primary);font:inherit;font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);cursor:pointer;transition:opacity var(--transition-fast), visibility var(--transition-fast), box-shadow var(--transition-fast);line-height:1.2;display:inline-flex;position:absolute}.map-app__trigger span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.map-app__trigger>i{color:var(--color-primary)}.map-app__trigger:focus-visible{outline:var(--focus-ring-width) solid var(--focus-ring-color);outline-offset:var(--focus-ring-offset)}.map-app.is-panel-open .map-app__trigger{opacity:0;visibility:hidden}.map-panel{z-index:1000;border:1px solid var(--color-border);border-radius:var(--radius-overlay) var(--radius-overlay) 0 0;background:var(--color-overlay-surface);max-height:min(60dvh,28rem);box-shadow:var(--shadow-overlay);color:var(--color-text-primary);visibility:hidden;transition:transform var(--transition-normal), visibility var(--transition-normal);border-width:1px 0 0;flex-direction:column;display:flex;position:absolute;bottom:0;left:0;right:0;transform:translateY(101%)}.map-app.is-panel-open .map-panel{visibility:visible;transform:none}.map-panel__grip{border-radius:var(--radius-full);background-color:var(--color-border-strong);width:2.25rem;height:.25rem;margin:.5rem auto 0}.map-panel__head{align-items:center;gap:var(--space-2);padding:var(--space-3);display:flex}.map-panel__search{flex:1;min-width:0;position:relative}.map-panel__search-icon{color:var(--color-text-secondary);pointer-events:none;font-size:.8125rem;position:absolute;top:50%;left:.7rem;transform:translateY(-50%)}.map-panel__search:focus-within .map-panel__search-icon{color:var(--color-primary)}.map-panel__input{border:1px solid var(--color-border);border-radius:var(--radius-md);background-color:var(--color-surface-secondary);width:100%;height:2.5rem;color:var(--color-text-primary);font:inherit;font-size:var(--font-size-sm);padding:0 .625rem 0 2.1rem}.map-panel__input::placeholder{color:var(--color-text-placeholder)}.map-panel__input:focus-visible{outline:var(--focus-ring-width) solid var(--focus-ring-color);outline-offset:1px;border-color:var(--color-primary-border)}.map-panel__close{width:var(--control-size);height:var(--control-size);border-radius:var(--radius-full);color:var(--color-text-secondary);font-size:var(--font-size-base);cursor:pointer;transition:background-color var(--transition-fast), color var(--transition-fast);background-color:#0000;border:none;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.map-panel__close:hover,.map-panel__close:focus-visible{background-color:var(--color-surface-tertiary);color:var(--color-text-primary)}.map-panel__body{overscroll-behavior:contain;padding:0 var(--space-3) var(--space-3);-webkit-overflow-scrolling:touch;overflow-y:auto}.map-panel__body::-webkit-scrollbar{width:6px}.map-panel__body::-webkit-scrollbar-thumb{border-radius:var(--radius-full);background:var(--color-border-strong)}.map-panel__group+.map-panel__group{margin-top:var(--space-4)}.map-panel__group-title{margin:0 0 var(--space-1);color:var(--color-text-secondary);font-size:var(--font-size-micro);font-weight:var(--font-weight-semibold);letter-spacing:.08em;text-transform:uppercase;padding:0 .5rem}.map-panel__list{flex-direction:column;gap:1px;display:flex}.map-panel__empty{padding:var(--space-4) .5rem;color:var(--color-text-secondary);font-size:var(--font-size-sm)}.map-line,.map-stop{align-items:center;gap:var(--space-3);border-radius:var(--radius-md);width:100%;color:var(--color-text-primary);font:inherit;text-align:left;cursor:pointer;transition:background-color var(--transition-fast), border-color var(--transition-fast);background-color:#0000;border:1px solid #0000;padding:.5rem;text-decoration:none;display:flex}.map-line:hover,.map-line:focus-visible,.map-stop:hover,.map-stop:focus-visible{background-color:var(--color-surface-secondary);border-color:var(--color-border);text-decoration:none}.map-line:focus-visible,.map-stop:focus-visible{outline:var(--focus-ring-width) solid var(--focus-ring-color);outline-offset:-1px}.map-line__badge,.map-badge{font-family:inherit}.map-line__name{min-width:0;font-size:var(--font-size-sm);overflow-wrap:anywhere;flex:1;line-height:1.3}.map-line__icon{color:var(--color-text-placeholder);flex-shrink:0;font-size:.75rem}.map-stop__icon{width:1.25rem;color:var(--color-text-muted);text-align:center;flex-shrink:0;font-size:.875rem}.map-stop__text{flex-direction:column;gap:.1rem;min-width:0;display:flex}.map-stop__name{font-size:var(--font-size-sm);overflow-wrap:anywhere;line-height:1.3}.map-stop__meta{color:var(--color-text-secondary);font-size:var(--font-size-xs);overflow-wrap:anywhere;line-height:1.3}.map-panel__view[data-view=detail]{padding-top:var(--space-1)}.map-detail__topbar{margin-bottom:var(--space-3);padding-bottom:var(--space-2);border-bottom:1px solid var(--color-border)}.map-panel__back{color:var(--color-text-secondary);font:inherit;font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);cursor:pointer;background:0 0;border:none;align-items:center;gap:.4rem;padding:.25rem .5rem .25rem 0;display:inline-flex}.map-panel__back:hover,.map-panel__back:focus-visible{color:var(--color-text-primary)}.map-detail__head{align-items:center;gap:var(--space-2);display:flex}.map-detail__eyebrow{color:var(--color-text-secondary);font-size:var(--font-size-micro);font-weight:var(--font-weight-semibold);letter-spacing:.08em;text-transform:uppercase}.map-detail__title{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);overflow-wrap:anywhere;margin:.15rem 0 0;line-height:1.25}.map-detail__title .route-relation,.map-direction .route-relation{flex-wrap:wrap;justify-content:flex-start;align-items:center;column-gap:.35rem;width:auto;min-width:0;display:flex}.map-detail__title .route-relation__endpoint--origin,.map-detail__title .route-relation__endpoint--destination,.map-direction .route-relation__endpoint--origin,.map-direction .route-relation__endpoint--destination{text-align:left}.map-detail__head .map-detail__title{font-size:var(--font-size-base);flex:1;margin:0}.map-detail__title:focus-visible{outline:var(--focus-ring-width) solid var(--focus-ring-color);outline-offset:3px;border-radius:var(--radius-sm)}.map-detail__meta,.map-detail__note,.map-detail__hint{color:var(--color-text-secondary);font-size:var(--font-size-xs);margin-top:.35rem;line-height:1.45}.map-detail__label{margin-top:var(--space-3);color:var(--color-text-secondary);font-size:var(--font-size-micro);font-weight:var(--font-weight-semibold);letter-spacing:.08em;text-transform:uppercase}.map-detail__facts{flex-wrap:wrap;gap:.3rem .75rem;margin-top:.5rem;padding:0;list-style:none;display:flex}.map-fact{color:var(--color-text-secondary);font-size:var(--font-size-xs);align-items:center;gap:.35rem;line-height:1.45;display:inline-flex}.map-fact__label{font-weight:var(--font-weight-semibold)}.map-fact--accessible i{color:var(--color-success)}.map-fact--not-accessible i{color:var(--color-text-placeholder)}.map-detail__badges{flex-wrap:wrap;gap:.375rem;margin-top:.4rem;display:flex}.map-detail__directions{margin-top:var(--space-3);flex-direction:column;gap:.25rem;display:flex}.map-direction{border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text-secondary);font:inherit;font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);text-align:left;cursor:pointer;transition:background-color var(--transition-fast), border-color var(--transition-fast), color var(--transition-fast);background-color:#0000;padding:.4rem .55rem;line-height:1.3}.map-direction:hover,.map-direction:focus-visible{border-color:var(--line-accent,var(--color-primary));color:var(--color-text-primary)}.map-direction--switch{align-items:center;gap:.45rem;display:flex}.map-direction__icon{color:var(--line-accent,var(--color-text-secondary));flex-shrink:0}.map-route-stops{margin:var(--space-3) 0 0;padding:0;list-style:none;position:relative}.map-route-stops:before{content:"";border-radius:var(--radius-full);background-color:var(--line-accent,var(--color-primary));opacity:.45;width:2px;position:absolute;top:.9rem;bottom:.9rem;left:.4375rem}.map-route-stops__item{border-radius:var(--radius-sm);width:100%;color:var(--color-text-primary);font:inherit;font-size:var(--font-size-sm);text-align:left;cursor:pointer;overflow-wrap:anywhere;background:0 0;border:none;padding:.3rem .25rem .3rem 1.35rem;line-height:1.35;display:block;position:relative}.map-route-stops__item:before{content:"";border:2px solid var(--line-accent,var(--color-primary));border-radius:var(--radius-full);background-color:var(--color-surface);width:.75rem;height:.75rem;position:absolute;top:.62rem;left:0}.map-route-stops__item:hover,.map-route-stops__item:focus-visible{font-weight:var(--font-weight-semibold);background-color:#0000}.map-detail__link{margin-top:var(--space-4);color:var(--color-text-primary);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);align-items:center;gap:.4rem;display:inline-flex}.map-detail__link:hover,.map-detail__link:focus-visible{text-decoration:underline}@media (width>=900px){.map-panel{top:var(--space-4);bottom:auto;right:auto;left:var(--space-4);width:22rem;max-height:calc(100% - var(--space-8));border-radius:var(--radius-lg);box-shadow:var(--shadow-overlay);visibility:visible;border-width:1px;transform:none}.map-app.is-panel-closed .map-panel{transform:translateX(calc(-100% - var(--space-6)));visibility:hidden}.map-panel__grip{display:none}.map-app__trigger{top:var(--space-4);left:var(--space-4);opacity:0;visibility:hidden}.map-app.is-panel-closed .map-app__trigger{opacity:1;visibility:visible}}@media (width<=899px){.map-app.is-panel-open .leaflet-bottom{padding-bottom:var(--map-sheet-height)}.map-panel[data-detail-type=stop] .map-panel__search{display:none}.map-panel[data-detail-type=stop] .map-panel__head{justify-content:flex-end;padding-top:.35rem;padding-bottom:.15rem}.map-app__trigger{font-size:var(--font-size-xs);padding:.45rem .75rem}}[data-theme=dark] .map-panel{background:var(--color-surface);box-shadow:var(--shadow-sheet)}[data-theme=dark] .map-app__trigger,[data-theme=dark] .map-app .leaflet-control-zoom a.leaflet-control-zoom-in,[data-theme=dark] .map-app .leaflet-control-zoom a.leaflet-control-zoom-out,[data-theme=dark] .map-app .map-app__control-btn{background:var(--color-surface);border-color:var(--color-border-strong);color:var(--color-text-primary);box-shadow:var(--shadow-overlay)}[data-theme=dark] .map-app .leaflet-control-zoom a.leaflet-control-zoom-in:hover,[data-theme=dark] .map-app .leaflet-control-zoom a.leaflet-control-zoom-out:hover,[data-theme=dark] .map-app .map-app__control-btn:hover{background:var(--color-surface-tertiary)}[data-theme=dark] .map-line:hover,[data-theme=dark] .map-line:focus-visible,[data-theme=dark] .map-stop:hover,[data-theme=dark] .map-stop:focus-visible{background-color:var(--color-surface-tertiary)}[data-theme=dark] .map-panel__input{background-color:var(--color-surface-tertiary);border-color:var(--color-border-strong)}[data-theme=dark] .map-panel__input:focus-visible{border-color:var(--color-primary-border)}@media (prefers-reduced-motion:reduce){.map-panel,.map-app__trigger,.map-app .leaflet-bottom,.map-line,.map-stop,.map-direction,.stop-arrival{transition-duration:.01ms}}@media print{.map-panel,.map-app__trigger{display:none}}
