.routeMapBtn{display:flex!important;align-items:center!important;justify-content:center!important;text-align:center!important;background:#fff8db!important;border-color:#e4ae00!important;color:#4a3a00!important;font-weight:850!important}
.routeMapModal{padding:12px!important;overflow:hidden!important}
.routeMapPanel{display:flex!important;flex-direction:column;width:min(1180px,100%)!important;max-width:none!important;height:calc(100vh - 24px)!important;height:calc(100dvh - 24px)!important;max-height:calc(100vh - 24px)!important;max-height:calc(100dvh - 24px)!important;margin:0 auto!important;padding:0!important;overflow:hidden!important;background:#fffdf8!important}
.routeMapHeader{display:flex;flex:none;align-items:flex-start;justify-content:space-between;gap:16px;padding:18px 20px 12px;border-bottom:1px solid #eee5d3}
.routeMapHeader h2{margin:0 0 3px;font-size:21px}
.routeMapHeader p{margin:0;color:#746954;font-size:13px}
.routeMapClose{width:38px;height:38px;flex:none;border:1px solid #ded4c1;border-radius:50%;background:#fff;color:#433b2e;font-size:26px;line-height:1;cursor:pointer}
.routeMapLegend{display:flex;flex:none;flex-wrap:wrap;gap:7px 13px;padding:10px 20px;border-bottom:1px solid #eee5d3;background:#fff}
.routeMapLegend span{display:inline-flex;align-items:center;gap:5px;color:#554c3e;font-size:12px;font-weight:750}
.routeMapLegend i{display:block;width:18px;height:5px;border-radius:5px;background:var(--line-color)}
.routeMapViewport{position:relative;flex:1 1 0;min-height:0;overflow-x:auto!important;overflow-y:scroll!important;padding:22px 18px 28px;background-color:#fffdf9;background-image:radial-gradient(#e9e1d2 0.6px,transparent 0.6px);background-size:12px 12px;overscroll-behavior:contain;scrollbar-gutter:stable;touch-action:pan-x pan-y;-webkit-overflow-scrolling:touch}
.routeMapViewport::-webkit-scrollbar{width:12px;height:12px}
.routeMapViewport::-webkit-scrollbar-track{background:#f1ece2}
.routeMapViewport::-webkit-scrollbar-thumb{border:3px solid #f1ece2;border-radius:10px;background:#a69b87}
.routeMapCanvas{display:grid;gap:20px;min-width:980px;width:max-content}
.routeLine{display:grid;grid-template-columns:120px auto;align-items:start;--line-color:#f58220}
.routeLineName{position:sticky;left:0;z-index:4;display:flex;align-items:center;gap:8px;min-height:68px;padding:9px 10px 9px 0;background:linear-gradient(90deg,#fffdf9 82%,transparent);color:var(--line-color);font-size:13px;font-weight:900;white-space:nowrap}
.routeLineName::before{content:"";width:9px;height:38px;border-radius:5px;background:var(--line-color);box-shadow:0 1px 2px #0002}
.routeStations{position:relative;display:flex;align-items:flex-start;padding:0 18px}
.routeStations::before{content:"";position:absolute;top:28px;left:18px;right:18px;height:10px;border-radius:9px;background:var(--line-color);box-shadow:inset 0 -1px 0 #0002}
.routeStation{position:relative;z-index:1;width:58px;min-width:58px;padding:0;border:0;background:transparent;color:#29251f;cursor:pointer;text-align:center;font:inherit}
.routeStationDot{display:block;width:19px;height:19px;margin:23px auto 5px;border:4px solid var(--line-color);border-radius:50%;background:#fff;box-shadow:0 0 0 2px #fff}
.routeStationName{display:block;max-width:58px;font-size:12px;font-weight:750;line-height:1.2;word-break:keep-all;overflow-wrap:anywhere}
.routeStation:hover .routeStationDot,.routeStation:focus-visible .routeStationDot{background:#f7c114;transform:scale(1.2)}
.routeStation:focus-visible{outline:2px solid #1e73be;outline-offset:3px;border-radius:4px}
.routeStation[aria-current="true"] .routeStationDot{background:#1f1a12;box-shadow:0 0 0 3px #f7c114}
.routeStation[aria-current="true"] .routeStationName{color:#9b7100;font-weight:950}
.routeMapFooter{display:flex;flex:none;align-items:center;justify-content:space-between;gap:12px;padding:11px 18px;border-top:1px solid #eee5d3;background:#fffdf8;color:#746954;font-size:12px}
@media(max-width:700px){
  .routeMapModal{padding:0!important}.routeMapPanel{height:100vh!important;height:100dvh!important;min-height:0;max-height:100vh!important;max-height:100dvh!important;border-radius:0!important}
  .routeMapHeader{padding:14px 14px 10px}.routeMapHeader h2{font-size:19px}.routeMapHeader p{font-size:12px}
  .routeMapLegend{padding:8px 14px;gap:6px 10px}.routeMapViewport{padding:16px 10px 24px}
  .routeMapCanvas{grid-template-columns:1fr;gap:16px;min-width:900px}.routeLine{grid-template-columns:105px auto}.routeStation{width:54px;min-width:54px}.routeStationName{max-width:54px;font-size:11px}
  body.home-view #routeMapBtn{order:3}
}
