:root{--ink:#123c4a;--green:#527a61;--sand:#f4efe5;--coral:#dc735d;--gold:#d39c43}*{box-sizing:border-box}html,body{width:100%;height:100%;overflow:hidden;overscroll-behavior:none}body{margin:0;background:var(--sand);font:15px/1.4 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--ink);touch-action:none}main{height:100dvh;min-height:100svh;position:relative;overflow:hidden}header{height:91px;z-index:800;position:absolute;top:0;left:0;right:0;padding:15px 18px max(15px,env(safe-area-inset-right)) max(13px,env(safe-area-inset-left));display:flex;justify-content:space-between;align-items:center;background:linear-gradient(180deg,rgba(244,239,229,.98),rgba(244,239,229,.88),transparent);pointer-events:none}header>*{pointer-events:auto}.eyebrow{margin:0;color:#58706d;font-size:11px;font-weight:750;letter-spacing:.09em;text-transform:uppercase}h1,h2{font-size:22px;line-height:1.05;margin:3px 0;font-weight:780;letter-spacing:-.04em}h1 span{font-size:18px}.round-button,.close-button{border:0;background:#fff;color:var(--ink);box-shadow:0 3px 14px #123c4a28;cursor:pointer}.round-button{width:40px;height:40px;border-radius:20px;font-size:26px}#map{height:100%;width:100%;background:#cddfe0;touch-action:none}#map .leaflet-control-container{position:relative;z-index:900}#map .leaflet-bottom{bottom:96px}.notice{position:absolute;z-index:801;top:97px;left:50%;transform:translateX(-50%);background:#123c4ae8;color:#fff;border-radius:20px;padding:7px 12px;font-size:13px;white-space:nowrap;transition:opacity .3s}.notice.hidden{opacity:0;pointer-events:none}.sheet{position:absolute;z-index:800;bottom:0;left:0;right:0;background:rgba(255,255,255,.96);padding:7px 20px calc(15px + env(safe-area-inset-bottom));border-radius:21px 21px 0 0;box-shadow:0 -4px 22px #123c4a18;touch-action:manipulation}.handle{width:35px;height:4px;border-radius:4px;background:#cdd3ca;margin:0 auto 9px}.legend{display:flex;gap:16px;font-size:12px;font-weight:650}.legend span{display:inline-flex;align-items:center;gap:6px}.legend i{display:inline-block;width:10px;height:10px;border-radius:50%}.route{background:var(--coral)}.camp{background:var(--green)}.nature{background:var(--gold)}#stats,.station-count{font-size:12px;margin:7px 0;color:#536d70}.station-button{width:100%;margin-top:5px;padding:11px 12px;border:0;border-radius:11px;background:#e8f0eb;color:#214d3c;font:700 14px inherit;text-align:left;cursor:pointer}.station-button span{float:right;font-size:22px;line-height:14px}.station-sheet{display:none;position:fixed;z-index:2000;inset:0;background:var(--sand);padding:calc(14px + env(safe-area-inset-top)) 18px calc(18px + env(safe-area-inset-bottom));flex-direction:column;overflow:hidden;touch-action:manipulation}.station-sheet.open{display:flex}.sheet-header{flex:0 0 auto;display:flex;align-items:center;gap:12px}.close-button{flex:0 0 38px;width:38px;height:38px;border-radius:19px;font-size:27px;line-height:1}.search{flex:0 0 auto;margin-top:18px;display:flex;gap:8px;align-items:center;padding:9px 12px;border:1px solid #d4ddd5;background:#fff;border-radius:11px;color:#58706d}.search input{font:16px inherit;color:var(--ink);border:0;outline:0;background:transparent;width:100%;min-width:0}.station-list{flex:1 1 auto;min-height:0;overflow-y:auto;-webkit-overflow-scrolling:touch;padding:1px 0 8px;touch-action:pan-y}.station-item{width:100%;display:block;border:0;border-bottom:1px solid #d9e0d8;background:transparent;padding:13px 3px;text-align:left;color:var(--ink);cursor:pointer}.station-item:active{background:#e6eee8}.station-item-title{font-weight:750;font-size:14px}.station-item-desc{display:block;color:#58706d;font-size:12px;margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.leaflet-popup-content-wrapper{border-radius:13px;color:#173f4d}.leaflet-popup-content{margin:12px 14px;max-width:240px}.pop-title{font-weight:750;font-size:14px;margin-bottom:4px}.pop-desc{font-size:12px;color:#4c6262}.marker{width:16px;height:16px;border:3px solid #fff;border-radius:50%;background:var(--green);box-shadow:0 1px 5px #123c4a66}.marker.nature{background:var(--gold)}.marker.special{background:var(--coral);width:19px;height:19px}@media(min-width:700px){header{padding-left:32px}.sheet{left:18px;bottom:18px;right:auto;width:340px;border-radius:18px;padding:10px 18px 15px}.handle{display:none}.station-sheet{left:auto;width:440px;box-shadow:-5px 0 28px #123c4a25}}