/* 與主站暖紙色相接，地圖區保留夜晚光點的視覺。 */
.vm-wrap { max-width:1280px; margin:0 auto; padding:40px 32px 70px; }
.vm-intro { display:flex; justify-content:space-between; align-items:flex-end; gap:24px; margin-bottom:28px; }
.vm-eyebrow { font-family:Inter,sans-serif; font-size:11px; letter-spacing:2px; color:var(--gold); margin:0 0 12px; }
.vm-intro h2 { font-size:clamp(24px,3vw,34px); font-weight:500; letter-spacing:1px; margin:0 0 12px; }
.vm-intro p:not(.vm-eyebrow) { font-size:14px; color:var(--ink2); }
.vm-stats { display:flex; flex-shrink:0; gap:30px; }
.vm-stats strong { display:block; font:400 36px 'DM Mono',monospace; color:var(--green); }
.vm-stats span { font-size:12px; color:var(--ink2); }
.vm-toolbar { display:flex; justify-content:space-between; gap:12px; flex-wrap:wrap; align-items:center; margin-bottom:16px; }
.vm-countries { display:flex; padding:4px; background:var(--paper3); border-radius:30px; gap:4px; }
.vm-wrap button { font:inherit; cursor:pointer; }
.vm-countries button { background:transparent; color:var(--ink2); border:0; border-radius:24px; padding:11px 24px; font-size:13px; min-height:44px; }
.vm-countries button[aria-pressed="true"] { background:var(--green); color:var(--white); }
.vm-map-actions { display:flex; gap:8px; }
.vm-map-actions button { border:1px solid var(--rule); background:var(--paper); color:var(--ink2); border-radius:24px; padding:10px 17px; min-height:44px; font-size:13px; }
.vm-wrap [hidden] { display:none !important; }
.vm-layout { display:grid; grid-template-columns:minmax(0,1fr) 300px; background:#17221c; border:1px solid #354237; border-radius:16px; overflow:hidden; color:#ece9dc; }
.vm-map-wrap { position:relative; min-width:0; isolation:isolate; }
#venueMap { height:560px; background:#1a2923; z-index:0; }
#venueMap .leaflet-tile-pane { filter:invert(1) hue-rotate(145deg) saturate(.3) brightness(.72); }
.vm-map-hint { position:absolute; bottom:30px; left:16px; z-index:1; background:#17221cee; color:#cbd4c6; font-size:11px; padding:9px 12px; border-radius:7px; max-width:calc(100% - 32px); pointer-events:none; }
.vm-map-status { position:absolute; z-index:2; top:16px; left:16px; right:60px; padding:16px; background:#1e3027; border:1px solid #5c725e; border-radius:8px; color:#eee6cf; font-size:13px; line-height:1.8; }
.vm-map-status button { display:block; margin-top:10px; padding:8px 12px; background:#e7c88c; color:#252a20; border:0; border-radius:6px; min-height:44px; }
.vm-detail { padding:28px 24px; border-left:1px solid #354237; min-width:0; display:flex; flex-direction:column; }
.vm-detail .vm-eyebrow { color:#bfbd9b; font-size:10px; }
.vm-detail h3 { font-size:22px; line-height:1.6; font-weight:500; margin:2px 0 6px; overflow-wrap:anywhere; }
.vm-location { font-size:12px; color:#b3c1ae; }
.vm-count { font:400 56px 'DM Mono',monospace; color:#ebca8f; margin-top:24px; }
.vm-count span { font:13px 'Noto Sans TC',sans-serif; color:#b3c1ae; margin-left:10px; }
.vm-level-label { font-size:12px; color:#e8c588; margin-bottom:22px; }
.vm-recent,.vm-next { padding-top:18px; border-top:1px solid #354237; margin-bottom:17px; }
.vm-recent small,.vm-next small { display:block; color:#b3c1ae; font-size:11px; margin-bottom:10px; }
.vm-recent a,.vm-next p { color:#f1ead9; font-size:13px; line-height:1.8; display:block; overflow-wrap:anywhere; text-decoration:none; }
.vm-recent a:hover { text-decoration:underline; }
.vm-recent time { display:block; font-size:12px; color:#b3c1ae; margin-top:8px; }
.vm-record-link,.vm-next button { display:block; text-align:center; border:1px solid #607055; border-radius:7px; color:#efdab1; background:transparent; padding:12px; font-size:12px !important; text-decoration:none; margin-bottom:20px; min-height:44px; }
.vm-next button { margin:12px 0 0; width:100%; }
.vm-detail-foot,.vm-place-note { margin-top:auto; padding-top:14px; font-size:11px; color:#b3c1ae; line-height:1.8; }
.vm-place-note { margin-top:0; }
.vm-legend { display:flex; flex-wrap:wrap; align-items:center; gap:22px; padding:24px 0; color:var(--ink2); font-size:12px; }
.vm-legend strong { font-weight:500; }
.vm-legend span { display:flex; align-items:center; gap:10px; }
.vm-light { flex-shrink:0; display:inline-block; width:9px; height:9px; border-radius:50%; background:#ad986d; }
.vm-level-0 { background:transparent; border:2px solid #acb4a7; box-shadow:none; }
.vm-level-2 { background:#d9b369; box-shadow:0 0 8px 2px #d4a35570; }
.vm-level-3 { background:#f7cb76; box-shadow:0 0 13px 3px #efb65777; }
.vm-level-4 { background:#fff0bc; box-shadow:0 0 17px 5px #fbc77599; }
.vm-legend .vm-light { outline:4px solid #26372d; outline-offset:1px; margin:5px; }
.vm-pin { display:flex !important; align-items:center; justify-content:center; background:transparent; border:0; }
.vm-pin.vm-selected .vm-light { outline:1px solid #f6e3b8; outline-offset:6px; }
.vm-cluster { display:flex !important; justify-content:center; align-items:center; border-radius:50%; background:#2d4236f0; border:1px solid #81967e; color:#f2ead4; font-size:11px; box-shadow:0 3px 15px #0006; }
#venueMap .leaflet-control-zoom a { background:#23372b; color:#ecdec0; border-color:#52654c; width:40px; height:40px; line-height:40px; }
#venueMap .leaflet-control-attribution { background:#17221cee; color:#bbc7b4; font-size:10px; }
#venueMap .leaflet-control-attribution a { color:#d5dfcd; }
#venueMap .leaflet-tooltip { background:#203127; color:#f4e8cb; border:1px solid #61735b; box-shadow:none; width:max-content; max-width:min(320px, calc(100vw - 72px)); white-space:normal; word-break:normal; overflow-wrap:anywhere; font-size:13px; line-height:1.6; padding:8px 12px; }
#venueMap .leaflet-tooltip-top::before { left:var(--vm-tip-arrow, 50%); }
.vm-list-section { border-top:1px solid var(--rule); padding:18px 0; }
.vm-list-section summary { cursor:pointer; color:var(--ink); font-size:14px; }
.vm-list-section summary span { color:var(--ink2); font-size:12px; margin-left:12px; }
.vm-venue-list { display:grid; grid-template-columns:repeat(auto-fit,minmax(245px,1fr)); gap:8px; padding-top:18px; }
.vm-venue-list button { display:flex; align-items:center; gap:12px; padding:14px; text-align:left; border:1px solid var(--rule); background:var(--paper2); border-radius:8px; color:var(--ink); min-height:48px; font-size:12px; }
.vm-venue-list button[aria-pressed="true"] { border-color:var(--green); background:#e6eee6; }
.vm-venue-list .vm-light { outline:4px solid #344939; outline-offset:1px; margin:4px; }
.vm-venue-list button span { flex:1; overflow-wrap:anywhere; }
.vm-venue-list small { white-space:nowrap; color:var(--ink2); }
.vm-unlocated,.vm-footnote { font-size:12px; color:var(--ink2); line-height:1.9; padding-top:14px; }
.vm-unlocated { color:var(--terra); }
@media(max-width:960px) { .vm-wrap{padding:28px 20px 60px}.vm-intro{align-items:flex-start;flex-direction:column}.vm-layout{grid-template-columns:minmax(0,1fr) 270px}.vm-detail{padding:22px 18px} }
@media(max-width:600px) { .vm-wrap{padding:26px 16px 80px}.vm-intro h2{font-size:25px}.vm-stats strong{font-size:30px}.vm-layout{grid-template-columns:1fr}#venueMap{height:410px}.vm-detail{border-left:0;border-top:1px solid #354237}.vm-detail h3{font-size:21px}.vm-count{font-size:42px;margin-top:14px}.vm-legend{gap:18px}.vm-legend strong{width:100%}.vm-venue-list{grid-template-columns:1fr}.vm-list-section summary span{display:block;margin:8px 0 0}.vm-map-status{right:65px}.vm-stats{gap:28px} }
