.dx-map { position:relative; width:100%; height:100%; min-height:420px; overflow:hidden; isolation:isolate; background:#e8eeea; color:#365a4b; font-family:inherit; user-select:none; -webkit-user-select:none; }
.dx-map * { box-sizing:border-box; }
.dx-map__canvas { display:block; width:100%; height:100%; min-height:420px; outline:none; cursor:grab; touch-action:none; }
.dx-map__canvas:focus-visible { outline:3px solid #c88568; outline-offset:-4px; }
.dx-map.is-dragging .dx-map__canvas { cursor:grabbing; }
.dx-map.is-picking .dx-map__canvas { cursor:crosshair; }
.dx-map__region { fill:#8a9988; font-size:9px; font-weight:600; letter-spacing:1.6px; paint-order:stroke; stroke:#f5f3e9; stroke-width:3px; stroke-linejoin:round; }
.dx-map__sea { fill:#a2b6aa; font-size:10px; letter-spacing:3.6px; font-style:italic; font-family:Georgia,serif; }
.dx-map__regions,.dx-map__routes,.dx-map__transport { pointer-events:none; }
.dx-map__marker { cursor:pointer; outline:none; }
.dx-map__marker--friend { cursor:default; }
.dx-map.is-picking .dx-map__marker--friend { cursor:crosshair; }
.dx-map__marker-shadow { filter:drop-shadow(0 2px 3px #324f4526); }
.dx-map__initials { fill:#fff; font-family:inherit; font-size:11px; font-weight:650; letter-spacing:.3px; }
.dx-map__rank { font-family:inherit; font-size:12px; font-weight:700; }
.dx-map__place-label { pointer-events:none; }
.dx-map__place-label text { fill:#fff; font-family:inherit; font-size:11px; font-weight:600; }
.dx-map__hit { stroke:transparent; stroke-width:2; }
.dx-map__marker:focus-visible .dx-map__hit { stroke:#b97850; stroke-dasharray:3 3; }
.dx-map__marker:hover .dx-map__hit { fill:#5372650c; }
.dx-map__crosshair { display:none; pointer-events:none; }
.dx-map__layers { position:absolute; top:18px; left:18px; display:flex; flex-wrap:wrap; gap:5px; max-width:calc(100% - 88px); padding:4px; border:1px solid #ffffffcc; border-radius:11px; background:#fffff4e6; box-shadow:0 3px 12px #314e4106; }
.dx-map__layer { min-height:32px; padding:6px 10px; border:0; border-radius:7px; background:transparent; color:#737e6e; font-weight:500; line-height:1.4; font-family:inherit; font-size:10px; letter-spacing:.1px; cursor:pointer; transition:background .16s,color .16s; }
.dx-map__layer[aria-pressed="true"] { background:#e2e8db; color:#365a4b; }
.dx-map__layer:hover { background:#e9ecdf; }
.dx-map__layer::before { content:''; display:inline-block; width:6px; height:6px; margin-right:5px; border:1px solid currentColor; border-radius:50%; vertical-align:1px; opacity:.65; }
.dx-map__layer[aria-pressed="true"]::before { background:currentColor; }
.dx-map__compass { position:absolute; top:23px; right:22px; display:grid; justify-items:center; gap:5px; color:#526d5a; pointer-events:none; }
.dx-map__compass span { font-size:9px; font-weight:650; letter-spacing:1px; }
.dx-map__compass svg { width:14px; height:22px; }
.dx-map__transport-note { position:absolute; left:22px; top:67px; max-width:calc(100% - 44px); padding:5px 8px; border-radius:5px; background:#fffef6e6; color:#778372; font-size:9px; line-height:1.4; }
.dx-map__status { position:absolute; left:18px; right:18px; bottom:88px; width:fit-content; max-width:calc(100% - 94px); padding:11px 14px; border:1px solid #d7dfcc; border-radius:10px; background:#fffef4f5; color:#365a4b; font-size:11px; font-weight:550; line-height:1.6; box-shadow:0 5px 16px #344f4010; pointer-events:none; }
.dx-map__status:empty { display:none; }
.dx-map__controls { position:absolute; right:18px; bottom:53px; display:flex; flex-direction:column; width:38px; padding:3px; border:1px solid #d4ddd0; border-radius:10px; background:#fffef5f5; box-shadow:0 3px 12px #354f3d0a; }
.dx-map__controls button { display:flex; align-items:center; justify-content:center; width:30px; min-height:34px; padding:0; border:0; border-radius:6px; background:transparent; color:#466451; font-family:inherit; font-size:21px; font-weight:400; cursor:pointer; }
.dx-map__controls button + button { border-top:1px solid #e7ebdf; }
.dx-map__controls button:hover { background:#e9eddf; }
.dx-map__controls svg { width:18px; height:18px; }
.dx-map button:focus-visible { outline:2px solid #ad7556; outline-offset:2px; }
.dx-map__legend { position:absolute; left:20px; bottom:51px; display:flex; align-items:center; gap:6px; max-width:calc(100% - 85px); color:#657a67; font-size:9px; background:#e8eeea99; border-radius:4px; padding:5px 0; pointer-events:none; }
.dx-map__legend-dot { width:7px; height:7px; border:1.5px solid #fffef3; border-radius:50%; background:#c7856b; box-shadow:0 0 0 1px #c7856b66; }
.dx-map__legend-route { width:17px; height:0; margin-left:7px; border-top:1.5px dashed #889b80; }
.dx-map__attribution { position:absolute; left:20px; bottom:19px; color:#798a79; font-size:9px; letter-spacing:.05px; pointer-events:none; }
.dx-map__scale { position:absolute; right:20px; bottom:18px; height:13px; padding:0 0 5px; border:solid #8b9d88; border-width:0 1px 1px; color:#748770; text-align:center; font-size:8px; line-height:1; pointer-events:none; }
.dx-map__tooltip { position:absolute; z-index:5; max-width:220px; width:max-content; padding:9px 12px; border:1px solid #d7dfce; border-radius:8px; background:#fffef8; box-shadow:0 4px 15px #243f3512; color:#355746; font-size:11px; line-height:1.5; pointer-events:none; overflow-wrap:anywhere; }
.dx-map [hidden] { display:none !important; }
@media (max-width:600px) {
  .dx-map__layers { top:14px; left:13px; max-width:calc(100% - 64px); }
  .dx-map__layer { min-height:34px; padding:5px 8px; font-size:10px; }
  .dx-map__compass { top:20px; right:17px; }
  .dx-map__transport-note { left:17px; top:64px; font-size:8px; }
  .dx-map__region { font-size:8px; letter-spacing:1.1px; }
  .dx-map__controls { right:13px; width:42px; }
  .dx-map__controls button { width:34px; min-height:39px; }
  .dx-map__legend { left:16px; font-size:8px; gap:5px; }
  .dx-map__attribution { left:16px; font-size:8px; }
  .dx-map__scale { right:16px; }
  .dx-map__status { left:13px; max-width:calc(100% - 81px); font-size:10px; }
}
@media (prefers-reduced-motion:reduce) { .dx-map__layer { transition:none; } }
