html,body{margin:0;height:100%;font-family:-apple-system,'PingFang SC','Hiragino Sans GB','Khmer OS',sans-serif}
#map{position:absolute;inset:0;background:#dfe8e4}
#topbar{position:absolute;top:10px;left:10px;z-index:1000;width:min(380px,88vw)}
#searchbox input{width:100%;box-sizing:border-box;padding:9px 12px;border-radius:8px;border:1px solid #b9c4bd;font-size:15px;box-shadow:0 1px 5px rgba(0,0,0,.25)}
#results{background:#fff;border-radius:0 0 8px 8px;max-height:50vh;overflow:auto;box-shadow:0 2px 8px rgba(0,0,0,.3)}
#results .r{padding:8px 12px;border-top:1px solid #eee;cursor:pointer;font-size:14px}
#results .r small{color:#888}
#langbar{margin-top:6px;display:flex;gap:6px;flex-wrap:wrap}
.langbtn{background:#fff;border:2px solid rgba(0,0,0,.2);border-radius:8px;padding:5px 12px;font-size:14px;box-shadow:0 1px 4px rgba(0,0,0,.2);cursor:pointer}
.langbtn.on{background:#8b4513;color:#fff;border-color:#8b4513}
#filters{margin-top:6px}
.frow{margin-bottom:4px;white-space:nowrap;overflow-x:auto;background:rgba(255,255,255,.92);border-radius:8px;padding:4px 6px;box-shadow:0 1px 4px rgba(0,0,0,.2);font-size:13px}
.frow b{color:#666;margin-right:4px;font-weight:normal}
.chip{display:inline-block;padding:3px 9px;margin:1px 3px 1px 0;border-radius:12px;background:#eef2ee;border:1px solid #c8d2ca;color:#333;cursor:pointer}
.chip.on{background:#8b4513;border-color:#8b4513;color:#fff}
#tbar{position:absolute;top:10px;right:10px;z-index:1000;display:flex;flex-direction:column;gap:6px}
.tbtn{background:#fff;border:2px solid rgba(0,0,0,.2);border-radius:8px;padding:7px 12px;font-size:14px;box-shadow:0 1px 5px rgba(0,0,0,.25)}
#nearby,#listview{position:absolute;left:10px;right:10px;bottom:10px;z-index:1001;background:#fff;border-radius:12px;box-shadow:0 2px 14px rgba(0,0,0,.35);max-height:55vh;overflow:auto}
#nearby h4,#listview h4{margin:0;padding:10px 14px;font-size:15px;background:#203c2f;color:#fff;border-radius:12px 12px 0 0;position:sticky;top:0}
#nearby .x,#listview .x{float:right;cursor:pointer}
#nearby .r,#listview .r{padding:9px 14px;border-top:1px solid #eee;cursor:pointer;font-size:14px}
#nearby .r small,#listview .r small{color:#888}
#routebar{position:absolute;bottom:26px;left:10px;right:10px;z-index:1002;background:#203c2f;color:#fff;border-radius:10px;padding:10px 14px;font-size:14px}
#help{position:absolute;bottom:26px;left:10px;right:10px;z-index:1000;background:rgba(255,255,255,.94);border-radius:10px;padding:10px 14px;font-size:13px;box-shadow:0 2px 10px rgba(0,0,0,.3);max-height:42vh;overflow:auto}
#closehelp{float:right;cursor:pointer;color:#888;font-size:16px}
.zh-tip{background:rgba(255,255,255,.92);border:1px solid #999;border-radius:3px;font-size:11px;padding:1px 4px;color:#222;box-shadow:0 0 3px rgba(0,0,0,.25);white-space:nowrap}
.slabel-wrap{background:none;border:none}
.slabel{position:relative;width:12px;height:14px;white-space:nowrap;cursor:pointer}
.slabel:hover .stxt{background:#fdeecb;border-color:#8b4513}
.slabel:hover .sdot{transform:scale(1.25)}
.sdot{display:inline-block;width:10px;height:10px;border-radius:50%;border:1px solid #333;vertical-align:middle;box-shadow:0 0 2px rgba(0,0,0,.4)}
.stxt{position:absolute;left:15px;top:-3px;display:inline-block;box-sizing:border-box;max-width:min(260px,70vw);overflow:hidden;text-overflow:ellipsis;line-height:18px;background:rgba(255,255,255,.95);border:1px solid #999;border-radius:3px;font-size:11px;padding:1px 4px;color:#222;box-shadow:0 0 3px rgba(0,0,0,.25);vertical-align:middle;pointer-events:none}
.popbtns{margin-top:6px;display:flex;flex-wrap:wrap;gap:6px}
.popbtns a,.popbtns button{border:1px solid #8b4513;color:#8b4513;background:#fff;border-radius:6px;padding:4px 9px;font-size:13px;text-decoration:none;cursor:pointer}
.popbtns a:active,.popbtns button:active{background:#8b4513;color:#fff}
.leaflet-popup-content{max-height:55vh;overflow-y:auto;-webkit-overflow-scrolling:touch;padding-right:8px}
.leaflet-popup-content img{max-height:180px;object-fit:cover;width:230px;max-width:100%}
.photo-caption{font-size:12px;color:#666;margin:2px 0 6px}
.review-note{margin:9px 0;padding:8px 10px;background:#eef4f0;border:1px solid #cbd9d0;border-radius:7px;font-size:12px;line-height:1.55}
.review-note p{margin:3px 0}.review-heading{font-weight:600;color:#203c2f}.review-limit{color:#526256}.review-note details{margin-top:6px}.review-note summary{cursor:pointer;color:#375741}.review-note ul{padding-left:18px;margin:5px 0}.review-note li{margin:4px 0;overflow-wrap:anywhere}.review-note a{color:#375741;text-underline-offset:2px}.access-warning{border-left:3px solid #a25b13;font-weight:500}
.context-note{margin:9px 0;padding:7px 9px;border:1px solid #ddd4c2;border-radius:7px;background:#faf7f0;font-size:12px;line-height:1.55}.context-note summary{cursor:pointer;color:#665738}.context-note p{margin:6px 0}.context-description{white-space:pre-line}
[hidden]{display:none!important}
#map .stxt{visibility:hidden}#map .label-visible .stxt{visibility:visible;pointer-events:auto}#map .slabel-wrap:focus-visible{outline:2px solid #8b4513;outline-offset:3px}
#location-status,#storage-status,#map-status,#basemapbtn{font-size:12px;padding:5px 8px;border-radius:6px;background:#fff;margin-top:5px;max-width:100%;box-sizing:border-box}
#storage-status{background:#fff3cd;color:#6f4400}
#map-status{background:#fff3cd;color:#6f4400;overflow-wrap:anywhere}#map-retry{margin-top:4px;border:1px solid #8b4513;background:#fff;border-radius:5px;padding:4px 8px;color:#8b4513}
#basemapbtn{border:1px solid #aaa;cursor:pointer;text-align:left}
.r{display:block;width:100%;box-sizing:border-box;text-align:left;background:#fff;border:0;color:#222}
#detailview{position:absolute;left:10px;right:10px;bottom:10px;z-index:1003;background:#fff;border-radius:12px;box-shadow:0 2px 14px #0005;max-height:65vh;overflow:auto;padding:12px}
#detailview header{display:flex;justify-content:space-between;font-weight:bold}#detailview img{max-width:100%;max-height:180px}.nav-note{padding:6px;background:#fff3cd;font-size:12px}
#topbar{width:min(380px,calc(100vw - 144px))}#tbar .tbtn{max-width:120px}#subs .r{padding:10px}#ss-import{margin-left:5px}
@media(max-width:420px){#topbar{width:calc(100vw - 136px)}.langbtn{font-size:12px;padding:4px 6px}#tbar .tbtn{font-size:12px;padding:6px 8px;max-width:112px}}

/* 网友贡献标记 */
.userdot{width:22px;height:22px;background:#e0a400;color:#5b3a00;border:2px solid #fff;border-radius:50%;font-size:13px;line-height:19px;text-align:center;box-shadow:0 1px 5px rgba(0,0,0,.45);cursor:pointer}
.usermark .userdot:hover{background:#ffc107}
