:root{font-family:Arial,Helvetica,sans-serif;color:#2a2a2a;background:#fff;color-scheme:light;--safe-top:var(--tg-content-safe-area-inset-top,env(safe-area-inset-top,0px))}*{box-sizing:border-box}body{margin:0;height:100vh;height:100dvh;display:flex;flex-direction:column;padding-top:var(--safe-top)}button,input,a{-webkit-tap-highlight-color:transparent}button,a,input{font:inherit}button{cursor:pointer;color:inherit}header{padding:20px 20px 12px;background:white;z-index:2}.brand{font-weight:800;font-size:13px;letter-spacing:1.2px;display:flex;align-items:center;gap:10px}.brand span{font-size:9px;border:1px solid #ddd;border-radius:5px;padding:4px;letter-spacing:1px;font-weight:500}h1{font-size:28px;letter-spacing:-1px;margin:15px 0 5px}header p{font-size:13px;color:#777;line-height:1.4;margin:0 0 17px}.search{display:flex;align-items:center;border:1px solid #ddd;border-radius:12px;overflow:hidden;padding:0 12px;gap:10px;background:#fafafa}.search svg{width:19px;fill:none;stroke:currentColor;stroke-width:1.8;flex-shrink:0}input{width:100%;min-width:0;height:46px;border:0;outline:none;background:transparent;font-size:16px}input:focus-visible{box-shadow:inset 0 -2px #2a2a2a}button:focus-visible,a:focus-visible{outline:2px solid #2a2a2a;outline-offset:3px}#clear{border:0;background:none;font-size:25px}.toolbar{display:flex;align-items:center;justify-content:space-between;margin-top:12px;gap:8px}#count{font-size:12px;color:#777}.tabs{display:flex;padding:3px;background:#f1f1f1;border-radius:10px}.tabs button{border:0;background:transparent;padding:8px 14px;border-radius:8px;font-size:12px}.tabs button[aria-pressed=true]{background:#2a2a2a;color:#fff}main{flex:1;min-height:160px;position:relative}#map-view,#map,#list-view{height:100%;width:100%}#map-view{position:relative;background:#f3f3f1}#map-status{position:absolute;top:15px;left:50%;transform:translateX(-50%);width:max-content;max-width:90%;padding:12px 16px;border-radius:12px;background:white;box-shadow:0 3px 15px #0001;font-size:13px;text-align:center}#list-view{overflow:auto;padding:0 20px}#results{max-width:800px;margin:auto}.result{display:flex;align-items:center;gap:13px;width:100%;padding:16px 0;text-align:left;background:white;border:0;border-bottom:1px solid #eee;font-size:14px;line-height:1.5}.result .pin{flex-shrink:0;background:#f3f3f3;width:40px;height:40px;border-radius:12px;display:grid;place-items:center;font-size:20px}.result .arrow{margin-left:auto;font-size:20px}.result small{display:block;color:#888;font-size:11px}footer{display:flex;justify-content:space-between;gap:8px;font-size:10px;padding:10px 16px calc(10px + env(safe-area-inset-bottom,0px));color:#888;background:white}footer a{color:#666;text-decoration:none}dialog{border:0;padding:26px 20px calc(24px + env(safe-area-inset-bottom,0px));border-radius:24px 24px 0 0;width:100%;max-width:560px;max-height:78dvh;margin:auto auto 0;box-shadow:0 -10px 60px #0002;overflow:auto;color:#2a2a2a}dialog::backdrop{background:#0005}#close{position:absolute;right:14px;top:14px;width:36px;height:36px;border:0;border-radius:50%;background:#f2f2f2;font-size:25px}.eyebrow{font-size:9px;letter-spacing:1.5px;color:#888;margin-right:30px}h2{font-size:22px;line-height:1.3;margin:12px 25px 20px 0}#gallery{display:flex;gap:10px;overflow-x:auto;scroll-snap-type:x mandatory;border-radius:14px}#gallery img{flex:0 0 100%;width:100%;height:210px;object-fit:cover;scroll-snap-align:start;background:#f1f1f1}#photo-note{font-size:12px;color:#888}#routes{display:grid;gap:9px}#routes a{display:block;text-align:center;padding:14px;border:1px solid #ddd;border-radius:12px;color:#2a2a2a;text-decoration:none;font-size:14px}#routes a:first-child{background:#2a2a2a;color:white;border-color:#2a2a2a}.empty{color:#777;text-align:center;padding:40px 20px;line-height:1.6}.rcw-dot{width:28px;height:28px;border-radius:50% 50% 50% 4px;transform:rotate(-45deg);background:#2a2a2a;border:3px solid white;box-shadow:0 2px 7px #0005}.rcw-dot:after{content:'';display:block;width:6px;height:6px;border-radius:50%;background:#fff;margin:8px}[hidden]{display:none!important}@media(min-width:760px){header{padding:24px 32px 16px}header p{margin-bottom:14px}.search{max-width:550px}h1{font-size:34px}.toolbar{max-width:550px}dialog{margin:auto;border-radius:24px}footer{padding-left:32px;padding-right:32px}}@media(max-height:600px){header{padding-top:10px}h1{margin-top:8px;font-size:23px}header p{display:none}.search{margin-top:10px}}

#model-filters{display:flex;gap:8px;margin-top:12px}#model-filters button{border:1px solid #ddd;border-radius:20px;background:white;padding:8px 18px;font-size:13px;min-height:38px}#model-filters button[aria-pressed=true]{background:#2a2a2a;color:white;border-color:#2a2a2a}#card-model{font-size:13px;color:#666;margin:-8px 0 16px}

/* Let the map own touch gestures without affecting list/card scrolling. */
#map{touch-action:none;overscroll-behavior:contain}

.location-tools{display:flex;gap:8px;margin-top:10px}.location-tools button{border:1px solid #ddd;background:#fff;border-radius:10px;padding:9px 14px;font-size:13px;min-height:40px}#nearby{background:#2a2a2a;color:#fff;border-color:#2a2a2a}#nearby:disabled{opacity:.6}#location-status{font-size:12px;line-height:1.4;margin-top:8px;color:#666;max-width:550px}
