@layer components {
  .cycles {
    border: var(--card-border);
    border-radius: var(--card-radius);
    box-shadow: var(--shadow);
    contain: inline-size;
    margin-block-start: var(--block-space);
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }

  .cycles__header {
    font-weight: 600;
    padding: 0.75rem 1rem;
    border-block-end: 1px solid var(--color-ink-lighter);
  }

  .cycles__stats {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0.25rem 1.5rem;
    padding: 0.5rem 1rem;
    font-size: var(--text-small);
    color: var(--color-ink-dark);
    border-block-end: 1px solid var(--color-ink-lighter);
  }

  .cycles__stat {
    white-space: nowrap;
  }

  .cycles__stat-label {
    color: var(--color-ink-medium);
  }

  .cycles__table-wrap {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }

  .cycles__table {
    border-collapse: collapse;
    inline-size: 100%;
    font-size: var(--text-small);
  }

  .cycles__table th {
    color: var(--color-ink-medium);
    font-size: var(--text-x-small);
    font-weight: 500;
    letter-spacing: 0.05em;
    padding: 0.5rem 0.75rem;
    text-align: start;
    text-transform: uppercase;
    white-space: nowrap;
  }

  .cycles__table td {
    padding: 0.5rem 0.75rem;
    white-space: nowrap;
  }

  .cycles__table tbody tr {
    border-block-start: 1px solid var(--color-ink-lightest);
  }

  .cycles__table tbody tr {
    @media (any-hover: hover) {
      &:hover {
        background-color: var(--color-ink-lightest);
      }
    }
  }

  .cycles__row-link {
    color: inherit;
    text-decoration: none;
  }

  .cycles__row--active {
    font-weight: 500;
  }

  .cycles__row--failed {
    color: var(--color-ink-medium);
  }

  .cycles__row--weaning {
    border-block-start: none;
  }

  .cycles__weanings {
    margin-block-start: var(--block-space);
  }

  .cycles__weanings .card__header {
    font-size: var(--text-small);
  }

  .cycles__empty {
    color: var(--color-ink-medium);
    font-size: var(--text-small);
    padding: 1rem;
    text-align: center;
  }
}
