@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Manrope:wght@400;500;600;700;800&display=swap');
:root{--green:#193f35;--ink:#213c34;--muted:#7a8580;--lime:#dceca6}*{box-sizing:border-box}body{margin:0;font:14px 'DM Sans',sans-serif;color:var(--ink);background:#e7eade}button,a,input,select{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer}button:disabled{opacity:.5;cursor:wait}button:focus-visible,a:focus-visible,select:focus-visible,input:focus-visible{outline:3px solid #90b86d;outline-offset:3px}button svg,.footnote svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.65;stroke-linecap:round;stroke-linejoin:round}#map{position:fixed;inset:0;background:#e5e9df}header{position:fixed;z-index:500;top:30px;left:34px;right:34px;display:flex;justify-content:space-between;pointer-events:none}.brand{display:flex;align-items:center;font:800 32px Manrope,sans-serif;letter-spacing:-2px;color:var(--green);text-decoration:none;background:#fffdf8;padding:12px 20px;border-radius:18px;box-shadow:0 4px 24px #193f3510;pointer-events:auto}.brand svg{width:32px;height:32px;margin-right:9px;fill:none;stroke:var(--green);stroke-width:2}.brand span{font:600 9px 'DM Sans';letter-spacing:1.5px;border-left:1px solid #dce1d7;padding-left:17px;margin-left:20px;max-width:110px}.gps{background:#fffdf8;padding:14px 18px;align-self:center;border-radius:30px;font-size:12px;display:flex;align-items:center;gap:8px}.gps i,.dot{width:6px;height:6px;background:#93a48c;border-radius:50%;display:inline-block}.gps.active i{background:#4b965a;box-shadow:0 0 0 4px #5798641c}.modes{position:fixed;z-index:500;top:120px;left:34px;background:#fffdf8;padding:6px;border-radius:17px;display:flex;gap:5px;box-shadow:0 5px 20px #25382912}.modes button{width:58px;height:48px;background:transparent;border:0;border-radius:12px;color:#7f8b83}.modes .selected{background:var(--green);color:var(--lime)}.modes svg{height:25px;width:25px}.panel{position:fixed;z-index:500;left:34px;top:196px;width:370px;max-height:calc(100dvh - 225px);overflow:auto;background:#fffdf9;border:1px solid #fff;border-radius:24px;padding:29px;box-shadow:0 12px 45px #223e351a;scrollbar-width:thin}.eyebrow{font-size:9px;letter-spacing:1.65px;font-weight:700;display:flex;align-items:center;gap:8px}.dot{background:#8ca875}h1{font:600 35px/1.18 Manrope,sans-serif;letter-spacing:-1.6px;margin:18px 0 12px}.intro{color:var(--muted);font-size:13px;margin:0 0 26px}.location-card{display:flex;align-items:center;gap:13px;background:#f0f2e9;border:1px solid #e6eadd;border-radius:14px;padding:17px 13px;margin-bottom:18px}.pin-icon{width:39px;height:43px;border-radius:11px;color:var(--green);background:#e1e9d3;display:grid;place-items:center;font-size:22px;font-weight:600}.location-card strong{font-size:13px}.location-card p{font-size:11px;color:var(--muted);margin:5px 0 0;line-height:1.5}.primary{border:0;background:var(--green);color:white;padding:16px 18px;border-radius:12px;width:100%;display:flex;align-items:center;justify-content:space-between;font-weight:600;font-size:13px;margin-top:10px}.primary span:last-child{color:var(--lime);font-size:20px}.footnote{color:#89918a;font-size:10px;display:flex;align-items:center;justify-content:center;gap:7px;margin:18px 0 4px}.footnote svg{height:15px;width:15px}.map-controls{position:fixed;z-index:500;right:30px;top:135px;display:flex;flex-direction:column;gap:7px}.map-controls button{background:#fffdf9;border:1px solid #fff;border-radius:13px;width:46px;height:46px;box-shadow:0 3px 14px #193f3515;color:var(--green);font-size:23px;display:grid;place-items:center}.map-controls button:nth-child(3){margin-top:10px}.map-caption{position:fixed;bottom:27px;left:50%;transform:translateX(-50%);z-index:400;background:#fffdf9d9;border-radius:20px;padding:9px 16px;font-size:10px;letter-spacing:.4px;white-space:nowrap}.secondary-row{display:flex;justify-content:space-between;margin:17px 2px}.secondary-row button,.secondary-row a{border:0;background:none;color:var(--green);font-size:11px;text-decoration:underline;cursor:pointer}.origin{display:flex;align-items:center;font-size:12px;gap:10px;margin-bottom:18px}.origin>span:last-child{margin-left:auto;color:#959c94;font-size:9px;letter-spacing:1px}.live-dot{height:10px;width:10px;border:2px solid white;background:#4e8ca0;border-radius:50%;box-shadow:0 0 0 4px #e1ebeb}.stop{margin-bottom:10px}.stop-line{display:flex;align-items:center;gap:8px}.stop-number{border:1px solid #d7ded3;border-radius:50%;width:22px;height:22px;display:grid;place-items:center;font-size:10px;flex-shrink:0}.stop input{min-width:0;width:100%;border:1px solid #e2e6db;background:#f8f9f4;border-radius:9px;padding:12px 10px;color:var(--ink);font:12px 'DM Sans'}.stop button{border:0;background:none;color:var(--green);padding:7px}.stop.chosen input{border-color:#aec291;background:#f0f5e6}.search-results{margin-left:30px;border-radius:10px;background:#f1f3ea;max-height:170px;overflow:auto}.search-results button{display:block;text-align:left;width:100%;font-size:11px;padding:12px;border-bottom:1px solid #dfe5d8;line-height:1.5}.add{border:1px dashed #cbd4c2;background:transparent;border-radius:10px;padding:12px;width:100%;text-align:center;color:#587349;font-size:12px}.options{display:flex;gap:10px;margin-top:20px}.options label{font-size:10px;color:var(--muted);width:50%}select{width:100%;border:1px solid #dfe4d8;border-radius:8px;background:#fffdf9;padding:10px 5px;margin-top:6px;color:var(--ink);font-size:11px}.return{display:flex;align-items:center;gap:7px;font-size:11px;margin:15px 0;accent-color:var(--green)}.small{font-size:10px;color:var(--muted);line-height:1.5}.location-prompt{width:100%;border:1px solid #cedbc4;background:#eef4e7;padding:12px;color:var(--green);border-radius:10px;margin-top:17px;font-size:12px}.privacy{margin-top:17px;color:#92978e;font-size:10px;line-height:1.6}.privacy summary{cursor:pointer}.handle{display:none}#status{padding:12px;background:#f9ecd5;border-radius:10px;color:#796140;line-height:1.6;font-size:12px;margin-top:15px}#route-result{border-top:1px solid #e5e8dd;margin-top:22px;padding-top:20px}.metrics{display:flex;gap:25px;margin-bottom:12px}.metrics strong{display:block;font:600 25px Manrope}.metrics span{font-size:10px;color:var(--muted)}.itinerary{margin:12px 0;padding-left:20px;font-size:12px;line-height:1.7}.route-label{font-size:10px;letter-spacing:1px;text-transform:uppercase;color:#74826b}.user-marker{background:#518bad;width:18px;height:18px;border:3px solid white;border-radius:50%;box-shadow:0 0 0 8px #518bad24}.park-marker,.tour-marker{background:var(--green);border:3px solid #fff;border-radius:12px;color:#fff;display:grid;place-items:center;font:bold 17px 'DM Sans';box-shadow:0 3px 9px #193f3540}.tour-marker{background:#6f8650;border-radius:50%;font-size:12px}.leaflet-control-attribution{font-size:9px!important;background:#fffdf9e6!important}[hidden]{display:none!important}
@media(max-width:600px){header{top:max(16px,env(safe-area-inset-top));left:17px;right:17px}.brand{font-size:26px;padding:9px 13px;border-radius:14px}.brand svg{width:25px;height:25px}.brand span{display:none}.gps{font-size:10px;padding:11px 12px}.modes{left:17px;top:89px}.modes button{width:48px;height:41px}.map-controls{right:17px;top:89px}.map-controls button{width:40px;height:40px;border-radius:11px}.panel{left:0;right:0;top:auto;bottom:0;width:100%;max-height:53dvh;border-radius:25px 25px 0 0;padding:12px 24px calc(18px + env(safe-area-inset-bottom))}.handle{display:block;width:34px;height:4px;border-radius:3px;background:#d9ddcf;margin:0 auto 18px}h1{font-size:29px;margin:12px 0 8px}h1 br{display:none}.intro{margin-bottom:16px;font-size:12px}.eyebrow{font-size:8px}.location-card{padding:12px;margin-bottom:12px}.primary{padding:14px 17px}.privacy{margin-top:12px}.footnote{margin-top:13px}.map-caption{display:none}.leaflet-control-attribution{bottom:54dvh!important;font-size:8px!important}.map-controls button:nth-child(4){display:none}}
/* Compact brand bar */
.brand{font-size:26px;padding:7px 14px;border-radius:13px;letter-spacing:-1.5px}.brand svg{width:26px;height:26px;margin-right:7px}.brand span{font-size:8px;letter-spacing:1.2px;padding-left:12px;margin-left:13px;max-width:94px}@media(max-width:600px){.brand{font-size:23px;padding:5px 11px;border-radius:11px}.brand svg{width:22px;height:22px;margin-right:5px}}
