.route-share-button{
  position:relative;
  isolation:isolate;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  min-height:46px;
  padding:0 22px;
  overflow:hidden;
  border:0;
  border-radius:999px;
  background:linear-gradient(135deg,#6e8efb,#a777e3);
  box-shadow:0 8px 18px rgba(67,83,180,.24);
  color:#fff;
  font:800 14px/1 Arial,sans-serif;
  white-space:nowrap;
  cursor:pointer;
  transition:transform .3s ease,box-shadow .4s ease,background .4s cubic-bezier(.25,.8,.25,1);
  animation:route-share-pulse 3s infinite;
}
.route-share-button::before{
  content:"";
  position:absolute;
  z-index:-1;
  inset:-55%;
  border-radius:50%;
  background:radial-gradient(circle,rgba(255,255,255,.34) 0,rgba(255,255,255,0) 68%);
  opacity:0;
  transform:scale(.25);
  transition:opacity .45s ease,transform .6s ease-out;
}
.route-share-button:hover{
  background:linear-gradient(135deg,#a777e3,#6e8efb);
  box-shadow:0 12px 25px rgba(67,83,180,.34);
  transform:translateY(-3px) scale(1.025);
}
.route-share-button:hover::before{opacity:1;transform:scale(1)}
.route-share-button:active{transform:translateY(-1px) scale(.98);box-shadow:0 5px 11px rgba(67,83,180,.24)}
.route-share-button:focus-visible{outline:3px solid rgba(110,142,251,.4);outline-offset:3px}
.route-share-button:disabled{cursor:wait;opacity:.76;transform:none;animation:none}
.route-share-button__text{font:inherit;text-shadow:0 1px 2px rgba(0,0,0,.12);transition:letter-spacing .3s ease}
.route-share-button:hover .route-share-button__text{letter-spacing:.5px}
.route-share-button__icon{width:20px;height:20px;flex:0 0 20px;overflow:visible;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round;filter:drop-shadow(0 1px 2px rgba(0,0,0,.14));transition:transform .4s cubic-bezier(.68,-.55,.265,1.55)}
.route-share-button:hover .route-share-button__icon{transform:rotate(180deg) scale(1.1)}
.route-share-button--compact{min-height:42px;padding:0 18px;font-size:13px}
@keyframes route-share-pulse{
  0%{box-shadow:0 0 0 0 rgba(110,142,251,.38),0 8px 18px rgba(67,83,180,.24)}
  70%{box-shadow:0 0 0 14px rgba(110,142,251,0),0 8px 18px rgba(67,83,180,.24)}
  100%{box-shadow:0 0 0 0 rgba(110,142,251,0),0 8px 18px rgba(67,83,180,.24)}
}
@media(max-width:720px){
  .route-share-button{min-height:42px;padding:0 16px;font-size:13px}
  .route-share-button__icon{width:18px;height:18px;flex-basis:18px}
  .route-share-button--compact{width:100%}
  .booking-journey-modal>header{display:grid;grid-template-columns:minmax(0,1fr);align-items:start;gap:10px}
  .booking-journey-modal>header>div:first-child{min-width:0;width:100%}
  .booking-journey-modal>header h2,.booking-journey-modal>header small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .booking-journey-modal>header .cms-header-actions{width:100%;justify-content:flex-end;gap:6px}
  .cms-header-actions .route-share-button:not(.route-share-button--compact){width:42px;padding:0;gap:0}
  .cms-header-actions .route-share-button:not(.route-share-button--compact) .route-share-button__text{width:0;overflow:hidden;font-size:0}
}
@media(prefers-reduced-motion:reduce){
  .route-share-button,.route-share-button::before,.route-share-button__text,.route-share-button__icon{animation:none;transition:none}
}
@media print{.route-share-button{display:none}}
