.train-arrivals{margin:14px 0 6px;padding:0 2px;min-width:0}.train-arrivals[hidden]{display:none}
.arrivals-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:14px;margin-bottom:6px}.arrivals-heading button{min-width:64px;min-height:44px;padding:8px;border:0;background:none;color:#59708e;font:inherit;font-size:12px}.arrivals-heading strong{display:flex;align-items:center;gap:7px;min-width:0}.arrivals-count{font-size:11px;font-weight:600;padding:3px 6px;border-radius:5px;background:#edf3ff;color:#2563dc;white-space:nowrap}
.arrival-group{margin-top:13px;min-width:0}.arrival-group+.arrival-group{padding-top:15px;border-top:1px solid #edf1f6;margin-top:16px}.arrival-group-heading{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-bottom:7px}.arrival-group-heading h3{font-size:12px;font-weight:650;color:#526b8b;margin:0;line-height:1.6}.arrival-group-heading>span{font-size:10px;color:#91a0b3;white-space:nowrap}.arrival-group-note{margin:0 0 8px;font-size:11px;line-height:1.6;color:#8b9bb0;overflow-wrap:anywhere}.arrival-group-empty{margin:0;padding:11px 12px;background:#f7f9fc;border:1px dashed #e4eaf3;border-radius:9px;color:#94a1b3;font-size:11px;line-height:1.7;overflow-wrap:anywhere}.arrival-options{display:grid;grid-template-columns:minmax(0,1fr);gap:7px;min-width:0}
.arrival-option{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:center;text-align:left;min-width:0;width:100%;min-height:91px;padding:12px 13px;border:1px solid #e0e7f1;border-radius:11px;background:#fff;color:#203249;font:inherit;cursor:pointer}.arrival-option[aria-pressed=true]{border-color:#2563dc;background:#f0f5ff;box-shadow:inset 0 0 0 1px #2563dc}.arrival-main{display:block;min-width:0}.arrival-line{display:block;font-size:10px;line-height:1.6;color:#74869e;border-left:3px solid var(--arrival-color);padding-left:6px;overflow-wrap:anywhere}.arrival-detail{display:flex;flex-wrap:wrap;align-items:baseline;gap:5px 12px;margin:6px 0;font-size:13px;line-height:1.5;min-width:0}.arrival-detail strong{font-weight:650;overflow-wrap:anywhere;min-width:0}.arrival-detail b{font-size:12px;font-weight:600;color:#2563dc;overflow-wrap:anywhere}.arrival-option small{display:block;color:#8a99ad;font-size:10px;line-height:1.6;overflow-wrap:anywhere}.arrival-type{display:inline-block;margin-right:5px;padding:1px 5px;border-radius:4px;background:#eaf2ff;color:#5279b2;font-size:9px;font-weight:650}.arrival-type[data-service-type=express],.arrival-type[data-service-type=limited-express],.arrival-type[data-service-type=itx]{background:#fff0e5;color:#aa6a36}.arrival-type[data-service-type=unknown]{background:#e9edf2;color:#7e8c9e}.arrival-choice{display:block;text-align:right;font-size:11px;line-height:1.6;color:#5981ba;font-weight:600;max-width:84px;overflow-wrap:anywhere}.arrival-choice>small{font-size:9px;font-weight:400;color:#96a8bf;line-height:1.6;margin-top:2px}.arrival-option[aria-pressed=true] .arrival-choice{color:#245dd1}.arrival-departed .arrival-detail b{font-size:11px;color:#7087a6}.arrival-departed .arrival-choice{color:#597895}.arrival-option:focus-visible{outline:3px solid #2563dc;outline-offset:2px}.arrival-option:disabled,.arrivals-heading button:disabled{cursor:default;opacity:.55}.arrival-option.arrival-unavailable:disabled{opacity:1;background:#f8fafc;color:#718197}.arrival-unavailable .arrival-detail b,.arrival-unavailable .arrival-choice{color:#94a1b3}.arrival-unavailable-reason{display:block;margin-top:6px;font-size:10px;line-height:1.6;color:#91a0b4;overflow-wrap:anywhere}
.arrivals-note,.arrivals-help,.arrival-observation-note{font-size:11px;line-height:1.7;color:#8293a9;margin:6px 0 10px;overflow-wrap:anywhere}.arrivals-note{padding:12px;background:#f5f7fb;border-radius:10px;font-size:12px}.arrivals-help{margin:10px 0 0}.arrival-observation-note{font-size:10px;margin:10px 0 0;color:#9aa8ba}.arrivals-preview-link{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:3px 10px;padding:13px;margin-top:10px;border:1px solid #dce7f8;border-radius:10px;color:#4e77b0;background:#f6f9ff;text-decoration:none;min-height:58px}.arrivals-preview-link>span{font-size:12px;line-height:1.6;font-weight:600}.arrivals-preview-link>small{font-size:10px;line-height:1.6;color:#98aac2}.arrivals-preview-link>b{grid-column:2;grid-row:1/3;font-size:23px;color:#95aed0;font-weight:400}.arrivals-preview-link:focus-visible{outline:3px solid #2563dc;outline-offset:2px}.saved-time-entries .schedule-list{margin-top:8px}
@media(max-width:359px){.arrival-option{padding:11px;gap:9px}.arrival-choice{font-size:10px;max-width:76px}.arrival-detail{font-size:12px;gap:4px 8px}.arrival-detail b{font-size:11px}.arrival-line{font-size:10px}.arrival-departed .arrival-detail b{font-size:10px}}
.arrival-stop-pattern{display:block;margin-top:5px;color:#2456a7;font-size:11px;line-height:1.5;white-space:normal}
/* Compact, wrapping train choices. Size is based on the card area, not the device model. */
.train-arrivals{container-type:inline-size;container-name:train-choices}
.train-arrivals .arrival-options{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;align-items:stretch}
.train-arrivals .arrival-option{display:flex;flex-direction:column;align-items:stretch;justify-content:flex-start;gap:8px;padding:11px 10px 12px;min-height:132px;height:100%;text-align:left;border-radius:13px}
.train-arrivals .arrival-card-top{display:flex;align-items:center;justify-content:space-between;gap:5px;min-height:18px}
.train-arrivals .arrival-type{flex:none;font-size:10px;line-height:16px;margin:0;padding:1px 5px}
.train-arrivals .arrival-choice{display:grid;place-items:center;align-self:auto;flex:none;width:17px;height:17px;min-width:17px;border:1px solid #d4deed;border-radius:50%;font-size:11px;line-height:1;color:transparent;white-space:normal;background:#fff}
.train-arrivals .arrival-option[aria-pressed=true] .arrival-choice{border-color:#2463eb;background:#2463eb;color:#fff}
.train-arrivals .arrival-detail{display:flex;flex-direction:column;align-items:flex-start;gap:3px;margin:0 0 7px;line-height:1.45;min-width:0}
.train-arrivals .arrival-detail b{font-size:18px;line-height:1.4;font-weight:750;color:#2463eb;letter-spacing:-.5px;overflow-wrap:anywhere}
.train-arrivals .arrival-detail strong{display:block;font-size:13px;line-height:1.5;font-weight:650;letter-spacing:-.3px;white-space:normal;overflow-wrap:anywhere;word-break:normal}
.train-arrivals .arrival-detail .arrival-observed{font-size:10px;margin:0 0 3px;color:#7d8da3;line-height:1.5}
.train-arrivals .arrival-main>.arrival-train-id{display:block;margin:5px 0 0;font-size:10px;line-height:1.6;color:#7a8ba3;overflow-wrap:anywhere}
.train-arrivals .arrival-line{margin:3px 0 0;padding:0;border:0;font-size:10px;line-height:1.5;color:#788ca8;white-space:normal;overflow-wrap:anywhere}
.train-arrivals .arrival-group-route{margin:0 0 8px;padding-left:7px;border-left:3px solid var(--arrival-color);font-size:11px;line-height:1.6;color:#6e829d;overflow-wrap:anywhere}
.train-arrivals .arrival-boarded{display:inline-block;margin-top:6px;padding:2px 5px;border-radius:4px;background:#edf3ff;color:#5877a1;font-size:10px;line-height:1.5}
.train-arrivals .arrival-stop-pattern{font-size:10px;line-height:1.6;margin-top:6px;overflow-wrap:anywhere}
.train-arrivals .arrival-departed .arrival-detail b{font-size:15px;color:#66809e}
.train-arrivals .arrival-unavailable .arrival-detail b{color:#94a1b3}
@container train-choices (min-width:300px){.arrival-group[data-arrival-group=upcoming] .arrival-options,.arrival-group[data-arrival-group=unconfirmed] .arrival-options{grid-template-columns:repeat(3,minmax(0,1fr))}}

.boarding-track {
  margin: 8px 0 12px;
  padding: 10px 8px 8px;
  border: 1px solid var(--line, #e0e7f1);
  border-radius: 12px;
  background: var(--bg, #f7f9fc);
}

.boarding-track-heading {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  flex-wrap: wrap;
  gap: 2px 8px;
  padding-inline: 4px;
}

.boarding-track-title {
  display: flex;
  align-items: baseline;
  flex-wrap: wrap;
  gap: 2px 7px;
}

.boarding-track-heading strong {
  color: var(--ink, #203249);
  font-size: 12px;
}

.boarding-track-heading span,
.boarding-track-heading small,
.boarding-track .boarding-track-note {
  color: var(--muted, #718096);
  font-size: 10px;
  line-height: 1.5;
}

.boarding-track-heading small {
  padding-inline-start: 5px;
  border-inline-start: 2px solid var(--boarding-line-color);
}

.boarding-track-plot {
  --boarding-column-width: calc(100% / var(--boarding-column-count, 4));
  --boarding-lane-height: 34px;
  direction: ltr;
}

.boarding-track-plot[data-boarding-fork="true"] {
  --boarding-lane-height: 46px;
}

.boarding-track-trains {
  position: relative;
  height: calc(var(--boarding-lane-count, 1) * var(--boarding-lane-height) + 6px);
}

.boarding-track-marker {
  position: absolute;
  inset-inline-start: 0;
  top: calc(4px + var(--boarding-lane, 0) * var(--boarding-lane-height));
  display: grid;
  justify-items: center;
  width: var(--boarding-column-width);
  color: var(--muted, #718096);
  transform: translateX(calc(var(--boarding-slot, 0) * 100%));
}

.boarding-track-glyph {
  display: grid;
  place-items: center;
  width: 23px;
  max-width: 100%;
  height: 23px;
  border: 1px solid var(--line, #dbe4f1);
  border-radius: 8px;
  background: var(--bg, #fff);
}

.boarding-track-glyph .icon {
  width: 15px;
  height: 15px;
}

.boarding-track-marker[data-selected="true"] {
  color: var(--green-dark, #174cb8);
  font-weight: 750;
  z-index: 1;
}

.boarding-track-marker[data-selected="true"] .boarding-track-glyph {
  width: 27px;
  height: 27px;
  margin-top: -2px;
  margin-bottom: -2px;
  border-color: var(--green, #2463eb);
  background: var(--mint, #edf3ff);
}

.boarding-track-marker[data-selected="true"] .icon {
  width: 20px;
  height: 20px;
}

.boarding-track-marker[data-retained="true"] {
  opacity: .65;
}

.boarding-track-leader {
  display: none;
}

.boarding-track-marker small {
  max-width: 100%;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-size: 9px;
  line-height: 11px;
}

.boarding-track-stations {
  position: relative;
  display: grid;
  grid-template-columns: repeat(var(--boarding-column-count, 4), minmax(0, 1fr));
  color: var(--muted, #718096);
  text-align: center;
  font-size: 11px;
  line-height: 1.35;
}

.boarding-track-stations::before {
  content: '';
  position: absolute;
  top: 5px;
  inset-inline: calc((.5 + var(--boarding-first-slot, 0)) * var(--boarding-column-width)) calc(var(--boarding-column-width) / 2);
  border-top: 2px solid var(--boarding-line-color);
}

.boarding-track-stations > span {
  position: relative;
  padding: 15px 2px 0;
  overflow-wrap: anywhere;
  word-break: keep-all;
}

.boarding-track-stations > span::before {
  content: '';
  position: absolute;
  top: 1px;
  left: 50%;
  width: 10px;
  height: 10px;
  box-sizing: border-box;
  transform: translateX(-50%);
  border: 2px solid var(--boarding-line-color);
  border-radius: 50%;
  background: var(--bg, #f7f9fc);
}

.boarding-track-stations > [data-boarding-station] {
  color: var(--green-dark, #174cb8);
  font-weight: 750;
}

.boarding-track-stations > [data-boarding-station]::before {
  background: var(--boarding-line-color);
}

.boarding-track-stations > [data-boarding-missing]::before,
.boarding-track-stations > [data-boarding-branches]::before {
  content: none;
}

.boarding-track-fork {
  position: absolute;
  top: 0;
  left: 50%;
  width: 100%;
  height: 14px;
  overflow: visible;
  fill: none;
  stroke: var(--boarding-line-color);
  stroke-width: 2;
}

.boarding-track-branch-name {
  display: block;
  font-size: 10px;
}

.boarding-track-marker .boarding-track-marker-branch {
  font-size: 8px;
}

.boarding-track-stations small {
  display: block;
  font-size: 9px;
}

.boarding-track .boarding-track-note {
  margin: 5px 4px 0;
}

.arrival-compact-list {
  margin: 7px 0 0;
  border-top: 1px solid var(--line);
}

.arrival-compact-row {
  display: grid;
  grid-template-columns: 17px minmax(0, 1fr) max-content;
  align-items: center;
  gap: 9px;
  width: 100%;
  min-height: 54px;
  padding: 8px 8px 8px 10px;
  border: 0;
  border-bottom: 1px solid var(--line);
  border-inline-start: 2px solid transparent;
  border-radius: 0;
  background: transparent;
  color: var(--ink);
  text-align: start;
}

.arrival-compact-row[aria-pressed="true"] {
  border-inline-start-color: var(--green);
  background: var(--mint);
}

.arrival-compact-row:focus-visible {
  outline-offset: -3px;
}

.arrival-compact-choice {
  display: grid;
  place-items: center;
  width: 16px;
  height: 16px;
  border: 1px solid var(--muted);
  border-radius: 50%;
  font-size: 11px;
  line-height: 1;
}

.arrival-compact-row[aria-pressed="true"] .arrival-compact-choice {
  border-color: var(--green);
  background: var(--green);
  color: var(--bg);
}

.arrival-compact-row:disabled .arrival-compact-choice {
  opacity: .55;
}

.arrival-compact-copy {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 2px 6px;
  min-width: 0;
  overflow-wrap: anywhere;
}

.arrival-compact-copy > strong {
  font-size: 16px;
  line-height: 1.2;
}

.arrival-compact-copy > small {
  flex-basis: 100%;
  color: var(--muted);
  font-size: 12px;
  line-height: 1.45;
}

.arrival-compact-copy > small:not(.arrival-compact-detail) {
  color: var(--ink);
  font-weight: 600;
}

.arrival-compact-copy .arrival-compact-detail {
  font-size: 11px;
}

.arrival-compact-next {
  color: var(--green-dark);
  font-size: 11px;
  font-weight: 700;
}

.arrival-compact-status {
  display: flex;
  align-items: baseline;
  gap: 3px;
  color: var(--green-dark);
  font-size: 12px;
  font-weight: 650;
  white-space: nowrap;
}

.arrival-compact-row:disabled .arrival-compact-status {
  color: var(--muted);
}

.arrival-compact-status b {
  font-size: 23px;
  line-height: 1;
  letter-spacing: -.04em;
}

.arrival-compact-timetable {
  display: flex;
  flex-wrap: wrap;
  gap: 2px 12px;
  margin: 9px 0 0;
  color: var(--muted);
  font-size: 12px;
  line-height: 1.5;
}

.boarding-track-compact {
  margin: 0 0 9px;
  padding: 0;
  border: 0;
  background: transparent;
}

.boarding-track-compact .boarding-track-heading {
  justify-content: flex-end;
}

.boarding-track-compact .boarding-track-viewport {
  overflow-x: auto;
}

.boarding-track-compact .boarding-track-plot {
  min-width: var(--boarding-min-width, 0px);
  overflow: clip;
}

.boarding-track-compact .boarding-track-plot[data-boarding-fork="true"] {
  --boarding-lane-height: 58px;
}

.boarding-track-compact .boarding-track-title,
.boarding-track-compact .boarding-track-note[hidden] {
  display: none;
}

.boarding-track-compact .boarding-track-marker .boarding-track-glyph {
  width: 19px;
  height: 19px;
  border: 0;
  background: transparent;
}

.boarding-track-compact .boarding-track-marker[data-selected="true"] .boarding-track-glyph {
  width: 25px;
  height: 25px;
  margin-block: -3px;
}

.boarding-track-compact .boarding-track-marker small {
  max-width: min(100%, 36px);
  line-height: 12px;
}

.boarding-track-compact .boarding-track-marker .boarding-track-marker-branch {
  white-space: normal;
  overflow-wrap: anywhere;
  text-align: center;
}

.boarding-track-compact .boarding-track-marker:not([data-boarding-leader])::after {
  content: '';
  width: 1px;
  height: 3px;
  background: currentColor;
}

.boarding-track-compact .boarding-track-marker[data-boarding-leader] .boarding-track-leader {
  display: block;
  position: absolute;
  top: 100%;
  left: calc(50% + var(--boarding-leader-start));
  width: var(--boarding-leader-width);
  height: 8px;
  overflow: visible;
  fill: none;
  stroke: currentColor;
  pointer-events: none;
}

.boarding-track-compact .boarding-track-marker[data-boarding-leader="left"] .boarding-track-leader {
  transform: scaleX(-1);
}

.boarding-track-compact .boarding-track-stations > span:not([data-boarding-station]) > small {
  display: none;
}
