:root{
  --tour-map-pin-size:34px;
}

.tour-map-shell{
  display:grid;
  grid-template-columns:1.35fr .65fr;
  gap:18px;
  align-items:stretch;
}
@media (max-width: 900px){
  .tour-map-shell{grid-template-columns:1fr}
}

.tour-map-canvas{
  border:1px solid var(--border);
  border-radius:var(--radius);
  overflow:hidden;
  box-shadow:var(--shadow-sm);
  min-height:420px;
  background:var(--bg);
}
@media (max-width: 520px){
  .tour-map-canvas{min-height:320px}
}

.tour-map-panel{
  display:flex;
  flex-direction:column;
  gap:12px;
}

.tour-map-header{
  display:flex;
  flex-direction:column;
  gap:6px;
}

.tour-map-kicker{
  font-size:12px;
  font-weight:900;
  letter-spacing:.06em;
  text-transform:uppercase;
  color:var(--purple);
}

.tour-map-panel h3{
  margin:0;
  font-size:18px;
  letter-spacing:-.01em;
}

.tour-map-history{
  margin:0;
  color:var(--muted);
  font-weight:700;
}

.tour-map-actions{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
  align-items:center;
}

.tour-map-list{
  border-top:1px solid var(--border);
  padding-top:10px;
}
.tour-map-list summary{
  cursor:pointer;
  font-weight:900;
  color:var(--text);
}
.tour-map-stoplist{
  display:flex;
  flex-direction:column;
  gap:8px;
  margin-top:10px;
}

.tour-map-stopbtn{
  display:flex;
  gap:10px;
  align-items:center;
  text-align:left;
  width:100%;
  border:1px solid var(--border);
  background:#fff;
  padding:10px 12px;
  border-radius:var(--radius);
  font-weight:800;
  cursor:pointer;
  transition:transform .08s ease, box-shadow .12s ease, background .12s ease;
}
.tour-map-stopbtn:active{transform:translateY(1px)}
.tour-map-stopbtn[aria-current="true"]{
  background:var(--purple-soft);
  border-color:rgba(109,40,217,.28);
}

.tour-map-stopnum{
  width:26px;
  height:26px;
  border-radius:999px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  background:rgba(109,40,217,.10);
  color:var(--purple-3);
  flex:0 0 auto;
}
.tour-map-stopname{color:var(--text)}

.tour-map-media{
  border:1px solid var(--border);
  border-radius:var(--radius);
  overflow:hidden;
  background:#fff;
}
.tour-map-media video{
  width:100%;
  height:auto;
  display:block;
}

/* Leaflet polish */
.tour-map-canvas .leaflet-control-zoom a{
  border-radius:var(--radius);
  border:1px solid var(--border);
  box-shadow:var(--shadow-sm);
}
.tour-map-canvas .leaflet-control-attribution{
  font-size:11px;
  font-weight:700;
  background:rgba(255,255,255,.85);
  border-radius:var(--radius);
  padding:6px 8px;
  border:1px solid rgba(229,231,235,.8);
}
.tour-map-canvas .leaflet-container{
  font:inherit;
}

/* Make standard OSM tiles feel a bit “lighter” without custom styles */
.tour-map-canvas .leaflet-tile{
  filter:saturate(.92) contrast(1.02) brightness(1.03);
}

/* Numbered pin */
.tm-pin{
  background:transparent;
  border:none;
}
.tm-pin .tm-pin-inner{
  width:var(--tour-map-pin-size);
  height:var(--tour-map-pin-size);
  border-radius:999px;
  background:#fff;
  border:2px solid var(--primary);
  color:var(--primary);
  font-weight:900;
  display:flex;
  align-items:center;
  justify-content:center;
  box-shadow:var(--shadow-sm);
  transition:transform .10s ease, box-shadow .12s ease;
}
.tm-pin.is-active .tm-pin-inner{
  transform:scale(1.08);
  background:var(--primary);
  color:#fff;
  border-color:var(--primary);
  box-shadow:var(--shadow-md);
}
