/* Timeline CSS (Standardized) */

:root {
  --timeline_line_width: 6px;
  --timeline_line_color: #e5e7eb; /* Neutral 200 */
  --date_column_width: 120px; /* Increased for inline dates */
  --timeline_column_width: 100px;
  --timeline_bullet_diameter: 25px;
  --timeline_bullet_color: #fff;
  --timeline_bullet_border_width: 4px;
  --content_border_color: #e5e7eb;
  --content_background_color: #f3f4f6; /* Light Gray */
  --content_duration_color: #6b7280;
  --content_collapse_duration: 0.3s;
}

.dark {
    --timeline_line_color: #525252; /* Neutral 600 */
    --timeline_bullet_color: #262626;
    --content_border_color: #404040;
    --content_background_color: #262626; /* Dark Gray */
    --content_duration_color: #9ca3af;
}

.timeline {
  position: relative;
  margin: 0 auto;
}

.timeline::after {
    content: "";
    position: absolute;
    width: var(--timeline_line_width);
    background-color: var(--timeline_line_color);
    top: 0;
    bottom: 0;
    left: calc(var(--date_column_width) + 0.5 * var(--timeline_column_width) - 0.5 * var(--timeline_line_width));
}

.timeline .timeline-container {
    margin-bottom: 20px; /* Added spacing between blocks */
    position: relative;
    width: calc(100% - var(--date_column_width) - var(--timeline_column_width));
    margin-left: calc(var(--date_column_width) + var(--timeline_column_width));
}

.timeline .timeline-container::after {
      content: "";
      position: absolute;
      width: var(--timeline_bullet_diameter);
      height: var(--timeline_bullet_diameter);
      left: calc(-0.5 * var(--timeline_column_width) - 0.5 * var(--timeline_bullet_diameter) - var(--timeline_bullet_border_width));
      background-color: var(--timeline_bullet_color);
      border: var(--timeline_bullet_border_width) solid #8b5cf6; /* Keep primary color for border to match main timeline */
      top: 0px;
      border-radius: 50%;
      z-index: 1;
      box-sizing: content-box; /* Ensure borders add to width, fixing alignment */
}

.timeline .timeline-container .timeline-date {
      position: absolute;
      width: var(--date_column_width);
      top: 22px;
      z-index: 1;
      left: calc(-1 * (var(--date_column_width) + var(--timeline_column_width)));
      font-size: large;
      line-height: 1.0em;
      text-align: end;
      margin: 0px;
      color: var(--content_duration_color); 
}

.timeline .timeline-content {
    border: 2px solid var(--content_border_color);
    background-color: var(--content_background_color);
    position: relative;
    border-radius: 6px;
    transition: box-shadow 0.3s;
    /* overflow: hidden; Removed to allow duration to stick out */
}

.timeline .timeline-content:hover {
      box-shadow: 0 0 3px 3px #0004;
}

.timeline .timeline-content .timeline-title {
      padding: 5px 30px;
      font-weight: bold;
      display: inline-block;
}

.timeline .timeline-content .timeline-duration {
      margin: 0;
      color: var(--content_duration_color);
      opacity: 0.6;
      position: absolute;
      top: 50%;
      transform: translateX(-50%) rotate(-90deg);
      transform-origin: 50% 100%;
      width: auto;
      transition: opacity calc(0.5 * var(--content_collapse_duration));
      transition-delay: calc(0.5 * var(--content_collapse_duration));
      left: 0px; /* Shifted more to the left */
}

.timeline .timeline-content.collapsed .timeline-duration {
      opacity: 0.0;
      transition-delay: 0.0s;
}

.timeline .timeline-content .timeline-body {
      margin: 0px;
      padding: 5px 30px;
      transition-property: max-height, padding;
      transition-duration: var(--content_collapse_duration);
      transition-timing-function: ease-in-out;
      overflow: hidden; /* Moved here from .content */
}

.timeline .timeline-content.collapsed .timeline-body {
      padding-top: 0px;
      padding-bottom: 0px;
      max-height: 0px;
}

/* Mobile styles */
@media screen and (max-width: 736px) {
    .timeline .timeline-container {
        width: 100%;
        margin-left: 50px; /* simplified mobile layout */
        padding-left: 20px;
    }
    
    .timeline::after {
        left: 25px;
    }

    .timeline .timeline-container::after {
        left: -38px;
    }

    .timeline .timeline-container .timeline-date {
        position: relative;
        left: auto;
        top: auto;
        text-align: left;
        width: auto;
        margin-bottom: 5px;
        transform: none;
    }
}
