.network{color:#183e32;background-color:#f6f9f6;background-image:radial-gradient(#cbd7cf .8px,#0000 .9px);background-size:17px 17px;flex-direction:column;align-items:center;height:100dvh;display:flex;position:relative;overflow:hidden}.network header{z-index:2;top:max(14px,env(safe-area-inset-top));align-items:center;display:flex;position:absolute;left:24px}.network header a,.map-zoom button{color:#174d3b;background:#fff;border:1px solid #d8e1da;border-radius:14px;place-items:center;width:44px;height:44px;padding:0;font-size:25px;text-decoration:none;display:grid;box-shadow:0 3px 8px #173d3010}.diagram{touch-action:none;-webkit-user-select:none;user-select:none;cursor:grab;flex:1;width:100%;min-height:0;display:block}.diagram:active{cursor:grabbing}.map-stop{cursor:pointer}.map-stop text{paint-order:stroke;stroke:#f6f9f6;stroke-width:3px;stroke-linejoin:round;font-size:16px;font-weight:600}.map-zoom{background:#fffffff2;border:1px solid #dce5df;border-radius:18px;gap:8px;padding:5px;display:grid;position:absolute;top:50%;right:18px;transform:translateY(-50%);box-shadow:0 5px 18px #173d3021}.map-zoom button{color:#153f31;width:40px;height:40px;box-shadow:none;cursor:pointer;background:0 0;border:0;border-radius:12px}.map-zoom button:hover{background:#eaf3ed}.map-zoom button:active{background:#dcebe1;transform:scale(.94)}.map-zoom svg{stroke-width:2.2px;width:21px;height:21px}.network header a{color:#fff;box-shadow:none;background:#173e33;border:0;border-radius:50%}.network header a:hover{background:#28604d}.map-dock{z-index:3;right:max(20px,env(safe-area-inset-right));bottom:max(20px,env(safe-area-inset-bottom));width:min(380px,100vw - 32px);box-shadow:none;background:0 0;border:0;border-radius:22px;flex-direction:column;align-items:flex-end;gap:12px;padding:0;display:flex;position:absolute}.dock-toggle{color:#174b39;cursor:pointer;background:#fff;border:1px solid #d5e0d9;border-radius:18px;place-items:center;width:54px;height:54px;padding:0;transition:transform .22s cubic-bezier(.2,.8,.2,1),background .2s,box-shadow .2s;display:grid;box-shadow:0 6px 20px #183e3226}.dock-toggle:hover{background:#fafffb;transform:translateY(-2px);box-shadow:0 9px 26px #183e3230}.dock-toggle:active{transform:scale(.96)}.dock-toggle svg{stroke-width:1.9px;flex:none;width:22px;height:22px;display:block;transform:none}.dock-content{opacity:0;transform-origin:100% 100%;pointer-events:none;background:#fff;border:1px solid #0000;border-radius:22px;width:100%;max-height:0;padding:0;transition:max-height .42s cubic-bezier(.2,.75,.25,1),opacity .24s,transform .42s cubic-bezier(.2,.75,.25,1),padding .35s,border-color .3s;overflow:hidden;transform:translateY(10px)scale(.985);box-shadow:0 10px 32px #183e3226}.map-dock.is-open .dock-content{opacity:1;pointer-events:auto;border-color:#ffffffb5;max-height:280px;padding:8px;transform:translateY(0)scale(1)}.map-dock.is-open .dock-toggle svg{transform:none}.dock-toggle svg{transition:transform .3s cubic-bezier(.2,.8,.2,1)}.endpoints,.route-controls{align-items:center;display:flex}.station-field{text-align:left;color:#193b31;background:0 0;flex:1;align-items:center;gap:10px;min-width:0;min-height:46px;padding:6px 8px;font-size:16px;display:flex}.station-field+.station-field{border-left:1px solid #dbe5de;border-radius:0 8px 8px 0}.station-field:hover,.clear-route:hover:enabled,.station-list button:hover:enabled{background:#eef5f0}.station-letter{color:#285a44;background:#e0eee5;border-radius:50%;flex:none;place-items:center;width:25px;height:25px;font-size:13px;display:grid}.station-field:last-child .station-letter{color:#fff;background:#244a3d}.station-field svg{flex:none;width:15px;margin-left:auto}.route-controls{border-top:1px solid #e3ebe6;gap:8px;margin-top:7px;padding-top:8px}.route-controls button,.route-controls output{border-radius:12px;justify-content:center;align-items:center;gap:8px;min-height:44px;padding:8px 14px;font-size:16px;display:flex}.route-action,.route-controls output{color:#fff;background:#19583e;flex:1;font-weight:650}.route-action:disabled{color:#526759;opacity:1;background:#eaf1ec}.clear-route{color:#465c50;background:0 0}.clear-route:disabled{opacity:.45}.station-picker{color:#193b31;border:0;border-radius:20px;width:min(460px,100vw - 24px);max-height:80dvh;padding:0;box-shadow:0 16px 60px #142b3040}.station-picker::backdrop{background:#162f2866}.picker-head{border-bottom:1px solid #dbe5de;justify-content:space-between;align-items:center;padding:12px 16px;display:flex}.picker-head button{color:#264c3e;background:#eef4f0;border-radius:50%;place-items:center;padding:10px;display:grid}.station-list{overscroll-behavior:contain;max-height:calc(80dvh - 70px);padding:0 12px 12px;overflow:auto}.station-list h2{background:#f1f5f2;border-radius:8px;align-items:center;gap:8px;margin:10px 0 2px;padding:10px;font-size:15px;line-height:1.4;display:flex}.station-list i{border-radius:50%;width:9px;height:9px}.station-list button{text-align:left;color:#193b31;background:#fff;width:100%;min-height:44px;padding:7px 14px;font-size:16px;display:block}.station-list button[aria-pressed=true]{background:#d9eee1}@media (max-width:600px){.network header{left:14px}.map-zoom{gap:4px;padding:4px;top:76px;right:12px;transform:none}.station-field{gap:6px;padding:5px;font-size:14px}.map-dock{right:14px;bottom:max(14px,env(safe-area-inset-bottom));width:min(360px,100vw - 24px)}.map-dock.is-open .dock-content{max-height:300px}.station-picker{margin:auto auto max(8px,env(safe-area-inset-bottom))}}@media (prefers-reduced-motion:reduce){.dock-toggle,.dock-toggle svg,.dock-content{transition-duration:.01ms}}
