.schedule-map-frame {
  container:route-toolbar / inline-size;
}
.schedule-map-toolbar #mapRouteVisibility[aria-pressed="false"] {
  border-color:var(--coral);
  background:transparent;
  color:var(--paper);
}
.schedule-map-toolbar #mapRouteVisibility:disabled {
  border-color:rgba(245,243,238,.35);
  background:transparent;
  color:rgba(245,243,238,.55);
  cursor:not-allowed;
}
.schedule-map-frame.route-hidden .schedule-map-legend .route-key {
  opacity:.28;
}
.schedule-map-marker.route-inactive .schedule-map-marker-visual {
  opacity:.55;
  filter:saturate(.55);
}
.place-pin-row {
  position:relative;
  isolation:isolate;
  display:grid;
  grid-template-columns:34px minmax(0,1fr);
  align-items:stretch;
  border-bottom:1px solid var(--line);
  transform:translateY(0) scale(1);
  transform-origin:center;
  transition:transform 110ms cubic-bezier(.7,0,.84,0),opacity 90ms cubic-bezier(.7,0,.84,0);
}
.place-pin-row.is-editable {
  grid-template-columns:44px minmax(0,1fr) 44px;
}
.place-pin-row::after {
  position:absolute;
  z-index:-1;
  inset:3px -6px;
  border:1px solid color-mix(in srgb,var(--ink) 16%,transparent);
  background:color-mix(in srgb,var(--paper) 96%,var(--yellow));
  box-shadow:0 12px 24px rgba(16,24,40,.2),0 3px 8px rgba(16,24,40,.12);
  content:'';
  opacity:0;
  pointer-events:none;
  transform:scale(.985);
  transition:transform 100ms cubic-bezier(.7,0,.84,0),opacity 90ms cubic-bezier(.7,0,.84,0);
}
.place-pin-row.is-dragging {
  z-index:2;
  opacity:.96;
  transform:translateY(-5px) scale(1.012);
  transition-duration:160ms,120ms;
  transition-timing-function:cubic-bezier(.22,1,.36,1);
}
.place-pin-row.is-dragging::after {
  opacity:1;
  transform:scale(1);
  transition-duration:160ms,120ms;
  transition-timing-function:cubic-bezier(.22,1,.36,1);
}
.place-pin.route-inactive {
  opacity:.58;
}
.place-route-icon {
  display:grid;
  place-items:center;
  align-self:stretch;
  width:34px;
  min-height:44px;
  padding:0;
  border:0;
  background:transparent;
  color:var(--ink);
}
.place-pin-row.is-editable .place-route-icon {
  width:44px;
  cursor:pointer;
}
.place-route-icon .place-pin-no {
  transition:transform 160ms cubic-bezier(.22,1,.36,1),opacity 140ms ease-out,background 140ms ease-out;
}
.place-route-icon[aria-pressed="true"] .place-pin-no {
  background:var(--ink);
  color:var(--yellow);
}
.place-route-icon.restaurant .place-pin-no {
  border-color:var(--coral);
  background:var(--coral);
  color:var(--ink);
}
.place-route-icon.alternative .place-pin-no {
  border-color:var(--coral);
  background:var(--coral);
  color:var(--ink);
}
.place-route-icon.stay .place-pin-no {
  border-color:var(--ink);
  background:var(--ink);
  color:var(--yellow);
}
.place-route-icon.airport .place-pin-no {
  border-color:var(--blue);
  background:var(--blue);
  color:var(--ink);
  font-size:1rem;
}
.place-route-icon[aria-pressed="false"] .place-pin-no {
  border-color:var(--muted);
  border-style:dashed;
  background:transparent;
  color:var(--muted);
  opacity:.58;
}
.place-route-icon:disabled {
  cursor:not-allowed;
  opacity:.38;
}
.place-route-icon:focus-visible,.place-route-drag-handle:focus-visible {
  outline:2px solid var(--ink);
  outline-offset:-3px;
}
.place-route-icon.all-days:not(.stay):not(.airport) .place-pin-no {
  font-size:0;
}
.place-route-icon.all-days:not(.stay):not(.airport) .place-pin-no::after {
  width:7px;
  height:7px;
  border-radius:50%;
  background:currentColor;
  content:'';
}
.place-route-drag-handle {
  display:grid;
  place-items:center;
  width:44px;
  min-height:44px;
  padding:0;
  border:0;
  background:transparent;
  color:var(--muted);
  cursor:grab;
  touch-action:none;
}
.place-route-drag-handle::before {
  width:12px;
  height:16px;
  background:radial-gradient(circle,currentColor 1.3px,transparent 1.5px) 0 0 / 6px 6px;
  content:'';
  opacity:.78;
}
.place-route-drag-handle:active {
  cursor:grabbing;
}
.place-route-icon:active .place-pin-no {
  transform:scale(.9);
}
@media (hover:hover) and (pointer:fine) {
  .place-route-icon:hover .place-pin-no {
    transform:scale(1.06);
  }
  .place-route-drag-handle:hover {
    color:var(--ink);
  }
}
@container route-toolbar (max-width:440px) {
  .schedule-map-toolbar {
    align-items:stretch;
    flex-direction:column;
    gap:8px;
    min-height:0;
    padding:8px 12px;
  }
  .schedule-map-toolbar > div:first-child {
    display:flex;
    align-items:baseline;
    justify-content:space-between;
    gap:8px;
  }
  .schedule-map-toolbar strong {
    font-size:.75rem;
  }
  .schedule-map-toolbar > .schedule-map-actions {
    width:100%;
    gap:4px;
  }
  .schedule-map-toolbar button,.map-alternative-action {
    flex:1 1 0;
    min-width:0;
    padding-inline:6px;
  }
}
@media (prefers-reduced-motion:reduce) {
  .place-pin-row,.place-pin-row::after,.place-route-icon .place-pin-no { transition:none; }
  .place-pin-row.is-dragging,.place-pin-row.is-dragging::after { transform:none; }
}
