.execution-log {
  --log-border: hsl(0, 0%, 86%);
  --log-dot: hsl(217, 71%, 53%);
  --log-dot-size: 12px;
  --log-line-left: 5px;

  position: relative;
  padding-left: 2rem;

  &::before {
    content: "";
    position: absolute;
    left: var(--log-line-left);
    top: 0;
    bottom: 0;
    width: 2px;
    background: var(--log-border);
  }

  .log-entry {
    position: relative;
    margin-bottom: 1.25rem;

    &::before {
      content: "";
      position: absolute;
      left: calc(-2rem + var(--log-line-left) - var(--log-dot-size) / 2 + 1px);
      top: 0.35rem;
      width: var(--log-dot-size);
      height: var(--log-dot-size);
      border-radius: 50%;
      background: var(--log-dot);
      border: 2px solid white;
    }
  }

  .log-time {
    font-size: 0.75rem;
    color: hsl(0, 0%, 48%);
  }

  .log-message {
    font-weight: 600;
  }

  .log-detail {
    margin-top: 0.5rem;

    summary {
      cursor: pointer;
      font-size: 0.875rem;
      color: hsl(217, 71%, 53%);
    }

    pre {
      margin-top: 0.5rem;
      font-size: 0.8rem;
      max-height: 400px;
      overflow: auto;
    }
  }
}

.claude-session {
  max-height: 80vh;
  overflow-y: auto;
  font-size: 0.85rem;

  pre {
    max-height: 400px;
    overflow: auto;
  }
}

.status-pulse {
  display: inline-block;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: currentColor;
  vertical-align: middle;
  animation: status-pulse 1.5s ease-in-out infinite;
}

@keyframes status-pulse {
  0%, 100% { opacity: 1; }
  50% { opacity: 0.3; }
}
