.travel-map{--tm-bg:#f6f1e6;--tm-ink:#273933;--tm-line:#a8462b;--tm-muted:#6b746c;--tm-border:#d8d2c3;position:relative;min-height:260px;container-type:inline-size;isolation:isolate;overflow:hidden;background:#ded8c7;color:var(--tm-ink);font-family:system-ui,-apple-system,"PingFang SC",sans-serif}
.travel-map[data-map-theme=night]{--tm-bg:#172832;--tm-ink:#f1e5cb;--tm-line:#f5b974;--tm-muted:#b1c1c2;--tm-border:#46606a;background:#14232a}
.travel-map[data-map-theme=atlas]{--tm-bg:#f2f2e8;--tm-ink:#1c4b45;--tm-line:#116862;--tm-muted:#4f6960;--tm-border:#bacabe;background:#d1dbc9}
.travel-map button,.travel-map a{-webkit-tap-highlight-color:transparent}
.travel-map button:focus-visible,.travel-map [role=button]:focus-visible,.travel-map a:focus-visible{outline:3px solid var(--tm-line);outline-offset:4px}
.tm-canvas,.tm-fallback{position:absolute;inset:0}
.tm-canvas{opacity:0;transition:opacity .8s;z-index:0}
.tm-fallback{z-index:1;background:var(--tm-bg);transition:opacity .6s}
.tm-fallback svg{width:100%;height:100%;display:block;cursor:grab;touch-action:pan-y}
.is-live .tm-canvas{opacity:1}
.is-live .tm-fallback{opacity:0;visibility:hidden;pointer-events:none}
.tm-grid line{stroke:var(--tm-border);stroke-width:1;stroke-dasharray:4 7;vector-effect:non-scaling-stroke;pointer-events:none}
.tm-grid text{fill:var(--tm-muted);font-size:12px;letter-spacing:1px;pointer-events:none}
.tm-route-line{fill:none;stroke:var(--tm-line);stroke-width:3;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke;pointer-events:none}
.tm-route-gap{stroke-dasharray:4 5}
.tm-sample-point{fill:var(--tm-bg);stroke:var(--tm-line);stroke-width:.9;pointer-events:none}
.tm-svg-stop{cursor:pointer}
.tm-svg-stop circle{fill:var(--tm-bg);stroke:var(--tm-line);stroke-width:2}
.tm-svg-stop.is-selected circle,.tm-svg-stop:hover circle{fill:var(--tm-line)}
.tm-svg-number{fill:var(--tm-line);font:bold 10px system-ui;pointer-events:none}
.tm-svg-stop.is-selected .tm-svg-number,.tm-svg-stop:hover .tm-svg-number{fill:var(--tm-bg)}
.tm-svg-label{display:none;font:500 12px system-ui;fill:var(--tm-ink);paint-order:stroke;stroke:var(--tm-bg);stroke-width:5px;stroke-linejoin:round;pointer-events:none}
.tm-svg-stop:hover .tm-svg-label,.tm-svg-stop.is-selected .tm-svg-label{display:block}
.tm-status{position:absolute;z-index:4;left:18px;top:18px;display:flex;align-items:center;gap:8px;max-width:calc(100% - 36px);padding:10px 13px;background:var(--tm-bg);border:1px solid var(--tm-border);border-radius:7px;box-shadow:0 3px 20px #14282812;color:var(--tm-ink);font-size:12px;line-height:1.45;pointer-events:none}
.tm-status-dot{width:6px;height:6px;border-radius:50%;background:#a88c64;flex:none}
[data-map-state=terrain] .tm-status-dot{background:#44785e;box-shadow:0 0 0 3px #44785e20}
.tm-toolbar{position:absolute;right:18px;top:18px;z-index:5;display:flex;flex-wrap:wrap;justify-content:flex-end;gap:5px;max-width:370px}
.tm-control{border:1px solid var(--tm-border);background:var(--tm-bg);color:var(--tm-ink);border-radius:6px;padding:9px 11px;height:40px;font:500 12px/1 system-ui,-apple-system,"PingFang SC",sans-serif;cursor:pointer;box-shadow:0 2px 10px #1428280d;white-space:nowrap}
.tm-control:hover{border-color:var(--tm-line);color:var(--tm-line)}
.tm-control[aria-pressed=true]{border-color:var(--tm-line)}
.tm-control:disabled{opacity:.45;cursor:default}
.tm-icon-control{font-size:19px;min-width:40px;padding:6px}
.tm-hint{position:absolute;z-index:3;left:18px;bottom:28px;font-size:12px;color:var(--tm-ink);text-shadow:0 1px 4px var(--tm-bg),0 -1px 4px var(--tm-bg);pointer-events:none}
.tm-attribution{position:absolute;right:0;bottom:0;left:0;z-index:6;text-align:right;background:var(--tm-bg);padding:4px 9px;color:var(--tm-muted);font-size:9px;line-height:1.2;opacity:.96}
.tm-attribution a{color:inherit;text-decoration:none}
.tm-attribution a:hover{text-decoration:underline}
.tm-marker{position:absolute;display:flex;flex-direction:column;align-items:center;justify-content:center;width:31px;height:38px;padding:0;border:0;border-radius:6px;background:transparent;cursor:pointer;filter:drop-shadow(0 3px 4px #0f251b45)}
.tm-marker-number{display:flex;align-items:center;justify-content:center;width:27px;height:27px;border:2px solid var(--tm-bg);border-radius:50%;background:var(--tm-line);color:var(--tm-bg);font:bold 12px system-ui;transition:transform .2s}
.tm-marker-number:after{position:absolute;content:"";bottom:0;left:12px;width:7px;height:7px;transform:rotate(45deg);background:var(--tm-line);z-index:-1}
.tm-marker.is-below .tm-marker-number:after{top:0;bottom:auto}
.tm-marker.is-below .tm-marker-photo{top:35px;bottom:auto}
.tm-marker-label{display:none;position:absolute;left:35px;top:8px;width:max-content;max-width:150px;white-space:nowrap;border-radius:3px;padding:3px 6px;background:var(--tm-bg);color:var(--tm-ink);font:500 12px/1.3 system-ui;opacity:.95;pointer-events:none;box-shadow:0 1px 4px #14282818}
.tm-marker:hover .tm-marker-label,.tm-marker:focus-visible .tm-marker-label,.tm-marker.is-selected .tm-marker-label{display:block}
.tm-marker-photo{position:absolute;bottom:35px;width:40px;height:32px;border:2px solid var(--tm-bg);object-fit:cover;border-radius:4px;opacity:0;transition:opacity .2s}
.tm-marker:hover,.tm-marker:focus-visible,.tm-marker.is-selected{z-index:3}
.tm-marker:hover .tm-marker-number,.tm-marker.is-selected .tm-marker-number{transform:scale(1.18)}
.tm-marker:hover .tm-marker-photo,.tm-marker.is-selected .tm-marker-photo{opacity:1}
.tm-marker.is-selected .tm-marker-label{font-weight:700;color:var(--tm-line);opacity:1}
.tm-preview{position:absolute;z-index:5;left:18px;bottom:64px;width:218px;max-width:calc(100% - 36px);background:var(--tm-bg);border:1px solid var(--tm-border);border-radius:9px;box-shadow:0 8px 35px #10292235;overflow:hidden;pointer-events:none}
.tm-preview[hidden]{display:none}
.tm-preview-photo{display:block;width:100%;height:130px;object-fit:cover}
.tm-preview-body{display:flex;flex-direction:column;gap:4px;padding:12px 13px}
.tm-preview-body strong{font-size:13px;line-height:1.4}
.tm-preview-time{font-size:12px;color:var(--tm-muted)}
.tm-preview-action{font-size:12px;color:var(--tm-muted);padding-top:4px}
.travel-map .maplibregl-canvas{outline:none}
.travel-map .maplibregl-ctrl-bottom-left,.travel-map .maplibregl-ctrl-bottom-right{display:none}
.travel-map .maplibregl-cooperative-gesture-screen{font:13px/1.6 system-ui;background:#122932a0}
@container (max-width:760px){
  .tm-status{top:12px;left:12px;max-width:calc(100% - 126px);padding:9px 10px;font-size:12px;line-height:1.5}
  .tm-toolbar{top:12px;right:12px;max-width:none;display:grid;grid-template-columns:40px 40px;gap:5px}
  .tm-control{height:40px;width:40px;padding:6px 2px;font-size:12px}
  .tm-icon-control{font-size:22px;min-width:40px}
  .tm-wheel-control,.tm-rotate-control{display:none}
  .tm-hint{display:none}
  .tm-preview{left:12px;bottom:40px;width:180px}
  .tm-preview-photo{height:92px}
  .tm-preview-body{padding:8px 10px;gap:3px}
  .tm-preview-body strong{font-size:14px}
  .tm-preview-time{font-size:12px}
  .tm-preview-action{display:none}
  .tm-marker-label{display:none}
  .tm-marker:hover .tm-marker-label,.tm-marker.is-selected .tm-marker-label{display:block;font-size:12px}
  .tm-svg-label{display:none}
  .tm-svg-stop:hover .tm-svg-label,.tm-svg-stop.is-selected .tm-svg-label{display:block}
  .tm-attribution{font-size:9px;line-height:1.3;padding:5px 8px}
}
@container (max-width:360px){.tm-attribution{font-size:8px}.tm-status{max-width:calc(100% - 124px)}.tm-preview{width:140px}.tm-preview-photo{height:72px}}
@media(prefers-reduced-motion:reduce){.tm-canvas,.tm-fallback,.tm-marker-number,.tm-marker-photo{transition:none}}
