/* A compact itinerary follows one fine path on a white reading surface. */
#itineraryPanel {
  --journey-ink:#234563;
  --journey-muted:#50677e;
  --journey-accent:#347bc0;
  --journey-track:#d9e1e9;
  --journey-surface:#fff;
  --journey-bg:#fff;
  --journey-shadow:none;
  background:var(--journey-bg);
}
#itineraryPanel #timeline { padding:8px 24px 24px; }
#itineraryPanel .timeline-item {
  display:grid; grid-template-columns:12px minmax(0,1fr); gap:12px;
  padding:0 0 16px; margin:0; border:0;
}
#itineraryPanel .timeline-line { grid-column:1; grid-row:1; padding-top:12px; }
#itineraryPanel .timeline-line::before { top:16px; bottom:-28px; left:5px; width:1px; background:var(--journey-track); }
#itineraryPanel .timeline-dot { width:8px; height:8px; margin:0 2px; border:0; box-shadow:none; background:var(--journey-accent); }
#itineraryPanel .timeline-item:last-child .timeline-line::before { display:none; }
#itineraryPanel .timeline-body {
  position:relative; grid-column:2; padding:4px 0; min-width:0;
  background:transparent; border:0; border-radius:0; box-shadow:none;
}
#itineraryPanel .timeline-body::before { display:none; }
#itineraryPanel .itinerary-card-header { display:flex; align-items:flex-start; gap:12px; min-width:0; }
#itineraryPanel .itinerary-card-copy { min-width:0; flex:1; }
#itineraryPanel .itinerary-card-media { display:grid; place-items:center; flex:0 0 88px; width:88px; height:66px; padding:0; border:0; border-radius:11px; overflow:hidden; background:#f1f5f9; color:var(--journey-accent); }
#itineraryPanel .itinerary-card-media .itinerary-photo { display:block; float:none; width:100%; height:100%; margin:0; border-radius:0; object-fit:cover; }
#itineraryPanel .itinerary-card-media:has(.image-unavailable) { display:none; }
#itineraryPanel .itinerary-card-media :is(svg,.itinerary-type-icon) { width:32px; height:32px; fill:none; stroke:currentColor; stroke-width:1.8; }
#itineraryPanel .itinerary-media-fallback { font-size:25px; font-weight:600; }
#itineraryPanel .timeline-time { padding:0; margin:0 0 3px; color:var(--journey-ink); font-size:15px; line-height:1.4; font-weight:600; font-variant-numeric:tabular-nums; }
#itineraryPanel .timeline-heading-row { min-height:0; align-items:center; gap:8px; flex-wrap:wrap; }
#itineraryPanel .timeline-title { font-size:16px; line-height:1.5; color:var(--journey-ink); font-weight:600; }
#itineraryPanel .timeline-order { display:none; }
#itineraryPanel .timeline-note { font-size:13px; line-height:1.6; color:var(--journey-muted); margin:6px 0 0; }
#itineraryPanel .timeline-note:empty { display:none; }
#itineraryPanel .timeline-item-actions:empty { display:none; }
#itineraryPanel .timeline-item-actions { margin-left:auto; flex-wrap:wrap; max-width:100%; }
#itineraryPanel .timeline-item-actions button { min-width:44px; min-height:44px; }
#itineraryPanel :is(.itinerary-transport,.itinerary-notes,.scenic-internal-route,.journey-details) { margin:6px 0 0; padding:0; border:0; border-top:1px solid #e6edf4; border-radius:0; background:transparent; box-shadow:none; }
#itineraryPanel :is(.itinerary-transport,.itinerary-notes,.scenic-internal-route,.journey-details) > summary { padding:6px 0; min-height:44px; color:var(--journey-muted); font-size:13px; line-height:1.6; cursor:pointer; }
#itineraryPanel .transport-options { gap:8px; padding:0 0 8px; }
#itineraryPanel .transport-pill { min-height:36px; font-size:12px; border-radius:8px; }
#itineraryPanel .segment-navigation { display:flex; flex-wrap:wrap; gap:8px; align-items:center; margin:8px 0 0; }
#itineraryPanel .segment-navigation > span { display:none; }
#itineraryPanel .segment-navigation > div { margin-left:auto; gap:8px; }
#itineraryPanel .segment-nav-link { width:44px; height:44px; min-width:44px; }
#itineraryPanel .itinerary-place-detail { padding:8px 0; min-height:44px; background:transparent; border:0; color:#2868a5; font-size:13px; text-align:left; box-shadow:none; }
#itineraryPanel [data-card-kind="transport"] .itinerary-card-media { flex-basis:48px; width:48px; height:48px; }
#itineraryPanel [data-card-kind="transport"] .timeline-body { background:#edf5fd; }
#itineraryPanel .transport-record-title { gap:3px; }
#itineraryPanel .transport-record-service { font-size:15px; }
#itineraryPanel .transport-record-route { font-size:13px; font-weight:400; color:var(--journey-muted); }
#itineraryPanel .transport-record-meta { color:var(--journey-muted); margin-top:12px; }
#itineraryPanel .transport-record-actions button { min-width:44px; min-height:44px; }
#itineraryPanel [data-card-kind="hotel"] .timeline-body { background:#edf5fd; }
#itineraryPanel [data-card-kind="transfer"] .timeline-body { background:transparent; box-shadow:none; padding:0 8px; }
#itineraryPanel [data-card-kind="transfer"] .timeline-body::before { display:none; }
#itineraryPanel [data-card-kind="transfer"] .timeline-time { display:none; }
#itineraryPanel .hotel-departure { border:0; margin:8px 0 0; padding:0; background:transparent; }
#itineraryPanel :is(button,a,summary,select):focus-visible { outline:2px solid var(--journey-accent); outline-offset:3px; }
#itineraryPanel .timeline-item.map-focused .timeline-body { outline:0; border-color:var(--stop-dot,var(--journey-accent)); }
#itineraryPanel .timeline-item.map-focused .timeline-title { color:var(--journey-accent); }
#itineraryPanel button:disabled { opacity:.45; cursor:not-allowed; }
#itineraryPanel ::selection { background:#d6e7f7; color:#234563; }
#itineraryPanel #timeline { scrollbar-width:thin; scrollbar-color:#b8cee2 transparent; }
@media (hover:hover) {
  #itineraryPanel .itinerary-place-detail:hover { color:#164c80; text-decoration:underline; text-underline-offset:4px; }
  #itineraryPanel summary:hover { color:var(--journey-ink); }
}
@media (prefers-reduced-motion:no-preference) {
  #itineraryPanel :is(button,a,summary) { transition:background-color 160ms ease,color 160ms ease; }
}
@media (min-width:1181px) {
  #plannerWorkspace > #itineraryPanel { background:var(--journey-bg); }
  #itineraryPanel > .panel-toolbar { flex-wrap:wrap; background:var(--journey-surface); }
}
@media (min-width:681px) and (max-width:1180px) {
  #itineraryPanel > .panel-toolbar { flex-wrap:wrap; gap:12px; }
  #itineraryPanel .route-actions { flex-wrap:wrap; gap:8px; }
  #itineraryPanel > #mapPreview { height:180px; flex-basis:180px; }
  #itineraryPanel #timeline { padding:12px 16px 28px; }
  #itineraryPanel .timeline-item { gap:12px; }
  #itineraryPanel .timeline-body { padding:4px 0; }
  #itineraryPanel .itinerary-card-header { gap:12px; }
  #itineraryPanel .itinerary-card-media { flex-basis:72px; width:72px; height:54px; }
}
@media (max-width:680px) {
  #itineraryPanel #mobileRouteCards:not([hidden]) { gap:0; padding:8px 0 24px; }
  #itineraryPanel #mobileRouteCards .mobile-route-card { padding:0; margin:0; border:0; border-radius:0; background:transparent; box-shadow:none; }
  #itineraryPanel #mobileRouteCards .timeline-item { display:grid; grid-template-columns:12px minmax(0,1fr); gap:14px; padding:0 0 20px; }
  #itineraryPanel #mobileRouteCards .timeline-line { display:block; }
  #itineraryPanel #mobileRouteCards .timeline-line::before { display:block; left:5px; }
  #itineraryPanel #mobileRouteCards .timeline-dot { margin:0 2px; }
  #itineraryPanel #mobileRouteCards .mobile-route-card:last-child .timeline-line::before { display:none; }
  #itineraryPanel #mobileRouteCards .timeline-body { width:auto; padding:4px 0; }
  #itineraryPanel #mobileRouteCards .timeline-time { font-size:15px; font-weight:600; margin-bottom:3px; }
  #itineraryPanel #mobileRouteCards .timeline-title { font-size:16px; }
  #itineraryPanel .itinerary-card-header { gap:12px; }
  #itineraryPanel .itinerary-card-media { flex-basis:72px; width:72px; height:54px; }
  #itineraryPanel #mobileRouteCards .itinerary-card-media .mobile-route-photo { float:none; width:100%; height:100%; margin:0; border-radius:0; }
  #itineraryPanel #mobileRouteCards .segment-navigation { justify-content:space-between; }
  #itineraryPanel #mobileRouteCards .timeline-item-actions { margin-left:0; }
  #itineraryPanel #mobileRouteCards .itinerary-transport { margin-top:12px; }
  #itineraryPanel #mobileRouteCards .itinerary-notes { margin-top:8px; }
  #itineraryPanel #mobileRouteCards .timeline-note { font-size:13px; color:var(--journey-muted); }
  #itineraryPanel #mobileRouteCards [data-card-kind="transfer"] .timeline-body { padding:0 8px; }
  #itineraryPanel > #mapPreview { position:relative; top:auto; height:152px; }
  #itineraryPanel #timeline { padding:8px 0 24px; }
  #itineraryPanel .route-actions { gap:8px; }
  #itineraryPanel .timeline-edit-controls { flex-wrap:wrap; }
  #itineraryPanel .timeline-day-select { max-width:100%; }
}
@media (max-width:360px) {
  #itineraryPanel .itinerary-card-media { flex-basis:64px; width:64px; height:48px; }
  #itineraryPanel .timeline-time,#itineraryPanel #mobileRouteCards .timeline-time { font-size:15px; }
  #itineraryPanel .itinerary-card-header { gap:10px; }
  #itineraryPanel #mobileRouteCards .timeline-body { padding:4px 0; }
}
.preview-notice { padding:8px 16px; background:#e7f1fb; text-align:center; color:#345e83; font-size:12px; }
/* Contain the app's inherited full-width navigation buttons within disclosures. */
#itineraryPanel .timeline-body .segment-navigation,
#itineraryPanel #mobileRouteCards .timeline-body .segment-navigation { display:flex; flex-direction:row; justify-content:space-between; gap:8px; }
#itineraryPanel .timeline-body .segment-navigation > div { display:flex; flex:0 0 auto; width:auto; margin-left:auto; }
#itineraryPanel .timeline-body .itinerary-place-detail { width:auto; flex:0 1 auto; margin:0; }
#itineraryPanel .itinerary-card-copy .timeline-item-actions { flex:0 0 auto; }
#itineraryPanel .journey-details .transport-record-actions { justify-content:flex-end; margin-top:12px; }
#itineraryPanel .itinerary-transport > summary { margin:0; }
#itineraryPanel .timeline-item[data-card-kind="transfer"] { padding-bottom:16px; }
#itineraryPanel .timeline-item[data-card-kind="transfer"] .timeline-line::before { top:0; bottom:-52px; }
#itineraryPanel .timeline-item[data-card-kind="transfer"] .timeline-body > .hotel-departure { margin:0; }
#itineraryPanel .itinerary-card-copy .timeline-heading-row { flex-wrap:wrap; align-items:flex-start; }
#itineraryPanel .itinerary-card-copy .timeline-heading-row > .timeline-title { flex:1 1 120px; }
#itineraryPanel .route-editing .itinerary-card-copy .timeline-heading-row { flex-wrap:wrap; }
#itineraryPanel .timeline-item.route-editing .timeline-heading-row { flex-wrap:wrap; }
@media (min-width:681px) and (max-width:1180px) {
  #itineraryPanel > .panel-toolbar > div:first-child { flex:1 1 100%; }
  #itineraryPanel > .panel-toolbar .route-actions { margin:0; background:transparent; padding:0; border:0; }
  #itineraryPanel .panel-toolbar #routeSummary { max-width:none; white-space:normal; }
}
@media (max-width:680px) {
  #itineraryPanel #mobileRouteCards .timeline-line::before { bottom:-56px; }
  #itineraryPanel #mobileRouteCards .timeline-item-actions { margin-left:auto; }
  #itineraryPanel #mobileRouteCards .timeline-body .timeline-heading-row { min-height:0; }
  #itineraryPanel #mobileRouteCards .timeline-body .timeline-title { line-height:1.45; }
}

#itineraryPanel .itinerary-transport-icon { display:inline-block; width:20px; height:20px; flex:0 0 20px; object-fit:contain; vertical-align:middle; }
#itineraryPanel .itinerary-card-media .itinerary-transport-icon { width:32px; height:32px; }
#itineraryPanel .transport-pill { display:inline-flex; align-items:center; gap:5px; }
#itineraryPanel .itinerary-transport > summary .itinerary-transport-icon { margin:0 5px 2px 0; }

#itineraryPanel #addTransport .transport-choice-icon { width:26px; height:26px; display:block; object-fit:contain; }

/* A transfer reads as a connecting row, with a 44px+ disclosure target. */
#itineraryPanel .itinerary-compact-transfer,
#itineraryPanel #mobileRouteCards .itinerary-compact-transfer { min-height:0; padding-bottom:4px; }
#itineraryPanel .itinerary-compact-transfer .timeline-body,
#itineraryPanel #mobileRouteCards .itinerary-compact-transfer .timeline-body { padding:0; }
#itineraryPanel .itinerary-compact-transfer .timeline-line { padding-top:0; }
#itineraryPanel .itinerary-compact-transfer .timeline-line::before,
#itineraryPanel #mobileRouteCards .itinerary-compact-transfer .timeline-line::before { top:0; bottom:-48px; }
#itineraryPanel .itinerary-compact-transfer .timeline-dot { display:none; }
#itineraryPanel .itinerary-transfer { margin:0; padding:0; border:0; border-radius:0; background:transparent; box-shadow:none; }
#itineraryPanel .itinerary-transfer > summary { display:flex; align-items:center; gap:8px; min-height:44px; padding:4px 2px; margin:0; list-style:none; cursor:pointer; color:var(--journey-ink); border-radius:6px; }
#itineraryPanel .itinerary-transfer > summary::-webkit-details-marker { display:none; }
#itineraryPanel .itinerary-transfer-icon { display:flex; align-items:center; flex:none; gap:2px; }
#itineraryPanel .itinerary-transfer-copy { display:flex; align-items:baseline; flex-wrap:wrap; gap:2px 10px; flex:1; min-width:0; }
#itineraryPanel .itinerary-transfer-lead { display:flex; gap:4px; white-space:nowrap; font-size:12px; line-height:1.5; }
#itineraryPanel .itinerary-transfer-lead strong { font-size:inherit; font-weight:500; }
#itineraryPanel .itinerary-transfer-schedule { white-space:nowrap; color:var(--journey-muted); font-size:12px; line-height:1.5; font-variant-numeric:tabular-nums; }
#itineraryPanel .itinerary-transfer-route { color:var(--journey-muted); font-size:12px; line-height:1.5; overflow-wrap:anywhere; }
#itineraryPanel .itinerary-transfer-toggle { display:flex; align-items:center; gap:7px; flex:none; color:var(--journey-muted); font-size:12px; }
#itineraryPanel .itinerary-transfer-toggle::after { content:""; width:6px; height:6px; border-right:1.5px solid currentColor; border-bottom:1.5px solid currentColor; transform:rotate(45deg) translateY(-2px); }
#itineraryPanel .itinerary-transfer[open] .itinerary-transfer-toggle::after { transform:rotate(225deg) translate(-1px,-1px); }
#itineraryPanel .itinerary-transfer-content { padding:4px 8px 8px; background:#eaf2fa; border-radius:8px; }
#itineraryPanel .itinerary-transfer-content .transport-options { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:6px; margin:0; padding:8px 0 0; border-top:1px solid #d4e2f0; }
#itineraryPanel .itinerary-transfer-content .transport-pill { min-height:30px; padding:4px 6px; margin:0; font-size:12px; background:transparent; color:var(--journey-muted); }
#itineraryPanel .itinerary-transfer-content .transport-pill.recommended { background:#cfe2f7; color:#285e95; }
#itineraryPanel .itinerary-transfer-content .segment-navigation { margin:4px 0 0; }
#itineraryPanel .itinerary-transfer-content .segment-navigation > span { display:block; color:var(--journey-muted); font-size:12px; }
#itineraryPanel .itinerary-transfer-content > .timeline-note { margin:0 0 8px; }
@media (hover:hover) {
  #itineraryPanel .itinerary-transfer > summary:hover { background:#eaf2fa; }
}
@media (max-width:360px) {
  #itineraryPanel .itinerary-transfer-toggle > span { display:none; }
}

/* Lodging is a compact stop: its header also opens the address, without a second disclosure row. */
#itineraryPanel :is(#timeline,#mobileRouteCards) [data-card-kind="hotel"] .timeline-body { padding:0; box-shadow:none; border-radius:12px; }
#itineraryPanel :is(#timeline,#mobileRouteCards) [data-card-kind="hotel"] .itinerary-card-header { flex:1; gap:10px; }
#itineraryPanel :is(#timeline,#mobileRouteCards) [data-card-kind="hotel"] .itinerary-card-media { flex:0 0 28px; width:28px; height:32px; background:transparent; border-radius:4px; }
#itineraryPanel :is(#timeline,#mobileRouteCards) [data-card-kind="hotel"] .itinerary-type-icon { width:24px; height:24px; }
#itineraryPanel :is(#timeline,#mobileRouteCards) [data-card-kind="hotel"] .timeline-time { margin:0 0 2px; font-size:12px; line-height:1.4; font-weight:500; }
#itineraryPanel .itinerary-hotel-action { color:var(--journey-muted); font-weight:400; }
#itineraryPanel :is(#timeline,#mobileRouteCards) [data-card-kind="hotel"] .timeline-title { font-size:14px; line-height:1.5; font-weight:600; overflow-wrap:anywhere; }
#itineraryPanel .itinerary-hotel-details { margin:0; padding:0; border:0; background:transparent; }
#itineraryPanel .itinerary-hotel-details > summary { display:flex; align-items:center; gap:8px; min-height:60px; padding:10px 12px; margin:0; list-style:none; border-radius:12px; cursor:pointer; }
#itineraryPanel .itinerary-hotel-details > summary::-webkit-details-marker { display:none; }
#itineraryPanel .itinerary-hotel-details > summary::after { content:""; flex:none; width:6px; height:6px; border-right:1.5px solid var(--journey-muted); border-bottom:1.5px solid var(--journey-muted); transform:rotate(45deg); }
#itineraryPanel .itinerary-hotel-details[open] > summary::after { transform:rotate(225deg); }
#itineraryPanel .itinerary-hotel-content { padding:0 12px 10px 50px; }
#itineraryPanel :is(#timeline,#mobileRouteCards) .itinerary-hotel-content .timeline-note { margin:0; font-size:12px; line-height:1.6; }
#itineraryPanel [data-card-kind="hotel"] .timeline-body > .itinerary-card-header { padding:10px 12px; }
#itineraryPanel .itinerary-compact-transfer.map-focused .timeline-body { outline:0; }

/* Place copy comes first; its photograph sits beside the title on the right. */
#itineraryPanel :is(#timeline,#mobileRouteCards) .timeline-item[data-card-kind="spot"] { padding-bottom:14px; }
#itineraryPanel :is(#timeline,#mobileRouteCards) [data-card-kind="spot"] .timeline-body { padding:4px 0 2px; }
#itineraryPanel :is(#timeline,#mobileRouteCards) [data-card-kind="spot"] .itinerary-card-header { gap:12px; align-items:flex-start; }
#itineraryPanel :is(#timeline,#mobileRouteCards) [data-card-kind="spot"] .itinerary-card-copy { order:1; }
#itineraryPanel :is(#timeline,#mobileRouteCards) [data-card-kind="spot"] .itinerary-card-media { order:2; flex:0 0 88px; width:88px; height:66px; border-radius:8px; }
#itineraryPanel :is(#timeline,#mobileRouteCards) [data-card-kind="spot"] .timeline-time { margin:0 0 3px; font-size:15px; line-height:1.4; }
#itineraryPanel :is(#timeline,#mobileRouteCards) [data-card-kind="spot"] .timeline-title { font-size:16px; line-height:1.4; }
#itineraryPanel :is(#timeline,#mobileRouteCards) [data-card-kind="spot"] :is(.itinerary-transport,.itinerary-notes) { margin:6px 0 0; }
#itineraryPanel :is(#timeline,#mobileRouteCards) [data-card-kind="spot"] :is(.itinerary-transport,.itinerary-notes) > summary { min-height:44px; padding:4px 0; line-height:1.55; }
#itineraryPanel .itinerary-stop-footer { display:flex; align-items:flex-start; flex-wrap:wrap; gap:0 8px; margin-top:2px; }
#itineraryPanel .itinerary-stop-footer > .itinerary-notes { flex:1; min-width:85px; margin:0; border:0; }
#itineraryPanel .itinerary-stop-footer > .itinerary-notes[open] { flex-basis:100%; }
#itineraryPanel .itinerary-stop-footer > .timeline-item-actions { display:flex; flex-wrap:wrap; gap:0 4px; }
#itineraryPanel .itinerary-stop-footer .timeline-item-actions > :is(.timeline-move-date,.timeline-remove-place) { padding:4px 8px; border:0; background:transparent; color:var(--journey-muted); font-size:12px; }
#itineraryPanel :is(#timeline,#mobileRouteCards) [data-card-kind="spot"] .timeline-line::before { bottom:-42px; }
@media (max-width:1180px) {
  #itineraryPanel :is(#timeline,#mobileRouteCards) [data-card-kind="spot"] .itinerary-card-media { flex-basis:72px; width:72px; height:54px; }
}
@media (max-width:360px) {
  #itineraryPanel :is(#timeline,#mobileRouteCards) [data-card-kind="spot"] .itinerary-card-media { flex-basis:64px; width:64px; height:48px; }
}

/* Intercity travel is a compact ticket; onward options share its existing disclosure. */
#itineraryPanel :is(#timeline,#mobileRouteCards) .explicit-transport { padding-bottom:14px; }
#itineraryPanel :is(#timeline,#mobileRouteCards) .explicit-transport .timeline-body { padding:10px 12px; border-radius:12px; box-shadow:none; }
#itineraryPanel .explicit-transport .itinerary-card-header { gap:10px; }
#itineraryPanel .explicit-transport .itinerary-card-media { flex:0 0 28px; width:28px; height:32px; background:transparent; }
#itineraryPanel .explicit-transport .itinerary-card-media .itinerary-transport-icon { width:28px; height:28px; }
#itineraryPanel :is(#timeline,#mobileRouteCards) .explicit-transport .timeline-time { display:flex; flex-wrap:wrap; align-items:baseline; gap:0 4px; font-size:15px; line-height:1.4; margin:0 0 2px; }
#itineraryPanel .explicit-transport .transport-record-service { margin-left:4px; font-size:12px; font-weight:500; color:var(--journey-muted); }
#itineraryPanel .explicit-transport .transport-record-route { font-size:13px; line-height:1.5; overflow-wrap:anywhere; }
#itineraryPanel .explicit-transport .transport-record-meta { margin:5px 0 0 38px; gap:8px; font-size:12px; }
#itineraryPanel .explicit-transport .transport-record-meta > span { padding:0; background:transparent; border:0; border-radius:0; }
#itineraryPanel .explicit-transport .journey-details { margin-top:7px; }
#itineraryPanel .explicit-transport .journey-details > summary { min-height:44px; padding:8px 0 4px; font-size:12px; line-height:1.5; }
#itineraryPanel .explicit-transport .journey-details > summary > span { font-size:12px; }
#itineraryPanel .explicit-transport .arrival-hotel-transfer { margin:0 0 10px; }
#itineraryPanel .explicit-transport .arrival-hotel-transfer .timeline-note { margin:6px 0; }
#itineraryPanel .explicit-transport .timeline-line::before { bottom:-42px; }

/* Transport and lodging retain gentle category cues; ordinary stops stay open. */
#itineraryPanel .timeline-item:is([data-card-kind="transport"],[data-card-kind="transfer"]) {
  --stop-surface:#f7faff; --stop-border:#e2eaf3; --stop-dot:#347bc0;
}
#itineraryPanel .timeline-item[data-card-kind="hotel"] {
  --stop-surface:#fffbf5; --stop-border:#eee6d8; --stop-dot:#ad7b2d;
}
#itineraryPanel .timeline-item[data-card-kind="spot"] {
  --stop-surface:transparent; --stop-border:#e6edf4; --stop-dot:#39816b;
}
#itineraryPanel :is(#timeline,#mobileRouteCards) .timeline-item:is([data-card-kind="transport"],[data-card-kind="hotel"]) > .timeline-body {
  background:var(--stop-surface); border:0; box-shadow:none;
}
#itineraryPanel :is(#timeline,#mobileRouteCards) .timeline-item[data-card-kind="spot"] > .timeline-body {
  background:transparent; border:0; border-radius:0; box-shadow:none;
}
#itineraryPanel .timeline-item:is([data-card-kind="transport"],[data-card-kind="hotel"],[data-card-kind="spot"]) .timeline-dot { background:var(--stop-dot); }
#itineraryPanel .timeline-item:is([data-card-kind="transport"],[data-card-kind="hotel"],[data-card-kind="spot"]) :is(.journey-details,.itinerary-transport,.itinerary-notes) { border-top-color:var(--stop-border); }
/* A transfer sits midway between stops, with map actions always beside it. */
#itineraryPanel :is(#timeline,#mobileRouteCards) .timeline-item.itinerary-before-transfer,
#itineraryPanel :is(#timeline,#mobileRouteCards) .timeline-item.itinerary-compact-transfer { padding-bottom:8px; }
#itineraryPanel :is(#timeline,#mobileRouteCards) .itinerary-compact-transfer > .timeline-body { display:block; background:transparent; border:0; border-radius:0; box-shadow:none; }
#itineraryPanel .itinerary-compact-transfer .itinerary-transfer { flex:1; min-width:0; }
#itineraryPanel .itinerary-compact-transfer .itinerary-transfer > summary { padding:4px 96px 4px 0; }
#itineraryPanel .itinerary-compact-transfer .segment-navigation { position:absolute; right:0; top:0; margin:0; }
#itineraryPanel .itinerary-compact-transfer .segment-navigation > div { gap:0; }
#itineraryPanel .itinerary-before-transfer .timeline-line::before { bottom:-40px; }
#itineraryPanel :is(#timeline,#mobileRouteCards) .itinerary-compact-transfer .timeline-line::before { bottom:-48px; }
#itineraryPanel .timeline-body > .segment-navigation { margin-top:0; }
@media (hover:hover) {
  #itineraryPanel .itinerary-compact-transfer .itinerary-transfer > summary:hover { background:transparent; color:var(--journey-accent); }
}

/* Map emphasis uses the stop dot and title; keyboard focus remains independent. */
#itineraryPanel :is(#timeline,#mobileRouteCards) .timeline-item.map-focused > .timeline-body { border-color:var(--stop-dot,var(--journey-accent)); outline:0; }
#itineraryPanel :is(#timeline,#mobileRouteCards) [data-card-kind="spot"] .itinerary-stop-meta { margin:4px 0 0; font-size:12px; line-height:1.5; }
#itineraryPanel .itinerary-transfer-content .transport-pill { min-width:0; white-space:normal; align-items:center; padding:4px 6px; border-radius:8px; cursor:default; line-height:1.5; }
#itineraryPanel .itinerary-option-label { display:flex; flex-wrap:wrap; gap:0 6px; min-width:0; overflow-wrap:anywhere; }
#itineraryPanel .itinerary-transfer-content { width:100%; }
/* Keep 44px actions in the text flow, including long names and edit controls. */
#itineraryPanel :is(#timeline,#mobileRouteCards) [data-card-kind="spot"] .timeline-item-actions { position:static; right:auto; top:auto; transform:none; margin-left:0; }
#itineraryPanel :is(#timeline,#mobileRouteCards) [data-card-kind="spot"] .itinerary-card-copy { padding-right:0; }
#itineraryPanel :is(#timeline,#mobileRouteCards) .timeline-edit-controls { flex-wrap:wrap; min-width:0; max-width:100%; }
#itineraryPanel :is(#timeline,#mobileRouteCards) .timeline-edit-controls :is(button,select) { min-height:44px; }
#itineraryPanel :is(#timeline,#mobileRouteCards) .timeline-day-select { min-width:0; max-width:100%; }
