.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 {
  font-size: 0.85rem;

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

.claude-session-layout.has-sidebar {
  display: grid;
  grid-template-columns: 280px minmax(0, 1fr);
  gap: 1.5rem;
  align-items: start;

  @media (max-width: 900px) {
    grid-template-columns: 1fr;
  }
}

.todo-sidebar {
  position: sticky;
  top: 1rem;
  max-height: calc(100vh - 2rem);
  overflow-y: auto;

  .notification {
    margin-bottom: 0;
  }
}

.todo-nav {
  .todo-item {
    padding: 0;
    border-radius: 4px;

    a, a:hover, a:focus {
      display: flex;
      align-items: flex-start;
      gap: 0.5rem;
      color: inherit;
      text-decoration: none;
      padding: 0.25rem 0.5rem;
      width: 100%;
      border-radius: 4px;
    }

    span:not(.material-symbols-outlined) {
      min-width: 0;
      word-break: break-word;
    }

    &:hover a {
      background: hsl(0, 0%, 93%);
    }

    &.is-active > a,
    &.is-active {
      background: hsl(217, 71%, 93%);
    }

    &.todo-completed span:not(.material-symbols-outlined) {
      text-decoration: none;
      color: inherit;
    }
  }
}

.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; }
}

.todo-list {
  list-style: none;
  margin: 0.5rem 0 0;
  padding: 0;

  .todo-item {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.15rem 0;

    &.todo-completed span:not(.material-symbols-outlined) {
      text-decoration: line-through;
      color: hsl(0, 0%, 48%);
    }

    &.todo-in_progress span:not(.material-symbols-outlined) {
      font-weight: 600;
    }

    .material-symbols-outlined.has-text-info {
      animation: status-pulse 1.5s ease-in-out infinite;
    }
  }
}
