.leaflet-cluster-anim .leaflet-marker-icon,.leaflet-cluster-anim .leaflet-marker-shadow{-webkit-transition:-webkit-transform .3s ease-out,opacity .3s ease-in;-o-transition:-o-transform .3s ease-out, opacity .3s ease-in;-moz-transition:-moz-transform .3s ease-out,opacity .3s ease-in;transition:transform .3s ease-out,opacity .3s ease-in}.leaflet-cluster-spider-leg{-webkit-transition:-webkit-stroke-dashoffset .3s ease-out,-webkit-stroke-opacity .3s ease-in;-o-transition:-o-stroke-dashoffset .3s ease-out, -o-stroke-opacity .3s ease-in;-moz-transition:-moz-stroke-dashoffset .3s ease-out,-moz-stroke-opacity .3s ease-in;transition:stroke-dashoffset .3s ease-out,stroke-opacity .3s ease-in}.leaflet-control-locate a{cursor:pointer}.leaflet-control-locate a .leaflet-control-locate-location-arrow{background-image:url("data:image/svg+xml;charset=UTF-8,<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path fill=\"black\" d=\"M445 4 29 195c-48 23-32 93 19 93h176v176c0 51 70 67 93 19L508 67c16-38-25-79-63-63z\"/></svg>");width:16px;height:16px;margin:7px;display:inline-block}.leaflet-control-locate a .leaflet-control-locate-spinner{background-image:url("data:image/svg+xml;charset=UTF-8,<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path fill=\"black\" d=\"M304 48a48 48 0 1 1-96 0 48 48 0 0 1 96 0zm-48 368a48 48 0 1 0 0 96 48 48 0 0 0 0-96zm208-208a48 48 0 1 0 0 96 48 48 0 0 0 0-96zM96 256a48 48 0 1 0-96 0 48 48 0 0 0 96 0zm13 99a48 48 0 1 0 0 96 48 48 0 0 0 0-96zm294 0a48 48 0 1 0 0 96 48 48 0 0 0 0-96zM109 61a48 48 0 1 0 0 96 48 48 0 0 0 0-96z\"/></svg>");width:16px;height:16px;margin:7px;animation:2s linear infinite leaflet-control-locate-spin;display:inline-block}.leaflet-control-locate.active a .leaflet-control-locate-location-arrow{background-image:url("data:image/svg+xml;charset=UTF-8,<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path fill=\"rgb(32, 116, 182)\" d=\"M445 4 29 195c-48 23-32 93 19 93h176v176c0 51 70 67 93 19L508 67c16-38-25-79-63-63z\"/></svg>")}.leaflet-control-locate.following a .leaflet-control-locate-location-arrow{background-image:url("data:image/svg+xml;charset=UTF-8,<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\"><path fill=\"rgb(252, 132, 40)\" d=\"M445 4 29 195c-48 23-32 93 19 93h176v176c0 51 70 67 93 19L508 67c16-38-25-79-63-63z\"/></svg>")}.leaflet-touch .leaflet-bar .leaflet-locate-text-active{text-overflow:ellipsis;white-space:nowrap;width:100%;max-width:200px;padding:0 10px;overflow:hidden}.leaflet-touch .leaflet-bar .leaflet-locate-text-active .leaflet-locate-icon{padding:0 5px 0 0}.leaflet-control-locate-location circle{animation:4s infinite leaflet-control-locate-throb}@keyframes leaflet-control-locate-throb{0%{stroke-width:1px}50%{stroke-width:3px;transform:scale(.8)}to{stroke-width:1px}}@keyframes leaflet-control-locate-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.leaflet-control-geosearch *,.leaflet-control-geosearch :before,.leaflet-control-geosearch :after{box-sizing:border-box}.leaflet-control-geosearch .leaflet-bar-part{border-bottom:none;border-radius:4px}.leaflet-control-geosearch a.leaflet-bar-part:before,.leaflet-control-geosearch a.leaflet-bar-part:after{content:"";display:block;position:absolute}.leaflet-control-geosearch a.leaflet-bar-part:before{border-top:2px solid #555;width:6px;top:17px;left:15px;transform:rotate(45deg)}.leaflet-control-geosearch a.leaflet-bar-part:after{border:2px solid #555;border-radius:50%;width:8px;height:8px;top:10px;left:10px}.leaflet-control-geosearch.error a.leaflet-bar-part:before,.leaflet-control-geosearch.pending a.leaflet-bar-part:before{display:none}.leaflet-control-geosearch.pending a.leaflet-bar-part:after,.leaflet-control-geosearch.error a.leaflet-bar-part:after{border-radius:50%;width:18px;height:18px;margin:-9px 0 0 -9px;top:50%;left:50%}.leaflet-control-geosearch.pending a.leaflet-bar-part:after{content:"";border:2px solid #555;border-top-color:#f3f3f3;animation:1s linear infinite spin}.leaflet-control-geosearch.error a.leaflet-bar-part:after{content:"!";line-height:initial;border:none;font-size:18px;font-weight:600}.leaflet-control-geosearch form{z-index:-1;background-color:#fff;background-clip:padding-box;border-radius:0 4px 4px 0;height:auto;margin:0;padding:0 8px;display:none;position:absolute;top:0;left:30px;box-shadow:0 1px 5px #000000a6}.leaflet-geosearch-button form.open{border-radius:0 4px 4px}.leaflet-control-geosearch.active form{display:block}.leaflet-geosearch-button.active .leaflet-bar-part{border-radius:4px 0 0 4px;width:30px}.leaflet-geosearch-button form{max-width:350px}.leaflet-control-geosearch form input{text-indent:8px;border:none;border-radius:0 4px 4px 0;outline:none;width:100%;min-width:200px;height:30px;margin:0;padding:0;font-size:12px}.leaflet-touch .leaflet-geosearch-bar form{box-shadow:none;border:2px solid #0003}.leaflet-touch .leaflet-geosearch-bar form input{height:30px}.leaflet-control-geosearch .results{background:#fff}.leaflet-control-geosearch .results>*{white-space:nowrap;text-overflow:ellipsis;border:1px solid #0000;padding:0 8px;line-height:24px;overflow:hidden}.leaflet-control-geosearch .results.active{border-top:1px solid #c6c6c6;padding:8px 0}.leaflet-control-geosearch .results>.active,.leaflet-control-geosearch .results>:hover{cursor:pointer;background-color:#f8f8f8;border-color:#c6c6c6}.leaflet-control-geosearch .results.active:after{content:"";width:0;display:block;position:absolute;top:30px;bottom:-2px;left:-2px}.leaflet-touch .leaflet-control-geosearch .results.active:after{border-left:2px solid #0003}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.leaflet-top .leaflet-geosearch-bar,.leaflet-bottom .leaflet-geosearch-bar{display:none}.leaflet-geosearch-bar{cursor:auto;z-index:1000;width:400px;max-width:calc(100% - 120px);height:auto;margin:10px auto 0;display:block;position:relative}.leaflet-geosearch-bar form{border-radius:4px;display:block;position:relative;top:0;left:0}.leaflet-geosearch-bar form input{width:100%;min-width:100%}.leaflet-geosearch-bar .results.active:after{opacity:.2}.leaflet-right .leaflet-control-geosearch form{right:28px;left:initial;border-left:inherit;border-right:none;border-radius:4px 0 0 4px}.leaflet-bar-notfound{font-style:italic}.leaflet-control-geosearch button.reset{color:#000;cursor:pointer;background-color:#fff;border:none;border-radius:0 4px 4px 0;padding:0 8px;font-weight:700;line-height:26px;text-decoration:none;position:absolute;top:0;right:0}.leaflet-touch .leaflet-control-geosearch button.reset{line-height:30px}.leaflet-control-geosearch button.reset:hover{background:#f5f5f5}:root{--fullscreen-icon-enter:url("data:image/svg+xml,<svg viewBox=\"0 0 26 26\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M5 10.3V5.9c0-.5.4-.9.9-.9h4.4c.2 0 .4.2.4.4V7c0 .2-.2.4-.4.4h-3v3c0 .2-.2.4-.4.4H5.4a.4.4 0 0 1-.4-.4zm10.3-4.9V7c0 .2.2.4.4.4h3v3c0 .2.2.4.4.4h1.5c.2 0 .4-.2.4-.4V5.9c0-.5-.4-.9-.9-.9h-4.4c-.2 0-.4.2-.4.4zm5.3 9.9H19c-.2 0-.4.2-.4.4v3h-3c-.2 0-.4.2-.4.4v1.5c0 .2.2.4.4.4h4.4c.5 0 .9-.4.9-.9v-4.4c0-.2-.2-.4-.4-.4zm-9.9 5.3V19c0-.2-.2-.4-.4-.4h-3v-3c0-.2-.2-.4-.4-.4H5.4c-.2 0-.4.2-.4.4v4.4c0 .5.4.9.9.9h4.4c.2 0 .4-.2.4-.4z\" fill=\"%23333\"/></svg>");--fullscreen-icon-exit:url("data:image/svg+xml,<svg viewBox=\"0 0 26 26\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M20.6 10.7H16a.9.9 0 0 1-.8-.8v-4.5c0-.2.2-.4.4-.4h1.4c.3 0 .5.2.5.4v3h3c.2 0 .4.2.4.5v1.4c0 .2-.2.4-.4.4zm-9.9-.8V5.4c0-.2-.2-.4-.4-.4H8.9c-.3 0-.5.2-.5.4v3h-3c-.2 0-.4.2-.4.5v1.4c0 .2.2.4.4.4H9.9c.4 0 .8-.4.8-.8zm0 10.7V16c0-.4-.4-.8-.8-.8H5.4c-.2 0-.4.2-.4.4v1.4c0 .3.2.5.4.5h3v3c0 .2.2.4.5.4h1.4c.2 0 .4-.2.4-.4zm6.9 0v-3h3c.2 0 .4-.2.4-.5v-1.4c0-.2-.2-.4-.4-.4H16c-.4 0-.8.4-.8.8v4.5c0 .2.2.4.4.4h1.5c.3 0 .5-.2.5-.4z\" fill=\"%23333\"/></svg>")}.leaflet-fullscreen-icon{background-image:var(--fullscreen-icon-enter);background-size:26px 26px}.leaflet-fullscreen-icon.leaflet-fullscreen-on{background-image:var(--fullscreen-icon-exit)}:-webkit-any(.leaflet-container:-webkit-full-screen,.leaflet-container:fullscreen){z-index:99999;width:100%!important;height:100%!important}:is(.leaflet-container:fullscreen,.leaflet-container:fullscreen){z-index:99999;width:100%!important;height:100%!important}.leaflet-pseudo-fullscreen{z-index:99999;width:100%!important;height:100%!important;position:fixed!important;top:0!important;left:0!important}.map-layout{width:100vw;height:100dvh;display:flex;overflow:hidden}#sidebar{background:var(--bg);border-right:1px solid var(--line);flex-direction:column;flex-shrink:0;width:380px;transition:width .25s;display:flex;overflow:hidden}#sidebar.closed{border-right:none;width:0}.sb-inner{flex-direction:column;width:380px;height:100%;display:flex}.sb-header{border-bottom:1px solid var(--line);padding:14px 16px 10px}.sb-title-row{justify-content:space-between;align-items:center;display:flex}.sb-title{font-size:18px;font-weight:800}.sb-home{border:1px solid var(--line);background:var(--card);border-radius:8px;padding:4px 8px;font-size:15px}.sb-sub{color:var(--muted);margin-top:2px;font-size:11px}.sb-tabs{gap:8px;margin-top:10px;display:flex}.sb-tabs button{color:#666;cursor:pointer;background:0 0;border:1.5px solid #111;border-radius:8px;flex:1;padding:7px 0;font-size:13px;font-weight:500}.sb-tabs button.active{color:#fff;background:#111;font-weight:800}.sb-cities{flex-wrap:wrap;gap:6px;margin-top:8px;display:flex}.sb-cities button{cursor:pointer;background:0 0;border-radius:999px;padding:3px 10px;font-size:12px;font-weight:500}.sb-cities button.active{font-weight:700;color:#fff!important}.sb-body{flex:1;padding:8px 0 24px;overflow-y:auto}.sb-search{border:1px solid #ddd;border-radius:8px;outline:none;width:calc(100% - 24px);margin:8px 12px 4px;padding:8px 12px;font-size:13px}.city-head,.cluster-head{cursor:pointer;-webkit-tap-highlight-color:transparent;align-items:center;gap:6px;display:flex}.city-head{padding:10px 16px 6px;font-size:14px;font-weight:800}.cluster-head{padding:8px 16px 4px;font-size:12px;font-weight:800}.city-head.hl,.cluster-head.hl{background:var(--accent-soft)}.head-arrow{width:12px;font-size:10px;display:inline-block}.head-dot{border-radius:50%;display:inline-block}.city-head .head-dot{width:10px;height:10px}.cluster-head .head-dot{width:8px;height:8px}.head-count{color:#aaa;font-size:12px;font-weight:400}.star-btn{cursor:pointer;background:0 0;border:none;margin-left:auto;padding:0 2px;font-size:14px;line-height:1}.cluster-wrap{margin-left:12px}.point-row{cursor:pointer;align-items:flex-start;gap:8px;padding:6px 12px 6px 42px;display:flex}.point-row:hover{background:#f3f0e9}.point-row.selected{background:#f0ebe0}.point-row input[type=checkbox]{cursor:pointer;flex-shrink:0;margin-top:3px}.point-row .pr-main{flex:1;min-width:0}.point-row .pr-name{color:#222;font-size:13px;font-weight:600}.point-row .pr-name.done{color:#aaa;text-decoration:line-through}.point-row .pr-sub{color:#999;text-overflow:ellipsis;white-space:nowrap;margin-top:1px;font-size:11px;overflow:hidden}.point-row.pending{cursor:default}.point-row .pr-badge{color:#b26a00;background:#fff3d6;border-radius:4px;flex-shrink:0;margin-top:2px;padding:1px 5px;font-size:10px}.pending-head{color:#757575}.pending-head .head-dot{background:#9e9e9e}.route-card{cursor:pointer;background:#fff;border:1.5px solid;border-left-width:4px;border-radius:8px;margin:6px 12px;padding:10px 12px}.route-card .rc-title{font-size:13px;font-weight:800}.route-card .rc-summary{color:#777;margin-top:3px;font-size:11px;line-height:1.5}.route-card .rc-meta{color:#aaa;margin-top:4px;font-size:10px}.route-back{cursor:pointer;background:#fff;border:1px solid #999;border-radius:999px;margin:4px 12px 8px;padding:4px 12px;font-size:12px}.route-step{cursor:pointer;align-items:flex-start;gap:8px;padding:6px 12px;display:flex}.route-step:hover{background:#f3f0e9}.route-step .rs-num{color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:20px;height:20px;margin-top:1px;font-size:11px;font-weight:700;display:flex}.route-step .rs-name{font-size:13px;font-weight:600}.route-step .rs-note{color:#888;margin-top:1px;font-size:11px;line-height:1.4}.route-step .rs-transport{color:#1e5a8a;margin-top:2px;font-size:11px}.map-wrap{flex:1;min-width:0;position:relative}#map{background:#dce3e6;position:absolute;inset:0}.sidebar-pill{z-index:1000;cursor:pointer;background:#fff;border:1px solid #ddd;border-radius:8px;padding:6px 12px;font-size:13px;position:absolute;top:12px;left:12px;box-shadow:0 1px 4px #0003}.legend{z-index:1000;background:#ffffffeb;border:1px solid #ddd;border-radius:8px;padding:8px 12px;font-size:11px;line-height:1.9;position:absolute;bottom:16px;left:12px}.legend .lg-dot{border-radius:50%;width:8px;height:8px;margin-right:4px;display:inline-block}.legend .lg-note{color:#999}.sb-tools{z-index:2;background:#fff;gap:6px;padding:8px;display:flex;position:sticky;top:0}.sb-tools .sb-search{flex:1;min-width:0}.sb-sort{cursor:pointer;white-space:nowrap;background:#fff;border:1px solid #e3e0d8;border-radius:8px;flex:none;padding:0 10px;font-size:12px}.sb-sort.active{color:#fff;background:#b71c1c;border-color:#b71c1c}.sb-tags{gap:5px;padding:0 8px 8px;display:flex;flex-wrap:wrap;max-height:25px;overflow:hidden}.sb-tags.expanded{max-height:none}.tags-toggle{margin:0 8px 6px;width:calc(100% - 16px);background:#f6f4ee;border:1px solid #e3e0d8;border-radius:12px;color:#5d4a1f;font-size:11px;padding:3px 0;cursor:pointer;text-align:center}.sb-inner>.icp-link{text-align:center;color:var(--muted);border-top:1px solid var(--line);flex:none;padding:6px 12px 10px;font-size:10px;text-decoration:none}.sb-inner>.icp-link:hover{text-decoration:underline}.tag-chip{color:#5d4a1f;cursor:pointer;white-space:nowrap;background:#f6f4ee;border:1px solid #e3e0d8;border-radius:12px;flex:none;padding:3px 10px;font-size:11px}.tag-chip.active{color:#fff;background:#b71c1c;border-color:#b71c1c;font-weight:700}.map-toast{z-index:2000;color:#fff;opacity:0;pointer-events:none;background:#212121eb;border-radius:20px;max-width:86vw;padding:9px 16px;font-size:12px;transition:opacity .3s;position:fixed;bottom:26px;left:50%;transform:translate(-50%)}.map-toast.show{opacity:1}@media (width<=768px){#sidebar{z-index:1100;height:100%;position:absolute;box-shadow:2px 0 12px #00000026}#sidebar:not(.closed),#sidebar:not(.closed) .sb-inner{width:min(380px,88vw)}.legend{display:none}.leaflet-geosearch-bar{max-width:calc(100% - 185px);margin:10px 55px 0 130px}}
b.hl{color:#B71C1C;font-weight:700}
.sb-cities{max-height:29px;overflow:hidden}.sb-cities.expanded{max-height:none}.cities-toggle{margin:2px 0 0;width:100%;background:#f6f4ee;border:1px solid #e3e0d8;border-radius:12px;color:#5d4a1f;font-size:11px;padding:3px 0;cursor:pointer;text-align:center}
.region-ctl{display:flex;gap:4px;background:#fff;border-radius:8px;padding:3px;box-shadow:0 1px 4px #0003}.region-btn{border:1px solid #ddd;background:#fff;border-radius:6px;padding:3px 8px;font-size:11px;cursor:pointer;color:#333;white-space:nowrap}.region-btn.active{background:#1E5A8A;color:#fff;border-color:#1E5A8A;font-weight:700}
#sidebar:not(.closed)~.map-wrap .sidebar-pill{left:0;top:50%;transform:translateY(-50%);width:22px;height:56px;padding:0;border-radius:0 8px 8px 0;border-left:none;box-shadow:2px 0 6px #0002;display:flex;align-items:center;justify-content:center;font-size:14px}
#sidebar.closed~.map-wrap .leaflet-top.leaflet-left{top:56px}
#sidebar:not(.closed)~.map-wrap .leaflet-top.leaflet-left{top:10px}
.region-ctl:not(.open) .region-btn{display:none}
.region-ico{border:1px solid #ddd;background:#fff;border-radius:6px;padding:3px 8px;font-size:13px;cursor:pointer;white-space:nowrap}
#region-loading{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);z-index:3000;background:#ffffffee;border:1px solid #ddd;border-radius:10px;padding:10px 18px;font-size:13px;color:#333;box-shadow:0 2px 10px #0003;display:none;align-items:center;gap:8px}
#region-loading.show{display:flex}
.rl-spin{width:14px;height:14px;border:2px solid #bbb;border-top-color:#1E5A8A;border-radius:50%;animation:rlspin .8s linear infinite;display:inline-block}
@keyframes rlspin{to{transform:rotate(360deg)}}
@media (width<=768px){#sidebar:not(.closed)~.map-wrap .sidebar-pill{left:min(380px,88vw);z-index:1201}#sidebar:not(.closed)~.map-wrap .leaflet-top.leaflet-left{left:calc(min(380px,88vw) + 8px);top:10px}#sidebar.closed~.map-wrap .leaflet-top.leaflet-left{left:10px;top:56px}}
.cnbase-wrap{display:none;gap:3px;margin-left:4px}.cnbase-btn{border:1px solid #ddd;background:#fff;border-radius:6px;padding:2px 7px;font-size:10px;cursor:pointer;color:#333;white-space:nowrap}.cnbase-btn.active{background:#2E7D32;color:#fff;border-color:#2E7D32;font-weight:700}
.refresh-ctl,.cityjump-ctl{position:relative}.refresh-badge{position:absolute;top:-2px;right:-2px;width:9px;height:9px;background:#D32F2F;border-radius:50%;border:1.5px solid #fff;display:none}.refresh-badge.show{display:block}.cityjump-panel{display:none;position:absolute;top:38px;left:0;background:#fff;border:1px solid #ddd;border-radius:10px;padding:6px;box-shadow:0 2px 10px #0002;min-width:150px;max-height:60vh;overflow-y:auto;z-index:1500}.cityjump-panel.open{display:block}.cj-item{display:flex;align-items:center;gap:6px;width:100%;border:none;background:#fff;padding:6px 8px;border-radius:6px;font-size:12px;color:#333;cursor:pointer;text-align:left;white-space:nowrap}.cj-item:hover{background:#f3f0e9}.cj-dot{width:8px;height:8px;border-radius:50%;flex:none}.cj-count{color:#999;font-size:10px;margin-left:auto}
.cj-list{max-height:230px;overflow-y:auto;scrollbar-width:none}.cj-list::-webkit-scrollbar{display:none}.cj-arrow{display:block;width:100%;border:none;background:#f6f4ee;padding:2px 0;font-size:10px;color:#999;cursor:pointer;border-radius:6px}.cj-arrow:hover{background:#eceae4;color:#555}
.country-head{padding:12px 16px 6px;font-size:15px}
.country-head{display:flex;align-items:center;gap:9px;margin:12px 10px 4px;padding:11px 13px;border-radius:12px;background:color-mix(in srgb,var(--cc) 7%,transparent);border:1px solid color-mix(in srgb,var(--cc) 14%,transparent);cursor:pointer;font-size:15px;font-weight:800;letter-spacing:1px;box-shadow:0 1px 3px rgba(0,0,0,.04)}
.country-head .ch-flag{font-size:19px;line-height:1;filter:drop-shadow(0 1px 1px rgba(0,0,0,.15))}
.country-head .ch-name{flex:1;background:linear-gradient(90deg,var(--cc),color-mix(in srgb,var(--cc) 55%,#000));-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:var(--cc)}
.country-head .ch-arrow{color:var(--cc);font-size:11px;opacity:.75}
.head-pill{font-size:11px;font-weight:700;padding:2px 10px;border-radius:99px;background:color-mix(in srgb,var(--cc) 14%,transparent);color:var(--cc);letter-spacing:0;flex:none}
.country-children{margin:2px 0 8px 24px;padding-left:11px;border-left:2px solid color-mix(in srgb,var(--cc) 26%,transparent)}
/* ===== UX 优化（ui-ux-pro-max 准则） ===== */
/* 1. 移动端触摸目标扩大至 44px（iOS 指导值） */
@media (width<=768px){
  .region-ico{min-width:44px;min-height:44px;padding:8px;font-size:16px}
  .region-btn{min-height:44px;padding:6px 14px;font-size:13px}
  .sb-tabs button{padding:10px 0;min-height:44px}
  .sb-cities button{min-height:44px;padding:8px 14px;font-size:13px}
  .tag-chip{min-height:44px;padding:8px 14px;font-size:12px}
  .city-head,.cluster-head{min-height:44px;padding:10px 16px}
  .country-head{min-height:44px;padding:12px 13px}
  .point-row{padding:10px 12px 10px 42px;min-height:44px}
  .cj-item{min-height:44px;padding:10px 10px}
  .route-card{padding:12px 14px}
  .cities-toggle,.tags-toggle{min-height:44px;padding:8px 0}
  .sidebar-pill{min-height:44px}
  .leaflet-popup-close-button{width:32px;height:32px;font-size:18px;line-height:32px}
  .leaflet-control-layers-list label{padding:8px 4px}
}
/* 2. 触控反馈（touch 设备替代 hover 依赖） */
@media (hover:none){
  .point-row:active,.cj-item:active,.city-head:active,.cluster-head:active,
  .tag-chip:active,.sb-cities button:active,.region-btn:active,.region-ico:active,
  .cities-toggle:active,.tags-toggle:active{background:#f3f0e9}
  .route-card:active{border-color:#1E5A8A}
}
@media (hover:hover){
  .point-row:hover,.cj-item:hover{background:#f3f0e9}
}
/* 3. 一致的过渡动效（200ms 反馈节奏） */
.point-row,.cj-item,.city-head,.cluster-head,.country-head,.tag-chip,.sb-cities button,
.region-btn,.region-ico,.cities-toggle,.tags-toggle{transition:background-color .2s ease,border-color .2s ease}
/* 4. 消灭 300ms 点击延迟 */
.sb-cities button,.tag-chip,.point-row,.cj-item,.city-head,.cluster-head,.country-head,
.region-btn,.region-ico,.cities-toggle,.tags-toggle,.sidebar-pill,.star-btn,
.sb-tabs button,.leaflet-control-layers-list label{touch-action:manipulation}

/* 动线播放按钮 + 当前落点高亮 */
.route-play { display: block; width: calc(100% - 24px); margin: 10px 12px 0; border: 1.5px solid #B71C1C; background: #B71C1C; color: #fff; border-radius: 9px; padding: 11px; font-size: 13px; font-weight: 600; cursor: pointer; touch-action: manipulation; }
.route-play:active { background: #8E1414; }
.leaflet-marker-icon.mp > div { outline: 3px solid #FFB300; outline-offset: 2px; }
/* 弹窗内一键导航按钮点击态 */
.popup-nav:active { background: #8E1414 !important; }
