/* ── Timeline layout ─────────────────────────────────────────────────────
   Axis is at 50% of the container.
   Transport circles sit ON the axis (absolute, centered on it).
   Cards are in the right half.
   Note cards span the full width — line passes behind them.
─────────────────────────────────────────────────────────────────────── */
.trip-tl {
  position: relative;
  padding: 52px 0 120px;
}

/* Global vertical line at center */
.trip-tl::before {
  content: '';
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  top: 0; bottom: 0;
  width: 2px;
  background: #d4cfbc;
  z-index: 0;
}

.day-divider { display: none; }

/* ── Transport item ── */
.tl-item {
  position: relative;
  display: flex;
  align-items: center;
  /* Right-half content: starts after icon (50% + icon radius + gap) */
  padding-left: calc(50% + 52px);
  padding-right: 16px;
  min-height: 88px;
  margin-bottom: 36px;
}

/* Circle sits ON the axis, vertically centered in the item */
.tl-icon-big {
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  width: 80px; height: 80px;
  border-radius: 50%;
  background: #f0ead6;
  border: 2px solid #ccc8b2;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.9rem;
  z-index: 1;
  box-shadow: 0 2px 8px rgba(0,0,0,0.10);
  flex-shrink: 0;
}

/* Transport card fills the right half */
.tl-card {
  flex: 1;
  min-width: 0;
  background: #fff;
  border-radius: 16px;
  padding: 14px 16px 16px;
  box-shadow: 0 1px 8px rgba(0,0,0,0.08);
  position: relative;
  z-index: 1;
}

.tc-dest {
  font-size: 0.88rem;
  font-weight: 400;
  color: #1a1a1a;
  margin-bottom: 2px;
}

.tc-route {
  font-size: 0.72rem;
  color: #bbb;
  margin-bottom: 6px;
}

.tc-meta { display: flex; gap: 5px; flex-wrap: wrap; }

.tc-badge {
  font-size: 0.6rem;
  color: #999;
  background: #f5f2ea;
  border-radius: 999px;
  padding: 2px 8px;
  white-space: nowrap;
}

/* ── Note item — full width, line passes behind the card ── */
.tl-item-note {
  position: relative;
  margin-bottom: 36px;
  padding: 0 16px;
}

.tl-note-card {
  background: #fff;
  border-radius: 16px;
  padding: 14px 16px;
  box-shadow: 0 1px 8px rgba(0,0,0,0.08);
  position: relative;
  z-index: 1;
}

.tl-note-text {
  font-size: 0.92rem;
  color: #333;
  line-height: 1.65;
}

/* ── Note attachments (timeline) ── */
.tl-note-photos {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}
.tl-note-photos:not(:first-child) { margin-top: 10px; }
.tl-note-photos img {
  width: calc(50% - 3px);
  height: 130px;
  object-fit: cover;
  border-radius: 10px;
  cursor: pointer;
  display: block;
  background: #f5f2ea;
}
.tl-note-photos.single img,
.tl-note-photos img.expanded {
  width: 100%;
  height: auto;
  max-height: 70vh;
  object-fit: contain;
}
.tl-note-audio {
  width: 100%;
  display: block;
}
.tl-note-audio:not(:first-child) { margin-top: 10px; }

/* ── Drag & drop (own trips) ── */
.tl-item[draggable="true"], .tl-item-note[draggable="true"] .tl-note-card { cursor: grab; }
.tl-item[draggable="true"]:active, .tl-item-note[draggable="true"] .tl-note-card:active { cursor: grabbing; }
.tl-item.drag-over, .tl-item-note.drag-over { opacity: 0.35; }
