.real-map-shell{border:1px solid #dde7de;border-radius:20px;background:#fff;box-shadow:0 12px 28px rgba(31,68,52,.07);overflow:hidden}
.real-map-header{padding:15px 18px 11px;display:flex;align-items:center;justify-content:space-between;gap:12px}
.real-map-header strong{font-size:16px;color:#163e2e;display:block}
.real-map-header small{color:#738477;font-size:12px;display:block;margin-top:3px}
.real-map-meta{border:1px solid #cddbd0;border-radius:50px;padding:5px 10px;color:#506a56;font-size:12px;white-space:nowrap}
.real-map-canvas{height:430px;min-height:310px;position:relative;background:#e9f1e9;width:100%}
.real-map-loading{display:grid;place-items:center;height:100%;font-size:14px;color:#56705d}
.real-map-help{font-size:12px;line-height:1.6;color:#6d7d73;padding:10px 18px;margin:0}
.real-map-buttons{display:flex;gap:8px;padding:6px 18px 12px}
.real-map-buttons a{background:#f0f5f1;border:1px solid #d4e2d9;color:#295940;border-radius:30px;padding:9px 13px;text-decoration:none;font-size:13px;font-weight:600}
.real-map-shell details{padding:0 18px 15px}
.real-map-shell summary{font-size:13px;color:#315c45;font-weight:600;cursor:pointer;padding:7px 0}
.real-map-places{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;max-height:270px;overflow:auto;padding:8px 0}
.real-map-place{display:flex;min-width:0;gap:8px;align-items:center;border-radius:11px;background:#f5f8f6;padding:9px;cursor:pointer}
.real-map-number{flex:0 0 22px;height:22px;border-radius:50%;background:#d7ebdc;color:#276143;display:grid;place-items:center;font-size:11px;font-weight:700}
.real-map-place-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px;color:#274135}
.real-map-place a{color:#2a704c;font-size:12px;text-decoration:none}
.real-map-popup{max-width:230px;font-size:12px;line-height:1.5}
.real-map-popup a{color:#26744e}
.real-map-canvas .amap-marker-label{background:transparent;border:0;padding:0}
.real-map-pin{background:#fff;border:1px solid #b9d5bf;box-shadow:0 2px 8px #2342;border-radius:16px;padding:3px 7px;color:#285940;font-size:12px;white-space:nowrap}
.real-map-canvas .amap-logo,.real-map-canvas .amap-copyright{display:block!important}
.trip-quick-nav{display:flex;gap:8px;overflow:auto;overscroll-behavior-inline:contain;scrollbar-width:thin;padding:12px max(16px,calc((100vw - 1000px)/2)) 18px}
.trip-quick-nav a{white-space:nowrap;text-decoration:none;border:1px solid #d2e2d6;background:#fff;border-radius:30px;color:#2b5d44;padding:9px 15px;font-weight:600;font-size:13px}
.collab-tabs{overflow-x:auto;flex-wrap:nowrap;scrollbar-width:thin;gap:6px}
.collab-tabs button{white-space:nowrap;flex-shrink:0;min-height:40px}
@media(max-width:680px){.real-map-canvas{height:355px}.real-map-header{padding:13px 14px 9px}.real-map-help{padding:10px 14px}.real-map-buttons{padding:6px 14px 12px}.real-map-shell details{padding:0 14px 14px}.real-map-places{grid-template-columns:1fr}.trip-quick-nav{padding:10px 16px 16px}}

/* Numbered travel stops are clearer than generic blue pins. */
.travel-pin-icon{border:none;background:transparent}
.travel-pin-number{width:30px;height:30px;display:grid;place-items:center;border:2px solid white;background:#316f55;box-shadow:0 3px 9px #1d3a2b55;border-radius:50%;font-size:12px;font-weight:800;color:white}
.real-map-canvas .leaflet-container{font-family:inherit}
.real-map-shell .real-map-header{background:linear-gradient(120deg,#f8fbf6,#f0f7f1)}
@media(max-width:680px){.real-map-shell{margin:0 -3px}.real-map-canvas{height:380px}}

/* Route mode switch and leg list */
.travel-map-switch{display:flex;gap:7px;align-items:center;flex-wrap:wrap;padding:9px 16px;border-top:1px solid #e3ebe3}
.travel-map-switch button{background:#f5f8f5;border:1px solid #d7e6da;border-radius:999px;padding:8px 13px;cursor:pointer;color:#45624e;font-size:12px;font-weight:600}
.travel-map-switch button.is-selected{background:#315e46;border-color:#315e46;color:#fff}
.travel-map-switch button:disabled{opacity:.45;cursor:not-allowed}
.real-map-canvas .travel-amap-number{min-width:24px;height:24px;border:2px solid white;border-radius:50%;background:#317253;box-shadow:0 2px 7px #19392288;display:inline-grid;place-items:center;padding:1px 3px;font-size:12px;color:white;font-weight:750}
.real-map-canvas .amap-marker-label{border:0;background:transparent;padding:0;white-space:nowrap}
.real-map-canvas .travel-amap-label{display:inline-block;background:#ffffffee;border:1px solid #bfd9c7;padding:5px 8px;border-radius:8px;color:#274834;font-size:12px;font-weight:700;box-shadow:0 2px 5px #1f39252b;white-space:nowrap}
.travel-leaflet-label{background:transparent;border:0;white-space:nowrap;display:flex;align-items:center}
.travel-leaflet-label .travel-pin-number{display:inline-grid;place-items:center;flex-shrink:0}
.travel-leaflet-text{display:inline-block;margin-left:5px;padding:5px 8px;border-radius:8px;background:#fffefcee;border:1px solid #d3e1d4;font-size:12px;font-weight:650;color:#264a36;box-shadow:0 2px 6px #20372244;max-width:145px;overflow:hidden;text-overflow:ellipsis}
.map-route-steps>summary{font-size:13px;font-weight:750;color:#385c43}
.map-route-steps ol{list-style:none;padding:0;margin:7px 0 1px;display:grid;gap:6px}
.map-route-steps li{display:flex;flex-wrap:wrap;align-items:center;gap:8px;font-size:12px;color:#274539;padding:6px 7px;border-radius:7px;background:#f7faf6}
.map-route-steps li small{color:#738476;font-size:11px}
.map-route-mode{display:inline-block;padding:3px 7px;border-radius:8px;font-size:11px;font-weight:700;background:#e2f2e9;color:#28744c;white-space:nowrap}
.mode-metro{background:#f0e7f9;color:#6f459c}
.mode-ferry{background:#e5f2fc;color:#246b9d}
.mode-transfer{background:#f5eee3;color:#977745}
@media(max-width:680px){
  .travel-map-switch{padding:8px 12px}
  .travel-map-switch button{padding:9px 12px;min-height:35px}
  .map-route-steps ol{gap:5px}
  .map-route-steps li{align-items:flex-start;line-height:1.5}
  .map-route-steps li small{width:100%;padding-left:2px}
  .real-map-canvas .travel-amap-label{font-size:11px;padding:4px 6px}
}
